Habe gestern mal wieder ein paar Minuten dafür Zeit geopfert.
Vom Blockly habe ich mich getrennt, da man hier als Ereignis kein "any" einfügen kann.
on({id: 'mqtt.0.domoticz.in', change: "any"}, function (obj) {
var NFC;
//der try ist wichtig, dass der adapter nicht abschmiert bei einem Fehler. Hiermit parsen wir die json in ein object
try {obj = JSON.parse(getState('mqtt.0.domoticz.in').val);
} catch (e) {
console.error('Cannot parse: ' + getState('mqtt.0.domoticz.in').val);
return;
}
log(obj.svalue);
NFC = obj.svalue;
if ( NFC == "305247091" ) {
setState("hm-rpc.2.000218A9916FDA.3"/*Schaltsteckdose test:3*/, true, 100);//schaltet Aktor in 200 Millisekunden ein
setStateDelayed("hm-rpc.2.000218A9916FDA.3"/*Schaltsteckdose test:3*/, false, 1000, true);//schaltet Aktor in 1 Sekunde aus und aktiviert Planung
setStateDelayed('mqtt.0.domoticz.in', 0, 1000);//setzt den Wert in domoticz.in auf Null in 1 Sekunde
log("hm-rpc.2.000218A9916FDA.3");
}
});
Alles anzeigen
Jetzt passiert folgendes:
Halte ich den Chip mit der Nummer 305247091 an den Sensor, kann ich unter Objekte im domotcz.in ganz kurz eine Reaktion in Form eines Wertes sehen. Aber nur ganz kurz.
Dann erscheint im Log die Nummer des Chips. Also bis zur Zeile 12 "log(obj.svalue);" sieht alles gut aus.
Das nachfolgende if jedoch führt keine Aktion aus.
Ich habe in Zeile 18 beim Rücksetzen des domoticz.in-Wertes ein Delay eingesetzt. Hoffe, dass es so zumindest Syntaxtechnisch richtig ist. Vielleicht kann man dann etwas besser sehen, ob der richtige Wert dort erscheint und das Script erst nach der vorgesehenen Zeit den Wert killt.
hier mal der Auszug aus dem Log:
mqtt.0 2018-07-09 13:01:23.951 info Client [ESPClient1] subscribes on "null"
mqtt.0 2018-07-09 13:01:23.943 info Client [ESPClient1] connected
hm-rpc.2 2018-07-09 13:01:18.357 error Error: XML-RPC fault: Invalid parameter or value
hm-rpc.2 2018-07-09 13:01:18.356 error xmlrpc -> setValue ["3",null,false] SWITCH_VIRTUAL_RECEIVER
javascript.0 2018-07-09 13:01:18.348 info script.js.common.Garagentor_NFC_Java: undefined
javascript.0 2018-07-09 13:01:18.342 warn Wrong type of mqtt.0.domoticz.in: "number". Please fix, while deprecated and will not work in next versions.
hm-rpc.2 2018-07-09 13:01:17.367 error Error: XML-RPC fault: Invalid parameter or value
hm-rpc.2 2018-07-09 13:01:17.366 error xmlrpc -> setValue ["3",null,true] SWITCH_VIRTUAL_RECEIVER
javascript.0 2018-07-09 13:01:17.339 info script.js.common.Garagentor_NFC_Java: hm-rpc.2.000218A9916FDA.3
javascript.0 2018-07-09 13:01:17.338 info script.js.common.Garagentor_NFC_Java: 305247091
host.piiobrokerCCU2 2018-07-09 13:01:03.007 info instance system.adapter.tvspielfilm.0 terminated with code 0 (OK)
tvspielfilm.0 2018-07-09 13:01:02.466 info force terminating adapter after 1 minute
javascript.0 2018-07-09 13:00:53.214 info script.js.common.Garagentor_NFC_Java: 3659076275
mqtt.0 2018-07-09 13:00:53.210 info Client [ESPClient1] closed
mqtt.0 2018-07-09 13:00:53.205 info Client [ESPClient1] subscribes on "mqtt.0.domoticz.out"
mqtt.0 2018-07-09 13:00:53.202 info Client [ESPClient1] subscribes on "mqtt.0.domoticz.out"
hm-rpc.2 2018-07-09 13:00:51.863 error Error: XML-RPC fault: Invalid parameter or value
hm-rpc.2 2018-07-09 13:00:51.862 error xmlrpc -> setValue ["3",null,false] SWITCH_VIRTUAL_RECEIVER
javascript.0 2018-07-09 13:00:51.846 info script.js.common.Garagentor_NFC_Java: undefined
javascript.0 2018-07-09 13:00:51.835 warn Wrong type of mqtt.0.domoticz.in: "number". Please fix, while deprecated and will not work in next versions.
hm-rpc.2 2018-07-09 13:00:50.848 error Error: XML-RPC fault: Invalid parameter or value
hm-rpc.2 2018-07-09 13:00:50.848 error xmlrpc -> setValue ["3",null,true] SWITCH_VIRTUAL_RECEIVER
javascript.0 2018-07-09 13:00:50.833 info script.js.common.Garagentor_NFC_Java: hm-rpc.2.000218A9916FDA.3
javascript.0 2018-07-09 13:00:50.831 info script.js.common.Garagentor_NFC_Java: 305247091
hm-rpc.2 2018-07-09 13:00:27.695 error Error: XML-RPC fault: Invalid parameter or value
hm-rpc.2 2018-07-09 13:00:27.694 error xmlrpc -> setValue ["3",null,false] SWITCH_VIRTUAL_RECEIVER
javascript.0 2018-07-09 13:00:27.678 info script.js.common.Garagentor_NFC_Java: undefined
javascript.0 2018-07-09 13:00:27.667 warn Wrong type of mqtt.0.domoticz.in: "number". Please fix, while deprecated and will not work in next versions.
hm-rpc.2 2018-07-09 13:00:26.692 error Error: XML-RPC fault: Invalid parameter or value
hm-rpc.2 2018-07-09 13:00:26.691 error xmlrpc -> setValue ["3",null,true] SWITCH_VIRTUAL_RECEIVER
javascript.0 2018-07-09 13:00:26.665 info script.js.common.Garagentor_NFC_Java: hm-rpc.2.000218A9916FDA.3
javascript.0 2018-07-09 13:00:26.663 info script.js.common.Garagentor_NFC_Java: 305247091
hm-rpc.2 2018-07-09 13:00:26.643 error Error: XML-RPC fault: Invalid parameter or value
Alles anzeigen
Könnte es sein, dass man nicht einfach Null in den Wert von domoticz.in schreiben kann? Muss das eventuell im JSON Format sein?