This object is in archive! 

Control all lights from all switches

David shared this idea 8 years ago
Under Consideration

I have three outdoor lights, one over each entrance to the house, each controlled by its own switch. Behind each of these switches I installed a Micro Smart Energy Switch from Aeon Labs. Now I want to create a rule (or several rules) that if I flick one of the switches all other soon follows.


I tried a couple of rules but I always run into a race between the switches (one is in off state that tells the other to turn off and at the same time another switch is in on state that tells the others to turn on) that makes the switches turn on and off creating a psychedelic disco for the neighbours.


Is there a easy way solve this? Bonus points if the solution doesn't include lots of "waits".


If there is a way to distinguish between user changing a switch and the rules changing them I could solve it myself but the switches I bought doesn't seem to have that feature, or?

Best Answer
photo

Okey, this is my try to solve this race / disco puzzle.

Disclaimer: There is probably a "Zipato" or a "z-wave" way of doing this. I have a very basic understanding of the rules engine and of z-wave in general.

So, the solution has two parts; 1) only accept one(ish) user input and 2) wait for all switches to settle.

We begin with the first part only accepting one user input (not exactly true since there isn't a good concept of synchronisation AFAIK). For this I use a outdoorsync variable, when this variable is set to 0 switch changes are accepted otherwise not.

69f37315ba37b3477ea9382d61c38856

So, if we get changes on any of the switches (one rule for each switch), check if we are allowed to change the virtual device "Utelampor" (outdoor lights). If we are we set the outdoorsync variable to 1 (making sure that nobody else changes the global state/virtual device).

The next step is the rule that acts on the virtual device "Utelampor" (this rule will reset outdoorsync). This rule will try and wait for all switches to settle but having as short period of manual switch downtime as possible:

e77d826a63077a7674cb1dc1c8a83a6c

(Found a error in the above picture; the last "set variable" should of course set the outdoorsync variable to 0.)

So, if we are supposed to turn on the lights ("Utelampor ON") all three switches should be in ON state, otherwise run the scene that turns on the lights and wait, refresh and retry (10 times). Same for the OFF scenario.

In the end, if no steady state have occurred during ~10 seconds just reset oudoorsync and give up.

Caveats: If you happen to change a switch after checking that all switches are in the same correct state but before resetting the outdoorsync you could end up in an inconsistent state.

At least this works for me now but I'm sure that it contains lots of bugs. If you have some easier way of doing the same please let me know!

Replies (24)

photo
1

I have the same question as you.


Also I want to be abel to toggle dimmer lights on and off, Fibaro dimmer and Qubino Dimmer!

photo
1

Can't you use the extra s2 input for user switching and not directly controlling the light?


In my case I have no means of knowing if a user or a rule changes the switch therefore the race.

photo
photo
1

The race is exactly as you described. You cannot assotiate more then 2 switches to each other as this will happen. A maximum of 2 switches can be associated to each other as you assotiate the 1St switch to theb2nd and then the 2ND switch to the 1St. If you assotiate more, this disco will happen.

photo
1

Do you mean native associations?


Because if you mean zipato rules then I'm confused because two would also make the same kind of circular dependency.

photo
1

Yes, I mean native association.

photo
photo
1

Post your rules. BTW, there might be a slight lag in switching, and therefore you cannot fast flick the switch, as the system will not be able to cope with the quick change.

I have a simple rule (cannot post as I'm on mobile right now) that when switching a noon wall switch, 2different light switch on or off. Inside the siren there is an if,else puzzle.

photo
1

I would love to see this! Thanks

photo
1

Here is the rule. Basically the rule ensures that if any of the two lights is turned on, the rule will turn on both light and after another press turn them both off.

photo
1

forgot to attach.

photo
1

all you need to do is extend the input to all 3 switches and the light to all 3 light. This way even if not all lights are on (but some are), first all lights will turn on and next press off,...

photo
1

Nic! I think I need to test this to. But two questions is it "any" command on both the inputs in the rule?


Also what does the "stop" command do? And is it necessary too use that?


Is it possible to do the same with dimmer lights in some way. I also want the light to start at the same level as when I turned of? A toggle if you will!


Best regards Jacob!

photo
1

Hi Jacob, Not sure why it shows in Slovak when I have selected English layout. The light in the if statement say "On" this way if only both light are on upon pressing the button both light will turn off, otherwise both lights will turn on. Works like a charm.


The stop command. I use it because once a colleague on this forum has demonstrated that if you use stop, your system can become more stable. Can, not necessary. See this tread https://community.zipato.com/topic/zipabox-restarts-without-apparent


I guess it should be possible to use them with dimmer. Instead of turn on the light in the action puzzle you would do startchangeup and instead of turn off you would use startchangedown. But this should be tested as I have no idea if it will work as desired.

photo
1

Hi Attila, it seems you trigger the lights from a remote (also a bit unsure about the language here :) )? In that case you can distinguish between user input and the switch changing position due to a rule. I want to use the same switches as I normally use to turn on and off the lights.

photo
1

Hi David, Indeed I use a NodOn wall battery operated switch, but it should not really matter what device you are using. If you have no I1 input device listed in the rule creator, than simply use the actual actuator as state change any. your rule will have in the when condition all three actuators with condition "any"and then in the if statement all 3 actuators with statement "on". this was if you turn on one switch and the all the other two switches are not on, they all will turn on. wither way, give it a go and let me know if it worx. Maybe it might be a good idea to ass a wait of 1 second between the state change and the actuator puzzles.

photo
1

I don't think it is the same with a remote. My problem is that the "remotes" and the switches are the same devices (controlling all lights from all switches).


In case of two switches (s1 and s2) a race can occur. s1 reports it switched off but at the same time s2 reports it switched to on. Two rules then executes (or the same rule executed twice) and the system starts ocillate (disco).


Even if this scenario seems unlikely it happens very fast if you add a third switch to the mix.

photo
photo
1

I would suggest 3 rules each for one light switch. Or perhaps put everything in one rule and use the join statement.

photo
1

Why is there so much lag at the moment from inputs to the Zipabox?


And the strange thing is that my Fibaro double relay works perfect no delay at all. This was one of the first rules I made.


By the way I have created a ticket for this about a week ago, but no solution to the problem from Zipato.

A couple of months ago Zipato solved my Schneider switch and 433mHz BOUF Blind. The results was amazingly fast!

See this clip: https://www.youtube.com/watch?v=cymbhvLsYM4

You can clearly see that the lag is less than a second. And the little lag that is present is probably because of the 433mHz.

This worked with the latest beta 11 may 2016.

I have not used this button at all just for test 11 of may, and a few weeks ago I wanted to use this button for my blinds and Hue lights in the bedroom. I was shocked when I discovered that the switch or the reaction from the box took over 3-4 seconds.


See clip: https://www.youtube.com/watch?v=9jMjYXSt1U8


What have happened since then? And why does the Fibaro double relay works fast?


Also I see a big problem when controlling lights that not all lights have toggle function?


As I see it you also need to be able to set a switch to Monostable or bistable.


And in your case you need to have all the switches as monostable and you need all lights to have toggle function.


This means that if you create a rule. You need to use the any command which means if any of the two states "on" or "off" will trigger the rule, and that the lights toggle every time any of the states is reached.


Am I right?


But every thing with light control is very complex with Zipato and should be esy!

photo
1

hi david i'm a little lost on exactly what you need to achieve. I have attached a rule that would trigger all lights to the state of one switch change. But this will not have any affect on your phyical switch position if this is what you mean. Do you mean you need the switch posistion to stay constant in a 2 position switch?

photo
1

I think the rule is wrong Adrian! It is not the on state he wants it is a on or off stat he wants to use. Like it is at the stairs with light switch. You can turn on att on place and off at the other and on at the other.


As long as the light switch devices have a selection for bi stable and mono stable?


Or do I think the wrong way?

photo
1

It's not exactly what I want (+ I don't really see why there isn't a race in this solution too). But (!) I want to tear it down so that I understand what you were trying to achieve:


So, given any changes on the three inputs you turn on the lights if "kitchen OR (living1 AND living2)" and otherwise off. Then if all lights are on, how to you turn them off?


In my case I just want to go to one entrance and turn that on to turn on the other entrances.

photo
1

David this could bee a solution for you!

https://youtu.be/_PSpoc3drv4

Tell me if it does not work!

Picture of rules I use:

5a89129e662ae9c169c4d11b8e545725

Hopefully Zipato could answer why my Fibaro Dimmer 2 does not send its status to the Zipabox? Is there a bad connection between the box and the Dimmer? Or is there another issue? I thin it could be related to the 2 hour delay of Events!


Hope you solve it soo

Best regards!

photo
1

I saw this now, a "race" (oscillation) could happen in this solution too since. Even if there is a two hour delay of events, the oscillation can happen (just very slow).

photo
photo
1

David,

I don't know if you found a solution to your problem, but as one of my installations have several Aeon Micro Smart Energy Switches, with the direct control leads wired to the old toggle switch, I set out to find a way to make the following scenario work:

If/when someone flicks any of the physical light switches connected directly to any of the Aeon Micro Smart Energy Switches, the other several Aeon devices should switch on or off accordingly so that all lights are syncronized ON or OFF.

Enclosed is the rule I created, which works 100%. I use one of these for each switch; the only difference between Rule1, Rule2, Rule3 etc., are the actuators/sensors specified.


Additionally, I have created two scenes; one where the lights controled by the Aeon swicthes are ON, another where the lights are OFF.


The rules cause the lights to become syncronized. If you need to filter out light on/off from other sources than the physical direct switch in order to still have the possibility of controling the lights individually, you can use an extra global variable to do so which is set elsewhere and can cause these rules to ignore status changes.

Here's a short explanation of the reasoning behind the rule described:

Firstly, I don't want the switches to have more than one ON or OFF; I don't want to flood the system with unneccesary events. I thus don't want to send ON or OFF when I don't need to. In order to avoid this, I maintain a global variable containing the Current Status of the light group. The rules test to see if the event which triggered the rule requires the Current Status to change. If so, it runs the appropriate scene, and sets the new Current Status.

If you've already found a solution, I'd definitely like to hear about it, as I am curious as to which approach you took and how it worked out for you.

Best regards,

Robert

photo
1

(David, do I get the Bonus Points for not having "Wait" anywhere?) <VBG>

photo
1

My god Robert that is advanced. What is the advantage of using this compared to my rules?

photo
1

Jacob,

Thanks for the nice comment.

While I haven't tested your rules on the Zipabox, they seem to be recursive, i.e. one rule causes the other to set off events which cause the other rule to set off events which causes the first rule to set off events which cause... and so on. This is what I have tried to avoid by maintaining a global status variable... :-)

Brgds

Robert

photo
1

But does it not run the rule once. If the state of the switch changes or if the dimmer level goes under 1% or, ok the dimmer rule I can imagine is in a loop.


Regards Jacob!

photo
1

You say it in the by-line, you avoid the whole synchronisation problem that I talk about by maintaining the light state in memory thus suppressing the changes that makes the disco! :)

