NEWS
[gelöst] Adapter reagiert nicht auf geänderten Wert
-
Hallo zusammen,
ich habe in meinem ioBroker gerade den KLF 200 QAdapter für Velux Fenster und rolläden neu eingerichtet.
Wenn ich im Admin im Ojektbaum die WQerte ändere funktioniert auch alles.Ich möchte den Wert allerdings per Node-Red zeit gesteuert ändern, im Objektbaum sehe ich auch das der Wert geschrieben wurde. allerdings bewegt sich nichts.
Ich habe schon ein paar andere Node-Red Flows am laufen, dort habe ich das Problem nicht.Ich hoffe jemand von euch hat eine Idee.
Gruß
Marco[ { "id": "dd17f823f54592a4", "type": "tab", "label": "Fenstersteuerung", "disabled": false, "info": "", "env": [] }, { "id": "6d90d7c142fa6b05", "type": "inject", "z": "dd17f823f54592a4", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "44 15 * * *", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 150, "y": 80, "wires": [ [ "b20d75b2507f2f1b" ] ] }, { "id": "b20d75b2507f2f1b", "type": "ioBroker get", "z": "dd17f823f54592a4", "name": "currentPosition", "topic": "klf200.0.products.0.currentPosition", "attrname": "payload", "payloadType": "value", "errOnInvalidState": "nothing", "x": 320, "y": 80, "wires": [ [ "404a0be01d128493", "e1db9fc43dbf2416" ] ] }, { "id": "404a0be01d128493", "type": "switch", "z": "dd17f823f54592a4", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "lt", "v": "100", "vt": "str" }, { "t": "eq", "v": "100", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 490, "y": 80, "wires": [ [ "67f98819e8817764" ], [] ] }, { "id": "193d2253f1342bd0", "type": "ioBroker out", "z": "dd17f823f54592a4", "name": "targetPosition", "topic": "", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 960, "y": 60, "wires": [] }, { "id": "67f98819e8817764", "type": "change", "z": "dd17f823f54592a4", "name": "Set TargetPosition to 100%", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "70", "tot": "num" }, { "t": "set", "p": "topic", "pt": "msg", "to": "klf200.0.products.0.targetPosition", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 720, "y": 60, "wires": [ [ "193d2253f1342bd0", "42db923022e85dd3" ] ] }, { "id": "e1db9fc43dbf2416", "type": "debug", "z": "dd17f823f54592a4", "name": "debug 3", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 520, "y": 140, "wires": [] }, { "id": "42db923022e85dd3", "type": "debug", "z": "dd17f823f54592a4", "name": "debug 4", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 960, "y": 120, "wires": [] } ]
-
-
Jepp das war es, habe es jetzt im Change-Node auf false gesetzt, direkt am ioBroker-Ausgangsknoten kann man das nicht einstellen oder?
-
@marco-k said in [gelöst] Adapter reagiert nicht auf geänderten Wert:
Jepp das war es, habe es jetzt im Change-Node auf false gesetzt, direkt am ioBroker-Ausgangsknoten kann man das nicht einstellen oder?
Adapter beschreiben States (normalerweise) mit ack=true um anzuzeigen, dass der Wert gültig ist.
Input States müssen vom schreibenden Script, User, ... immer mit ack=false beschrieben werden, da ein richtig programmierter Adapter nur dann (neue) Werte in eigenen States annehmen darf. Sobald er diese verarbeitet hat sollte er ack=true setzen ohne den Wert zu ändern. (Bei Buttons gibts leicht andere Regeln.)
Und um deine Frage zu beantworten - nein dei den States kannst du als User das nicht "einstellen". ack ist ein Attribute des setState Befehls und muss beim Aufruf angegeben werden.
-
Natürlich kannst Du einstellen, ob ACK=True oder ACK=false gesetzt wird. In der iobroker-Out Node musst Du mit ACK= false in den Adapter schreiben und das geht mit dem Type command
Value entspricht ACK=true