- Home
- Deutsch
- Skripten / Logik
- Node-Red
- String aufteilen
String aufteilen
-
@mickym dann kläre mich doch bitte auf, als Anfänger ist man offen für bessere Wege
-
@hafo sagte in String aufteilen:
@mickym dann kläre mich doch bitte auf, als Anfänger ist man offen für bessere Wege
Nun dann poste doch mal wie Deine Wochentagspunkte unter 0_userdata.0 aussehen, die Du wieder in die Stringform zurückhaben willst. Gerne auch Screenshot der Objekte Struktur und einmal den Pfad zu einem Wochentag in Textform in Code-Tags. Ich kanns dann halt besser anpassen, aber im Grunde schaut der Flow so aus:
-
@mickym gerne. Ich möchte grundsätzlich alles wichtige als Objekt gespeichert haben. Wenn ich im Vis dann mithilfe des Filter dropdown einen Kanal auswähle, werden die entsprechenden Punkte in die Objekte für das Vis geladen und dort angezeigt. Diese kann ich dann ändern und auf speichern klicken. Dann sollte es die Daten wieder auf den richtigen Objekten speichern. Diese Änderung löst dann einen String aus, welcher den Timer programmiert.
Soviel zur Theorie, ich hoffe das ist halbwegs verständlich.
Hier werden die Objekte zum Vis geladen:
[ { "id": "9e190b64.53d15", "type": "ioBroker in", "z": "99194dc0.5d65f", "name": "Vis Auswahl", "topic": "0_userdata.0.Bewässerung.vis_Auswahl", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 90, "y": 520, "wires": [ [ "1e3267dc.fdde18" ] ] }, { "id": "1e3267dc.fdde18", "type": "switch", "z": "99194dc0.5d65f", "name": "Verteiler", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "1", "vt": "num" }, { "t": "eq", "v": "2", "vt": "num" }, { "t": "eq", "v": "3", "vt": "num" }, { "t": "eq", "v": "4", "vt": "num" }, { "t": "eq", "v": "5", "vt": "num" }, { "t": "eq", "v": "6", "vt": "num" }, { "t": "eq", "v": "7", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 7, "x": 260, "y": 520, "wires": [ [ "d701193.8d08d68", "d61802a5.3c8ee8", "ed935774.7ff95", "6d7eebae.187484" ], [ "6069718b.b27198", "3064f4bf.b9cfd4", "db6d1d71.321db", "c50a6d57.163c98" ], [ "6a6c068a.66fae", "7c456758.fd2e28", "420e5dd6.a6a794", "fdab73fb.a29758" ], [ "b29ffe85.62b778", "a655384e.cc9f48", "85581d0d.dcdac8", "cb96de0f.567aa8" ], [ "9a7fe8d.96ed618", "8ecb2b31.69c9a", "57cab2ad.5238ec", "2bb7c24b.2e20ce" ], [ "21765429.9e148c", "96ac89c7.f640c", "fe4ba9f8.37b3e8", "a3da58b6.1c94d8" ], [ "32de8143.168756", "4e50060a.be7778", "1386479f.8c24d", "760b9f83.494e5" ] ] }, { "id": "32de8143.168756", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Tomaten", "topic": "0_userdata.0.Bewässerung.Tomaten_Tage", "attrname": "payload", "payloadType": "value", "x": 680, "y": 300, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "b3bfd4c2.e5c2c8", "type": "split", "z": "99194dc0.5d65f", "name": "", "splt": ",", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 890, "y": 180, "wires": [ [ "1b19502c.f6aba" ] ] }, { "id": "1b19502c.f6aba", "type": "change", "z": "99194dc0.5d65f", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "0", "fromt": "str", "to": "false", "tot": "bool" }, { "t": "change", "p": "payload", "pt": "msg", "from": "1", "fromt": "str", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1070, "y": 180, "wires": [ [ "d6edd7f5.488038" ] ] }, { "id": "d6edd7f5.488038", "type": "switch", "z": "99194dc0.5d65f", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "num" }, { "t": "eq", "v": "2", "vt": "num" }, { "t": "eq", "v": "3", "vt": "num" }, { "t": "eq", "v": "4", "vt": "num" }, { "t": "eq", "v": "5", "vt": "num" }, { "t": "eq", "v": "6", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 7, "x": 1250, "y": 180, "wires": [ [ "a79df2d.709cb1" ], [ "b0e42158.9a50a" ], [ "2fda9826.954298" ], [ "13fd78fb.1e2217" ], [ "192afa2f.c005b6" ], [ "76e613ea.b8d75c" ], [ "4b4341e2.22c508" ] ] }, { "id": "6a6c068a.66fae", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Rasen", "topic": "0_userdata.0.Bewässerung.Rasen_Tage", "attrname": "payload", "payloadType": "value", "x": 670, "y": 140, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "6069718b.b27198", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gewuertz", "topic": "0_userdata.0.Bewässerung.Gewuertz_Tage", "attrname": "payload", "payloadType": "value", "x": 680, "y": 100, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "b29ffe85.62b778", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Himbeeren", "topic": "0_userdata.0.Bewässerung.Himbeeren_Tage", "attrname": "payload", "payloadType": "value", "x": 690, "y": 180, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "d701193.8d08d68", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Chili", "topic": "0_userdata.0.Bewässerung.Chili_Tage", "attrname": "payload", "payloadType": "value", "x": 670, "y": 60, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "21765429.9e148c", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Feigenbaum", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Tage", "attrname": "payload", "payloadType": "value", "x": 690, "y": 260, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "9a7fe8d.96ed618", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gemuese", "topic": "0_userdata.0.Bewässerung.Gemuese_Tage", "attrname": "payload", "payloadType": "value", "x": 680, "y": 220, "wires": [ [ "b3bfd4c2.e5c2c8" ] ] }, { "id": "a79df2d.709cb1", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Mo", "topic": "0_userdata.0.Bewässerung.dMo", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 60, "wires": [] }, { "id": "b0e42158.9a50a", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Di", "topic": "0_userdata.0.Bewässerung.dDi", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 100, "wires": [] }, { "id": "2fda9826.954298", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Mi", "topic": "0_userdata.0.Bewässerung.dMi", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 140, "wires": [] }, { "id": "13fd78fb.1e2217", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Do", "topic": "0_userdata.0.Bewässerung.dDo", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 180, "wires": [] }, { "id": "192afa2f.c005b6", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Fr", "topic": "0_userdata.0.Bewässerung.dFr", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 220, "wires": [] }, { "id": "76e613ea.b8d75c", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Sa", "topic": "0_userdata.0.Bewässerung.dSa", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 260, "wires": [] }, { "id": "4b4341e2.22c508", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "So", "topic": "0_userdata.0.Bewässerung.dSo", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1450, "y": 300, "wires": [] }, { "id": "4e50060a.be7778", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Tomaten", "topic": "0_userdata.0.Bewässerung.Tomaten_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 680, "y": 640, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "7c456758.fd2e28", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Rasen", "topic": "0_userdata.0.Bewässerung.Rasen_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 670, "y": 480, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "3064f4bf.b9cfd4", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gewuertz", "topic": "0_userdata.0.Bewässerung.Gewuertz_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 680, "y": 440, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "a655384e.cc9f48", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Himbeeren", "topic": "0_userdata.0.Bewässerung.Himbeeren_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 690, "y": 520, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "d61802a5.3c8ee8", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Chili", "topic": "0_userdata.0.Bewässerung.Chili_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 670, "y": 400, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "96ac89c7.f640c", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Feigenbaum", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 690, "y": 600, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "8ecb2b31.69c9a", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gemuese", "topic": "0_userdata.0.Bewässerung.Gemuese_Laufzeit", "attrname": "payload", "payloadType": "value", "x": 680, "y": 560, "wires": [ [ "b3311a52.9de078" ] ] }, { "id": "1386479f.8c24d", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Tomaten", "topic": "0_userdata.0.Bewässerung.Tomaten_Startzeit", "attrname": "payload", "payloadType": "value", "x": 680, "y": 960, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "420e5dd6.a6a794", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Rasen", "topic": "0_userdata.0.Bewässerung.Rasen_Startzeit", "attrname": "payload", "payloadType": "value", "x": 670, "y": 800, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "db6d1d71.321db", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gewuertz", "topic": "0_userdata.0.Bewässerung.Gewuertz_Startzeit", "attrname": "payload", "payloadType": "value", "x": 680, "y": 760, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "85581d0d.dcdac8", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Himbeeren", "topic": "0_userdata.0.Bewässerung.Himbeeren_Startzeit", "attrname": "payload", "payloadType": "value", "x": 690, "y": 840, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "ed935774.7ff95", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Chili", "topic": "0_userdata.0.Bewässerung.Chili_Startzeit", "attrname": "payload", "payloadType": "value", "x": 670, "y": 720, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "fe4ba9f8.37b3e8", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Feigenbaum", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Startzeit", "attrname": "payload", "payloadType": "value", "x": 690, "y": 920, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "57cab2ad.5238ec", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gemuese", "topic": "0_userdata.0.Bewässerung.Gemuese_Startzeit", "attrname": "payload", "payloadType": "value", "x": 680, "y": 880, "wires": [ [ "88eb3cc4.1f7df8" ] ] }, { "id": "b3311a52.9de078", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "vis Laufzeit", "topic": "0_userdata.0.Bewässerung.vis_Laufzeit", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1240, "y": 500, "wires": [] }, { "id": "88eb3cc4.1f7df8", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Startzeit h", "topic": "0_userdata.0.Bewässerung.vis_Startzeit_h", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1040, "y": 840, "wires": [] }, { "id": "760b9f83.494e5", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Tomaten", "topic": "0_userdata.0.Bewässerung.Tomaten_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 680, "y": 1300, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "fdab73fb.a29758", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Rasen", "topic": "0_userdata.0.Bewässerung.Rasen_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 670, "y": 1140, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "c50a6d57.163c98", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gewuertz", "topic": "0_userdata.0.Bewässerung.Gewuertz_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 680, "y": 1100, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "cb96de0f.567aa8", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Himbeeren", "topic": "0_userdata.0.Bewässerung.Himbeeren_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 690, "y": 1180, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "6d7eebae.187484", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Chili", "topic": "0_userdata.0.Bewässerung.Chili_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 670, "y": 1060, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "a3da58b6.1c94d8", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Feigenbaum", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 690, "y": 1260, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "2bb7c24b.2e20ce", "type": "ioBroker get", "z": "99194dc0.5d65f", "name": "Gemuese", "topic": "0_userdata.0.Bewässerung.Gemuese_Startzeit_m", "attrname": "payload", "payloadType": "value", "x": 680, "y": 1220, "wires": [ [ "e50834b8.eed6d" ] ] }, { "id": "e50834b8.eed6d", "type": "ioBroker out", "z": "99194dc0.5d65f", "name": "Startzeit m", "topic": "0_userdata.0.Bewässerung.vis_Startzeit_m", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1040, "y": 1200, "wires": [] } ]
-
Hier wird der Timer programmiert:
[ { "id": "f1325bf4.4ed0f", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Tomaten" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 200, "y": 340, "wires": [ [], [ "15cd23d8.ca16d4" ] ], "outputLabels": [ "Info", "Chili", "Gewuertz", "Rasen", "Himbeeren", "Gemuese", "Feigenbaum", "Tomaten" ] }, { "id": "9334f2a7.e7bae", "type": "ioBroker out", "z": "95848418.340d58", "name": "Tomaten", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.12", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 700, "y": 360, "wires": [] }, { "id": "15cd23d8.ca16d4", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 450, "y": 360, "wires": [ [ "9334f2a7.e7bae" ] ] }, { "id": "1df93fe2.46fbe", "type": "ioBroker in", "z": "95848418.340d58", "name": "Tomaten Startzeit", "topic": "0_userdata.0.Bewässerung.Tomaten_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 140, "y": 40, "wires": [ [ "18e28c07.feb6a4" ] ] }, { "id": "a9f1efd2.7ba", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.tomstart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 810, "y": 140, "wires": [ [ "49b35f45.913428" ] ] }, { "id": "edbdcaab.6c3bf8", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 600, "y": 180, "wires": [ [ "98df7f5d.11b1a8" ] ] }, { "id": "bd4c9090.779998", "type": "ioBroker get", "z": "95848418.340d58", "name": "Tomaten Laufzeit", "topic": "0_userdata.0.Bewässerung.Tomaten_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 290, "y": 180, "wires": [ [ "61f31e86.30eb7" ] ] }, { "id": "98df7f5d.11b1a8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.tomend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 810, "y": 180, "wires": [ [ "49b35f45.913428" ] ] }, { "id": "24fcb6c1.8936a2", "type": "ioBroker in", "z": "95848418.340d58", "name": "Tomaten Tage", "topic": "0_userdata.0.Bewässerung.Tomaten_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 130, "y": 240, "wires": [ [ "ec2da415.2a4fd8" ] ] }, { "id": "ec2da415.2a4fd8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.tomtag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 800, "y": 220, "wires": [ [ "49b35f45.913428" ] ] }, { "id": "f8cc9712.2ab86", "type": "ioBroker in", "z": "95848418.340d58", "name": "Tomaten Laufzeit", "topic": "0_userdata.0.Bewässerung.Tomaten_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 80, "y": 180, "wires": [ [ "bd4c9090.779998" ] ] }, { "id": "49b35f45.913428", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1070, "y": 180, "wires": [ [ "df48c94f.bf566" ] ] }, { "id": "df48c94f.bf566", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.tomstart}},\"days\":[{{payload.tomtag}}],\"output\":\"0\",\"endtime\":{{payload.tomend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1270, "y": 180, "wires": [ [ "f1325bf4.4ed0f" ] ] }, { "id": "a2212093.185978", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Tomaten_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 550, "y": 40, "wires": [ [ "cd67691.76bf218" ] ] }, { "id": "cd67691.76bf218", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 720, "y": 40, "wires": [ [ "a9f1efd2.7ba", "bd4c9090.779998" ] ] }, { "id": "18e28c07.feb6a4", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 350, "y": 40, "wires": [ [ "a2212093.185978" ] ] }, { "id": "61f31e86.30eb7", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 460, "y": 180, "wires": [ [ "edbdcaab.6c3bf8" ] ] }, { "id": "c5a2845b.60457", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Gewuertz" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 240, "y": 900, "wires": [ [], [ "677967fd.d6508" ] ], "outputLabels": [ "Info", "Chili" ] }, { "id": "e0307c77.b211c", "type": "ioBroker out", "z": "95848418.340d58", "name": "Gewürtz", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.4", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 740, "y": 920, "wires": [] }, { "id": "677967fd.d6508", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 550, "y": 920, "wires": [ [ "e0307c77.b211c" ] ] }, { "id": "caf7b2e8.1894b", "type": "ioBroker in", "z": "95848418.340d58", "name": "Gewuertz Startzeit", "topic": "0_userdata.0.Bewässerung.Gewuertz_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 190, "y": 600, "wires": [ [ "fc7a7352.44fc9" ] ] }, { "id": "5ecdf7a0.e5c52", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.gewstart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 700, "wires": [ [ "b11dd4d7.897628" ] ] }, { "id": "1cf4d57e.33b613", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 640, "y": 740, "wires": [ [ "49c2e1d4.4d6fa" ] ] }, { "id": "a8d69e10.cd63e", "type": "ioBroker get", "z": "95848418.340d58", "name": "Gewuertz Laufzeit", "topic": "0_userdata.0.Bewässerung.Gewuertz_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 330, "y": 740, "wires": [ [ "9eb12009.2f268" ] ] }, { "id": "49c2e1d4.4d6fa", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.gewend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 740, "wires": [ [ "b11dd4d7.897628" ] ] }, { "id": "a7e14d02.fec93", "type": "ioBroker in", "z": "95848418.340d58", "name": "Gewuertz Tage", "topic": "0_userdata.0.Bewässerung.Gewuertz_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 180, "y": 800, "wires": [ [ "710ebd7a.a08164" ] ] }, { "id": "710ebd7a.a08164", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.gewtag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 780, "wires": [ [ "b11dd4d7.897628" ] ] }, { "id": "65326eb6.d8ded", "type": "ioBroker in", "z": "95848418.340d58", "name": "Gewuertz Laufzeit", "topic": "0_userdata.0.Bewässerung.Gewuertz_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 130, "y": 740, "wires": [ [ "a8d69e10.cd63e" ] ] }, { "id": "b11dd4d7.897628", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1110, "y": 740, "wires": [ [ "961552c6.c4d6d" ] ] }, { "id": "961552c6.c4d6d", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.gewstart}},\"days\":[{{payload.gewtag}}],\"output\":\"0\",\"endtime\":{{payload.gewend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1310, "y": 740, "wires": [ [ "c5a2845b.60457" ] ] }, { "id": "5350d0ee.b87ef", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Gewuertz_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 590, "y": 600, "wires": [ [ "d7ca170f.1c93a8" ] ] }, { "id": "d7ca170f.1c93a8", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 760, "y": 600, "wires": [ [ "5ecdf7a0.e5c52", "a8d69e10.cd63e" ] ] }, { "id": "fc7a7352.44fc9", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 400, "y": 600, "wires": [ [ "5350d0ee.b87ef" ] ] }, { "id": "9eb12009.2f268", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 500, "y": 740, "wires": [ [ "1cf4d57e.33b613" ] ] }, { "id": "f742c03b.2b4018", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Rasen" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 240, "y": 1340, "wires": [ [], [ "881632b6.31c788" ] ], "outputLabels": [ "Info", "Chili" ] }, { "id": "62ea3655.fb8248", "type": "ioBroker out", "z": "95848418.340d58", "name": "Rasen", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.16", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 730, "y": 1360, "wires": [] }, { "id": "881632b6.31c788", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 1360, "wires": [ [ "62ea3655.fb8248" ] ] }, { "id": "4b2cc279.165b9c", "type": "ioBroker in", "z": "95848418.340d58", "name": "Rasen Startzeit", "topic": "0_userdata.0.Bewässerung.Rasen_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 180, "y": 1040, "wires": [ [ "7c130cf9.58ddf4" ] ] }, { "id": "9a31aa7.81634d8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.rasstart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 1140, "wires": [ [ "478bd581.773b1c" ] ] }, { "id": "7c888e93.75e008", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 640, "y": 1180, "wires": [ [ "22336e17.68a50a" ] ] }, { "id": "16fd25cd.411922", "type": "ioBroker get", "z": "95848418.340d58", "name": "Rasen Laufzeit", "topic": "0_userdata.0.Bewässerung.Rasen_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 320, "y": 1180, "wires": [ [ "537f95ef.af8cf4" ] ] }, { "id": "22336e17.68a50a", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.rasend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 1180, "wires": [ [ "478bd581.773b1c" ] ] }, { "id": "e8ab5570.c9b078", "type": "ioBroker in", "z": "95848418.340d58", "name": "Rasen Tage", "topic": "0_userdata.0.Bewässerung.Rasen_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 170, "y": 1240, "wires": [ [ "cc068c34.857cd8" ] ] }, { "id": "cc068c34.857cd8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.rastag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 1220, "wires": [ [ "478bd581.773b1c" ] ] }, { "id": "f7ab960.ee03fe8", "type": "ioBroker in", "z": "95848418.340d58", "name": "Rasen Laufzeit", "topic": "0_userdata.0.Bewässerung.Rasen_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 120, "y": 1180, "wires": [ [ "16fd25cd.411922" ] ] }, { "id": "478bd581.773b1c", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1130, "y": 1180, "wires": [ [ "685c0011.4d76d8" ] ] }, { "id": "685c0011.4d76d8", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.rasstart}},\"days\":[{{payload.rastag}}],\"output\":\"0\",\"endtime\":{{payload.rasend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1310, "y": 1180, "wires": [ [ "f742c03b.2b4018" ] ] }, { "id": "6179abe5.5008cc", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Rasen_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 590, "y": 1040, "wires": [ [ "eff73484.e162f8" ] ] }, { "id": "eff73484.e162f8", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 760, "y": 1040, "wires": [ [ "9a31aa7.81634d8", "16fd25cd.411922" ] ] }, { "id": "7c130cf9.58ddf4", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 390, "y": 1040, "wires": [ [ "6179abe5.5008cc" ] ] }, { "id": "537f95ef.af8cf4", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 500, "y": 1180, "wires": [ [ "7c888e93.75e008" ] ] }, { "id": "ffade621.e21408", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Himbeeren" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 260, "y": 1840, "wires": [ [], [ "2d9e3615.954982" ] ], "outputLabels": [ "Info", "Chili" ] }, { "id": "3e99677c.33493", "type": "ioBroker out", "z": "95848418.340d58", "name": "Himbeeren", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.15", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 770, "y": 1860, "wires": [] }, { "id": "2d9e3615.954982", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 530, "y": 1840, "wires": [ [ "3e99677c.33493" ] ] }, { "id": "b1133be4.6945e8", "type": "ioBroker in", "z": "95848418.340d58", "name": "Himbeeren Startzeit", "topic": "0_userdata.0.Bewässerung.Himbeeren_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 210, "y": 1540, "wires": [ [ "43163347.805d3c" ] ] }, { "id": "5776e8d5.98b4a8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.himstart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 870, "y": 1640, "wires": [ [ "b5b9c48d.0ac7c8" ] ] }, { "id": "93bbcc75.140c6", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 660, "y": 1680, "wires": [ [ "27b37ef4.39d9b2" ] ] }, { "id": "aaf11e52.96428", "type": "ioBroker get", "z": "95848418.340d58", "name": "Himbeeren Laufzeit", "topic": "0_userdata.0.Bewässerung.Himbeeren_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 350, "y": 1680, "wires": [ [ "889ba824.5c7ba8" ] ] }, { "id": "27b37ef4.39d9b2", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.himend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 870, "y": 1680, "wires": [ [ "b5b9c48d.0ac7c8" ] ] }, { "id": "a2e37a01.8b062", "type": "ioBroker in", "z": "95848418.340d58", "name": "Himbeeren Tage", "topic": "0_userdata.0.Bewässerung.Himbeeren_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 200, "y": 1740, "wires": [ [ "17cc38bc.d0b1df" ] ] }, { "id": "17cc38bc.d0b1df", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.himtag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 860, "y": 1720, "wires": [ [ "b5b9c48d.0ac7c8" ] ] }, { "id": "71fcb2df.72fd44", "type": "ioBroker in", "z": "95848418.340d58", "name": "Himbeeren Laufzeit", "topic": "0_userdata.0.Bewässerung.Himbeeren_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 150, "y": 1680, "wires": [ [ "aaf11e52.96428" ] ] }, { "id": "b5b9c48d.0ac7c8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1130, "y": 1680, "wires": [ [ "d35b19a6.f1acf" ] ] }, { "id": "d35b19a6.f1acf", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.himstart}},\"days\":[{{payload.himtag}}],\"output\":\"0\",\"endtime\":{{payload.himend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1330, "y": 1680, "wires": [ [ "ffade621.e21408" ] ] }, { "id": "58fac00.fbd1ac", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Himbeeren_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 610, "y": 1540, "wires": [ [ "46fe7ce9.fc5d64" ] ] }, { "id": "46fe7ce9.fc5d64", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 780, "y": 1540, "wires": [ [ "5776e8d5.98b4a8", "aaf11e52.96428" ] ] }, { "id": "43163347.805d3c", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1540, "wires": [ [ "58fac00.fbd1ac" ] ] }, { "id": "889ba824.5c7ba8", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 520, "y": 1680, "wires": [ [ "93bbcc75.140c6" ] ] }, { "id": "6a1dc60e.2815c8", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Chili" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 280, "y": 2280, "wires": [ [], [ "644cc02f.578248" ] ], "outputLabels": [ "Info", "Chili" ] }, { "id": "c739c937.d838", "type": "ioBroker out", "z": "95848418.340d58", "name": "Chili", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.5", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 770, "y": 2300, "wires": [] }, { "id": "644cc02f.578248", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 530, "y": 2300, "wires": [ [ "c739c937.d838" ] ] }, { "id": "13823c3c.7d6a9c", "type": "ioBroker in", "z": "95848418.340d58", "name": "Chili Startzeit", "topic": "0_userdata.0.Bewässerung.Chili_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 210, "y": 1980, "wires": [ [ "27224828.5dd5e8" ] ] }, { "id": "c252fe8b.8de62", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.chistart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 890, "y": 2080, "wires": [ [ "a99a6d33.3ba328" ] ] }, { "id": "10e12809.1df7c8", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 680, "y": 2120, "wires": [ [ "3b1211e.2f1936e" ] ] }, { "id": "dd403d5.078954", "type": "ioBroker get", "z": "95848418.340d58", "name": "Chili Laufzeit", "topic": "0_userdata.0.Bewässerung.Chili_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 350, "y": 2120, "wires": [ [ "17acd138.a9cb87" ] ] }, { "id": "3b1211e.2f1936e", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.chiend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 880, "y": 2120, "wires": [ [ "a99a6d33.3ba328" ] ] }, { "id": "b6c311c.a8d61f", "type": "ioBroker in", "z": "95848418.340d58", "name": "Chili Tage", "topic": "0_userdata.0.Bewässerung.Chili_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 200, "y": 2180, "wires": [ [ "79a48db9.90d15c" ] ] }, { "id": "79a48db9.90d15c", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.chitag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 880, "y": 2160, "wires": [ [ "a99a6d33.3ba328" ] ] }, { "id": "fe7dee7f.a8929", "type": "ioBroker in", "z": "95848418.340d58", "name": "Chili Laufzeit", "topic": "0_userdata.0.Bewässerung.Chili_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 150, "y": 2120, "wires": [ [ "dd403d5.078954" ] ] }, { "id": "a99a6d33.3ba328", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1150, "y": 2120, "wires": [ [ "ea332364.09e1a8" ] ] }, { "id": "ea332364.09e1a8", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.chistart}},\"days\":[{{payload.chitag}}],\"output\":\"0\",\"endtime\":{{payload.chiend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1350, "y": 2120, "wires": [ [ "6a1dc60e.2815c8" ] ] }, { "id": "99cc1f9a.000d5", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Chili_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 630, "y": 1980, "wires": [ [ "f31fe6d6.ea30f" ] ] }, { "id": "f31fe6d6.ea30f", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 800, "y": 1980, "wires": [ [ "c252fe8b.8de62", "dd403d5.078954" ] ] }, { "id": "27224828.5dd5e8", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 430, "y": 1980, "wires": [ [ "99cc1f9a.000d5" ] ] }, { "id": "17acd138.a9cb87", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 540, "y": 2120, "wires": [ [ "10e12809.1df7c8" ] ] }, { "id": "fb61e295.e1c3f8", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Gemuese" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 240, "y": 2720, "wires": [ [], [ "eb50c5c1.3f81e8" ] ], "outputLabels": [ "Info", "Chili" ] }, { "id": "4d59c645.a9ef3", "type": "ioBroker out", "z": "95848418.340d58", "name": "Gemüse", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.14", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 740, "y": 2740, "wires": [] }, { "id": "eb50c5c1.3f81e8", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 2740, "wires": [ [ "4d59c645.a9ef3" ] ] }, { "id": "bac661ce.7b14a8", "type": "ioBroker in", "z": "95848418.340d58", "name": "Gemuese Startzeit", "topic": "0_userdata.0.Bewässerung.Gemuese_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 190, "y": 2420, "wires": [ [ "655ca02b.c39688" ] ] }, { "id": "ede61f85.9b1fe8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.gemstart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 2520, "wires": [ [ "88855f2e.c147e8" ] ] }, { "id": "2c5a53a9.e88674", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 640, "y": 2560, "wires": [ [ "fe9a251d.6c58b8" ] ] }, { "id": "ce8ee0.d1b9192", "type": "ioBroker get", "z": "95848418.340d58", "name": "Gemuese Laufzeit", "topic": "0_userdata.0.Bewässerung.Gemuese_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 330, "y": 2560, "wires": [ [ "ad223f59.b03b3" ] ] }, { "id": "fe9a251d.6c58b8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.gemend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 2560, "wires": [ [ "88855f2e.c147e8" ] ] }, { "id": "8dd057c3.525f", "type": "ioBroker in", "z": "95848418.340d58", "name": "Gemuese Tage", "topic": "0_userdata.0.Bewässerung.Gemuese_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 180, "y": 2620, "wires": [ [ "1ea15f91.006e4" ] ] }, { "id": "1ea15f91.006e4", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.gemtag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 2600, "wires": [ [ "88855f2e.c147e8" ] ] }, { "id": "704a9b39.fff60c", "type": "ioBroker in", "z": "95848418.340d58", "name": "Gemuese Laufzeit", "topic": "0_userdata.0.Bewässerung.Gemuese_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 130, "y": 2560, "wires": [ [ "ce8ee0.d1b9192" ] ] }, { "id": "88855f2e.c147e8", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1110, "y": 2560, "wires": [ [ "7695f95c.e0115" ] ] }, { "id": "7695f95c.e0115", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.gemstart}},\"days\":[{{payload.gemtag}}],\"output\":\"0\",\"endtime\":{{payload.gemend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1310, "y": 2560, "wires": [ [ "fb61e295.e1c3f8" ] ] }, { "id": "465c6378.063754", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Gemuese_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 590, "y": 2420, "wires": [ [ "71bb1787.93aa1" ] ] }, { "id": "71bb1787.93aa1", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 760, "y": 2420, "wires": [ [ "ede61f85.9b1fe8", "ce8ee0.d1b9192" ] ] }, { "id": "655ca02b.c39688", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 390, "y": 2420, "wires": [ [ "465c6378.063754" ] ] }, { "id": "ad223f59.b03b3", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 500, "y": 2560, "wires": [ [ "2c5a53a9.e88674" ] ] }, { "id": "509af3bd.f017f4", "type": "ui_time_scheduler", "z": "95848418.340d58", "group": "df42ab16.59cb78", "name": "Bewässerung", "startDay": "1", "refresh": 60, "devices": [ "Feigenbaum" ], "onlySendChange": false, "customPayload": false, "eventMode": false, "eventOptions": [], "sendTopic": false, "lat": "46.98015", "lon": "9.5706316", "outputs": 2, "order": 1, "width": 0, "height": 0, "x": 260, "y": 3140, "wires": [ [], [ "5a50917e.fb2e08" ] ], "outputLabels": [ "Info", "Chili" ] }, { "id": "8d0f9b68.f48f6", "type": "ioBroker out", "z": "95848418.340d58", "name": "Feigenbaum", "topic": "mqtt.0.ESP_Bewaesserung.GPIO.13", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 770, "y": 3160, "wires": [] }, { "id": "5a50917e.fb2e08", "type": "change", "z": "95848418.340d58", "name": "change true", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 510, "y": 3160, "wires": [ [ "8d0f9b68.f48f6" ] ] }, { "id": "a03757aa.177f78", "type": "ioBroker in", "z": "95848418.340d58", "name": "Feigenbaum Startzeit", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Startzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 220, "y": 2840, "wires": [ [ "ae205d88.b3a16" ] ] }, { "id": "880223f9.33fa5", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.feistart", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 860, "y": 2940, "wires": [ [ "e69125f9.5d323" ] ] }, { "id": "4813b70.5ccf5c8", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 660, "y": 2980, "wires": [ [ "cc150fa0.200788" ] ] }, { "id": "7a9f5936.318408", "type": "ioBroker get", "z": "95848418.340d58", "name": "Feigenbaum Laufzeit", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Laufzeit", "attrname": "lauf", "payloadType": "value", "x": 340, "y": 2980, "wires": [ [ "7240e8b9.feeb68" ] ] }, { "id": "cc150fa0.200788", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.feiend", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 860, "y": 2980, "wires": [ [ "e69125f9.5d323" ] ] }, { "id": "dd944832.19d71", "type": "ioBroker in", "z": "95848418.340d58", "name": "Feigenbaum Tage", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Tage", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 210, "y": 3040, "wires": [ [ "42552839.ddf258" ] ] }, { "id": "42552839.ddf258", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "send.feitag", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 860, "y": 3020, "wires": [ [ "e69125f9.5d323" ] ] }, { "id": "4bd2bfd5.a0f29", "type": "ioBroker in", "z": "95848418.340d58", "name": "Feigenbaum Laufzeit", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Laufzeit", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "fireOnStart": "true", "x": 100, "y": 2980, "wires": [ [ "7a9f5936.318408" ] ] }, { "id": "e69125f9.5d323", "type": "change", "z": "95848418.340d58", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "send", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1130, "y": 2980, "wires": [ [ "f67212ea.6d15a" ] ] }, { "id": "f67212ea.6d15a", "type": "template", "z": "95848418.340d58", "name": "Create timer", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{\"timers\":[{\"starttime\":{{payload.feistart}},\"days\":[{{payload.feitag}}],\"output\":\"0\",\"endtime\":{{payload.feiend}}}],\"settings\":{\"disabledDevices\":[]}}", "output": "str", "x": 1330, "y": 2980, "wires": [ [ "509af3bd.f017f4" ] ] }, { "id": "1c9bcf61.13c8b1", "type": "ioBroker get", "z": "95848418.340d58", "name": "min", "topic": "0_userdata.0.Bewässerung.Feigenbaum_Startzeit_m", "attrname": "min", "payloadType": "value", "x": 610, "y": 2840, "wires": [ [ "9ab0b244.3d9638" ] ] }, { "id": "9ab0b244.3d9638", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 780, "y": 2840, "wires": [ [ "880223f9.33fa5", "7a9f5936.318408" ] ] }, { "id": "ae205d88.b3a16", "type": "function", "z": "95848418.340d58", "name": "", "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 2840, "wires": [ [ "1c9bcf61.13c8b1" ] ] }, { "id": "7240e8b9.feeb68", "type": "calculator", "z": "95848418.340d58", "name": "", "inputMsgField": "lauf", "outputMsgField": "lauf", "operation": "mult", "constant": "60000", "round": false, "decimals": 0, "x": 520, "y": 2980, "wires": [ [ "4813b70.5ccf5c8" ] ] }, { "id": "df42ab16.59cb78", "type": "ui_group", "name": "Standard", "tab": "29502947.69c12e", "order": 1, "disp": true, "width": "6", "collapse": false }, { "id": "29502947.69c12e", "type": "ui_tab", "name": "Home", "icon": "dashboard", "disabled": false, "hidden": false } ]
Zum testen habe ich einmal mit dem Vis angefangen
Für heute reicht es. Morgen kommt der Teil dran wo die Daten vom vis wieder in die Objekte gespeichert werden.
-
@mickym Noch zu deiner eigentlichen Frage. Die Wochentage habe ich so gespeichert
0_userdata.0.Bewässerung.dMo
0_userdata.0.Bewässerung.dDi
...
ich hoffe du hast danach gefragt. -
@hafo Ja das hab ich schon rausgefunden.
Ich werde den Flow mal so anpassen, dass er Dir diesen String wieder aus den 7 Bewässerungspunkten ausgibt und Du speicherst es ja dann in Typ_Tage.
Im Übrigen scheinst Du ja parallel mit Node-Red Dashboard zu arbeiten, warum Du aber solche Nodes wie den Calculator installierst - erschließt sich mir nicht ganz, da im Standardsortiment doch die aggregator Node vorhanden ist. Aber egal.
-
@mickym den ui Scheduler habe ich genommen, weil ich nichts anderes gefunden habe wo der Timer mit einem String programmiert werden kann. Häufig kann er nur überschrieben werden und springt dann wieder auf die ursprünglichen Zeiten zurück.
Die Aggregator Node muss ich wohl mal anschauen. Ich wollte nicht alles mit der Funktions Node machen und Calculator klingt halt schon sehr passend.
Schon mal vielen Dank für deine Hilfe. -
@hafo EInen Timer den Du von außen mittels Strings programmieren kannst. ist zum Beispiel dieser hier:
https://flows.nodered.org/node/node-red-contrib-eztimer/in/c8156f6276976bfb518d1e60442e01e2
mit dem muss man sich bissi beschäftigen, aber ich glaube der würde für Deine Zwecke gut passen.
-
@hafo So der Flow ist soweit fertig, wäre zwar bissi einfacher gewesen, wenn die Wochentage auf einer anderen Ebene gewesen wären, dann hätte man mit den Wildcards besser arbeiten können, aber so habe ich halt nur die relevanten Topics zur Bildung des Strings gebildet:
[ { "id": "738cae99.0afee", "type": "inject", "z": "dce8fa20.2e93c8", "name": "Init", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "", "payload": "{\"dMo\":false,\"dDi\":false,\"dMi\":false,\"dDo\":false,\"dFr\":false,\"dSa\":false,\"dSo\":false}", "payloadType": "json", "x": 1110, "y": 3000, "wires": [ [ "7410385d.2459c8" ] ] }, { "id": "dc29cb83.da0c38", "type": "join", "z": "dce8fa20.2e93c8", "name": "", "mode": "custom", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": true, "timeout": "", "count": "7", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 1410, "y": 3040, "wires": [ [ "80b4a58d.6c43d8", "3c7d1c2c.10bd44" ] ] }, { "id": "80b4a58d.6c43d8", "type": "debug", "z": "dce8fa20.2e93c8", "name": "Objekt", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1550, "y": 2980, "wires": [] }, { "id": "d0d7e563.ed60d8", "type": "inject", "z": "dce8fa20.2e93c8", "name": "reset", "props": [ { "p": "reset", "v": "true", "vt": "bool" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "str", "x": 1250, "y": 2960, "wires": [ [ "dc29cb83.da0c38" ] ] }, { "id": "7410385d.2459c8", "type": "split", "z": "dce8fa20.2e93c8", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "topic", "x": 1250, "y": 3000, "wires": [ [ "dc29cb83.da0c38" ] ] }, { "id": "3c7d1c2c.10bd44", "type": "split", "z": "dce8fa20.2e93c8", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "topic", "x": 1550, "y": 3040, "wires": [ [ "a9feb4ff.e0fe28", "cec83e21.09f92" ] ] }, { "id": "a9feb4ff.e0fe28", "type": "debug", "z": "dce8fa20.2e93c8", "name": "Je Tag", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1730, "y": 2980, "wires": [] }, { "id": "cec83e21.09f92", "type": "change", "z": "dce8fa20.2e93c8", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "str" }, { "t": "delete", "p": "topic", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1760, "y": 3040, "wires": [ [ "483e2021.3f9b" ] ] }, { "id": "483e2021.3f9b", "type": "join", "z": "dce8fa20.2e93c8", "name": "", "mode": "custom", "build": "string", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": ",", "joinerType": "str", "accumulate": false, "timeout": "", "count": "7", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 1940, "y": 3040, "wires": [ [ "b14fe537.4098e8" ] ] }, { "id": "1fc48b1f.b7a925", "type": "debug", "z": "dce8fa20.2e93c8", "name": "String", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 2270, "y": 3000, "wires": [] }, { "id": "40005ec8.38626", "type": "ioBroker in", "z": "dce8fa20.2e93c8", "name": "", "topic": "0_userdata.0.Bewässerung.*", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 740, "y": 3040, "wires": [ [ "164a866c.7601ba" ] ] }, { "id": "164a866c.7601ba", "type": "change", "z": "dce8fa20.2e93c8", "name": "", "rules": [ { "t": "change", "p": "topic", "pt": "msg", "from": ".*\\/(.*)$", "fromt": "re", "to": "$1", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 990, "y": 3040, "wires": [ [ "787d80ea.f7322" ] ] }, { "id": "787d80ea.f7322", "type": "switch", "z": "dce8fa20.2e93c8", "name": "Nur Wochentage", "property": "topic", "propertyType": "msg", "rules": [ { "t": "regex", "v": "d(Mo|Di|Mi|Do|Fr|Sa|So)", "vt": "str", "case": false } ], "checkall": "true", "repair": false, "outputs": 1, "x": 1210, "y": 3040, "wires": [ [ "dc29cb83.da0c38" ] ] }, { "id": "b14fe537.4098e8", "type": "trigger", "z": "dce8fa20.2e93c8", "name": "", "op1": "", "op2": "", "op1type": "nul", "op2type": "payl", "duration": "5", "extend": true, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 2090, "y": 3040, "wires": [ [ "1fc48b1f.b7a925", "428ea859.443ff8" ] ] }, { "id": "a01c4c32.322d3", "type": "change", "z": "dce8fa20.2e93c8", "name": "", "rules": [ { "t": "change", "p": "vis_Selection", "pt": "msg", "from": "7", "fromt": "str", "to": "Tomaten", "tot": "str" }, { "t": "set", "p": "topic", "pt": "msg", "to": "'0_userdata.0.Bewässerung.' & vis_Selection & '_Tage'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2490, "y": 3040, "wires": [ [ "38949264.ca833e", "eda70d63.a4786" ] ] }, { "id": "eda70d63.a4786", "type": "ioBroker out", "z": "dce8fa20.2e93c8", "name": "", "topic": "", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 2700, "y": 3040, "wires": [] }, { "id": "428ea859.443ff8", "type": "ioBroker get", "z": "dce8fa20.2e93c8", "name": "vis_Auswahl", "topic": "0_userdata.0.Bewässerung.vis_Auswahl", "attrname": "vis_Selection", "payloadType": "value", "x": 2270, "y": 3040, "wires": [ [ "a01c4c32.322d3" ] ] }, { "id": "38949264.ca833e", "type": "debug", "z": "dce8fa20.2e93c8", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 2690, "y": 2980, "wires": [] } ]
Wichtig ist, dass Du die Join Node mit den Wochentagen initialisierst, da die Reihenfolge im String ja entscheidend ist. Wenn man das nicht macht kommen die Wochentage wild gewürfelt rein.
Nachdem Du wahrscheinlich immer alle Datenpunkte aufeinmal schreibst, brauchst Du die nicht einzeln abfragen bzw. ich lasse ja den ganzen Bewässerungsast triggern und filtere dann. Du solltest Dir vielleicht doch überlegen, ob Du da nicht eine separate Struktur für die Tage unter Bewässerung machst - also Bewässerung.days.Mo usw. aber egal ich habs jetzt wie es ist rausgefiltert.
Ggf. noch eine Trigger Node dranhängen (hab ich mal gemacht, kannst ja wieder entfernen), falls Du nicht für jede Änderung eine Nachricht brauchst, sondern zum Beispiel erst nach 5 Sekunden oder so. Bei Visualisierungen hilft das gegen nervöse Hände bzw. Finger.
Wenn Du übrigens Deine Vis Auswahl nicht mit Zahlen sondern mit den richtigen Namen fütterst, kannst Du in dem Flow auch den msg.topic dynamisch zusammenstellen und den String mit einer iobroker out Node variabel schreiben. Ansonsten musst halt über eine Change Node (also zum Beispiel 7) mit dem msg.topic übersetzen.
So hab den Flow oben noch um die vis Auswahl und der dynamischen Ausgabe ergänzt:
Du musst nun aber aufpassen, dass Du Dir keine Endlosschleifen einhandelst. Sprich Node-Red und VIS schreiben in die Wochentagspunkte - das wird schief gehen. Da musst Du noch was überlegen - ich würde getrennte Punke ggf. zum Auslesen und zum Setzen nehmen.
-
@mickym Phuu, das ganze wird ja komplizierter als erwartet. Da war die Gardena Steuerung ja noch richtig einfach. Aber noch bin ich motiviert, es liegen ja auch noch 20 Zigbee Bodenfeuchtesensoren hier....
Ich kann gut eine separate Struktur für die Tage machen wenns hilft. Sollte die Struktur dann so aussehen: Bewässerung.days.Mo.Di.Mi... oder kommen alle Tage in denselben Ordner? Dann könnte ich auch gleich einen Ordner für die Vis Punkte machen und für jeden Bewässerungsstrang. Was empfiehlst du da?
Wenn ich alles umbaue, kann ich auch gleich das mit der Variable bei der Vis Ausgabe umsetzen. Das vereinfacht ja auch den Fow welcher das Vis füllt.
Eine Endlosschleife sollte es eigentlich nicht geben. Ich plane einen Knopf fürs Speichern ein. Da wird ein Datenpunkt auf true gesetzt und funktioniert als Trigger für deinen Flow. Am Ende muss ich ihn nur noch auf false setzten.
Was macht dein Timer besser als meiner? Lohnt sich ein umstieg?
-
@hafo Na ja so kompliziert ist es ja nicht. Ich hab Dir doch den Flow nun so hin gebastelt, dass er mit der jetzigen Struktur auskommen würde.
Aber wenn Du schon fragst ja ich würde die Vis Datenpunkte - noch eine Ebene nach unten gehen, dann brauchst Du nicht, wie ich in dem Flow gemacht habe alles filtern und kannst einfach mit Bewässerung.days.* alle Änderungen überwachen. Für jeden Bewässerungsstrang würde ich es nicht machen, da Du ja alle Stränge über eine Oberfläche im vis behandeln möchtest.
Das mit der Vis Ausgabe brauchst Du dann auch nicht umbauen, ggf. kann man halt statt Zahlen über vis gleich das ausgeben, um was es sich handelt, dann kannst Du den msg.topic direkt bauen. Also statt 7 eben Tomaten etc.
Gut wenn Du das über einen Knopf mit Speichern triggerst, dann triggerst Du es aber nicht über iobroker In Nodes, sondern machst es Einzeln über get Nodes oder List Nodes (da brauchst die Struktur nicht).
Den Timer brauchst nicht ändern - ich dachte nur - wenn ich das richtig gesehen habe, dass der für das NOdeRed Dashboard gedacht war. Egal.
Was ich ehrlich gesagt nicht verstehe warum Du Dir das mit dem String 1,1,0,0,0,0,0 usw. so kompliziert machst und nicht einfach zu den einzelnen Stängen einfach das Objekt als JSON abspeicherst, dann würdest Du Dir das Leben viel einfacher machen. Ich zeig Dir das mal als JSON. In diesem Fall könntest Du einfach beim Ein- und Auslesen den ganzen Datenpunkt nehmen und machst das auch wieder wie gehabt über Flow-Variablen. Dann braucht man keine Reihenfolgen und keine Initialisierungen .
-
@mickym ok, dann lege ich die vis objekte unter vis ab. Das mit den Strings verstehe ich halt noch nicht so ganz. Ich würde es gerne als Json speichern, verstehe aber nicht wie ich es dann im vis angezeigt bekomme und verändern kann.
Auch die Aufteilung in Stunden und Minuten ist etwas kompliziert, funktioniert in meinem Flow jedoch. Mein Hauptproblem ist halt dass der Timer ziemlich wählerisch ist mit den Inputs. Grundsätzlich könnte ich auch alles über einen Timer laufen lassen, der hätte auch verschiedene Ausgänge. Allerdings wird das füttern dadurch ziemlich kompliziert. Ich müsste ja bei jeder Änderung sämtliche Timer neu laden.
Ich habe die Objekte nun so aufgeteilt
-
@hafo So ich zeig Dir mal im Groben, wie ich es machen würde. Es enthält zumindest nun für den ganzen Zyklus den Ablauf und habe auch teilweise Deinen Flow genommen.
Ich hab jetzt nicht die Zahlen genommen - gut dann ist die Reihenfolge nicht so schön, aber das kannst ja dann in meinem Flow entsprechend ändern.
Das Ganze arbeitet nun doch wieder schön mit einer Flow-Variablen ist aber ziemlich einfach:
1- Der vis-Auswahl Punkt wird getriggert - Dein Flow - aber bei den Tagen habe ich das nun geändert um von dem String wegzukommen:
Der Flow schreibt die Datenpunkte unter Tage! (also easy)
- Durch das Schreiben werden automatisch der folgende Flow getriggert und in eine Flow Variable geschrieben:
und gleichzeitig die Punkte für die Vis Visualisierung gesetzt bzw. aktualisiert.
Somit wird auch über jede vis Änderung in Echtzeit die Flow Variable aktualisiert.
[ { "id": "9b752b23.7de838", "type": "ioBroker in", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.*", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 260, "y": 1620, "wires": [ [ "d9ee5754.d29278" ] ] }, { "id": "90b4bc5d.6233e", "type": "switch", "z": "4922e7ed.227918", "name": "", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "Mo", "vt": "str" }, { "t": "eq", "v": "Di", "vt": "str" }, { "t": "eq", "v": "Mi", "vt": "str" }, { "t": "eq", "v": "Do", "vt": "str" }, { "t": "eq", "v": "Fr", "vt": "str" }, { "t": "eq", "v": "Sa", "vt": "str" }, { "t": "eq", "v": "So", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 7, "x": 710, "y": 1620, "wires": [ [ "2a8d1ab7.8ffcf6" ], [ "61d87fcd.66f09" ], [ "21d735cb.72713a" ], [ "452621b9.3e1c1" ], [ "999c21fb.4073a" ], [ "825002be.5289" ], [ "f38065d0.a51638" ] ] }, { "id": "d9ee5754.d29278", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "change", "p": "topic", "pt": "msg", "from": ".*\\/(.*)$", "fromt": "re", "to": "$1", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 530, "y": 1620, "wires": [ [ "90b4bc5d.6233e" ] ] }, { "id": "61d87fcd.66f09", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.Di", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1540, "wires": [ [] ] }, { "id": "21d735cb.72713a", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.Mi", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1580, "wires": [ [] ] }, { "id": "452621b9.3e1c1", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.Do", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1620, "wires": [ [] ] }, { "id": "999c21fb.4073a", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.Fr", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1660, "wires": [ [] ] }, { "id": "825002be.5289", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.Sa", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1700, "wires": [ [] ] }, { "id": "f38065d0.a51638", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.So", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1740, "wires": [ [] ] }, { "id": "2a8d1ab7.8ffcf6", "type": "change", "z": "4922e7ed.227918", "name": "setze flow.days", "rules": [ { "t": "move", "p": "payload", "pt": "msg", "to": "days.Mo", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 900, "y": 1500, "wires": [ [] ] } ]
- Sobald Du auf Speichern drückst hier mit einer Inject Node simuliert, wird die Flow Variable wieder ausgelesen, das kennst Du ja und dann die Auswahl Variable abgefragt und nun ein JSON String in den entsprechenden Datenpunkt geschrieben und kann dann wie unter 1 wieder ausgelesen werden:
[ { "id": "22a66311.f3560c", "type": "inject", "z": "4922e7ed.227918", "name": "Speichern", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 200, "y": 1940, "wires": [ [ "82dfdd05.4d8e1" ] ] }, { "id": "fb4611b6.3419", "type": "ioBroker get", "z": "4922e7ed.227918", "name": "vis_Auswahl", "topic": "0_userdata.0.Bewässerung.vis_Auswahl", "attrname": "auswahl", "payloadType": "value", "x": 610, "y": 1940, "wires": [ [ "dea4991e.3e11c8" ] ] }, { "id": "82dfdd05.4d8e1", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "days", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 410, "y": 1940, "wires": [ [ "fb4611b6.3419" ] ] }, { "id": "dea4991e.3e11c8", "type": "switch", "z": "4922e7ed.227918", "name": "Verteiler", "property": "auswahl", "propertyType": "msg", "rules": [ { "t": "eq", "v": "1", "vt": "num" }, { "t": "eq", "v": "2", "vt": "num" }, { "t": "eq", "v": "3", "vt": "num" }, { "t": "eq", "v": "4", "vt": "num" }, { "t": "eq", "v": "5", "vt": "num" }, { "t": "eq", "v": "6", "vt": "num" }, { "t": "eq", "v": "7", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 7, "x": 820, "y": 1940, "wires": [ [], [], [], [], [], [], [ "f65a811c.6b36c" ] ] }, { "id": "f65a811c.6b36c", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "0_userdata.0.Bewässerung.Tomaten_Tage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1000, "y": 1980, "wires": [ [ "4c9423d5.92058c" ] ] }, { "id": "9e41a834.400728", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1360, "y": 1980, "wires": [] }, { "id": "4c9423d5.92058c", "type": "json", "z": "4922e7ed.227918", "name": "", "property": "payload", "action": "", "pretty": false, "x": 1180, "y": 1980, "wires": [ [ "9e41a834.400728", "e3a61f16.1e848" ] ] }, { "id": "e3a61f16.1e848", "type": "debug", "z": "4922e7ed.227918", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1350, "y": 2040, "wires": [] } ]
-
Vielen vielen Dank. Ich bin gerade ein bisschen am vis am arbeiten. Auch das braucht seine Zeit wenn man noch keine Vorkentnisse hat
Nun muss ich mal raus aufs Bike. Ich melde mich wenn ich weiter bin (oder Hilfe benötige)Bei deinem Flow muss ich aber den String in 1.0.0.1.0.0.0 umwandeln um den Timer zu füttern. Das sollte ich mittlerweile aber hinbekommen.
-
@hafo Viel Spaß bei Radeln.
Im Übrigen das unter 2. setzen der Flow Variablen ist wieder mal einer der wenigen Fälle die mit einer Function Node einfacher sind:
Inhalt der function-Node:
fTopic='days.' + msg.topic; flow.set(fTopic,msg.payload); return null;
[ { "id": "9b752b23.7de838", "type": "ioBroker in", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.*", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 260, "y": 1620, "wires": [ [ "d9ee5754.d29278" ] ] }, { "id": "d9ee5754.d29278", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "change", "p": "topic", "pt": "msg", "from": ".*\\/(.*)$", "fromt": "re", "to": "$1", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 530, "y": 1620, "wires": [ [ "bef90301.005e5" ] ] }, { "id": "bef90301.005e5", "type": "function", "z": "4922e7ed.227918", "name": "setze Flow variable", "func": "fTopic='days.' + msg.topic;\nflow.set(fTopic,msg.payload);\nreturn null;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 750, "y": 1620, "wires": [ [] ] } ]
-
@hafo Ich hab jetzt mal die Datenpunkte so angepasst, wie Du das hast - da die Reihenfolge für Deinen Timer wichtig ist.
Man braucht dann am eigentlichen Flow so gut wie nichts ändern:
Da der JSON String - die Objekte durch die Nummern in der richtigen Reihenfolge enthält - kannst Du für Deinen Timer folgendes machen:
[ { "id": "2c6981b1.59008e", "type": "ioBroker in", "z": "4922e7ed.227918", "name": "Tomaten_Tage", "topic": "0_userdata.0.Bewässerung.Tomaten_Tage", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 200, "y": 2180, "wires": [ [ "88b17c16.5bfa1" ] ] }, { "id": "88b17c16.5bfa1", "type": "json", "z": "4922e7ed.227918", "name": "", "property": "payload", "action": "", "pretty": false, "x": 380, "y": 2180, "wires": [ [ "78470437.c8835c" ] ] }, { "id": "78470437.c8835c", "type": "split", "z": "4922e7ed.227918", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 520, "y": 2180, "wires": [ [ "28937dc7.395302" ] ] }, { "id": "1ba541d7.8addde", "type": "debug", "z": "4922e7ed.227918", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1030, "y": 2180, "wires": [] }, { "id": "28937dc7.395302", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 690, "y": 2180, "wires": [ [ "91795f51.67b88" ] ] }, { "id": "91795f51.67b88", "type": "join", "z": "4922e7ed.227918", "name": "", "mode": "custom", "build": "string", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": ",", "joinerType": "str", "accumulate": false, "timeout": "", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 870, "y": 2180, "wires": [ [ "1ba541d7.8addde" ] ] } ]
Wenn Du Punkte brauchst - halt das Zeichen in der JOIN Node ändern:
-
@mickym So, nach 5 x durchlesen habe ich es halbwegs kapiert.
Zu Punkt 1:
Diese Nodes hast du leider nicht geteilt. Beim "json" muss ich "konvertierung zu json Zeichenfolge" einstellen nehme ich an. Beim Split und Change Nod komme ich nicht weiter.Punkt 2:
Das verstehe ich so halbwegs. Sobald Punkt 1 läuft werde ich einmal die Variante mit dem Functions Node testen.Punkt 3:
Sollte alles klar sein.Ich kann dir gar nicht genug für deine Mühe danken.
-
[ { "id": "bdf3bbe2.8f6268", "type": "json", "z": "4922e7ed.227918", "name": "", "property": "payload", "action": "", "pretty": false, "x": 960, "y": 260, "wires": [ [ "285fe3f3.77923c" ] ] }, { "id": "285fe3f3.77923c", "type": "split", "z": "4922e7ed.227918", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "topic", "x": 1110, "y": 260, "wires": [ [ "9e6f5c21.5f15d" ] ] }, { "id": "9e6f5c21.5f15d", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "'0_userdata.0.Bewässerung.Tage.' & topic", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1280, "y": 260, "wires": [ [ "19372ae3.4392e5" ] ] }, { "id": "19372ae3.4392e5", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1480, "y": 260, "wires": [] } ]
Diese Nodes hast du leider nicht geteilt. Beim "json" muss ich "konvertierung zu json Zeichenfolge" einstellen nehme ich an. Beim Split und Change Nod komme ich nicht weiter.
Nein in der JSON Node musst Du nichts einstellen, sondern den Standard belassen. In dem Datenpunkt befindet sich ein String. Die Node wandelt einen JSON String in ein JAVA Objekt um und umgekehrt. Das erkennt die Node automatisch:
Die Split Node erkennt automatisch dass es sich um ein Objekt handelt und teilt es in seine Bestandteile auf und kopiert die Eigenschaft des Objektes in msg.topic:
Deshalb hat jede Nachricht dann ein msg.topic wie 1Mo, 2Di usw.
Die letzte Change Node hängt dieses topic dann einfach an den Pfad an:
deshalb brauchst Du nur eine iobroker-out Node - da nun über das msg.topic in die verschiedenen Datenpunkte geschrieben wird.
Zur Initialisierung kannst ja in deine Datenpunkte mal diesen JSON String kopieren:
{"1Mo":false,"2Di":false,"3Mi":false,"4Do":false,"5Fr":false,"6Sa":false,"7So":false}
Das Tage im Pfad hattest Du glau ich klein geschrieben, musst halt noch ändern.
-
@mickym Leider funktioniert es gerade gar nicht. Den String habe ich zwar angepasst mit "vis.tage." aber die Objekte werden nicht beschrieben. Ich habe zum testen deinen String durchs Injekt Node eingespiesen.
Es ist mir auch nicht möglich den String in den Objekten zu speichern. Lieber wäre mir eh wenn es im Format ist welches der Timer frisst.
-
@hafo sagte in String aufteilen:
Lieber wäre mir eh wenn es im Format ist welches der Timer frisst.
Nun dann nimm noch mal den ursprünglichen Flow für den 1. Schritt:
[ { "id": "8dfb7709.f8f618", "type": "split", "z": "4922e7ed.227918", "name": "", "splt": ",", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 1030, "y": 240, "wires": [ [ "44d1461a.1d3b68" ] ] }, { "id": "44d1461a.1d3b68", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "0", "fromt": "str", "to": "false", "tot": "bool" }, { "t": "change", "p": "payload", "pt": "msg", "from": "1", "fromt": "str", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1210, "y": 240, "wires": [ [ "e67fc8a0.23b6e8" ] ] }, { "id": "e67fc8a0.23b6e8", "type": "switch", "z": "4922e7ed.227918", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "num" }, { "t": "eq", "v": "2", "vt": "num" }, { "t": "eq", "v": "3", "vt": "num" }, { "t": "eq", "v": "4", "vt": "num" }, { "t": "eq", "v": "5", "vt": "num" }, { "t": "eq", "v": "6", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 7, "x": 1390, "y": 240, "wires": [ [ "c87f9620.f025e8" ], [ "2b84bf3a.383dc" ], [ "d25134f5.641878" ], [ "b7ac809d.3b429" ], [ "c643bb47.b63838" ], [ "c105b962.146f38" ], [ "36555c62.f06644" ] ] }, { "id": "c87f9620.f025e8", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.1Mo", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 120, "wires": [] }, { "id": "2b84bf3a.383dc", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.2Di", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 160, "wires": [] }, { "id": "d25134f5.641878", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.3Mi", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 200, "wires": [] }, { "id": "b7ac809d.3b429", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.4Do", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 240, "wires": [] }, { "id": "c643bb47.b63838", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.5Fr", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 280, "wires": [] }, { "id": "c105b962.146f38", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.6Sa", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 320, "wires": [] }, { "id": "36555c62.f06644", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "0_userdata.0.Bewässerung.Tage.7So", "ack": "true", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1650, "y": 360, "wires": [] } ]
EDIT - die debug Nodes im Flow noch getauscht!
Schritt 2 - also füllen der Flow Variablen kann so bleiben, wie es ist.
Schritt 3 angepasst:
[ { "id": "22a66311.f3560c", "type": "inject", "z": "4922e7ed.227918", "name": "Speichern", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 200, "y": 1940, "wires": [ [ "82dfdd05.4d8e1" ] ] }, { "id": "fb4611b6.3419", "type": "ioBroker get", "z": "4922e7ed.227918", "name": "vis_Auswahl", "topic": "0_userdata.0.Bewässerung.vis_Auswahl", "attrname": "auswahl", "payloadType": "value", "x": 610, "y": 1940, "wires": [ [ "dea4991e.3e11c8" ] ] }, { "id": "82dfdd05.4d8e1", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "days", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 410, "y": 1940, "wires": [ [ "fb4611b6.3419" ] ] }, { "id": "dea4991e.3e11c8", "type": "switch", "z": "4922e7ed.227918", "name": "Verteiler", "property": "auswahl", "propertyType": "msg", "rules": [ { "t": "eq", "v": "1", "vt": "num" }, { "t": "eq", "v": "2", "vt": "num" }, { "t": "eq", "v": "3", "vt": "num" }, { "t": "eq", "v": "4", "vt": "num" }, { "t": "eq", "v": "5", "vt": "num" }, { "t": "eq", "v": "6", "vt": "num" }, { "t": "eq", "v": "7", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 7, "x": 820, "y": 1940, "wires": [ [], [], [], [], [], [], [ "f65a811c.6b36c" ] ] }, { "id": "f65a811c.6b36c", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "0_userdata.0.Bewässerung.Tomaten_Tage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1000, "y": 1980, "wires": [ [ "4760a6ff.969fe8" ] ] }, { "id": "e7dc8e38.b0003", "type": "ioBroker out", "z": "4922e7ed.227918", "name": "", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1680, "y": 1980, "wires": [] }, { "id": "4760a6ff.969fe8", "type": "split", "z": "4922e7ed.227918", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 1170, "y": 1980, "wires": [ [ "29b86736.dbc0f8" ] ] }, { "id": "cb07faa.5e09e08", "type": "join", "z": "4922e7ed.227918", "name": "", "mode": "custom", "build": "string", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": ",", "joinerType": "str", "accumulate": false, "timeout": "", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 1500, "y": 1980, "wires": [ [ "e7dc8e38.b0003" ] ] }, { "id": "29b86736.dbc0f8", "type": "change", "z": "4922e7ed.227918", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "true", "fromt": "bool", "to": "1", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "false", "fromt": "bool", "to": "0", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1330, "y": 1980, "wires": [ [ "cb07faa.5e09e08" ] ] } ]
Damit kannst Du nun noch statt der Inject Node Speichern nur den Datenpunkt, den Deine Vis Taste Speichern triggert vorne dran machen!