NEWS
MAX! Cube Blockly Abwesenheit
-
@mickym Heizen funktioniert
-
@marko1974 Wenn Heizen = Heat ist, wäre dann nicht Hand = Manuell? Schon mal getestet?
-
@frankyboy73 Nein das geht nicht
-
@mickym kälter
-
Dann ergänze Deine switch Node Was ist zu tun? entsprechend.
-
@marko1974 sagte in MAX! Cube Blockly Abwesenheit:
@mickym Ja Heizen müssten wir in MANUAL überführen.
Ich hab das verstanden, dass wenn eine Temperatur eingestellt wird die Heizungen von Auto auf Manual stellen.
Ich meine aber die umgekehrte Variante. Die Heizung wird wieder auf Auto gestellt.
Normalerweise wäre es so, dass sie dann den Wert aus der Max-Software nimmt. Das ist aber nicht der Fall. Der bleibt auf dem Manu Wert und steht dann nur einfach auf AUTO.Ersteres ist ja nicht schlimm. Ich habe ja für die Zeitpläne ein Blockly. Also können die Heizungen nun meinentwegen immer auf MANUAL stehen. Das Blockly steuert dann den Zeitplan auch im Modus MANUAL.
Das Problem ist die Abwesenheit:
Die Heizungen stehen alle auf MANUAL, Abwesenheit wird erkannt und alle Heizungen schalten dann auf 4,5 Grad. Alles gut.
Jetzt kommt man wieder an...da ist das Problem. Erstmal hab ich es so, dass BEIDE Personen ankommen müssen. Kommt nur eine an passiert nichts. Das ginge vielleicht noch mit der Presence in Numbers...wenn 1 oder 2 anwesend dann Heizung mache xy.Der eigentliche Knackpunkt ist, dass die Heizungen bei Ankunft aber auf die Temperaturen sollen, wie auch der Zeitplan ist. In meinem Blockly wird einfach auf AUTO gestellt und ich dachte, dann nimmt er den im Thermostat gespeicherten Wert - also den von Max. Macht er aber nicht. Er stellt auf Auto und der Wert bleibt wie er auch vorher war auf 4,5 Grad.
Also ich habe jetzt mal einen Flow gebastelt - wie Du die AutoProfile der MAX Thermostate in NodeRed definieren kannst.
Das erste ist relativ komplex - und Du musst das ja auch noch für jeden Raum machen - aber wenn Du es einmal verstanden hast - dann klappt das schon. Ich empfehle Dir dazu erstmal eine neue Flow Seite zu machen - den kannst dann auch in einer eigenen Datei wegspeichern, wenn Du alles definiert hast.
Den Flow startest bzw. testest Du in dem Du die Inject Node betätigst und dann im Debug Fenster schaust, ob die richtige Temperatur rauskommt:
Grundsätzlich kannst Du die Ausgänge bei gleichen Temperaturen später auch auf eine Change Node verkabeln, ich habs der Übersicht nur mal so gemacht, damit man über das Topic auch sehen kann, ob die Temperaturen auch den richtigen Ausgang benutzt.
Damit Du mehre Szenarien testen kannst - habe ich mal einige Inject Nodes an diesen Flow angehängt, damit Du verschiedene Wochentage und Zeiten testen kannst. Diese kannst Du natürlich im produktiven Betrieb wieder löschen:Ich hoffe Du lebst noch - da ich noch keine Rückmeldung zu den Direktiven habe.
Wenn Du das Profil mal für einen Heizkörper fertig hast - dann machen wir im nächsten Schritt Subflows daraus.
-
@frankyboy73 sagte in MAX! Cube Blockly Abwesenheit:
@marko1974 Wenn Heizen = Heat ist, wäre dann nicht Hand = Manuell? Schon mal getestet?
Jo das hab ich vor:
Modus AUTO bleibt AUTO, alles andere wird MANUAL - ansonsten können wir auch noch OFF, ECO als unterstütze Themperaturen halt über das setzen der Temperatur simulieren.
Die Node kennt nur folgende Modi:
Also wenn Heizen geht, dann wird Kühlen, ECO, OFF oder AUS auch gehen. Macht halt mit den MAX Thermostaten keinen Sinn.
-
@mickym said in MAX! Cube Blockly Abwesenheit:
[
Ja das funktionert. Freitag .... 17 Grad
12.11.2021, 21:46:34node: b19d7cac.3611d MoMiFr-Periode5 : msg.payload : number 17
Heisst in dem Automatik Zeitprofil Büro pflege ich jetzt die Zeiten zu der das Thermostat schalten soll und in der letzten spalte dann die passende temperatur anhand 1,2,3,4,5
Dann kommt die Debug node weg und ich mache meine settemperature heizung hinten dran -
@marko1974
Die anderen Zeiten und Wochentage funktionieren auch?Ok dann definierst Du mal einen Wochenplan, so wie Du ihn brauchst und exportierst ihn zur Abwechslung mal für mich - dann erstellen wir daraus einen Subflow und musst halt noch sagen für welche Heizung wir das machen.
Hast Du verstanden wie die Nodes funktionieren?Heisst n der Automatik Zeitprofil pflege ich jetzt die Zeiten zu der das Thermostat schalten soll und in der letzten spalte dann die passende temperatur anhand 1,2,3,4,5
Du definierst für die entsprechenden Wochentage halt für jede Zeitperiode einen Ausgang - deswegen habe ich ja mal unterschiedliche Wochentage genommen.
Mo, Mi, Do mit 5 Perioden
Di, Do mit 3 Perioden
Fr mit 1 PeriodeDann kommt die Debug node weg und ich mache meine settemperature heizung hinten dran -
Fast , wir machen dann eine eigene Node aus dem Flow - die Du später immer wieder verwenden kannst nicht nur bei der Alexa Node.
Ansonsten die Direktiven in die Switch Node aufgenommen?
-
@mickym said in MAX! Cube Blockly Abwesenheit:
Dann ergänze Deine switch Node Was ist zu tun? entsprechend.
Muss die change node nicht auch bearbeitet werden?
-
@marko1974 Na den 3. Ausgang solltest Du noch gar nicht verkabeln - die ersten beiden kannst Du an die bestehende Change Node hängen. Für den 3 Ausgang mache ich Dir noch den Flow.
-
@mickym Achso Das wusste ich nicht. Ich mach hier nur immer brav und versuche zu verstehen
-
@marko1974 sagte in MAX! Cube Blockly Abwesenheit:
@mickym Achso Das wusste ich nicht. Ich mach hier nur immer brav und versuche zu verstehen
Jetzt hast Du ja erst mal zu tun - ein bestehendes Autoprofil zu definieren, zu exportieren und mir zur Verfügung zu stellen.
-
@mickym wofür die hier sind hab ich noch nicht verstanden
-
@marko1974 Die kannst Du mal betätigen und schauen, ob die Temperatur am richtigen Ausgang rauskommt.
Damit kannst Du checken wenn Du die Inject Node
drückst dass die richtig Temperatur am richtigen Ausgang rauskommt. - Also Dienstag und Donnerstag in der 3. Periode.Wenn Du dann selbst Deinen Plan definierst, kannst Du halt mit den Inject Nodes verschiedene Zeiten und Wochentage testen.
-
[ { "id": "732665b9.063a54", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "851391ff.f31ef", "type": "inject", "z": "732665b9.063a54", "name": "Jetzt", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 170, "y": 260, "wires": [ [ "39d58864.e30568" ] ] }, { "id": "54394067.3d759", "type": "switch", "z": "732665b9.063a54", "name": "Automatik Bad -Zeitprofil Mo - Fr", "property": "payload.time", "propertyType": "msg", "rules": [ { "t": "btwn", "v": "08:00", "vt": "str", "v2": "09:00", "v2t": "str" }, { "t": "btwn", "v": "09:00", "vt": "str", "v2": "22:00", "v2t": "str" }, { "t": "btwn", "v": "22:00", "vt": "str", "v2": "23:00", "v2t": "str" }, { "t": "btwn", "v": "23:00", "vt": "str", "v2": "08:00", "v2t": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 930, "y": 140, "wires": [ [ "b9148fcf.db6b7" ], [ "3859cbf8.efeb64" ], [ "3687dedb.049902" ], [ "a1ea0b5e.c64828" ] ] }, { "id": "39d58864.e30568", "type": "change", "z": "732665b9.063a54", "name": "Change $moment", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "{\"weekday\":\"\",\"time\":\"\"}", "tot": "json" }, { "t": "set", "p": "payload.weekday", "pt": "msg", "to": "$moment().locale(\"de\").tz('Europe/Berlin').format('dddd')", "tot": "jsonata" }, { "t": "set", "p": "payload.time", "pt": "msg", "to": "$moment().locale(\"de\").tz('Europe/Berlin').format('HH:mm')", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 330, "y": 260, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "b9148fcf.db6b7", "type": "change", "z": "732665b9.063a54", "name": "22 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "MoMiFr-Periode1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "22", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1350, "y": 60, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "3859cbf8.efeb64", "type": "change", "z": "732665b9.063a54", "name": "17°C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "MoMiFr-Periode2", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "17", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1350, "y": 100, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "3687dedb.049902", "type": "change", "z": "732665b9.063a54", "name": "22 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "MoMiFr-Periode3", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "19", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1350, "y": 140, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "a1ea0b5e.c64828", "type": "change", "z": "732665b9.063a54", "name": "17 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "MoMiFr-Periode4", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "22", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1350, "y": 180, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "b19d7cac.3611d", "type": "debug", "z": "732665b9.063a54", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1630, "y": 300, "wires": [] }, { "id": "4798a841.c6f9a8", "type": "inject", "z": "732665b9.063a54", "name": "Montag-06:00", "props": [ { "p": "payload.time", "v": "06:00", "vt": "str" }, { "p": "payload.weekday", "v": "Montag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 310, "y": 340, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "e4cd333c.7cb3c", "type": "switch", "z": "732665b9.063a54", "name": "Automatik Bad -Zeitprofil Sa + So", "property": "payload.time", "propertyType": "msg", "rules": [ { "t": "btwn", "v": "08:00", "vt": "str", "v2": "09:00", "v2t": "str" }, { "t": "btwn", "v": "09:00", "vt": "str", "v2": "22:00", "v2t": "str" }, { "t": "btwn", "v": "22:00", "vt": "str", "v2": "23:00", "v2t": "str" }, { "t": "btwn", "v": "23:00", "vt": "str", "v2": "08:00", "v2t": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 920, "y": 320, "wires": [ [ "7a662555.d7e99c" ], [ "b8f81c14.7e00e" ], [ "f6138415.06d2f8" ], [ "22fce80d.d8032" ] ] }, { "id": "7a662555.d7e99c", "type": "change", "z": "732665b9.063a54", "name": "22 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "SaSo-Periode1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "22", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1330, "y": 300, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "3708f211.1a057e", "type": "inject", "z": "732665b9.063a54", "name": "Dienstag-06:00", "props": [ { "p": "payload.time", "v": "06:00", "vt": "str" }, { "p": "payload.weekday", "v": "Dienstag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "str", "x": 300, "y": 380, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "900bc954.6e70e8", "type": "inject", "z": "732665b9.063a54", "name": "Sonntag-06:00", "props": [ { "p": "payload.time", "v": "06:00", "vt": "str" }, { "p": "payload.weekday", "v": "Sonntag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 420, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "6ffc1fcf.bd291", "type": "inject", "z": "732665b9.063a54", "name": "Montag-08:55", "props": [ { "p": "payload.time", "v": "08:55", "vt": "str" }, { "p": "payload.weekday", "v": "Montag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "str", "x": 310, "y": 480, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "fdd3c16d.030cd", "type": "inject", "z": "732665b9.063a54", "name": "Dienstag-08:55", "props": [ { "p": "payload.time", "v": "08:55", "vt": "str" }, { "p": "payload.weekday", "v": "Dienstag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 520, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "7be8efd4.1307c", "type": "inject", "z": "732665b9.063a54", "name": "Sonntag-08:55", "props": [ { "p": "payload.time", "v": "08:55", "vt": "str" }, { "p": "payload.weekday", "v": "Sonntag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "str", "x": 300, "y": 560, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "687ef13e.325f6", "type": "inject", "z": "732665b9.063a54", "name": "Montag-12:10", "props": [ { "p": "payload.time", "v": "12:10", "vt": "str" }, { "p": "payload.weekday", "v": "Montag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 310, "y": 620, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "c66b61b9.34e2", "type": "inject", "z": "732665b9.063a54", "name": "Dienstag-12:10", "props": [ { "p": "payload.time", "v": "12:10", "vt": "str" }, { "p": "payload.weekday", "v": "Dienstag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 660, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "65b24d97.e96204", "type": "inject", "z": "732665b9.063a54", "name": "Sonntag-12:10", "props": [ { "p": "payload.time", "v": "12:10", "vt": "str" }, { "p": "payload.weekday", "v": "Sonntag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 700, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "b07b2143.7a3e6", "type": "inject", "z": "732665b9.063a54", "name": "Montag-14:55", "props": [ { "p": "payload.time", "v": "14:55", "vt": "str" }, { "p": "payload.weekday", "v": "Montag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 310, "y": 760, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "d1bed477.cf7888", "type": "inject", "z": "732665b9.063a54", "name": "Dienstag-14:55", "props": [ { "p": "payload.time", "v": "14:55", "vt": "str" }, { "p": "payload.weekday", "v": "Dienstag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 800, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "2caa209b.b320d", "type": "inject", "z": "732665b9.063a54", "name": "Sonntag-14:55", "props": [ { "p": "payload.time", "v": "14:55", "vt": "str" }, { "p": "payload.weekday", "v": "Sonntag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "str", "x": 300, "y": 840, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "b5cab07c.4900d", "type": "inject", "z": "732665b9.063a54", "name": "Montag-17:30", "props": [ { "p": "payload.time", "v": "17:30", "vt": "str" }, { "p": "payload.weekday", "v": "Montag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 310, "y": 900, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "d0442be0.81a618", "type": "inject", "z": "732665b9.063a54", "name": "Dienstag-17:30", "props": [ { "p": "payload.time", "v": "17:30", "vt": "str" }, { "p": "payload.weekday", "v": "Dienstag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 940, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "1db66c9.a9c3d93", "type": "inject", "z": "732665b9.063a54", "name": "Sonntag-17:30", "props": [ { "p": "payload.time", "v": "17:30", "vt": "str" }, { "p": "payload.weekday", "v": "Sonntag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 980, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "2c265cee.360094", "type": "inject", "z": "732665b9.063a54", "name": "Montag-22:00", "props": [ { "p": "payload.time", "v": "22:00", "vt": "str" }, { "p": "payload.weekday", "v": "Montag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 310, "y": 1040, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "ebde2ef5.debb8", "type": "inject", "z": "732665b9.063a54", "name": "Dienstag-22:00", "props": [ { "p": "payload.time", "v": "22:00", "vt": "str" }, { "p": "payload.weekday", "v": "Dienstag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 1080, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "de133c33.f8489", "type": "inject", "z": "732665b9.063a54", "name": "Sonntag-22:00", "props": [ { "p": "payload.time", "v": "22:00", "vt": "str" }, { "p": "payload.weekday", "v": "Sonntag", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 300, "y": 1120, "wires": [ [ "223e7dcb.393e22" ] ] }, { "id": "223e7dcb.393e22", "type": "switch", "z": "732665b9.063a54", "name": "Selektiere Wochentage", "property": "payload.weekday", "propertyType": "msg", "rules": [ { "t": "regex", "v": "Montag|Dienstag|Mittwoch|Donnerstag|Freitag", "vt": "str", "case": true }, { "t": "regex", "v": "Samstag|Sonntag", "vt": "str", "case": true } ], "checkall": "true", "repair": false, "outputs": 2, "x": 590, "y": 260, "wires": [ [ "54394067.3d759" ], [ "e4cd333c.7cb3c" ] ] }, { "id": "b8f81c14.7e00e", "type": "change", "z": "732665b9.063a54", "name": "17 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "SaSo-Periode1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "17", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1330, "y": 340, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "f6138415.06d2f8", "type": "change", "z": "732665b9.063a54", "name": "22 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "SaSo-Periode1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "22", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1330, "y": 400, "wires": [ [ "b19d7cac.3611d" ] ] }, { "id": "22fce80d.d8032", "type": "change", "z": "732665b9.063a54", "name": "17 °C", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "SaSo-Periode1", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "17", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1330, "y": 440, "wires": [ [ "b19d7cac.3611d" ] ] } ]
HA! Bittesehr!
-
@mickym said in MAX! Cube Blockly Abwesenheit:
@marko1974
Die anderen Zeiten und Wochentage funktionieren auch?Ok dann definierst Du mal einen Wochenplan, so wie Du ihn brauchst und exportierst ihn zur Abwechslung mal für mich - dann erstellen wir daraus einen Subflow und musst halt noch sagen für welche Heizung wir das machen.
Hast Du verstanden wie die Nodes funktionieren?Ja
Fast , wir machen dann eine eigene Node aus dem Flow - die Du später immer wieder verwenden kannst nicht nur bei der Alexa Node.
WOW
Ansonsten die Direktiven in die Switch Node aufgenommen?
JA -
@marko1974 So habe mir den Flow für Dein BAD Thermostat angesehen.
Etwas musst Du bei der Implementierung berücksichtigen - funktioniert so - wie bei der Original MAX App.
- Wichtig ist dass es keine Zeitlücke geben darf - das passt.
- Du musst die Zeiten immer über den Tageswechsel trennen
Also so:
Ich ändere das - musst nichts machen!!!
-
@mickym okay....das hatte ich mir schon gedacht
-
@marko1974 sagte in MAX! Cube Blockly Abwesenheit:
@mickym okay....das hatte ich mir schon gedacht
Ok - wolltest mich also testen - die Topics mache ich weg - wenn Du also die Zeitpläne für die anderen Thermostate machst
Rest Später