And yes, you do get bonus points for not using waits. :D

Some questions; why use two variables? And what happens if one light gets out of sync with the zipabox "memory" (if I turn off the out-of-sync light it will turn on again)?

photo
1

David,

The "newlightstate" variable is a leftover from the debug phase where I needed variables in PUSH messages to understand what was actually going on. Cleaning it up, I definitely agree to abolish the excess variable and simply test for the state of the sensor.

The reason why I add a numeric One to the return value of the sensor is because it returns a logic/bolean True or False and I want to force it to become a true numeric. Afaik, these True and False values can't be used for anything in the current iteration of the Zipabox kernel: You cannot test if something is TRUE or FALSE using [IF <variable>]. These bolean values display as "true" or "false" in messages etc, but they do seem to be cast to integer when used, and since I specifically wanted to have a "known" state where Zero means Not Initialized, I decided to add +1 so I know that a 1 means lights are correctly set to Off and 2 means Lights On.

I really cannot see how any of the lights can become unsyncronized unless the rule is changed to allow this: Any event relating to the lights would cause the lights to syncronize :-)

photo
1

hi david, not sure if you are able to test this, but I created another rule and would appreciate it if you could test it for me. Sorry I haven't been on for a while to help, but David had it sorted by the look of it.


The rule I have here uses a virtual switch ("relay") to trigger the group of "said" lights, I was wondering if by using the virtual switch this would stop the re-trigger of switches.

