NEWS
Bei Javascript Fehler trotzdem funktioniert es
-
ALoha,
ich habe im IoBroker folgendes Script geschrieben um den Windows_State meiner Homematic IP Thermostate auf 1 zu schreiben wenn einer meiner beiden Xiaomi Türsensoren meldet dass eines der Fenster offen ist :
var FensterOffen = getState("mihome.0.devices.magnet_158d0001fa3318.state"/*Is opened*/).val; var TuerOffen = getState("mihome.0.devices.magnet_158d0001fa3382.state"/*Is opened*/).val; if (FensterOffen || TuerOffen ) { setState ("rpi2.0.Test",true); setState ("hm-rpc.1.000393C99BAE09.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE09:1.WINDOW_STATE*/,1); setState ("hm-rpc.1.000393C99BAE12.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE12:1.WINDOW_STATE*/,1); } else { setState ("rpi2.0.Test",false); setState ("hm-rpc.1.000393C99BAE09.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE09:1.WINDOW_STATE*/,0); setState ("hm-rpc.1.000393C99BAE12.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE12:1.WINDOW_STATE*/,0); }
Dieses Script funktioniert an sich auch (der Windows State wird auch geschrieben), allerdings bekomme ich im Logfile folgende Fehlermeldungen :
hm-rpc.1 2018-05-01 12:00:11.637 error Error: XML-RPC fault: Generic error (DUTY_CYCLE) hm-rpc.1 2018-05-01 12:00:11.636 error xmlrpc -> setValue ["1","WINDOW_STATE",0] ENUM
Kann mir da einer vielleicht sagen was ich falsch mache ?
geändert: Code in Code-Tags; Homoran (Admin)
-
was ist mit
var FensterOffen = getState("mihome.0.devices.magnet_158d0001fa3318.state"/*Is opened*/).val; var TuerOffen = getState("mihome.0.devices.magnet_158d0001fa3382.state"/*Is opened*/).val; if (FensterOffen || TuerOffen ) { setState ("rpi2.0.Test",true); setState ("hm-rpc.1.000393C99BAE09.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE09:1.WINDOW_STATE*/,true); setState ("hm-rpc.1.000393C99BAE12.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE12:1.WINDOW_STATE*/,true); } else { setState ("rpi2.0.Test",false); setState ("hm-rpc.1.000393C99BAE09.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE09:1.WINDOW_STATE*/,false); setState ("hm-rpc.1.000393C99BAE12.1.WINDOW_STATE"/*HMIP-eTRV 000393C99BAE12:1.WINDOW_STATE*/,false); }
-
Hatte ich schon ausprobiert mit True/False statt 1/0, dann kommt folgende Meldung:
javascript.0 2018-05-01 15:28:40.519 warn at Object. (script.js.common.Skript1:16:9)
javascript.0 2018-05-01 15:28:40.517 warn Wrong type of hm-rpc.1.000393C99BAE12.1.WINDOW_STATE: "boolean". Please fix, while deprecated and will not work in next versions.
Wenn ich in den Objekts die Windows_State anschaue, dann sehe ich auch dass das als ENUM/Zahl deklariert wurde, weswegen ich ja immer auch mit 1/0 geschrieben habe…..
-
Hatte genau selbiges Problem.
Versuche es mal mit: setState ("hm-rpc.1.000393C99BAE09.1.WINDOW_STATE"/HMIP-eTRV 000393C99BAE09:1.WINDOW_STATE/,1,true); -
@maodch
Du weisst schon, dass dieser Thread jetzt fast ein Jahr alt ist? -
@Homoran ja sorry, erst gesehen nach dem Post :_)