Page 1 of 1
Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 17:55
by namxcap
Hi all, my wemos D1 mini is connected to a Nextion display. The display can change the idx and the value of the espeasy device (so it works), this is the log .....
device.JPG
but this rule:
Code: Select all
on exDisplay#value do
if [exDisplay#value]="1"
publish domoticz/in,'{"command": "switchlight", "idx": 17, "switchcmd": "1" }'
else [exDisplay#value]="0"
publish domoticz/in,'{"command": "switchlight", "idx": 17, "switchcmd": "0" }'
endif
endon
sends always the "Off" if the value changes from 1 to 0 and from 0 to 1 too, and this is the Domoticz log......
device1.JPG
I cannot solve this

Re: Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 18:12
by TD-er
You should use %eventvalue1% instead of [exDisplay#value]
And don't use quotes wrapped around the 0 and 1
So something like this will work probably:
Code: Select all
on exDisplay#value do
if %eventvalue1% = 0 or %eventvalue1% = 1
publish domoticz/in,'{"command": "switchlight", "idx": 17, "switchcmd": "%eventvalue1%" }'
endif
endon
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 18:26
by namxcap
Not working, i get everytime the "Off" signal

Re: Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 18:30
by TD-er
Does the unit itself also act on the switching via the MQTT broker?
If so, then you may want to have a look at the documentation of the Domoticz Helper plugin:
https://espeasy.readthedocs.io/en/lates ... #p029-page
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 18:45
by namxcap
No, it only should sends a command. The device is only connected to the display
Is it possible to send a http command like this ?
Code: Select all
http://192.168.0.13:8841/json.htm?type=command¶m=switchlight&idx=20&switchcmd=On
with this line i can obtain the light On
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 21:06
by namxcap
I'm trying different way to solve the problem but it seems rules does not have effects anyway, is like rules are disabled ..... is it possible ?
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 02 Dec 2021, 21:32
by TD-er
One simple way of debugging rules is to add logentry commands in the rules.
See:
https://espeasy.readthedocs.io/en/lates ... l-commands
For example:
Code: Select all
on exDisplay#value do
logentry,'exDisplay: %eventvalue1%'
if %eventvalue1% = 0 or %eventvalue1% = 1
publish domoticz/in,'{"command": "switchlight", "idx": 17, "switchcmd": "%eventvalue1%" }'
endif
endon
This will add log lines (at loglevel info) showing the event value, starting with the string: "exDisplay:"
You can also call sendToHttp, to call the http URL you mention.
See:
https://espeasy.readthedocs.io/en/lates ... l-commands
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 03 Dec 2021, 07:32
by namxcap
Thankyou TD-er, i have this log, so now (reflashed espeasy to another device) the rule works. there is only the problem that Domoticz receive everytime the "Off" signal
Code: Select all
36867684: EVENT: exDisplay#idx=77
36867778: EVENT: exDisplay#value=1
36867785: ACT : logentry,'exDisplay: 1'
36867789: exDisplay: 1
36867799: ACT : publish domoticz/in,'{'command': 'switchlight', 'idx': 17, 'switchcmd': '1' }'
36868784: EVENT: exDisplay#idx=88
36868878: EVENT: exDisplay#value=0
36868884: ACT : logentry,'exDisplay: 0'
36868889: exDisplay: 0
36868900: ACT : publish domoticz/in,'{'command': 'switchlight', 'idx': 17, 'switchcmd': '0' }'
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 03 Dec 2021, 07:54
by Ath
Starting with this:
namxcap wrote: ↑02 Dec 2021, 18:45
Code: Select all
http://192.168.0.13:8841/json.htm?type=command¶m=switchlight&idx=20&switchcmd=On
with this line i can obtain the light On
I think you need to send On or Off to Domoticz, like below:
Code: Select all
on exDisplay#value do
logentry,'exDisplay: %eventvalue1%'
let,1,%eventvalue1%
if %eventvalue1% = 0 or %eventvalue1% = 1
publish domoticz/in,'{"command": "switchlight", "idx": 17, "switchcmd": "[var#1#o#c]" }'
endif
endon
That uses transformation 'o' to go from 0 -> OFF or 1-> ON, and justification 'c' to have first upper Off or On, as Domoticz expects it (AFAIK) (and the quotes are required to have valid Json).
Transformations can't be applied to %% variables, so first have to assign it to a variable using 'let'.
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 03 Dec 2021, 10:17
by TD-er
Just for completeness, see this explanation:
https://espeasy.readthedocs.io/en/lates ... red-values
I am not sure if Domoticz checks these parmeters case insensitive.
If it doesn't, then you might want to use the if statement to select different string values "On" and "Off"
Re: Espeasy does always send the "Off" command to Domoticz
Posted: 03 Dec 2021, 11:14
by Ath
Domoticz seems rather picky on these arguments, that's why it is treating anything not being "On" as an "Off" value
I've only been able to get that working properly by using these On (and Off) values, that why I suggest to use these formatting and justification options 'o' and 'c'