If you can, let me know if it works

photo
1

Hi Adrian, if two switches are on and one off the left rule will first switch the relay to on and then directly to off. Won't that spawn two executions of the rule to the left? Looks like it could go into oscillation... :(

photo
1

yes true, I see what the issue is now. Any change in state of a switch, with this rule, then checks the state of all switches and acts accordingly. But according to what you want to achieve, that is all switches doing the same thing "linked", shouldn't they all be in the same state anyway? Why not just "bind" them or associate them? This is the beauty of z-wave you can associate, group, the modules in the parameters so they are linked.

Unless there is something I am missing about your setup and switches.

photo
photo
1

Tested it but the lights just turn of! What did I do wrong?


Should i use ACTION event or CONTROL even or Attribute? Best regards!


ccf4d00b7c21e043da8d14828266726a

photo
1

Jacob, I think you have some logical flaws in your last multiple OR section. One of the «greater than or equal» operators are not inverted, and the two IFs will both trigger at value 10.


I think :-)

photo
1

Can you help me? Please!

photo
1

Jacob,


Could you please explain as exactly what you want to achieve, i.e. in plain text explain what the rule is supposed to do; what you do and what you want to happen when you do what...

photo
1

It is a experiment to test if I can have a lot of lights to turn on and of the same lights.

