NEWS
Probleme mit Zeitsteuerung und AND Logik
-
Guten Morgen zusammen, ich scheitere mal wieder an den Zeitbausteinen in Kombination mit einem AND. Vielleicht kann mir da einer auf die Sprünge helfen.
Ich habe bei mir im BAd zwei Lampen welche über einen P geschaltet werden, ich möchte das Nachts aber nur eine angeht und jetzt habe ich die KNX GA und zwei Uhrzeiten und ein AND und trotzdem gehen immer beide an. Ich hab es auch mit dem Bigtimer schon probiert aber die AND Logik gibt immer ein true raus auch wenn die Zeit nicht aktiv ist.
[ { "id": "6dcd33f86c41b022", "type": "knxUltimate", "z": "415f0fe36e308bdb", "server": "6fc013af.98132c", "topic": "1/1/70", "outputtopic": "", "dpt": "1.001", "initialread": "1", "notifyreadrequest": false, "notifyresponse": true, "notifywrite": true, "notifyreadrequestalsorespondtobus": false, "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0", "listenallga": false, "name": "O5 - L2.2 80cm", "outputtype": "write", "outputRBE": false, "inputRBE": false, "formatmultiplyvalue": 1, "formatnegativevalue": "leave", "formatdecimalsvalue": 999, "passthrough": "no", "x": 780, "y": 2120, "wires": [ [] ] }, { "id": "40f01663243f3135", "type": "inject", "z": "415f0fe36e308bdb", "name": "06:00", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "00 07 * * *", "once": false, "onceDelay": 0.1, "topic": "1", "payload": "on", "payloadType": "str", "x": 90, "y": 2180, "wires": [ [ "bdb25d3bedb3d1a1" ] ] }, { "id": "b2aac529d0d241b1", "type": "inject", "z": "415f0fe36e308bdb", "name": "22:00", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "00 22 * * *", "once": false, "onceDelay": 0.1, "topic": "1", "payload": "off", "payloadType": "str", "x": 90, "y": 2220, "wires": [ [ "bdb25d3bedb3d1a1" ] ] }, { "id": "fa43646eebd9962e", "type": "group", "z": "415f0fe36e308bdb", "name": "2 Boolean Logic", "style": { "label": true, "fill": "#ff7f7f", "color": "#000000" }, "nodes": [ "bdb25d3bedb3d1a1", "b62ff4888f8291c0" ], "x": 334, "y": 2079, "w": 292, "h": 82 }, { "id": "bdb25d3bedb3d1a1", "type": "join", "z": "415f0fe36e308bdb", "g": "fa43646eebd9962e", "name": "", "mode": "custom", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": true, "timeout": "", "count": "2", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 410, "y": 2120, "wires": [ [ "b62ff4888f8291c0" ] ] }, { "id": "b62ff4888f8291c0", "type": "change", "z": "415f0fe36e308bdb", "g": "fa43646eebd9962e", "name": "AND ?", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "$reduce(payload.*,function($i, $j){$i and $j})", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 550, "y": 2120, "wires": [ [ "6dcd33f86c41b022", "47bb59ef955c0f04" ] ], "info": "# All Property of an object must be true.\n\nAll properties of an object must be true.\n\n`{\n \"Office\": true,\n \"Bedroom\": true,\n \"Living Room Balcony\": true,\n \"Living Room Right Window\": true,\n \"Living Room Left Window\": true\n}`\n\nis true,\n\n`{\n \"Office\": true,\n \"Bedroom\": false,\n \"Living Room Balcony\": true,\n \"Living Room Right Window\": true,\n \"Living Room Left Window\": true\n}`\n\nis false.\n\n# Alle Eigenschaften eines Objektes müssen wahr sein\n\nAlle Eigenschaften eines Objektes müssen wahr sein.\n\n`{\n \"Büro Balkon\": true,\n \"Schlafzimmer Balkon\": true,\n \"Wohnzimmer Balkon\": true,\n \"Wohnzimmer rechtes Fenster\": true,\n \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt true,\n\n`{\n \"Büro Balkon\": true,\n \"Schlafzimmer Balkon\": true,\n \"Wohnzimmer Balkon\": true,\n \"Wohnzimmer rechtes Fenster\": false,\n \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt false." }, { "id": "6fc013af.98132c", "type": "knxUltimate-config", "host": "192.168.2.89", "port": "3671", "physAddr": "15.15.22", "hostProtocol": "TunnelUDP", "suppressACKRequest": true, "csv": "", "KNXEthInterface": "Auto", "KNXEthInterfaceManuallyInput": "", "statusDisplayLastUpdate": true, "statusDisplayDeviceNameWhenALL": true, "statusDisplayDataPoint": false, "stopETSImportIfNoDatapoint": "stop", "loglevel": "error", "name": "Martins KNX", "localEchoInTunneling": true, "delaybetweentelegrams": "40", "delaybetweentelegramsfurtherdelayREAD": "1", "ignoreTelegramsWithRepeatedFlag": false, "keyringFileXML": "" } ]!
Danke euch
-
@saranger na ich muss das erst mal generell verstehen.
Die linke Lampe geht immer an ? - und die rechte Lampe soll nur angehen, wenn es nicht nachts ist? Das Problem ist aber schon erkannt. Grundsätzlich musst Du mit true und false arbeiten. Zeichenketten sind immer true
Man kann das aber auch einfacher - mit der Moments Bibliothek und der Datum- und Zeitverarbeitung in Node Red lösen.
Hier mal eine Change und eine Switch Node.
Schau Dir mal meinen Thread zur Datum und Uhrzeit in Node-Red an: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
-
@mickym cool danke, schaue ich mir an und teste das gleich mal, das könnte meine Probleme in meinen anderen Flows auch gleich beheben
-
@mickym das hat schon mal gut funktioniert, macht viele Flows einfacher. Wo aber die Uhrzeit als einziger Trigger ist muss ich es weiterhin über die inject node oder den Bigtimer machen oder?
-
@saranger sagte in Probleme mit Zeitsteuerung und AND Logik:
@mickym das hat schon mal gut funktioniert, macht viele Flows einfacher. Wo aber die Uhrzeit als einziger Trigger ist muss ich es weiterhin über die inject node oder den Bigtimer machen oder?
Ja. Gibt ja neben der inject node noch die Trigger node bei den Standard-Nodes. Bei den nachinstallierten Nodes bevorzuge ich inzwischen andere nodes anstelle des Bigtimers. Für wöchentlich wiederkehrende Zeitfenster den Lightscheduler mit grafischer Bedienung und für anspruchsvolle Zeitaufgaben die cronplus-Node. Der Bigtimer ist noch 1. Wahl wenn man bestimmte zyklische Tage im Jahr braucht, die nicht über cron zu erstellen sind.
-
@mickym danke Dir, den Ligth schau ich mir mal an. Die Triggernode hab ich auch schon in Benutzung, da weis ich aber auch nicht ob das nicht zu kompliziert ist was ich da gebaut habe.
-
Wie sollte man es eigentlich schreiben wenn die timerange über 00 Uhr hinaus in den neuen Tag geht?
Sollte man da eher 01:00 - 06:00 und das dann invertieren? 06:00 - 01:00 geht ja irgendwie nicht.
Ich hab jetzt bei einem Kumpel gesehen das es noch die node timerange gibt kennt das jemand?
-
@saranger sagte in Probleme mit Zeitsteuerung und AND Logik:
Sollte man da eher 01:00 - 06:00 und das dann invertieren?
Genau mit $not() invertieren.