ZRC90 support

Topics (not sure which fora)
when not sure where to post, post here and mods will move it to right forum.

Moderators: leecollings, remb0

Post Reply
GiantLeap
Posts: 4
Joined: Sunday 28 August 2016 13:11
Target OS: Linux
Domoticz version:
Contact:

ZRC90 support

Post by GiantLeap »

Hi all,

Is the Remotec ZRC90 supported in the meantime? I've found this topic: viewtopic.php?t=12539 , but there are no recent updates to be found. If it does not work yet, is there an ETA? In case the ZRC90 is not supported yet, alternatives are welcome. I'm just looking for some wallmountable hardware to control my zwave devices.

Edit:
Realised that this is actually the wrong place to ask for this, because its actually an OpenZWave thing.
pken2017
Posts: 14
Joined: Friday 30 December 2016 17:51
Target OS: Windows
Domoticz version: latest
Location: Florida
Contact:

Re: ZRC90 support

Post by pken2017 »

I have this remote also and am very interested in getting it working. Any updates or news on this? I am trying other remotes and attempting to get it working. I would love to bounce it off of others.
PeterB1

Re: ZRC90 support

Post by PeterB1 »

I recently bought a ZRC-90 remote. I want to use it with my Domoticz software. So far I didn't succeed in using the remote.
Including the device was successfull but then.
I tried several blocky scripts with a dummy toggle switch to switch a light. The light swiched ON but instantly switched OFF. What I tried it stayed the same.

I am using Domoticz version 4.9700 with Aeotec ZW090 Z-Stick Gen5 EU. Can somebdy give me a clue or an example.
ben53252642
Posts: 543
Joined: Saturday 02 July 2016 5:17
Target OS: Linux
Domoticz version: Beta
Contact:

Re: ZRC90 support

Post by ben53252642 »

I can confirm that this remote is working perfectly with Domoticz.

Also with some scripting I was able to get up to 24 (yes you read that correctly) different functions from the 8 buttons.

Eg I've got a "Radio button"

Single press = start playing radio, press it again = change to another track
Hold for more than 2 but less than 6 seconds = Stop playing
Hold for more than 6 seconds = add playing track to my like list

Can also do cool stuff with this remote using Lua scripting such as allocating one button as "Combo", eg press combo then light button = do x so you could make the light button do x if pressed individually or do something else if combo then light button pressed within 3 seconds.

20180720_233329.jpg
20180720_233329.jpg (362.9 KiB) Viewed 1319 times

PeterB1 start with this as a template Lua device script

Code: Select all

-- Device Last Updates
t1 = os.time()
    devices = {
        "Bedroom ZRC90 Curtain Button"
        }
    for i = 1, #devices do
    s = otherdevices_lastupdate[devices[i]]
    year = string.sub(s, 1, 4)
    month = string.sub(s, 6, 7)
    day = string.sub(s, 9, 10)
    hour = string.sub(s, 12, 13)
    minutes = string.sub(s, 15, 16)
    seconds = string.sub(s, 18, 19)
    t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
    str = (devices[i] .. "LastUpdate")
    str = str:gsub("%s+", "")
    str = string.gsub(str, "%s+", "")
    _G[str] = (os.difftime (t1, t2))
    end

commandArray = {}

-- Curtain button
if (devicechanged['Bedroom ZRC90 Curtain Button'] == 'On' and otherdevices['Main Bedroom Curtains'] == 'Closed' and BedroomZRC90CurtainButtonLastUpdate > 2) then
commandArray['Main Bedroom Curtains'] = 'On'
end

return commandArray
My ZRC90 Lua config

Code: Select all

-- Device Last Updates
t1 = os.time()
    devices = {
        "Bedroom ZRC90 Curtain Button",
        "Bedroom ZRC90 Blind Button",
        "Bedroom ZRC90 Cat Button",
        "Bedroom ZRC90 Radio Button",
        "Main Bedroom Blinds",
        "Main Bedroom Curtains"
        }
    for i = 1, #devices do
    s = otherdevices_lastupdate[devices[i]]
    year = string.sub(s, 1, 4)
    month = string.sub(s, 6, 7)
    day = string.sub(s, 9, 10)
    hour = string.sub(s, 12, 13)
    minutes = string.sub(s, 15, 16)
    seconds = string.sub(s, 18, 19)
    t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
    str = (devices[i] .. "LastUpdate")
    str = str:gsub("%s+", "")
    str = string.gsub(str, "%s+", "")
    _G[str] = (os.difftime (t1, t2))
    end

commandArray = {}

-- Curtain button
if (devicechanged['Bedroom ZRC90 Curtain Button'] == 'On' and otherdevices['Main Bedroom Curtains'] == 'Closed' and BedroomZRC90CurtainButtonLastUpdate > 2) then
commandArray['Main Bedroom Curtains'] = 'On'
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Opening curtain." "40" &')
elseif (devicechanged['Bedroom ZRC90 Curtain Button'] == 'On' and otherdevices['Main Bedroom Curtains'] == 'Open' and BedroomZRC90CurtainButtonLastUpdate > 2) then
commandArray['Main Bedroom Curtains'] = 'Off'
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Closing curtain." "40" &')
end