Ea. If I turn on in the kitchen 4 other lights will turn on by two groups one with three dimmer and one with two switches/relays. And if I turn off, all of the five lights will turn off.

In a ideal situation I want 4 dimmers to control each other so regardless of witch dimmer I us I want the other 3 lights to have the same value.

This is super simple and milliseconds update with philips hue. You just put them in the sam group and the lights will sync. If there was philips Hue dimmers I would buy them.

Best regards!

photo
photo
1

Jacob,


I don't see a problem with what you want to do. You will, however, want to use global variables and virtual devices. Create one rule per switch where you trap button actions and increase/decrease values in virtual devices which in turn control dimmers. In case some lights need individual percentages to achieve same light level as others, use variables to factor the differences.

Best regards,

Robert

photo
1

Can you create rules for this so I just can copy it? Sorry for not understanding. You play on another level than me. Best regards!

photo
1

Jacob,

I'd be more than happy to help if I can (please note that I too am new to Zipato).

For me to be able to offer any type of help, however, I'll need to know exactly which devices you have, and what you want them to do, in plain text, for example: "When I press switch A, I want light B using device Y to be 50%, but only when the sun is down and the outside temperature is above freezing, and also only if my wife is not at home and noone is watching the TV in the livingroom" (Yes, it's possible to do all that)...

Please start a new thread and I'll jump in...

Brgds Robert

photo
1

Ahhh ok I will make some good explanations when I have time! Best regards and thank you!

photo
1

First of all I want to do this just to know that it works, and that I can use this kind of rules in the future.


1: I have 2 "Fibaro dimmer 2 Gen5" one in the bedroom and one in the hall way.

2: I have 2 old Qubino dimmers.

3: I want to have sync betwen these 4 lights regardles of if I control it from the app or on the wall all lights vill have the sam light level. Example: If I turn of Qubino dimmer in the livingrom all other dimmers will go to zero % and ther for turn off.

4: The same if all lights are att 54% and I push the button in the hallway the other 3 lights will folow that light intensity.


Al other logic with time, and wife and motion and so on I can experiment with after that.


Simply speaking I want all lights in a certain group to follow each other, like if they were connected with each other.


I tried to experiment with bindings, associations, groups and different rules but no luck so far. As soon as I use more than one button I get problems.


I want the rules to be as simple as posible:


Like this:

c3517afebdb058bbbf2106df9a87e6e8


1f3a67914676b5aea93b46143131cc31


