DiyLightAnimation
Software => xlights => Topic started by: dowdybrown on February 08, 2012,
-
Several people have suggested that they would like the ability to have a visitor at their display be able to select the next sequence that gets played, perhaps via a web site.
After pondering this for a while, I think the web site approach has several problems:
- You cannot be sure whether the person selecting a sequence on your web site is at your display, or some hacker in a foreign country. When I had a guestbook on one of my web sites, I got 10 times more spam than useful comments - despite requiring a captcha (http://en.wikipedia.org/wiki/CAPTCHA (http://en.wikipedia.org/wiki/CAPTCHA)) to get in.
- The person watching your display must type the address of your web site into the tiny keyboard on their mobile phone in the dark.
- You would probably store the user's input in a file on the hosted web server. xLights would have to regularly poll the web server via ftp to see if there were new input.
- The previous step would require that the show computer have internet access. I don't know about you, but I don't allow my show computer on the internet, because I don't want some program updating itself during the middle of a show.
To get around these issues, I would like to propose a different arrangement. This would involve the following:
- You would run wifi in your front yard and connect your show computer to it. This network would not need to have internet connectivity. The network name (SSID) would be "xLights".
- I would create a mobile xLights app that visitors to your display could download.
- On the show computer, you would be able to specify in xLights what you wanted to allow your viewers to control. You could specify which sequences they could choose. You could also create some special short sequences that could be superimposed over the currently playing sequence - like spin the megatree one time, or run the strobes for a few seconds. The mobile app would have buttons the user could push to invoke these short sequences.
- When a visitor starts the mobile app while visiting your display, the app would turn the phone's wifi on, connect to the xLights network, then download the allowable choices from the show computer. Then the mobile app would display those choices. Any selections or button presses from the user would be sent back to the show computer and xLights on the show computer would carry out the instruction.
Comments? Questions?
FWIW - I have not coded or tested any of this yet, these are just concepts so far.
I have been looking at mobile development tools. I like the looks of Appcelerator (which would support a single code base for Android and iPhone), or I would use tools native to each platform. Feedback on this aspect is welcome as well.
Matt
-
OMG, I love your idea ..... most than I can state in words. I had been thinking something similar. In fact I have an old 802.11 wifi unit ready to go for this purpose! Great answer to security ... keep it local and isolated.
I think the ability to allow a guest to request 'overlay' display actions would be extremely popular, esp. since so many of my viewers are children and their parents would typically have smart phones (android/iphone).
I also like the ability to request a song. But below is a variation on the theme you presented:
Here's another idea: schedule a 'viewers choice' sequence ... and it would play a particular song or perform a certain action ... based on the result of not one request, but based on the results of an interactive poll that the app could present during a regularly scheduled song ... and basically the choice with the most votes in a certain timeframe .... would become the viewers choice. I would be cool if an optional audio file could be played to indicate the winning option, or the app would just display the results as they are collected and then the viewers choice would play.
A more advanced feature might be to schedule the TOP3 sequences ... i.e. the #1, #2, #3 most popular sequences based on prior viewers choice results (cumulative viewers requests stats).
-
Sounds great. How about a small JPG or bitmap file be transported to app from XLIGHTS. This file would be created by user and imported into XLIGHTS along with hotspot regions that could be mapped to the short sequences you spoke of. Then app could as an option display this image and when user touches hotspot regions the mapped sequences could play. An example image could be image of the show or simple images of display items. An Android app with images was created by user on DIYC. Although your idea of WiFi seems cool.
-
taybrynn stoled my thunder. He types fast.
-
I like it, however, remote controlling individual components could become troublesome as the number of simultaneous guests show up. The favorites idea works to deal with song requests, but not components. One idea would be to only allow a phone to control the components for a certain amount of time, and then go to the next. This would require keeping track of who arrived, in what order, and who left as well. Just things to keep in mind.
I really like the disconnected idea, however, it does pose a couple other issues. In rural areas to need to put the router in a weather safe location close enough to the road for people to use. In urban areas you run into network interference from so many other networks and other items.
-Rimist (via Tapatalk)
-
you would be relying on the viewers to be able to configure a wifi network on their phone...
most people probably don't know they can do it, or how to do it.
-
Not sure if it is possible but he indicated that app would automatically turn on the WiFi of Android device and automatically connect to ssid = "XLIGHTS".
I know when you install apps on Android the installation program asks user if the app can use certain resources. Maybe WiFi is one that can be used if user accepts when installing. Not sure.
you would be relying on the viewers to be able to configure a wifi network on their phone...
most people probably don't know they can do it, or how to do it.
-
If you were to get multiple request they could be put in a que simillar to a musical jukebox then played in the order requested. You could also limit the request for a particular sequence in some fashion as to prevent pest from requesting the same sequence over and over. It could be that a sequence would not be repeated back to back or depending on how many sequences you have.
Would there be a way to show the user what sequences are currently waiting to run?
xLights could switch back to a preprogrammed list when no special request were pending.
This would provide for a truly dynamic show.
You could have an announcement or a special sign made up for vistor instructions or even a localized web server with instructions.
-
Not sure if it is possible but he indicated that app would automatically turn on the WiFi of Android device and automatically connect to ssid = "XLIGHTS".
I know when you install apps on Android the installation program asks user if the app can use certain resources. Maybe WiFi is one that can be used if user accepts when installing. Not sure.
you would be relying on the viewers to be able to configure a wifi network on their phone...
most people probably don't know they can do it, or how to do it.
Yes, I was thinking of the Android app "wifi analyzer" which automatically turns on wifi when I start the app and turns it off when I exit. As long as the ssid is fixed, it should not have any trouble making the correct connection - even in a crowded wifi environment.
Matt
Matt
-
so you would have an open unsecured wifi network to your show computer?
i'm not being a negative nancy, just the devils advocate >:D
-
If you have a dedicated Wifi router on your show computer with no other access "permissions", wouldn't that be "secure" enough for this purpose? I would also think there would be some sort of security key (similar to the way satellite receivers work) that would allow the app to only schedule the requested event with no other abilities to access the show computer. I'm not well-versed enough with networks or software to know how something like this would work.
I would foresee using this as a "make your own sequence" where during a specific song during the show, kids (and their parents) would be able to spin the mega tree, tap to light the window frames, change the colors of smart nodes, light up the roof, etc. Obviously, there's no way to configure for everyone's individual layout. Maybe also allow each item to be logged into one at a time.... for instance only one person can spin the megatree at a time.
I love the potential this has!
Matt,
This sounds awesome! I, like many others, wouldn't have had a show this year had it not been for xLights! Keep up the great work!
-
I see any adhoc control of display items ... to only make sense during a voiceover or other short (generic) song ... perhaps the requests could be queued up (for up to duration of the next adhoc song) ... and then it would basically show everyone on the app who's up next:
john: left megatree - triple spin
cindy: tree line red, tree line green
...
-
This is a fantastic idea!!!! I could never get away with this at my display as I live in a cul-de-sac and I have "crowd" problems. I could see people outside playing with this all night and other people not being able to get in to see the show. I really do love the idea though!!!
-
The point about WiFi access to the show computer is concerning. I'd only run bsd on that machine, and harden it.
-Rimist (via Tapatalk)
-
so you would have an open unsecured wifi network to your show computer?
i'm not being a negative nancy, just the devils advocate >:D
Good point. I think this can be easily addressed by including encryption and authentication features in the protocol between the show computer and the mobile app.
Matt
-
I think what rimist is saying is a open wifi is a open wifi. Yes it doesn't connect to the internet but it connects to the network which includes your show computer. Anyone with knowledge/time/bordem can connect to the wifi with not just a phone but a computer and start working away to see if they can get in your computer/cause issues so you show won't run. Sure you can lockdown your computer like no other, its just another thing you have to worry about.
Me I like the website idea but like pointed out you have to get past the random people on the internet
-
I just cannot imagine doing anything like this. I'm a model railroad guy as well as a lighting enthusiast. At train shows, some of the displays have interactive buttons for kids or adults to push. There is always some kid there just leaning on the button to do that one thing and it is usually something loud and annoying. Seems to me that would happen with an interactive display and then your well thought out, sequences, and planned show never gets seen in total by anyone due to some one trying to take it over just for the sake of taking it over or pushing a button. I like to be in control of what my display is doing. I'm open to suggestions from viewers for changes / enhancements, but I for one like it to be my display and not someone else's. In my case i seldom have more than one car at a time watching the show, but I do the showfor me and I do not seek out publicity although I might be changing my mind on that one for next year.
-
Twooly - exactly. Way to many people hack open networks because they are there.
-Rimist (via Tapatalk)
-
Jnealand-
I do my show for my family, however, I'd like to allow interaction some of the time, or, perhaps after the show has run a certain amount of time. Initially, I'm really just entertaining requested songs. It's still my show, just the order of the songs changes. To prevent the annoying twit from repeating the same song, all songs would be in the queue, and a request would be counted as a vote. Order the queue by played counter (asc) then by vote counter (desc). All songs would be played before starting over, but the votes determine the order. You could also Use the requestor's Mac address to prevent excessive votes, just be sure to reset that counter when their requested song plays.
-Rimist (via Tapatalk)
-
I think a web site would be better than an app because we wouldn’t need different apps for all the different kinds of phones. One way to help make sure the person is in your yard would be to have some kind of digital sign/display in your yard that had a changing number. Then the person could enter that number as some kind of password to login. You could have the number change after every use or every hour…
-
Or somehow tap into the gps like google does going to their site on my phone
-
I think the web site would be very versatile. Actually, a single web site could be the host to multiple physical sites. The individual show computers could get an encrypted xml file containing the next thing to do. Each host computer would simply share its public key with the web server as part of the initial configuration. After that, it's a simple http request.
-Rimist (via Tapatalk)
-
well, to keep people from screwing with the rest of the show, that functionality should be locked out once a sequenced song is playing...
i did like the idea of lboucher's app. but it went through the internet.
it checked to see if you near the show. and could tell you the closest show that it could control.
it would be a good start to have some of these features.
-
I think the web site would be very versatile. Actually, a single web site could be the host to multiple physical sites. The individual show computers could get an encrypted xml file containing the next thing to do. Each host computer would simply share its public key with the web server as part of the initial configuration. After that, it's a simple http request.
-Rimist (via Tapatalk)
each computer would still have to "announce" to the website what capabilities were available. john might have a megatree spin, but if i don't have a megatree... etc.
-
That is true, however, the server would also share a public key with the show computer, so all of those communications would be encrypted as well
-Rimist (via Tapatalk)
-
I personally like Mr. Browns first idea. I think it would be relatively easy to lock down the wireless access to show computer. The chances of some great hacker with the time and the motive to be on my block looking at my show with bad intentions is very slim. And I am sure I could keep out the average hacker. Just my opinion. Also the stand alone Android or Iphone app seems like a good idea. How many OS's are there. If you create the app for those two OS's you have probably 90% of the users.
-
blackberry would be the last 10%
-
I agree with dpitts. I really am not overly concerned about hackers at the show ... esp. in my less crowded, rural environment.
-
so you would have an open unsecured wifi network to your show computer?
i'm not being a negative nancy, just the devils advocate >:D
Good point. I think this can be easily addressed by including encryption and authentication features in the protocol between the show computer and the mobile app.
Matt
Short of embedding the WPA access keys in the XLIGHTS mobile app I am not sure how you prevent someone from connecting any device to your network. Even with that a truly determined attacker could extract the key from XLIGHTS mobile or just use their android device to look for other weaknesses in the show computer.
I think the key will really come down to the owner of the show computer being savvy enough to make sure their computer is secure. A good software firewall on the PC should suffice to make sure that only XLIGHTS mobile can talk to the PC. Of course now you need to make sure that the XLIGHTS is hardened against attacks...
Of course I may be more paranoid than most given my day job...
Frank
-
If I was setting this up I'd setup a single web site.
You display either that web sites address or one from your own domain that points to it.
You now register your display with the web site including your displays GPS location.
Now when the viewer goes to the web site it will ask the browser for the GPS location and display the information for your display.
Xlights would also connect to the web site and would receive commands the viewer enters on the site. If xlights was not running a message would be displayed.
This way everyone is protected and no open WiFi is used.
Thoughts?
John
Sent from my iPad using Tapatalk
-
Since there seems to be so many ideas on how to implement the connection to Xlights. Maybe the best thing to do is create the interface for creating small sequences and and specification to communicate with Xlights and have the individual user or users create the front end. If a group of users wanted to create a web page to talk to Xlights they could use the specification to connect and send commands. If a user wanted to create an Android app to connect over WiFi they could open up WiFi communications and use the specification to connect to Xlights and send commands. Etc.
User settings could be what port to connect to.
-
I understand the concept, however it is key to not allow incoming requests from the internet, hence, xlights polling the web site.
Otoh, it could always be my responsibility to poll the site and push the info to xlights.
The real question here is what about the non technical users who just want it to work?
I think having the exposed interface for technical users is great, however, he needs to do as he thinks best for everyone else
-Rimist (via Tapatalk)
-
Is there a way this could interact with the conductor down the road? Would this eliminate or reduce the security concerns, since it would be a standalone piece of hardware and no PC ?
-
Is the pic capable of doing a http request?
-Rimist (via Tapatalk)
-
And yes, if the conductor could poll a web server, that would help security concerns, however, not sure if it would support encryption as well.
I'd look towards possibly using the raspberry pi device to do the encrypted polling and update the composer
-Rimist (via Tapatalk)
-
If I was setting this up I'd setup a single web site.
You display either that web sites address or one from your own domain that points to it.
You now register your display with the web site including your displays GPS location.
Now when the viewer goes to the web site it will ask the browser for the GPS location and display the information for your display.
Xlights would also connect to the web site and would receive commands the viewer enters on the site. If xlights was not running a message would be displayed.
This way everyone is protected and no open WiFi is used.
Thoughts?
John
Sent from my iPad using Tapatalk
I was thinking of something along those lines. It is a nice workaround for the location issue (remote person controlling the show) and it provides protection for your personal network.
Still pretty easy for someone to do what they want with your display by faking out the GPS coordinates but I cannot imagine why anyone would want to do that...
-
if you are not on wifi, how do you prevent people from manipulating the display the next night from across town?
-
The app would require knowing your location permission in order to install. When the app is loaded (or accessed after a preset delay) it would make sure you are still near the display.
-Rimist (via Tapatalk)
-
ahh... location awareness
-
ahh... location awareness
Yep, believe it or not I was doing stuff with location awareness back in 2000. I believe it was with the palm hand devices
-
ahh... location awareness
Which is my point. Even with two or more displays the location aware web site would just present you each that you were close enough to work with. You could even have a picture of your display so there was no confusion.
-
couldn't the app just require that your current gps location be close to the lat lon for the show, which could be set in xlights?
-
Actually I want it to be exact so I can paint a big X on the street that they have to stand on. :)
Sent from my iPad using Tapatalk
-
Actually I want it to be exact so I can paint a big X on the street that they have to stand on. :)
I like this idea... Point a video camera at the spot, warn people they are being recorded, then add a projection of that video to your show. I doubt cracker would sit on tape to get into your computer
-Rimist (via Tapatalk)
-
Hello,
Being a newbie I hope I do not step on anyone's toes by saying this but I would have concerns about the willingness of people to download an app for the sole purpose of being able to change songs on someone's light show only when they're in range of the WIFI from the house... Personally, I wouldn't waste my time with downloading the app, especially if it had GPS tracking enabled...
My recommendation is to build a Access Point(AP) which has captive portal capabilities. The captive portal will automatically redirect their browsers (of any device connecting to the AP) to a address of your choosing. This approach is nice from a security stand point because you would be segmenting the people connecting to the open AP from your homes LAN/wirless traffic. You can also lock down which ports on the xLights host they will have access to since the AP is now a firewall device and it would greatly reduce the risk of attacks by having an open AP.
Being that xLights is a cross platform app, I would recommend using something that is cross platform as well to host the web pages from. I know there is Apache(2) for windows, Linux and I think it is even installed but disabled in Mac OSX by default.
Getting back to setting up the AP w/captive portal. I have built dozens of APs w/captive portals for offices & restaurants and a lot of them were nothing more than discarded PCs I had laying around after building someone a new computer. All I did was put a wireless card or USB dongle in the PC and install something like pfSense, OpenWRT or monowall on the computer then some configuration. Here is a link to more information about captive portals and a list of some popular AP/captive portal software: http://en.wikipedia.org/wiki/Captive_portal (http://en.wikipedia.org/wiki/Captive_portal)
Cheers,
Ryan
-
My Xlights request, months ago was much more basic. I currently run LOR and use input triggers (6 to be exact) which are selected from a "visitors' control panel" that I built, which is in the parking area.
All a visitor has to do is to reach his/her arm out of the window of the vehicle and push one of the red/green or blue 2 inch diameter plastic buttons to select their song. It's gotten very popular, and it for this reason alone I have not explored using other software (Xlights, LSP, etc)
The trigegrs offer no rf/wifi/other concerns. No need to offer instructions in the display on how to make selections, other than on the panel which says "push button to select song".
If folks go the smart phone/wifi route, how would you plan on telling folks :
1) it's available
2) how to connect to it
3) and even possibly how to use it
Seems like a lot of information to convey to people that drive up to watch the lights, who half the time don't seem to read the much shorter message signs many of us have.
Remember a few years back how many had trouble even getting folks to realize the blinking lights were sync'd to music transmitted on FM?
It sounds like a neat idea, but because of the above I am not sure how practical it would be...
Greg
-
I like the buttons idea, but I'd worry it would direct traffic to the buttons and block other viewers on my cul de sac ... I still think the security concerns are overblown ... I'll just run the show on a junky laptop
-
I see the benefit of a phone app, especially one that would show the light displays near you, so you could visit them, and also be used to interact with those displays that have that capability. I'm sure a well executed app with hints dropped for some news stations would get wide distribution.
Warning: controversial idea next
If the app could include advertising (perhaps payable to the author or DLA, that being between said author and RJ), then a paid (ad free),version could also exist, and that could be submitted to Amazon for free app of the day. Please note, the whole purpose of the ads would be to have a paid version that you could offer for free, which gets awesome distribution.
-Rimist (via Tapatalk)