2001 2002 2003 2004-2007 2008-2009 2010 2011 2012 2013 2014 2015 2016 2017 2018

Texting Your Name

In 2018, we added the ability for viewers to supply their first name via text message and have it included in the display. The name immediately displays on the small grid under the display and then every 10 minutes or so, a 1 minute sequence is displayed where 13 names are included on the 18' X 8' grid. Here are two videos.

On the big Grid
On the Clock

How it works

  1. We use the Twilo service to convert inbound text messages to API calls on our web server.
  2. Our web server (apache + python) to accept the message from Twilo.
  3. The python code then validates the name against a whitelist of valid first names that was provided by the Social Security Administration.
  4. If the name isn't in the white list, a text message is sent to the admin and the originator of the message is notified that the name needs reviewed.
  5. For valid names, a MQTT message is generated and sent to both the Clock VM and the xLights VM box where it will be added to a local queue.
  6. the CLock VM is running a custom C++ program. This program is written to always drain the queue of names before doing any other greetings / graphics.
  7. The xLights VM is a Ubuntu vm running a python process. The name will just be added to the queue of the python process. The current queue is always published by the python program every 20 seconds so that the web server knows the current status.
  8. In fpp, the sequence is set up so that a sequence called "WISH_Names.seq" is played approximately every 10 minutes. When the song before "Wish_names.seq" starts to play, a MQTT message is sent from the the FPP that is consumed by the python process on the xLights VM.
  9. the xLights VM, having received a signal that it is time for the next batch of names, will take the next 13 names from the queue, and generate a new xLights .xml file. It does this by loading a template file that has %NAME_1%, %NAME_2%, ... , %NAME_C% and just doing a simple replace.
  10. Once the .xml file has been generated, the python process runs xLights -r WISH_Names.xml to generate the .seq file.
  11. As soon as the .seq file is generated, the python process uses sftp to overwrite the previous Wish_names.seq file on the fpp server.
  12. At this point, since this is the next sequence in the play list, it will play. The only trick is to make sure that the previous song is long enough for the entire sequence to complete (gen xml, gen .seq, sftp file). On my hardware and with my sequence, I need about 50 seconds.

The source code is avaiable if you are interested.

Admin Interfaces

The web server also contains and admin page that allows us to remotely monitor the queue. We can remove or add new names the queue (without going thought he name validation.) . This will just generate the same MQTT messages that are consumed by the xLights VM and CLock VM machines. Most of the time, we use this to "add" any valid names that were incorrectly blocks by the name filter. Because of this, we have a one click "add" button that is displayed against anything that doesn't pass the filter.

Our Favorite Light Displays

Powered by PHP         Powered by FreeBSD

Greg & Mary Hormann
Copyright © 2000-2018
All Rights Reserved