2001 2002 2003 2004-2007 2008-2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023

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. Starting in 2019, viewers can see there spot in the queue using the same website used for voting. Here are two videos of the system in action.

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 2 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. (The exact duration is controlled by the Webserver and will dynamically change based on the number of names in the queue.) Just before it is time to play the names, the webserver will send an MQTT message asking the xLights VM to genereate the sequence and move it to the FPP server.
  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. If there are not enought names, it just selects a few from the database as the seuqnce is designed to always play 13 names.
  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 the FPP API to upload Wish_names.seq file on the fpp server and send a signal via MQTT to let the webserver know everything is ready.
  12. At this point the webserver will schedue names this song as the next song to play.
  13. Finally, while all this is happening, both the Voting Website and Stats server have been monitring all traffic and provided updates to both the admin and end users.

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
ghormann@gmail.com
http://www.thehormanns.net
Copyright © 2000-2023
All Rights Reserved