Unfortunately again a error is back at Zipato......... :-(


I can't save groups!


That Is one of the most frustrating things with Zipato. That when problems are fixed they often are not fixed forever. The next week they can be broken!


I reported this: Posted on: 11 December 2015 02:36 PM

It was fixed: Posted on: 11 May 2016 02:37 PM

photo
photo
1

I will try but I have some server issus at the moment! Does my.zipato work for you?

photo
1

There are server issues right now: I got some weird error messages when saving messages for rules, so there is something going on. I bet ZipaTech have server monitoring and are working to fix the problem.

photo
1

Robert, I spoke too soon. :(


Your rule didn't work for me, I goes into oscillation disco too (if me and my 4 year old kid hammer the two of the switches for a while :) ). Maybe I screwed something up along the way but I don't understand how I would work.


Just walk me through this scenario, I have three switches, so I create the three rules. Me and my kid randomly gets the state into this configuration:


light_state = off, switch 1: on, switch 2 off, switch 3: on, rules running r1 and r2

- r1 executes tells the system to turn on its lights (state off and my switch is on)

- r2 executes shortly after telling the system to turn off its lights (state is now on and my switch is off)


This gives rise of at least 3 state changes that triggers the rules once again, the state of the switches are unknown at the moment since the scene on/off is done asynchronous, so I just make up a scenario here (just like I did before :) ):


light_state = off, switch 1: off, switch 2 on, switch 3: off, rules running r1, r2 and r3

- r1 executes but has nothing to do

- r2 executes and turns on the lights

- r3 executes and turns off the lights


Of course rules triggers randomly and due to the fact that rules can be paused by any other rule at any time makes this really hard.


I had to write a solution with some code before I tried it in the rules engine, it works without disco and with hammering. It has two features that makes it interesting, a sync flag that tries to make the rule execute only once and a stabilize routine that waits for the rest of the switches to be set. But it's ugly and way too complicated so I will try to make it simpler tomorrow.

photo
1

But are you using "by stable" of "mono stable" switches? (Spring return)

photo
1

David it s quiet important to know how the hardware of your switch is configuerd and how the settings on the device is set!

photo
1

Jacob,

Afaik, David has 3 Aeon devices for in-wall installation, installed behind his old plain standard light switches. The old switches are wired to the control inputs of the Aeon devices. The effect of this is that when status of the "old" switch is changed (both momentarily and constant), the Aeon flipflops its state accordingly.

The *problem* David faced, is that there is no "control" to trap and react to, but rather a change in the device itself which needs to be monitored.

photo
1

Yes, Robert is spot on.

photo
photo
1

David,

The rule works just fine. The reason why you go onto "ocsillation mode" when you and your four-year-old are hammering on/off simultaneously and for some time, is that you're filling up the event queue and the wireless signalling queue in the Zipabox and your network faster than the rules can handle them. This causes the on/off commands to be stacked up.

This can probably be fixed by putting a JOIN at the start and possibly a WAIT at the bottom of the rules. I'll test locally and let you know.

I am sorry I did't see this coming. I probably should have included a disclaimer in my post, similar to that in the enclosed pix.

Brgds Robert

photo
1

Haha, no, I test everything with the 4-year-old approach! :)


And no, the scenario I'm talking about isn't that the queue gets filled up, it really goes into freak mode, it takes very few switches to make it switch for 5 minutes till I've had enough and reboots the box.

photo
1

David, could you please post the rule(s) which freaks your system out? -I'll try to understand what is happening. One possibility is that your house is haunted and you need to run the thing by Theresa Caputo. An other possiblity is that either you or I or both of us got something wrong :-)

photo
1

I created two rules with your template as guide, then I hammer the on/off switch a couple of times (three times to be exact directly from the my.zipato.com homepage) and then it the disco starts... :(


613aee0b4614811a1fc0eadf3fc49520


I even tried it a few times so (needs reboot to fix) just so that I didn't do anything fishy. I think my initial reasoning why this happens still is sound (apart from that I thought three switches .

photo
1

David,

I haven't had time to check and test myself. Will try tomorrow though. Meanwhile, could you try to change variable Test to Test1 and Test2, respectively, and insert a JOIN as the very first command and then check if that changes anything?

If you still have a disco, please try to insert a WAIT 5 seconds as the last command inside the first IF.

My reasoning is as follows: If something goes haywire for some strange reason, it needs to stop before it fills up the event queue and goes completely bananas. The JOIN will ensure that the same rule only runs in one instance. The wait will (hopefully) hinder the rule being invoked again before the wait has completed. The caveat of the wait is that you won't be able to change the state of the light for 5 seconds after it's been turned on/off...

photo
1

Hi Robert,


A JOIN imho would not make it better, it would not fill up the queue but the side effect is that it kills the previous execution whenever it feels like it and most probably during the scene execution since I would guess that actually does some work.


The WAIT statement doesn't magically seize the same rule to execute again. In combination with a JOIN the rule in WAIT state would be killed when the next executes.


I already tested changing test to "test1 and test2" by moving it into the if statement [outdoorlightstate != (switch on + 1)].

photo
1

David,

The behaviour you're seeing really puzzles me: I've created what I believe is an identical setup, using three x Aeon DCS18103 switches, each with the mechanical switch connected to the control connectors. However many times I try to flick all switches like crazy, the only thing I experience is that eventually the lights become unsyncronized....

http://images.clasohlson.com/medias/sys_master/9264294297630.pdf

photo
1

Same setup... I wonder however would your rules let them be unsynchronized, that should never happen, right?


However I do think that my explanation why my system misbehaves with these rules are pretty good I can even trigger the scenario multiple times. Maybe my system is a bit faster than yours (when I flick a switch the other two lamps often switch on within half a second).

photo
1

The rules I've created will eventually have unsynchronized lights if rapid switching happens while adjacent rules are being executed...

Hmm. Strange. I think I need a beer and think this through calmly...

photo
1

Did you try flickering in the GUI... it's even faster than a four-year-old. :)

photo
photo
1

Okey, this is my try to solve this race / disco puzzle.

Disclaimer: There is probably a "Zipato" or a "z-wave" way of doing this. I have a very basic understanding of the rules engine and of z-wave in general.

So, the solution has two parts; 1) only accept one(ish) user input and 2) wait for all switches to settle.