-- Blind Button (order is important, blind stop must be at top)
if (devicechanged["Bedroom ZRC90 Blind Button"] == 'On' and otherdevices['Main Bedroom Blinds'] ~= 'Stopped' and otherdevices['Main Bedroom Blinds'] ~= 'Open' and MainBedroomBlindsLastUpdate < 30 and MainBedroomBlindsLastUpdate > 2) then
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Blind stopped." "40" &')
commandArray['Main Bedroom Blinds'] = 'Stop'
elseif (devicechanged['Bedroom ZRC90 Blind Button'] == 'On' and otherdevices['Main Bedroom Blinds'] == 'Closed' and BedroomZRC90BlindButtonLastUpdate > 2) or
(devicechanged["Bedroom ZRC90 Blind Button"] == 'On' and otherdevices['Main Bedroom Blinds'] == 'Stopped' and MainBedroomBlindsLastUpdate > 2) then
commandArray['Main Bedroom Blinds'] = 'Off'
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Raising the blind." "40" &')
elseif (devicechanged['Bedroom ZRC90 Blind Button'] == 'On' and otherdevices['Main Bedroom Blinds'] == 'Open' and BedroomZRC90BlindButtonLastUpdate > 2) then
commandArray['Main Bedroom Blinds'] = 'On'
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Lowering the blind." "40" &')
end

-- Bedroom Cat Mode (Note to self: time taken for blinds to fully open or close is 29 seconds)
if (devicechanged['Bedroom ZRC90 Cat Button'] == 'On' and otherdevices['Main Bedroom Blinds'] == 'Open' and BedroomZRC90CatButtonLastUpdate > 2) then
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Cat mode engaged." "40" &')
commandArray['Main Bedroom Curtains'] = 'Off'
commandArray['Main Bedroom Blinds'] = 'On FOR 19 SECONDS AFTER 1'
elseif (devicechanged['Bedroom ZRC90 Cat Button'] == 'On' and otherdevices['Main Bedroom Blinds'] == 'Closed' and BedroomZRC90CatButtonLastUpdate > 2) then
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Cat mode engaged." "40" &')
commandArray['Main Bedroom Curtains'] = 'Off'
commandArray['Main Bedroom Blinds'] = 'Off FOR 10 SECONDS AFTER 1'
elseif (devicechanged['Bedroom ZRC90 Cat Button'] == 'On' and otherdevices['Main Bedroom Blinds'] == 'Stopped' and BedroomZRC90CatButtonLastUpdate > 2) then
os.execute ('/root/scripts/tts/speak.sh "Main Bedroom R" "Lowering the blind." "40" &')
commandArray['Main Bedroom Blinds'] = 'On'
commandArray['Main Bedroom Curtains'] = 'Off AFTER 1'
end

-- Radio Button
if (devicechanged['Bedroom ZRC90 Radio Button'] == 'On' and BedroomZRC90RadioButtonLastUpdate > 4)  then
    os.execute ('/root/scripts/zrc90/bedroom/radio.sh &')
end

return commandArray
Note that to I tell Lua to execute a bash script to achieve the functionality mentioned for the radio button.
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
JacEngels
Posts: 18
Joined: Sunday 03 December 2017 10:17
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Contact:

Re: ZRC90 support

Post by JacEngels »

I've got a working Remotec ZRC-90 using the scene's in Domoticz because I lack the experience of scripting.

Not fully happy with it but hey, it works. Only backdraft is that you can only use 8 scene's because Domoticz only accepts the 'on' mode and doesn't recognize the toggle mode like on/off. This can be achieved by using 2 buttons/scene's, one for activating devices and the other for de-activating.

First include the remote in Domoticz:
- set your ZWave controller in the include mode
- press the W+L buttons inside the rear cover of the remote simultaiously until the led lights up
this will inclde the remote as "Remotec ZRC-90+" into your hardware list

Then add some scene's for every button one:
- Add a scene
- Under 'Activation Devices' select add device
- Press a button at the remote
- A device shows up: 'Unknown' and the state is on
- Under 'Devices' you then can select a device or multiple device's from the list that you want to switch on or off

Save the scene as button1 and so on for every button one scene.

Any suggestions on this method or using each button in an on/off mode setup are welcome!
PeterB1

Re: ZRC90 support

Post by PeterB1 »

The tip ben53252642 gave works. Thanks.
With this framework I can extand my srcipts. The only thing I don't understand is how the last update calculation works. Is it an system variable or a database field?
ben53252642
Posts: 543
Joined: Saturday 02 July 2016 5:17
Target OS: Linux
Domoticz version: Beta
Contact:

Re: ZRC90 support

Post by ben53252642 »

PeterB1,

The Last Update is used to prevent double launching (eg some remotes such as Aeotec Wallmote) can send multiple "on" signals very fast. If not controlled with the last update code, it can result in a device being turned on / off many times which isn't ideal.

A device name entered at the top of the Last Update section, in the above example I used "Bedroom ZRC90 Curtain Button".

To access the Last Update part in the commandArray section, you just remove the spaces and add lastupdate at the end, eg:

BedroomZRC90CurtainButtonLastUpdate > 2

All this means is to only execute the action if it has been more than 2 seconds since the button was last pressed (removing the problem of receiving multiple "on" signals very fast from some remotes).

Hope this explains it.
Unless otherwise stated, all my code is released under GPL 3 license: https://www.gnu.org/licenses/gpl-3.0.en.html
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest