Weiter zum Inhalt

Node-Red

961 Themen 13.2k Beiträge

Hilfe für Skripterstellung mit Node-RED

NEWS

  • 2 Eingänge auswerten und reagieren

    29
    1
    0 Stimmen
    29 Beiträge
    3k Aufrufe
    mickymM
    @dj-mix Um ganz sauber zu sein, kannst Du noch eine Filternode (switch) in den false Ast und vor der Prüfung der Helligkeitswerte machen. Geht zwar auch ohne, aber nachdem nun alles triggern darf - filtert man halt die Booleans aus den Zeittriggern raus. [image: 1623670710221-a5893038-9e4d-4f70-88b5-b515f091f3c0-image.png] Alternativ kann man auch die Zeittrigger komplett weglassen, dass nur wieder die Wetterstation triggert. Die Zeitkontrolle funktioniert ja anhand der Flowvariablen. Also das funktioniert auch - aber halt immer dann wenn die Wetterstation einen Wert liefert: [image: 1623671061272-0550951c-4f9b-4a87-b689-4052e8912cff-image.png] Spoiler [ { "id": "79c3f3b7.7c111c", "type": "inject", "z": "925d8a79.4ca938", "name": "Time = false", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "false", "payloadType": "bool", "x": 170, "y": 80, "wires": [ [ "1f6f5d23.6763f3" ] ] }, { "id": "4f99e36c.dfab3c", "type": "inject", "z": "925d8a79.4ca938", "name": "Time = true", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 160, "y": 120, "wires": [ [ "1f6f5d23.6763f3" ] ] }, { "id": "1f6f5d23.6763f3", "type": "change", "z": "925d8a79.4ca938", "name": "validTime = true oder false", "rules": [ { "t": "set", "p": "validTime", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 100, "wires": [ [] ] }, { "id": "d8a77c3e.bb64f", "type": "inject", "z": "925d8a79.4ca938", "name": "", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "28", "payloadType": "num", "x": 190, "y": 540, "wires": [ [ "50f46656.c87fd8" ] ] }, { "id": "4acf0fff.d5d11", "type": "inject", "z": "925d8a79.4ca938", "name": "", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "45", "payloadType": "num", "x": 190, "y": 480, "wires": [ [ "50f46656.c87fd8" ] ] }, { "id": "16a6664c.2e4f0a", "type": "switch", "z": "925d8a79.4ca938", "name": "> 40 oder <30", "property": "payload", "propertyType": "msg", "rules": [ { "t": "gt", "v": "40", "vt": "num" }, { "t": "gte", "v": "30", "vt": "num" }, { "t": "lt", "v": "30", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 1060, "y": 300, "wires": [ [ "3dc8414f.1910fe" ], [ "6be67a86.22db94" ], [ "643149ca.05af08" ] ] }, { "id": "643149ca.05af08", "type": "trigger", "z": "925d8a79.4ca938", "name": "", "op1": "", "op2": "false", "op1type": "nul", "op2type": "bool", "duration": "5", "extend": false, "overrideDelay": false, "units": "min", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 1510, "y": 380, "wires": [ [ "382cf521.57fb5a" ] ] }, { "id": "3dc8414f.1910fe", "type": "change", "z": "925d8a79.4ca938", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "validTime", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1490, "y": 240, "wires": [ [ "382cf521.57fb5a" ] ] }, { "id": "2efb0453.fc70bc", "type": "debug", "z": "925d8a79.4ca938", "name": "Rolladen zu (true) oder auf (false)", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1960, "y": 520, "wires": [] }, { "id": "382cf521.57fb5a", "type": "rbe", "z": "925d8a79.4ca938", "name": "", "func": "rbe", "gap": "", "start": "", "inout": "out", "septopics": true, "property": "payload", "x": 1730, "y": 520, "wires": [ [ "2efb0453.fc70bc" ] ] }, { "id": "6be67a86.22db94", "type": "change", "z": "925d8a79.4ca938", "name": "", "rules": [ { "t": "set", "p": "reset", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1300, "y": 300, "wires": [ [ "643149ca.05af08" ] ] }, { "id": "3ff01545.8763da", "type": "comment", "z": "925d8a79.4ca938", "name": "Timer für Helligkeitssteuerung", "info": "", "x": 200, "y": 20, "wires": [] }, { "id": "9548978d.07d538", "type": "inject", "z": "925d8a79.4ca938", "name": "Time = false", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "false", "payloadType": "bool", "x": 150, "y": 240, "wires": [ [ "e127a886.3d1008" ] ] }, { "id": "376075cf.3e3a2a", "type": "inject", "z": "925d8a79.4ca938", "name": "Time = true", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 140, "y": 280, "wires": [ [ "e127a886.3d1008" ] ] }, { "id": "e127a886.3d1008", "type": "change", "z": "925d8a79.4ca938", "name": "Rolladen zu (Close) = true", "rules": [ { "t": "set", "p": "Close", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 410, "y": 260, "wires": [ [] ] }, { "id": "4f250133.7649c", "type": "comment", "z": "925d8a79.4ca938", "name": "Timer für Zeitsteuerung", "info": "", "x": 160, "y": 180, "wires": [] }, { "id": "ffbb0239.d193", "type": "comment", "z": "925d8a79.4ca938", "name": "Trigger Wetterstation", "info": "", "x": 180, "y": 440, "wires": [] }, { "id": "50f46656.c87fd8", "type": "switch", "z": "925d8a79.4ca938", "name": "timeControl ? - schließen", "property": "Close", "propertyType": "flow", "rules": [ { "t": "false" }, { "t": "true" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 830, "y": 460, "wires": [ [ "16a6664c.2e4f0a" ], [ "9868dae.c6ff328" ] ] }, { "id": "9868dae.c6ff328", "type": "change", "z": "925d8a79.4ca938", "name": "Rolladen immer schließen = true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1330, "y": 520, "wires": [ [ "382cf521.57fb5a" ] ] }, { "id": "23aa7482.d88aec", "type": "comment", "z": "925d8a79.4ca938", "name": "Rolladen geschlossen - Zeitsteuerung akiv", "info": "", "x": 1160, "y": 440, "wires": [] }, { "id": "fa2085d3.55d548", "type": "comment", "z": "925d8a79.4ca938", "name": "Rolladen prinzipiell offen - Helligkeitssteuerung akiv", "info": "", "x": 1190, "y": 180, "wires": [] } ]
  • [Gelöst] Warnhinweise und Fehlermeldungen

    javascript node-red
    5
    0 Stimmen
    5 Beiträge
    270 Aufrufe
    haselchenH
    @apollon77 @mickym Kurzes Feedback: die Fehler aus dem 1.Post traten bisher nicht wieder auf.
  • Mehrere Datenpunkte mit einer variablen vergleichen

    25
    0 Stimmen
    25 Beiträge
    2k Aufrufe
    mickymM
    @renegade-0 sagte in Mehrere Datenpunkte mit einer variablen vergleichen: @mickym ahh, warum kann ich da ned einfach auswählen, wie bei den anderen?^^ Letzte Frage für heute, weil ich grad Dich als Genie dran hab. :) Wie löst du es, wenn du quasi eine AND funktion brauchst. also wenn Var 1 +2 true, dann mach true? Bei var1=true und var2= true (also beide Variablen enthalten einen Bool) - kannst in das JSONATA Feld natürlich einfach schreiben: var1 and var2 [image: 1623543136885-88c78abc-59af-4532-acfa-a63ea616cfb6-image.png] Der Switch leitet dann an diesen Ausgang wenn der gesamte Ausdruck im JSONATA Feld true ergibt.
  • Hilfe bei mqtt über node Red

    26
    0 Stimmen
    26 Beiträge
    3k Aufrufe
    R
    @mickym OK, habsch mal so übernommen. Danke dir. JEtzt gehts weiter mit der Suchfunktion, dann ist Feierabend :)
  • AC Thor 9S mit node-red und IObroker steuern

    Verschoben node-red
    16
    1
    0 Stimmen
    16 Beiträge
    5k Aufrufe
    C
    @matthesjimte Vielen Dank, werd ich bei Gelegenheit mal ausprobieren; per Blockly ist der Output immer sehr gesprungen aber schon im kW Bereicht daher habe ich das erstmal verworfen.
  • kann ein Node nicht deinstallieren

    15
    4
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    mickymM
    @helste64 Normalerweise funktioniert das auch über den Palettenmanager über den Entfernen Button . Ich weiß auch nicht was schief gelaufen ist beim Update - da erscheint auch nur eine neue Version . Deinstalliere halt nochmal alle Versionen und versuchs dann nochmal. Das manuelle uninstall würde ich aus dem Verzeichnis drüber machen - also dem node-red Verzeichnis.
  • Anfängerfrage zu Toggle

    node-red
    10
    0 Stimmen
    10 Beiträge
    802 Aufrufe
    D
    @mickym Danke für deine Anschubhilfe. Mit Blockly hätte ich das in 2 Min. zusammengetackert. Ich denke, wenn ich etwas tiefer drin bin kann das was werden. Der "not" Befehl in JSONAta ist ja noch klar. Wenn ich das ganze weiter vertiefe werden sicherlich noch einige Stolpersteine kommen und mach eingeschlagener Weg wird sich als Falsch erweisen. Aber Spaß macht es wenn es klappt. Bei dieser einfachen Aufgabe hab ich noch nee weitere Komponente reingenommen und alles klappt. Werde langsam den Schwierigkeitsgrad steigern. [image: 1622468858994-switch4.jpg]
  • Daten von Node-Red Installation auf anderem PI?

    4
    0 Stimmen
    4 Beiträge
    169 Aufrufe
    mickymM
    @mguenther Nee dann brauchst eigentlich gar nichts machen. Du kannst ja die Daten, wenn NoderRed die über die RS485 Schnittstelle sammelt - entweder direkt im NoderRed weiterverarbeiten und das was Du brauchst kannst Du ja direkt in iobroker schreiben. Der NodeRed Adapter unter iobroker hat ja den Vorteil, dass Du dann die Daten auch direkt in den iobroker schreiben kannst. Den Flow kannst Du ja von der anderen NodeRed Installation exportieren und dann importieren. Fehlende Nodes musst halt nachinstallieren.
  • Flot-Diagramme im NodeRed Dashboard

    node-red
    28
    2
    1 Stimmen
    28 Beiträge
    7k Aufrufe
    W
    @mickym Hi, wäre dir sehr dankbar, wenn du mir den Flow für deine Stromaufzeichnung zukommen lassen würdest :-) Würde gerne meinen Stromverbrauch loggn (Weidmann Elektronik IR-Sensor der mir den Watt verbrauch sekündlich ausspuckt) und hätte hierfür genau deine Ansicht verwendet. Leider bin ich mit Node-Red nicht fit genug, um mir sowas selbst zu basteln. LG Wurmi @mickym said in Flot-Diagramme im NodeRed Dashboard: So nachdem ich nun ca. 2 Wochen an meinem Projekt gearbeitet habe, wollte ich Euch mal das Ergebnis präsentieren, etwas zur Motivation erzählen und dann sieht man ja, ob es nützlich für Euch ist oder nicht. Ich werde wohl das alles auf mehrere Posts ausweiten und versuche mit Screenshots das Ganze zu dokumentieren. Auch werde ich mal wieder meine Einschätzung zu verschiedenen Themen und Tools rund um den iobroker zum Besten geben. Es haben mich wieder mal verschiedene Dinge am iobroker begeistert, weil es einfach wirklich ein sehr offenes und flexibles System ist und man eben auch andere Tools wunderbar einbinden kann und nicht so starr auf die Fähigkeiten eines Systems alleine angewiesen ist. Thema ist wie gesagt, wie binde ich Flot Diagramme in das NodeRed Dashboard ein, warum mache ich das - warum arbeite ich überhaupt mit Node Red oder nutze andere Tools zur Darstellung. Nochmal zur grundsätzlichen Einschätzung, eine der großen Stärken des iobrokers ist die Objektdatenbank und wie man mit Datenbanksystemen die States bzw. die Historie durch Speicherung der Werte von Datenpunkten problemlos und kinderleicht realisieren kann. Zusammen mit Node-Red als Logikmaschine ist das in meinen Augen die bester Kombi, die es auf dem Markt der frei verfügbaren Software für die Hausautomation gibt. Das liegt natürlich auch an der fantastischen Community. Im Rahmen des Projektes musste ich mich notgedrungener Weise auch bisschen mit HTML beschäftigen. Javascript ist sowieso die Basis für alles. Die eigentliche Logik bilde ich im Node Red ab, aber manchmal ist es einfach einfacher auch mal ein paar Function Nodes in Javascript zu schreiben. Insofern bin ich auch grundsätzlich bei allen die in Javascript entwicklen und werde auch immer besser, nur Blockly kann ich leider nichts abgewinnen, das ist für mich einfach nicht intuitiv und bei weitem nicht so übersichtlich und da werde ich mich auch nicht mehr mit anfreunden, weil es keinen Mehrwert für mich bietet. Aber - und das ist wichtig - iobroker ist so flexibel, dass Node Red genauso als Logikmaschine zusammen mit iobroker funktioniert, sodass man Blockly und reine Javascripts nicht benötigt. Das wird leider von vielen nicht so gesehen - aber egal . Nun zur Historienverwaltung - in meinen Augen auch eine Riesenstärke des iobrokers. Mit ein paar Mausklicks ist eine relationale Datenbank angebunden, um Daten aufzeichnen zu können. Die meisten scheinen sich wohl gerade Grafana und InfluxDB zu nutzen. Ich habe mich bewußt gegen diesen Trend entschieden, auch wenn Grafana vielleicht mehr Features zur Diagramm Darstellung bietet keine Ahnung was weitere Vorteile sind, ... desweiteren baue ich weiter auf MySQL als Datenbanksystem, anstelle von influxDB. Vielleicht ist influxDB schneller oder schlanker oder man bekommt Performanceprobleme - keine Ahnung - aber MySQL läßt sich mit dem SQL Adapter super einbinden, gibt grafische Tools unter Windows (wie HeidiSQL um Daten direkt zu manipulieren) ohne SQL Profi zu sein. gibt AddIns für Excel um Daten ohne Dateiexport direkt zu importieren kann auch von NodeRed direkt genutzt werden, um Daten zu speichern und abzulegen. So nun komme ich zu den FLOT-Diagrammen und warum ich die so fantastisch finde. Im Gegensatz zu Grafana wird nicht ein eigenes Dashboard benötigt, sondern die Diagramme werden "On-The-Fly" generiert und gerendert. Es wird im Prinzip ABSOLUT nichts zu einem Diagramm gespeichert oder anders ausgedrückt, alle Erscheinungsparameter dieser Diagramme sind in der URL enthalten. Das eröffnet erstaunliche Möglichkeiten. ;) Bislang hatte ich ja im Dashboard nur die enthaltenen Charts verwendet. Die sind zwar ganz schön, aber da gibts natürlich einen gravierenden Nachteil: Wenn man keine Balkendiagramme zur Visualisierung von Momentanzuständen verwendet, dann ist ohne Datenbank wieder alles weg. Heute mal wieder alles auf Anfang, weil ich zwischenzeitlich im NodeRed das Projekt gewechselt habe: [image: 1616436323402-a386750b-4d72-4f17-96d6-f39e545d1cec-image.png] CPU Last ist nur deshalb so hoch, weil der Timeshift gerade läuft - der fliegt auch wieder runter. Selbst wenn man dann die Daten in einer DB hat, ist es glaub ziemlich mühselig, dass alles wieder einzulesen. Hier gibts entsprechende Doku. Etwas besser verhält es sich wenn man Zustände selbst in Datenpunkten festhält, dann kann man diese natürlich auch mit den NodeRed hauseigenen Mitteln mit Balkendiagrammen schön darstellen. [image: 1616436684776-f7faf325-f7dc-4e4e-9d1f-bec509114fa7-image.png]
  • Wetter API's mit NodeRed abrufen

    node-red template
    29
    5
    2 Stimmen
    29 Beiträge
    10k Aufrufe
    mickymM
    @garf So hab mal angefangen - hier ist der neue Thread, bin aber mit der Beschreibung meiner bisherigen Erkenntnisse noch nicht fertig. ;)
  • String aufteilen

    141
    0 Stimmen
    141 Beiträge
    18k Aufrufe
    H
    @mickym Den Papierkorb habe ich schon gefunden, aber das mit dem löschen ist um einiges einfacher als erwartet. Das ist perfekt für mich, ich lasse nun einfach jede Nacht die Variable löschen. Spätestens nach einer halben Stunde sollten sich dann alle Sensoren wieder aktualisiert haben. Nochmals vielen Dank für deine schnelle und gute Hilfe.
  • Homematic Steuerung mittels Alexa, Node Red in ioBroker

    6
    5
    0 Stimmen
    6 Beiträge
    789 Aufrufe
    mickymM
    @candyman986 Nun ich benutze die Homematic Node nicht, aber ich kann mir vorstellen, dass man die nicht von 2 Seiten ansprechen kann. Also die Node-Red Homematic Nodes gehen nur, wenn Du nicht die Adapter im iobroker hast. Aber Du brauchst die in meinen Augen auch nicht, weil Du ja in Node Red auf alle iobroker Datenpunkte zugreifen kannst - sprich auch auf die Homematic Datenpunkte im iobroker. Deswegen installierst Du doch den Node Red Adapter. Also einfach die Homematic Geräte aus Node Red direkt über die iobroker Nodes ansprechen!
  • HP Tintenfüllstände mit NodeRed und SNMP

    node-red template
    26
    6
    1 Stimmen
    26 Beiträge
    4k Aufrufe
    mickymM
    @jb_sullivan Wie gesagt, wenn Du Dich nicht näher mit NodeRed beschäftigen möchtest, dann schreibst Du einfach das Array oder das Objekt, dass Du von den snmp Nodes erhälst in eine Datenbaum unter userdata_0.0 - dafür habe ich eine eigene Node mit Subflow gebastelt. Dann kannst Du mit diesen Datenpunkten ja wieder mit Blockly oder was Du bevorzugst weiterarbeiten.
  • NFC Tag in node red mit Http request?

    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    mickymM
    @albandy Schau mal hier die letzten beiden Einträge: https://forum.iobroker.net/topic/44639/iobroker-über-nfc-tags-und-android-steuern?_=1620944096514 Im Prinzip brauchst Du auch nicht die NFC Tags beschreiben. Die haben mE eine ID und sind damit eindeutig identifiziert. Somit kannst Du jedem NFC Tag eine URL zuordnen.
  • Daten an wunderground senden

    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    mickymM
    @hafo Hast Recht - ich hab das natürlich nicht zum Hochladen. Du kannst ja einfach wieder N gegen S und W gegen O bzw. E gegen W tauschen. Dir auch ein schönes WE.
  • (solved) Fritzbox HTTP Get NetMoni

    Verschoben node-red
    5
    0 Stimmen
    5 Beiträge
    507 Aufrufe
    M
    @iobroker_rainer Stellst du bitte Dein Blockly zur Verfügung, für andere, die es auch machen wollen. Danke.
  • Alias Liste nicht gezeigt

    5
    1
    0 Stimmen
    5 Beiträge
    243 Aufrufe
    Fred FreundF
    @mickym so habe ich das Problem umgangen bis zu deiner Loesung :-) OFF Topic: ...der Fibaro Motion Sensor wird als Objekt definiert das bei Erkennung Motion ein Value auf 8 gesetzt wird .. [image: 1620027162543-745e43e1-3d17-4eaa-a8ff-77279d53eb0a-image.png] jetzt habe ich ein Alias erstellt und dort ist er auf einmal ein Boolean mit True, False. [image: 1620027215548-196f15c2-59f9-49e5-ba51-f192adff28ba-image.png] Finde ich besser aber trotzdem musst ich mein Skript aendern.
  • Anfängerfrage: Wert "bestätigen"

    5
    1
    0 Stimmen
    5 Beiträge
    972 Aufrufe
    mickymM
    @jörg-benthien Das hat mit MQTT gar nichts zu tun. Alle Datenpunkte im ioBroker, die als Datenpunkte von Adaptern geliefert werden, werden in einem ioBroker eigenen Format und in eine eigene Datenbank geschrieben. mqtt ist erst mal ein Kommunikationsprotokoll um Werte auszutauschen, dafür braucht es einen Broker/Server und einen Client. Aus NodeRed kannst Du zwar auch direkt auf einen mqtt Broker zugreifen, dafür nimmst Du aber die mqtt Nodes und die kennen keine bestätigten und unbestätigten Werte (wenn man mal vom QoS 1 oder 2 des mqtt Protokolls absieht). Die iobroker Nodes in NodeRed benutzen ein iobroker internes Protokoll und diese Nodes gibt es auch nur hier, wenn NodeRed als Adapter im iobroker läuft - auch wenn andere gerne auch von NodeRed Standalone Installationen auf den iobroker zugreifen würden.
  • Hilfe beim Zusammenfügen von Variablen

    2
    0 Stimmen
    2 Beiträge
    149 Aufrufe
    mickymM
    @rene3128 Nimm einfach eine Template Node und kombiniere das alles. Schau Dir einfach diesen Flow an bzw. importiere ihn - da wurde alles exakt so gemacht. Hier auch - um Alexa Temperaturen ansagen zu lassen. Hättest Du nur mal die Tage in die Suche investiert. ;) Und hier wird erklärt was es für Möglichkeiten gibt und warum die Nachrichten nicht auf Dich warten um sich zusammenzufügen.
  • Rolladen

    5
    3
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    Axel KoenekeA
    @hc-yami Mit Blockly, hier mal ein Ausschnitt für ein Raum: <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="cBG[Sc-Lr=+/wMji6Q+5">Sollw_Tag</variable> <variable id="oa|?U=#-qgiEcU{9xWG^">Sollw_Nacht</variable> <variable id="hUs+O!WDNQE~G?/317@D">Sonne_Hoehe</variable> <variable id="e4$wYs!}sZ(97Ntc{#8[">Sonnenschutz</variable> <variable id="n$-UbsRiqkE_y]xvHZa7">Sollwert_Ausen</variable> <variable id="f6Zuw+zPCzy,GDPCh3Yt">Sollwert_Tages_Mx</variable> <variable id="RnzP{zXGcb2F8VZazfB#">IstTemp</variable> <variable id="Fvyy`YCxGa^`2tOI^`+3">SollTemp</variable> <variable id="Bn=(j{^r[1yvx307Wk4]">DeltaT</variable> <variable id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</variable> <variable id="gXlM;%VT:g}pAlCIm6zY">Azi_Start_ZU</variable> <variable id="3FcdUi?FNb%:q2am/5J7">Azi_Stop_ZU</variable> <variable id=":8PN6@6:Zzw%^7s]2V`~">Azi_AUF</variable> <variable id="NdUt`Y+d/SRVGO+laY?P">Sollwert_Rollo_Schatten</variable> <variable id=":5n2TwXqaa~*Nj/IGLZP">Sollwert_Rollo_Licht</variable> </variables> <block type="schedule" id="gx_`eq=GsDUDRvW,:.uo" x="213" y="113"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="u#1eW+OnLYN{L^=7(RJP"> <mutation name="Tag-Nacht-Sonnenschutz"> <arg name="Sollw_Tag"></arg> <arg name="Sollw_Nacht"></arg> <arg name="Sonne_Hoehe"></arg> <arg name="Sonnenschutz"></arg> <arg name="Sollwert_Ausen"></arg> <arg name="Sollwert_Tages_Mx"></arg> </mutation> <value name="ARG0"> <block type="get_value" id=")=Xr@Zn}4Te{=%|rP.O^"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Sonne_Sollwert_Tag</field> </block> </value> <value name="ARG1"> <block type="get_value" id="*^JeMt7ZYoMB/s-0(mf_"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Sonne_Sollwert_Nacht</field> </block> </value> <value name="ARG2"> <block type="get_value" id="kr{%V))}+k=r7S5Q9-Be"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonnenstand.Sonne_Elevation</field> </block> </value> <value name="ARG3"> <block type="get_value" id="#]M5g3u}x%Bp|Gv*o8a/"> <field name="ATTR">val</field> <field name="OID">javascript.0.ak.Rollo.Sonnenschutz</field> </block> </value> <value name="ARG4"> <block type="math_number" id="RRzz@.LfxxM#_]#BJhTc"> <field name="NUM">20</field> </block> </value> <value name="ARG5"> <block type="math_number" id="r$Sj0MJZNb9@.N17}Tg]"> <field name="NUM">25</field> </block> </value> <next> <block type="comment" id="/:B$TdX?{h*c?4;h%V~$"> <field name="COMMENT">Rollos</field> <next> <block type="controls_if" id="CVDv=oGotFn44!XYvCZp"> <value name="IF0"> <block type="logic_compare" id="RadjFOx/deUU68$t+P$]"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="3q@l3yQ?9~rq7`kfly4."> <field name="ATTR">val</field> <field name="OID">javascript.0.ak.Rollo.Sonnenschutz</field> </block> </value> <value name="B"> <block type="logic_boolean" id="2JZ|mYV@ghRcDKG)[!.d"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="g.--|ZwObI3v+O/z5V6s"> <field name="COMMENT">EG_Wohnen</field> <next> <block type="procedures_callnoreturn" id="B?Y7_F-0lkv?=5zPoYkw"> <mutation name="EG-Wohnen"> <arg name="IstTemp"></arg> <arg name="SollTemp"></arg> <arg name="DeltaT"></arg> <arg name="Sonne_Winkel"></arg> <arg name="Azi_Start_ZU"></arg> <arg name="Azi_Stop_ZU"></arg> <arg name="Azi_AUF"></arg> <arg name="Sollwert_Rollo_Schatten"></arg> <arg name="Sollwert_Rollo_Licht"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="p%[gJMz4#/BMK:H8)OwW"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E9A498E83AB.1.ACTUAL_TEMPERATURE</field> </block> </value> <value name="ARG1"> <block type="get_value" id="KjSVU89`i%uri*5IP[+_"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E9A498E83AB.1.SET_POINT_TEMPERATURE</field> </block> </value> <value name="ARG2"> <block type="math_number" id="0:W$AFb+5pV/-3;I650t"> <field name="NUM">2</field> </block> </value> <value name="ARG3"> <block type="get_value" id="4tt-:SZDEG6d.t+q%r%8"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonnenstand.Sonne_Azimut</field> </block> </value> <value name="ARG4"> <block type="math_number" id="vG2LLM2aM*6,D9?K@VOc"> <field name="NUM">90</field> </block> </value> <value name="ARG5"> <block type="math_number" id="0SE7pBh?H)_rm*#L~!NH"> <field name="NUM">170</field> </block> </value> <value name="ARG6"> <block type="math_number" id="w2imA4kpHYcjE!y9w64T"> <field name="NUM">240</field> </block> </value> <value name="ARG7"> <block type="math_number" id="EpAi#[?ekzS]VOXS.##^"> <field name="NUM">5</field> </block> </value> <value name="ARG8"> <block type="math_number" id="-@(kZ40?xCi5b4gwS+qV"> <field name="NUM">100</field> </block> </value> <next> <block type="comment" id="WGB5zU4aGjuWf^S85T,M"> <field name="COMMENT">EG_Terrasse</field> <next> <block type="comment" id="c@H_SK2h#Tq#s2h+(6DT"> <field name="COMMENT">EG_Erker</field> <next> <block type="comment" id="T|gVCxzby==b3-.~a:;*"> <field name="COMMENT">EG_Küche</field> <next> <block type="comment" id="}`WF_1}~~e$yhzAgd0Pi"> <field name="COMMENT">EG_WC</field> <next> <block type="comment" id="y}6:b/(/@ME1tM^(9Dr2"> <field name="COMMENT">OG_Schlafen_1</field> <next> <block type="comment" id="8wt0=v3tFn~F~W#gJhvI"> <field name="COMMENT">OG_Schlafen_2</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="8_%eW?$IJ8rmY8y.zZ$K" collapsed="true" x="1213" y="87"> <mutation> <arg name="Sollw_Tag" varid="cBG[Sc-Lr=+/wMji6Q+5"></arg> <arg name="Sollw_Nacht" varid="oa|?U=#-qgiEcU{9xWG^"></arg> <arg name="Sonne_Hoehe" varid="hUs+O!WDNQE~G?/317@D"></arg> <arg name="Sonnenschutz" varid="e4$wYs!}sZ(97Ntc{#8["></arg> <arg name="Sollwert_Ausen" varid="n$-UbsRiqkE_y]xvHZa7"></arg> <arg name="Sollwert_Tages_Mx" varid="f6Zuw+zPCzy,GDPCh3Yt"></arg> </mutation> <field name="NAME">Tag-Nacht-Sonnenschutz</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="=7F0hr3]Eu-ECFY)nLu4"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="#^VCIFx2n.k|KoXUG02v"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="H*(wExJ5btJcuXt3M+3L"> <field name="VAR" id="hUs+O!WDNQE~G?/317@D">Sonne_Hoehe</field> </block> </value> <value name="B"> <block type="variables_get" id="+FGQ*;-WN8[Na9~[-,-s"> <field name="VAR" id="cBG[Sc-Lr=+/wMji6Q+5">Sollw_Tag</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="(!_%|.tV=0q%L:=Vz3Y8"> <field name="COMMENT">Sonne ist höher als Sollwert - Tag</field> <next> <block type="control" id="[|fKU[z7^ElhXDv7t#D#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="FeW()a@dNR~qwm/(^ajW"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="8gMi:qNpt|2CH*z%a|yN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Nacht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="$yg)(?@L.oP76!HWokF+"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="!pMt_eUsjDDp[sq|@(n3"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Tl,Prag061YS8-LXjmsp"> <field name="VAR" id="hUs+O!WDNQE~G?/317@D">Sonne_Hoehe</field> </block> </value> <value name="B"> <block type="variables_get" id=")H-4V22sbq4tG`cjV%,;"> <field name="VAR" id="oa|?U=#-qgiEcU{9xWG^">Sollw_Nacht</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="vZ*2S+!HZ{uV|of[`~Nh"> <field name="COMMENT">Sonne ist tiefer als Sollwert - Nacht</field> <next> <block type="control" id="VhHN??lt.MqHg^c5QM9Q"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Nacht</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="dJ3W?A1aIV%G?K*n;xQ!"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="AdZV]l)GU8JM2w-Scfi`"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=".-QG{s2BA*^Z[|gA6I0n"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="|HoN3_m#uK?m/u.JW?ca"> <field name="COMMENT">Sonnenschutz</field> <next> <block type="controls_if" id="0^rvh=%G!MvH7R,~,yF."> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="YMJZ|V6=K3$BpKa!DMqc" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id=")ivpZ1AO-fJ^8~M!F8BW" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="FWgE3RC+LzEK=)mE=bps"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="z~I~r3.#C:2~r)?E7s|d"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Ry)N1EV`4zD^3l0/@xB1"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Go)He~}U8^t)1+n[Z6yD"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="V|9klo7u[n0:|bNv0t%)"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Temp_HT_IST</field> </block> </value> <value name="B"> <block type="variables_get" id="]tCCQQ06jBW-?kO`T?-4"> <field name="VAR" id="n$-UbsRiqkE_y]xvHZa7">Sollwert_Ausen</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="{$IPD(D-IO;E-)XSto|}"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="K)9JvhS|(Vbudwsg{p4Y"> <field name="ATTR">val</field> <field name="OID">daswetter.0.NextHours.Location_1.Day_1.tempmax_value</field> </block> </value> <value name="B"> <block type="variables_get" id="]Bf!Bm`)}$pQakDYQ.d8"> <field name="VAR" id="f6Zuw+zPCzy,GDPCh3Yt">Sollwert_Tages_Mx</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="*pyN/-(lq+Y1jsNq|AbD"> <field name="COMMENT">Aktiviert</field> <next> <block type="variables_set" id="SS9dJ{5c!;Mali#`q)8e"> <field name="VAR" id="e4$wYs!}sZ(97Ntc{#8[">Sonnenschutz</field> <value name="VALUE"> <block type="logic_boolean" id="Bmvj^J=#ZNarl`pM,25F"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="1Dw3d3_x$l^uUzyfaMyI" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="]H)W*V?4%0C$z`~sTyNT"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="o5Ej4m[@f]K=X0Nn$9`A"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> </block> </value> <value name="B"> <block type="logic_boolean" id="HK|FqW^g3pqe(UAX}1E;"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="@3fG-CHR:cS9f:{qcC#j"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="3;!S6XIt|Pvk^Pcq+haA"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Temp_HT_IST</field> </block> </value> <value name="B"> <block type="variables_get" id="Kyl{6=ln8rKaad.AOR-J"> <field name="VAR" id="n$-UbsRiqkE_y]xvHZa7">Sollwert_Ausen</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="wwQ8)~m7=wg09q/Z7JjX"> <field name="COMMENT">Deaktiviert</field> <next> <block type="variables_set" id="RD?9Cc!~,]3cJ9-fbBgZ"> <field name="VAR" id="e4$wYs!}sZ(97Ntc{#8[">Sonnenschutz</field> <value name="VALUE"> <block type="logic_boolean" id="5IAnp~-)+U5$|4LV#X;p"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="e0J|im/}U@kiQNFN[qDx" collapsed="true" x="1213" y="162"> <mutation> <arg name="IstTemp" varid="RnzP{zXGcb2F8VZazfB#"></arg> <arg name="SollTemp" varid="Fvyy`YCxGa^`2tOI^`+3"></arg> <arg name="DeltaT" varid="Bn=(j{^r[1yvx307Wk4]"></arg> <arg name="Sonne_Winkel" varid="=J#Ezzw?S{,z@b`ctPjt"></arg> <arg name="Azi_Start_ZU" varid="gXlM;%VT:g}pAlCIm6zY"></arg> <arg name="Azi_Stop_ZU" varid="3FcdUi?FNb%:q2am/5J7"></arg> <arg name="Azi_AUF" varid=":8PN6@6:Zzw%^7s]2V`~"></arg> <arg name="Sollwert_Rollo_Schatten" varid="NdUt`Y+d/SRVGO+laY?P"></arg> <arg name="Sollwert_Rollo_Licht" varid=":5n2TwXqaa~*Nj/IGLZP"></arg> </mutation> <field name="NAME">EG-Wohnen</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="/e]cA_xI8,3YO#?(@NtI"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="s9:Bq58Y=#`v?x8#@rt}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="[Lq%bkACC3*4R6d+1m;W" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="lM1@7kS4iwz9P)cn9{1X"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="sN6[CzjV^_OqmsGZn5E6"> <field name="VAR" id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</field> </block> </value> <value name="B"> <block type="variables_get" id="C-y/,yU5fS+U3zKZO4g*"> <field name="VAR" id="gXlM;%VT:g}pAlCIm6zY">Azi_Start_ZU</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=":apCN^;}b7fsYo9n(LHr"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="Cs@flhIOv(PZY4iy!Sb-"> <field name="VAR" id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</field> </block> </value> <value name="B"> <block type="variables_get" id="hv(E=RG4qXa%@+]cyObt"> <field name="VAR" id="3FcdUi?FNb%:q2am/5J7">Azi_Stop_ZU</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="y+^k`JBK[FwIu-oP}:zB"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=";4j]ysvHyI}k@ju|S5L."> <field name="VAR" id="RnzP{zXGcb2F8VZazfB#">IstTemp</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="2}j`]OOw+q5Lq=.A}95S"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="tq]A8-DmFR1M$EWJ~ZOb"> <field name="VAR" id="Fvyy`YCxGa^`2tOI^`+3">SollTemp</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">4</field> </shadow> <block type="variables_get" id="sv(=^5gvfm+ig4lc8Vao"> <field name="VAR" id="Bn=(j{^r[1yvx307Wk4]">DeltaT</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="%S;Ro`X)X%|Y$U_~8!Nr"> <field name="COMMENT">Zu</field> <next> <block type="control" id="qkC#]cR4Muv%E#1${uT]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.R_Erker_Rollo_Sollwert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="?o?V^AOI%,+]bexzGNHR"> <field name="VAR" id="NdUt`Y+d/SRVGO+laY?P">Sollwert_Rollo_Schatten</field> </block> </value> <next> <block type="control" id="ZT6%BE$|~G)x|:-Ei`7F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Sonnenstand.Ost</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="j.G}g0/_X+lC|;6]`8Bq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="bPH[v9_ij=]v,~tYn47{"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="MpIe5P0-[@fr$ewz,O.;"> <field name="TEXT">Rollo SZ_Zu</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="i,oq`Fit;nI`f_C[ok(4" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="}}:c_aGu9v}m3Mp`Y$Kg"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="BEN*Hm|jV/t8{J6U6VtZ"> <field name="VAR" id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</field> </block> </value> <value name="B"> <block type="variables_get" id="9k6U6//xy2xVj+sIY@N4"> <field name="VAR" id=":8PN6@6:Zzw%^7s]2V`~">Azi_AUF</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="E;WGXn1s#?[zFiBFBF?J"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="@9c3KaXE$pp#ytr@Y`qo"> <field name="VAR" id="RnzP{zXGcb2F8VZazfB#">IstTemp</field> </block> </value> <value name="B"> <block type="variables_get" id="ie^a2l$,17)sTPn,iDrL"> <field name="VAR" id="Fvyy`YCxGa^`2tOI^`+3">SollTemp</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="}.Nj-IW)l!lc@6mlV/^J"> <field name="COMMENT">Auf</field> <next> <block type="control" id="g+iq@]ab-XD%-l]7$`=H"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.R_Erker_Rollo_Sollwert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="~Nh+^a;~kX-mG)e~m}hX"> <field name="VAR" id=":5n2TwXqaa~*Nj/IGLZP">Sollwert_Rollo_Licht</field> </block> </value> <next> <block type="control" id="zYoU|80[Xzf%O)87:zDj"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Sonnenstand.Ost</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="@vw=O22=0f({Ioq/VI@S"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="O$xTDF9L$[^LQbL9L1PN"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="g6V)2@r8AED$${EP#f)Y"> <field name="TEXT">Rollo SZ_Auf</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>

202

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge