Dashboard -> Numeric Input multiple Values

#1

Hi,

I control my openhab2 with Nodered.
Now I have the following problem:

I have created a dashboard with some "numeric inputs" to set the temperature of the heater.
If I now want to set the temperature from 22.0 to 17.0 degrees, I have to press the button 10 times to decrease and so 10 values are passed to the thermostat. However, the heating controller or homegamer can not cope with this and will be switched to "OFFLINE" in the openhab. When I wait a bit between values, everything works.

How can I always take the last value of the "numeric input" and only pass this to Openahab and not the whole chain of values?

For this I have created the following Dashboard:

[{"id":"63d7acc1.496704","type":"openhab2-in","z":"52461ac0.04760c","name":"","controller":"ce8959a.db84d28","itemname":"Stube_Heizung_Seite_SetTemperature","x":224,"y":319,"wires":[["2ed8fd74.02d80a","e1ee89f5.515518"],[]]},{"id":"f1dab60c.f0f9b8","type":"openhab2-out","z":"52461ac0.04760c","name":"","controller":"ce8959a.db84d28","itemname":"Stube_Heizung_Seite_SetTemperature","topic":"ItemCommand","payload":"","x":1137,"y":365,"wires":[[]]},{"id":"2ed8fd74.02d80a","type":"ui_numeric","z":"52461ac0.04760c","name":"","label":"Stube","group":"13405f4.9b098a1","order":0,"width":0,"height":0,"passthru":false,"topic":"","format":"{{value}}","min":"4","max":"26","step":"0.5","x":621,"y":364,"wires":[["3877c5a4.5e7f42"]]},{"id":"3877c5a4.5e7f42","type":"delay","z":"52461ac0.04760c","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":854,"y":365.5,"wires":[["5a3e783f.1b9598","f1dab60c.f0f9b8"]]},{"id":"e1ee89f5.515518","type":"ui_gauge","z":"52461ac0.04760c","name":"","group":"13405f4.9b098a1","order":0,"width":0,"height":0,"gtype":"donut","title":"Temp","label":"Grad","format":"{{value}}","min":0,"max":"30","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":618,"y":305,"wires":[]},{"id":"5a3e783f.1b9598","type":"debug","z":"52461ac0.04760c","name":"Dashboard","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":987,"y":263,"wires":[]},{"id":"ce8959a.db84d28","type":"openhab2-controller","z":"","name":"openhab2","protocol":"http","host":"localhost","port":"8080","path":"","username":"","password":""},{"id":"13405f4.9b098a1","type":"ui_group","z":"","name":"Heizung","tab":"52d72958.8f4ad","disp":true,"width":"6","collapse":false},{"id":"52d72958.8f4ad","type":"ui_tab","z":"","name":"myHome","icon":"dashboard","order":1}]

Thank you.
greeting
Hermann

0 Likes

#2

You could use a Trigger node to debounce the button presses.

Configure it to send nothing on first message, then wait 1 second before sending msg.payload. and tick the button to extend the delay if new messages arrive. That will cause it to only send the last message received after a 1 second gap of nothing being received.

0 Likes

#3

in the trigger node, ensure you set it to send the latest msg (not the original :slight_smile:
image

0 Likes

#4

I avoid this problem by using dropdown lists for room temperatures with values every 0.5 degrees. So rather than having to press the button multiple times just click and select the value you want.

0 Likes

#5

Hi thanks,

i think it's now working....
I have now created the following flow with your tips:

[{"id":"63d7acc1.496704","type":"openhab2-in","z":"52461ac0.04760c","name":"","controller":"ce8959a.db84d28","itemname":"Stube_Heizung_Seite_SetTemperature","x":223,"y":123,"wires":[["2ed8fd74.02d80a","e1ee89f5.515518"],[]]},{"id":"f1dab60c.f0f9b8","type":"openhab2-out","z":"52461ac0.04760c","name":"","controller":"ce8959a.db84d28","itemname":"Stube_Heizung_Seite_SetTemperature","topic":"ItemCommand","payload":"","x":1096,"y":255,"wires":[[]]},{"id":"2ed8fd74.02d80a","type":"ui_numeric","z":"52461ac0.04760c","name":"","label":"Stube1","group":"13405f4.9b098a1","order":0,"width":0,"height":0,"passthru":true,"topic":"","format":"{{value}}","min":"4","max":"26","step":"0.5","x":609,"y":116,"wires":[["27ef2eab.3884b2"]]},{"id":"e1ee89f5.515518","type":"ui_gauge","z":"52461ac0.04760c","name":"","group":"13405f4.9b098a1","order":0,"width":0,"height":0,"gtype":"donut","title":"Temp1","label":"Grad","format":"{{value}}","min":0,"max":"30","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":475,"y":65,"wires":[]},{"id":"5a3e783f.1b9598","type":"debug","z":"52461ac0.04760c","name":"Dashboard","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1128,"y":132,"wires":[]},{"id":"27ef2eab.3884b2","type":"trigger","z":"52461ac0.04760c","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"2","extend":true,"units":"s","reset":"","bytopic":"all","name":"","x":818,"y":116,"wires":[["5a3e783f.1b9598","20220ea4.815242","f1dab60c.f0f9b8"]]},{"id":"20220ea4.815242","type":"openhab2-out","z":"52461ac0.04760c","name":"","controller":"ce8959a.db84d28","itemname":"Stube_Heizung_Strasse_SetTemperature","topic":"ItemCommand","payload":"","x":1097,"y":210,"wires":[[]]},{"id":"ef1ae723.541238","type":"openhab2-in","z":"52461ac0.04760c","name":"","controller":"ce8959a.db84d28","itemname":"Stube_Heizung_Strasse_SetTemperature","x":231,"y":185,"wires":[["2ed8fd74.02d80a"],[]]},{"id":"ce8959a.db84d28","type":"openhab2-controller","z":"","name":"openhab2","protocol":"http","host":"localhost","port":"8080","path":"","username":"","password":""},{"id":"13405f4.9b098a1","type":"ui_group","z":"","name":"Heizung","tab":"52d72958.8f4ad","disp":true,"width":"6","collapse":false},{"id":"52d72958.8f4ad","type":"ui_tab","z":"","name":"myHome","icon":"dashboard","order":1}]

Does anyone have any improvements?

I have not tested this directly from the heaters, but it already works from openhab2 and nodered.

Thanks.
Hermann

0 Likes