I am currently decoding Livolo remotes so that I can easily replicate them. I studied the other threads but wanted to put, in one place, what people (including myself) have found. I use Arduino to emulate Livolo remotes so that I can learn them in my RM Pro.
There are many theorys on the valid numbers for generating your own remote. I have found that to emulate a four button remote, the remoteID must have an even number of 1s in the ID.
So, numbers such as 7401 (decimal) which is 0001 1100 1110 1001 (binary) which has 8 ones in it is a good value whereas 7400 (decimal) which is 0001 1100 1110 1000 (binary which has just 7 ones in it is not good.
The valid button numbers for a four button remote are: 8,16,32,44,56,64,76,104 and 112 (this is clearly more than just four buttons, but all of these will toggle on/off a switch).
The All Off number for a four button remote is 42.
The available scene numbers for a four button remote are 26, 50, 74, 82, and 88
Obviously not all of these valid numbers are available on the four button package. That physical package gives access only to A=8, B=16, C=56, and D=42. However, if you emulate the physical remote using your Arduino sketch, you have access to all of these buttons.
For those techies amongst you, you will notice that all the valid button numbers have an Odd number of 1s in the binary representation of the number.
So, for the four button remotes, the remote ID has an even number of 1’s in its number, and the button numbers have an odd number of 1s in the binary number.
[For the more expensive multi-button remotes the rules reverse. Here the remoteID has an odd numbers of 1’s in the binary representation of the number, whereas the button numbers have an even number of 1’s in their binary representation.]
Setting up:
If you have a single RF touch switch in a single room, you can assign a remote control to that room. Assign the first button of the remote to the switch. The default behaviour now is that the button will toggle the switch on/off, whereas the AllOff button on the remote will always turn the switch off. Next program the switch to have the light on in a scene as follows:
Press and hold the switch for 5s, you will hear a confirmation beep. Now turn the switch into the on position (if it is there already, turn it off and on again). Now send the scene command from the remote. You will hear a confirmation beep. Now you have On(Scene), Off(AllOff), and Toggle
If you have a two gang RF touch switch, then the process is a little more detailed. Each button on the switch should be assigned a button of the remote. This will allow each lamp be toggled on/off by its associated remote button. Both lamps will turn off with the AllOff button. To get individual control of each lamp, you will use four scenes: 1 to turn on lamp one, 1 to turn off lamp 1, 1 to turn on lamp 2 and 1 to turn off lamp 2.
For a three gang RF touch switch, you will do the same as for the two gang switch for the first two lamps. For the third lamp, assign a button from a new remote. This means that the new remote AllOff switch will turn off just lamp 3. If you want the other two lamps to also switch off for this AllOff, you can associate those two to the second remote. This does not remove their association from the first remote (so the scenes assigned for the first two lamps with the first remote control still work). Finally using the second remote control, assign a scene for the third lamp ON and a further scene for the third lamp OFF. You do it like this because one remote does not support 6 scenes and you need 6 scenes to control each lamp ON and each lamp OFF.
Two way RF touch switches are almost, but not quite the same. (A two way switch is used when you want to turn on/off a lamp from two locations such as the top and bottom of a stairs, or even at three locations such as a long corridor).
For a simple one gang, two way switch, one of the switches actually turns on and off the lamp, while the second switch is used as a slave to the first. Assuming you have wired the switches correctly, the first switch is put in learning mode, and the second is associated with it as follows:
Go to the first switch. Press and hold for 5 seconds (you will hear the confirmation beep). Now go to the second switch and push the button you want to associate. Again you will hear a confirmation beep. Now either switch will toggle the lamp. If you have a third switch in this circuit which you also want to control the lamp, you go to the first switch again. Put it in learn mode again, and then go to the third switch a press the button you want to associate with the lamp. Now all three locations can toggle on/off the lamp.
If these are RF enabled switches, you can learn, on the first switch, in exactly the same way as the one gang one way switch above. (i.e. associate a remote button to the switch. This will allow you to toggle on/off the lamp, and using the AllOff switch you can turn the lamp off. Now associate a scene with the On condition. With that scene you can turn on the lamp and with AllOff you can turn off the lamp.
If you have two gang two way switches, you cannot assign the number of scenes needed to control each gang individually. This is a software limitation in the switch which will only accept one scene. Attempting to assign a second scene will overwrite the first scene. They can still use the AllOff code to turn both lamps off. Because you can assign multiple remotes to a given switch, I have found that using a combination of remotes allows me to achieve most (but not all) of what I need. In the case of the two gang two way switch, I assign button 1 of remote 1 to gang 1. This allows me to toggle on/off the first lamp and to force the first lamp off using remote 1 AllOff. I then assign button 1 of remote 2 to gang 2. Again, this allows me to toggle on/off the second lamp and to force the second lamp off using remote 2 AllOff. I then assign a third remote to include both gangs so that the third remote can issue AllOff to turn both lamps off. In my case I use a scene on the first remote to turn on the first (or more important) gang. This means that the only function I am now missing is an On command for the second gang. This I can emulate clumsily by first switching Off lamp 2, then toggle lamp 2.
For a three gang/2 way switch, I end up with two clumsy On signals. In my house this is not a problem.
Finally to address reliability. I found with the early sketches the reliability from the RMPro was very hit and miss. In almost all cases I could command the switch if I send the command a second time. Sending a command in this way is useless, which is why you need dedicated On and dedicated Off commands.
During my RF captures and subsequent rebuild of the RF transmit, I found the success rate to be very much higher. To get as close to 100% as I want I did the following:
-
Deployed an RM Pro on the ground floor for all switches on the ground floor.
-
Deployed a second RM Pro on the first floor for switches up there. This also covers my attic.
-
Changed the Livolo library send times to 160 / 320 / 480.
-
Changed the number of command repeats to 127.
While I still do not have feedback (the switches do not tell me whether they are on or off), I am confident that the lamps I turn on actually come on and the lamps I turn off are actually off.
Livolo tell us on the advertisement for the remote controls that the following limitations exist:
For 1 way, 1-3 gang switches you can assign up to 8 remote controls to each switch.
For 1 way, 1-3 gang switches you can assign up to 8 scenes to each switch.
For 2 way switches you can assign up to 4 remote controls to each switch.
For 2 way switches you can assign 1 scene setting to each switch.