Ich habe jetzt einige Versucher unternommen, damit das Script zum laufen kommt.
Vorweg es tut es nicht.
Ich habe also zunächst einmal mir die Datenpunkte in iobroker gesucht. Zum testen habe ich einfach an Stelle des Garagentores eine Schaltsteckdose verwendet. Über Kanal 3 kann State bearbeitet werden (ein oder aus - true - false).
Also habe ich Kanal drei State eingesetzt in das Script
on({id: 'mqtt.0.domoticz.in', change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
console.log('value');
if (getState("mqtt.0.domoticz.in").val == ' {"idx":1,"nvalue":0,"svalue":"30524xxxx"} ') {
setState("hm-rpc.2.000218A9916FDA.3"/*Schaltsteckdose test:3*/, true);
setStateDelayed("hm-rpc.2.000218A9916FDA.3"/*Schaltsteckdose test:3*/, false, 1000, true);
// RFID Karte
}
Aber es tut nicht. Und im log sehe ich auch gar keine Änderung. Nach meinem Dafürhalten wird das Script gar nicht angesprochen. Also Stimmt der Inhalt, der unter if (getState.... abgefragt wird nicht mit den Bedingungen überein. Davon abgesehen sieht der Code mit den vielen Leerzeichen in der if-Zeile sonderbar aus. Wie müsste der abgefragte Wert aussehen?
im Wertefeld in von mqtt steht {"idx":1,"nvalue":0,"svalue":"30524xxxx"}