We begin with the first part only accepting one user input (not exactly true since there isn't a good concept of synchronisation AFAIK). For this I use a outdoorsync variable, when this variable is set to 0 switch changes are accepted otherwise not.

69f37315ba37b3477ea9382d61c38856

So, if we get changes on any of the switches (one rule for each switch), check if we are allowed to change the virtual device "Utelampor" (outdoor lights). If we are we set the outdoorsync variable to 1 (making sure that nobody else changes the global state/virtual device).

The next step is the rule that acts on the virtual device "Utelampor" (this rule will reset outdoorsync). This rule will try and wait for all switches to settle but having as short period of manual switch downtime as possible:

e77d826a63077a7674cb1dc1c8a83a6c

(Found a error in the above picture; the last "set variable" should of course set the outdoorsync variable to 0.)

So, if we are supposed to turn on the lights ("Utelampor ON") all three switches should be in ON state, otherwise run the scene that turns on the lights and wait, refresh and retry (10 times). Same for the OFF scenario.

In the end, if no steady state have occurred during ~10 seconds just reset oudoorsync and give up.

Caveats: If you happen to change a switch after checking that all switches are in the same correct state but before resetting the outdoorsync you could end up in an inconsistent state.

At least this works for me now but I'm sure that it contains lots of bugs. If you have some easier way of doing the same please let me know!

photo
1

I've run this for a couple of weeks now without any issue, it might be overkill but it works good in practice!


I can now also hide the controls from the individual switches from the app since controlling one control them all from there too.

photo
photo
1

What about:


- creating a group 'Outdoor Lights' for the 3 lights you want to turn on.

- creating a virtual switch 'Outdoor Switch'.

- have a rule that is triggered by the virtual Outdoor Switch to turn the group 'Outdoor Lights' on/off accordingly

- foreach of your Aeon Switch, have a rule that change the state of the 'Outdoor Switch' acccordingly (in my ex Switch ON/Off2)

photo
1

Hi, thanks, I will try this when I have a moment to test.


However if groups hasn't some special way of not triggering the rules of the devices it contains I don't really see why it would be any better than a scene. Care to explain?

photo
1

Coold I do something similar with dimmer?

photo
1

Jacob, I would suggest you opening another ticket for your dimmer feature. It makes it difficult to keep focus, if we solve the easier problem with simple switches I'm sure that dimmers wouldn't be hard to implement the same way.


I would suggest you to check my solution (long post above) but change the virutal device from an off/off to some kind of meter (and the stabilize code block into checking for dimmer level against the virutal meter level).

photo
1

My solution doesn't need to have rules triggered by devices, only by switches. And my group only contains the actual lights actuators, none on the switches. I think scenes and groups are equal as long as none have switches in them, only the actuators for the lights.

photo
1

Hum, if you read my question the actuator and the switch in the anon labs are the same. I think I cannot distinguish between user input (switch) and rule changes (actuator) and therefore the question.

If I'm wrong I would be so happy! :-) Maybe a setting for the device?

photo
1

David,

Great news! -I've been able to recreate your disco lights!

Now, all I'll need to do now, is find out what is causing this and then figure out how to fix it :-)

photo
1

David,

Great news! -I've been able to recreate your disco lights!

Now, all I'll need to do now, is find out what is causing this and then figure out how to fix it :-)

photo
1

Robert, good news, you can always try my solution I posted yesterday if you run out of ideas.

photo
Leave a Comment
 
Attach a file