Aktuelle API Beschreibung von REOLINK:
https://community.reolink.com/topic/4196/reolink-camera-api-user-guide_v8-updated-in-april-2023
NEWS
Best posts made by kunigunde
-
RE: [Neuer Adapter] Reolink Kamera
-
RE: Betriebsstundenzähler / Laufzeit / Start
Hallo, ich habe dein Blockly genutzt und etwas angepasst.
Danke für dein Script.
Jetzt sind nur noch 2 Datenpunkte anzupassen (im Script wird dann nur noch "Trigger_State" genutzt, und außerdem stehen h,m,s zur Verfügung.
Desweiteren ist jetzt auch ein Durchschnitt integriert.
(P.S. unnütze Variablen habe ich auch entfernt.)
Screenshot Blockly:
Screenshot Node-red Dashboard:
Stelle wo der Datenpunkt welcher "triggert" geändert wird:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="`._J%HrwB/s_.vuyh?N6">sek</variable> <variable type="undefined" id="Laufzeit_Aktuell_s">Laufzeit_Aktuell_s</variable> <variable type="" id="WTs)G/fB4r9Mv:`m+3OP">gesamt_sek</variable> <variable type="" id="5]288,z*1HXMf%~PfJp4">gesamt_schnitt_sek</variable> </variables> <block type="procedures_defcustomnoreturn" id="W-nXq2.wZ=32mxVz/7er" x="-812" y="-862"> <mutation statements="false"></mutation> <field name="NAME">Objekte_anlegen</field> <field name="SCRIPT">Y3JlYXRlU3RhdGUoJ1B1bXBlLldlcnRlLkFrdHVlbGxfcycsIDAsIHsgbmFtZTogJ0FrdHVlbGxfcycsIGRlc2M6ICdBa3R1ZWxsX3MnLCB0eXBlOiAnbWl4ZWQnLCB1bml0OiAncycsIG1pbjogJzAnLCBtYXg6ICc2MCcscmVhZDogdHJ1ZSwgd3JpdGU6IHRydWUgfSk7IA0KY3JlYXRlU3RhdGUoJ1B1bXBlLldlcnRlLkFrdHVlbGxfbScsIDAsIHsgbmFtZTogJ0FrdHVlbGxfbScsIGRlc2M6ICdBa3R1ZWxsX20nLCB0eXBlOiAnbWl4ZWQnLCB1bml0OiAnbScsIG1pbjogJzAnLCBtYXg6ICc2MCcscmVhZDogdHJ1ZSwgd3JpdGU6IHRydWUgfSk7IA0KY3JlYXRlU3RhdGUoJ1B1bXBlLldlcnRlLkFrdHVlbGxfaCcsIDAsIHsgbmFtZTogJ0FrdHVlbGxfaCcsIGRlc2M6ICdBa3R1ZWxsX2gnLCB0eXBlOiAnbWl4ZWQnLCB1bml0OiAnaCcsIG1pbjogJzAnLCBtYXg6ICcxMDAwMDAwJyxyZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSB9KTsgDQoNCmNyZWF0ZVN0YXRlKCdQdW1wZS5XZXJ0ZS5MZXR6dGVfTGF1ZnplaXRfcycsIDAsIHsgbmFtZTogJ0xldHp0ZV9MYXVmemVpdF9zJywgZGVzYzogJ0xldHp0ZV9MYXVmemVpdF9zJywgdHlwZTogJ21peGVkJywgdW5pdDogJ3MnLCBtaW46ICcwJywgbWF4OiAnNjAnLHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlIH0pOyANCmNyZWF0ZVN0YXRlKCdQdW1wZS5XZXJ0ZS5MZXR6dGVfTGF1ZnplaXRfbScsIDAsIHsgbmFtZTogJ0xldHp0ZV9MYXVmemVpdF9tJywgZGVzYzogJ0xldHp0ZV9MYXVmemVpdF9tJywgdHlwZTogJ21peGVkJywgdW5pdDogJ20nLCBtaW46ICcwJywgbWF4OiAnNjAnLHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlIH0pOyANCmNyZWF0ZVN0YXRlKCdQdW1wZS5XZXJ0ZS5MZXR6dGVfTGF1ZnplaXRfaCcsIDAsIHsgbmFtZTogJ0xldHp0ZV9MYXVmemVpdF9oJywgZGVzYzogJ0xldHp0ZV9MYXVmemVpdF9oJywgdHlwZTogJ21peGVkJywgdW5pdDogJ2gnLCBtaW46ICcwJywgbWF4OiAnMTAwMDAwMCcscmVhZDogdHJ1ZSwgd3JpdGU6IHRydWUgfSk7IA0KDQpjcmVhdGVTdGF0ZSgnUHVtcGUuV2VydGUuTGF1ZnplaXRfU3VtbWVfcycsIDAsIHsgbmFtZTogJ0xhdWZ6ZWl0X1N1bW1lX3MnLCBkZXNjOiAnU3VtbWVfcycsIHR5cGU6ICdtaXhlZCcsIHVuaXQ6ICdzJywgbWluOiAnMCcsIG1heDogJzYwJyxyZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSB9KTsgDQpjcmVhdGVTdGF0ZSgnUHVtcGUuV2VydGUuTGF1ZnplaXRfU3VtbWVfbScsIDAsIHsgbmFtZTogJ0xhdWZ6ZWl0X1N1bW1lX20nLCBkZXNjOiAnU3VtbWVfbScsIHR5cGU6ICdtaXhlZCcsIHVuaXQ6ICdtJywgbWluOiAnMCcsIG1heDogJzYwJyxyZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSB9KTsgDQpjcmVhdGVTdGF0ZSgnUHVtcGUuV2VydGUuTGF1ZnplaXRfU3VtbWVfaCcsIDAsIHsgbmFtZTogJ0xhdWZ6ZWl0X1N1bW1lX2gnLCBkZXNjOiAnU3VtbWVfaCcsIHR5cGU6ICdtaXhlZCcsIHVuaXQ6ICdoJywgbWluOiAnMCcsIG1heDogJzEwMDAwMDAnLHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlIH0pOyANCg0KY3JlYXRlU3RhdGUoJ1B1bXBlLldlcnRlLkR1cmNoc2Nobml0dF9zJywgMCwgeyBuYW1lOiAnRHVyY2hzY2huaXR0X3MnLCBkZXNjOiAnU2Nobml0dF9zJywgdHlwZTogJ21peGVkJywgdW5pdDogJ3MnLCBtaW46ICcwJywgbWF4OiAnNjAnLHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlIH0pOyANCmNyZWF0ZVN0YXRlKCdQdW1wZS5XZXJ0ZS5EdXJjaHNjaG5pdHRfbScsIDAsIHsgbmFtZTogJ0R1cmNoc2Nobml0dF9tJywgZGVzYzogJ1NjaG5pdHRfbScsIHR5cGU6ICdtaXhlZCcsIHVuaXQ6ICdtJywgbWluOiAnMCcsIG1heDogJzYwJyxyZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSB9KTsgDQpjcmVhdGVTdGF0ZSgnUHVtcGUuV2VydGUuRHVyY2hzY2huaXR0X2gnLCAwLCB7IG5hbWU6ICdEdXJjaHNjaG5pdHRfaCcsIGRlc2M6ICdTY2huaXR0X2gnLCB0eXBlOiAnbWl4ZWQnLCB1bml0OiAnaCcsIG1pbjogJzAnLCBtYXg6ICcxMDAwMDAwJyxyZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSB9KTsgDQoNCmNyZWF0ZVN0YXRlKCdQdW1wZS5XZXJ0ZS5BbnphaGxfU3RhcnRzJywgMCwgeyBuYW1lOiAnQW56YWhsX1N0YXJ0cycsIGRlc2M6ICdBbnphaGxfU3RhcnRzJywgdHlwZTogJ21peGVkJywgbWluOiAnMCcsIG1heDogJzEwMDAwMDAnLHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlIH0pOw0KDQoNCmNyZWF0ZVN0YXRlKCdQdW1wZS5SZXNldCcsIDAsIHsgbmFtZTogJ1Jlc2V0JywgZGVzYzogJ1Jlc2V0JywgdHlwZTogJ2Jvb2xlYW4nLCBkZWY6IGZhbHNlLCByZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSB9KTsgDQpjcmVhdGVTdGF0ZSgnUHVtcGUuVHJpZ2dlcl9TdGF0ZScsIDAsIHsgbmFtZTogJ1RyaWdnZXJfU3RhdGUnLCBkZXNjOiAnU3RhdGUnLCB0eXBlOiAnYm9vbGVhbicscmVhZDogdHJ1ZSwgd3JpdGU6IHRydWUgfSk7IA0K</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on" id="mrzT0$K(*i}mn@!iz~-:" x="-412" y="-862"> <field name="OID">hm-rpc.0.QEQ1896053.1.STATE</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="j${Go*V+/]9nQEQb)Tan"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Trigger_State</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id=")I},{3{:g9~Tuy-=g(sE"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.QEQ1896053.1.STATE</field> </block> </value> <next> <block type="controls_if" id="A*{|)KbnzDg,]Rn*q?S["> <value name="IF0"> <block type="logic_compare" id="cxP7E:xk!O3/:)]{-_CA"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="?$}?^kRoZ7MLw{3Ved-F"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Trigger_State</field> </block> </value> <value name="B"> <block type="logic_boolean" id="_`mcB7p*P/[V//1~~HUw"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="^zfNT4I`+c;l.4SPrc)U"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Anzahl_Starts</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="a2CCbCXYG]s~,J9qN]ib"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="[0ut#Lx,?9IHBa~QKXlm"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Anzahl_Starts</field> </block> </value> <value name="B"> <shadow type="math_number" id="}?P0!jT=]9hNU{-xT{q/"> <field name="NUM">1</field> </shadow> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="procedures_callcustomnoreturn" id="HF#.W1f%#+x02SpI-*hb" x="-812" y="-812"> <mutation name="Objekte_anlegen"></mutation> </block> <block type="comment" id="%^j5-uBopS=8V9a*eIQ3" x="-262" y="-837"> <field name="COMMENT">Hier anpassen</field> </block> <block type="comment" id="VkGr5cUgwT?}d(txPKkf" x="-12" y="-787"> <field name="COMMENT">Hier anpassen</field> </block> <block type="comment" id="rtC,x~r%k~3IwH9+?anM" x="-837" y="-687"> <field name="COMMENT">Logik</field> <next> <block type="on_ext" id="%mv~N?|o[O{KJGWFDSIB"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="RtrfDb=-#wtZrjE$FCHX"> <field name="oid">javascript.0.Pumpe.Trigger_State</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="jb^yk|8anDUd]jV8f-k!"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="`iovX:O-vmVZr+dwf#W+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="POi}N*Uw?T(}9gD-@ou$"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Trigger_State</field> </block> </value> <value name="B"> <block type="logic_boolean" id="R7Z~zD).!PPUx8xdhP^?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="6Y?^z|vm[[MOPNwV17__"> <mutation name="Func_Timer"></mutation> <next> <block type="debug" id="^3#h4tF;yAPRR{^.f.0S"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=")K~XOh^S/bgd2p,o?!v%"> <field name="TEXT">Timer gestartet</field> </shadow> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="XhGFs7DmyY!NcyN0E~kt"> <field name="NAME">Laufzeit_Aktuell_s</field> <next> <block type="update" id="KY90+B/-c6=BaiMcgkZn"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Letzte_Laufzeit_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="k]g$b6bfo7S]l@h:6Cz="> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> </block> </value> <next> <block type="update" id="k5s1*6UKz@8qY2dF;d${"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Letzte_Laufzeit_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="B8*b__x^sFOFl-ysZr1D"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> </block> </value> <next> <block type="update" id="zH|J)@7DOsaX5u`sX|`#"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Letzte_Laufzeit_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="*hy5.yWr2^G]qiT^dIqS"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_h</field> </block> </value> <next> <block type="update" id="H_g)|16phhN71`H(FfVS"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="*mIO#E*!}!|Su1FI1)#9"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="c}e~mH.Hgml{M{jolpBG"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Dbr|d{r%BtSpX%NWY|93"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="k2iQG|%IjQ`bI#b6v^sI"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="=9V9p*56%30IE.6#V9HO"> <field name="NUM">0</field> </block> </value> <next> <block type="debug" id="/+{*[kR*O^f9gT572CCp"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="iTT]MSB?LDC[RG5qZpw0"> <field name="TEXT">Timer gestoppt</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="Q9YfA6]Ded/p{|_o(0Kp" x="-37" y="-612"> <field name="NAME">Func_Timer</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="timeouts_setinterval" id="~WVUtN`I{IbtuL}^58k4"> <field name="NAME">Laufzeit_Aktuell_s</field> <field name="INTERVAL">1</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="comment" id="8_duLr-.(aEikHKSr?gh"> <field name="COMMENT">Aktueller Zähler</field> <next> <block type="update" id=")v)?5CGQV#`0I)$W-}N+"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="v+Dqx;*+TdX4oUsrUFxd"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="lNkb)jISQP2_fqNyO9jH"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> </block> </value> <value name="B"> <shadow type="math_number" id="/6-TEs0ne!3+)JjBV])?"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="v:RR]X_q[9RRNNL+qMca"> <value name="IF0"> <block type="logic_compare" id="r=^bXvfkpa9J@O.:S}NJ"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="#70R^Hmq3k3LM1mp9Ns8"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> </block> </value> <value name="B"> <block type="math_number" id="N}y6/3hw_RLPB$f+{,:/"> <field name="NUM">59</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="/sag{UZ8!-M(pq)J5ZYD"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="R3g=Ny@xe+)D#4/#62Q("> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="^Ed;2/-$Wy,,E+vqO~z="> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> </block> </value> <value name="B"> <shadow type="math_number" id="1)O_%:_pImADbf#*k;yu"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="update" id="*((KC:`hMf@,ebW|EyD*"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="VU7,9uHv!/,9?mFd?/D+"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="/c:FLWUC~sI|[Ptz255Z"> <value name="IF0"> <block type="logic_compare" id="bpAx84n/S8yFXl8o=oTG"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="GLvLShC=oSo$%%dYg,v9"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> </block> </value> <value name="B"> <block type="math_number" id="uw9-!FTZ#V4$mGl`zeT^"> <field name="NUM">59</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="8Ax*H!e^{G,HwZm{`?L]"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="T!fB-3?DB%1isY++:##~"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="b/JqwbGnQ*4:u}5X3^iV"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_h</field> </block> </value> <value name="B"> <shadow type="math_number" id="C.{d~;2ejK.c/t1+]*b?"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="update" id="~@M$2,:@kDlUguZ9w^Kl"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="wpg7/%C1sy);Cko,J9fy"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="k(fxQUp?GN%1S9v9%Qa:"> <field name="COMMENT">Summe Zähler</field> <next> <block type="update" id="^n~j*wboqPv})(U1:w}h"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="e0=QK]-v/.3XE7BniXNO"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="L2J`q[?$7eJ,}@%~5%%*"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_s</field> </block> </value> <value name="B"> <shadow type="math_number" id="9(dr=|bcAX_*I$Ndv}!3"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="Ct2:lOu!pdOuE?xX-f$*"> <value name="IF0"> <block type="logic_compare" id="q`B!!Tjb8FO2_(eO|4s$"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="8_,iZ:)tA^9Pz6d-Vrii"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_s</field> </block> </value> <value name="B"> <block type="math_number" id="W.d/mA~aNq;F)gNW_Z4C"> <field name="NUM">59</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="?m_[5Ne{;/!E-U%eLzRJ"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="m/F1W9d]iZ|)~])]G:/-"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id=":y5YhPvv}?-fXPwc318o"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_m</field> </block> </value> <value name="B"> <shadow type="math_number" id="#aRbaqLZ}m|zzB(!SK+w"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="update" id="{z_7=mnFsj|@hm+7g,JG"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Fub,U5u2[l6r-(Pp^J!f"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="v-HDIq0.Kesq,nZd%UsG"> <value name="IF0"> <block type="logic_compare" id="(9PrCfgmC3M*i0+xvqE`"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="y6z1|;VC;MHeyx{XOXqk"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_m</field> </block> </value> <value name="B"> <block type="math_number" id="UP^){TE?}qK_}cLQio%4"> <field name="NUM">59</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="z(?YCS1v6MdLoa]Hb/AT"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="k$`!I2_Eqiruy!muTLVs"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="r:mU8()v|ar|MP.(;F!y"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_h</field> </block> </value> <value name="B"> <shadow type="math_number" id="Mp#F0kxnMFo4H}*k4Sv4"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="update" id="=whO,B%EN(*bkp)u`Woq"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=":y?:9I5=%X!))6-8zhQ)"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="~Ju$q7Xgb?^Rw5E;U:ei"> <field name="COMMENT">Durchschnitt errechnen</field> <next> <block type="variables_set" id="~M}PIB`#cgtic|D]17WS"> <field name="VAR" id="WTs)G/fB4r9Mv:`m+3OP" variabletype="">gesamt_sek</field> <value name="VALUE"> <block type="math_number" id="iNANOi=9?%l5Zz)hjT9r"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="BO{)IrDB]FZ[/A0WK0Vk"> <field name="VAR" id="WTs)G/fB4r9Mv:`m+3OP" variabletype="">gesamt_sek</field> <value name="VALUE"> <block type="math_arithmetic" id="D|/FCqyVulKHknu6M_*X"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="[]Wj9b*//!k[a8{*%R`z"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_h</field> </block> </value> <value name="B"> <shadow type="math_number" id="s2lFJ)I;J6a0qe@z3hCa"> <field name="NUM">3600</field> </shadow> </value> </block> </value> <next> <block type="math_change" id="ez#9WulX3)-{k)kzjf%k"> <field name="VAR" id="WTs)G/fB4r9Mv:`m+3OP" variabletype="">gesamt_sek</field> <value name="DELTA"> <shadow type="math_number" id="5D`89jsax92)ItK@rtme"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="ZU*zoE1`!cu-$2x#eAT_"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="get_value" id="}sxFF,tS0uF-]5lJ3u06"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_m</field> </block> </value> <value name="B"> <shadow type="math_number" id="H/OoK4#NW%:ZESsd%DW@"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="math_change" id="o-jh3@J,N`yyx`fK:nMb"> <field name="VAR" id="WTs)G/fB4r9Mv:`m+3OP" variabletype="">gesamt_sek</field> <value name="DELTA"> <shadow type="math_number" id="5D`89jsax92)ItK@rtme"> <field name="NUM">1</field> </shadow> <block type="get_value" id="=zaw%Tj,QjQ!m4FgCr{1"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_s</field> </block> </value> <next> <block type="variables_set" id="#/g*k_Sa!|::27K}Oswv"> <field name="VAR" id="5]288,z*1HXMf%~PfJp4" variabletype="">gesamt_schnitt_sek</field> <value name="VALUE"> <block type="math_arithmetic" id="Y.5yH8_lxVe:-2=6~a7D"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="2.4zwts3h%uDHtL{]8H*"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="r;#)Owv7{/1ggZDuJ4R4"> <field name="VAR" id="WTs)G/fB4r9Mv:`m+3OP" variabletype="">gesamt_sek</field> </block> </value> <value name="B"> <shadow type="math_number" id="{rQU6,sO@l4T;^}|LEEK"> <field name="NUM">3600</field> </shadow> <block type="get_value" id="k?1(FmPCLlG)m*h)f0j/"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Werte.Anzahl_Starts</field> </block> </value> </block> </value> <next> <block type="update" id="enjTc`WJpoQ0)gk]lx5H"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Durchschnitt_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="62Klb,:y])1pJ(Lj%~dY"> <mutation name="func_gesamt_s_zu_s"> <arg name="sek"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="-u$|K(36k0R`#;ZNo5#C"> <field name="VAR" id="5]288,z*1HXMf%~PfJp4" variabletype="">gesamt_schnitt_sek</field> </block> </value> </block> </value> <next> <block type="update" id="-ts%*aptg?8vXy.]DnwK"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Durchschnitt_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="3,3H4{85j1PBC*Ji+u3x"> <mutation name="func_gesamt_s_zu_m"> <arg name="sek"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="N0N9iw84C+dcGi`ojosy"> <field name="VAR" id="5]288,z*1HXMf%~PfJp4" variabletype="">gesamt_schnitt_sek</field> </block> </value> </block> </value> <next> <block type="update" id="Y|ODWg/F:arz@Mr_DDS$"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Durchschnitt_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="V*XnYQEoHSHmJ8x4t654"> <mutation name="func_gesamt_s_zu_h"> <arg name="sek"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id=":BP=O}wCLTc[{52sd9mK"> <field name="VAR" id="5]288,z*1HXMf%~PfJp4" variabletype="">gesamt_schnitt_sek</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="comment" id="ZqDn};jgez6!$_F1Vqos" x="-837" y="-37"> <field name="COMMENT">RESET Alle Zähler</field> <next> <block type="on_ext" id="]/@.4.5e,@L#kM:3{;vc"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="p9-N0w{fIg:J/q?nKaqi"> <field name="oid">javascript.0.Pumpe.Reset</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="id]|AgZU|3Uku_V]y4(V"> <value name="IF0"> <block type="logic_compare" id=",2t8e=0=|@lCUvcs[4?X"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="bs%~ugm/x!|)$a9HLJ]7"> <field name="ATTR">val</field> <field name="OID">javascript.0.Pumpe.Reset</field> </block> </value> <value name="B"> <block type="logic_boolean" id="H0ByN9LiE[YR:=m:0!V-"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="/Di4!_.kVbFe5f(kg@/l"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="PUglxf#a=bB{/MsIcvuL"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id=")apYIhp4wszeo{D}],gz"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="iH(pTpz[RB2=QJUu;Y6D"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="(?S^;ByA!L7`kcV{N+#1"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Laufzeit_Summe_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="6./-!y81Yw)WC1811vJ*"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="p~|@bQ)5yOkfN3VmA^Di"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Anzahl_Starts</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+iP*rHBo^6T;NWOnk[+!"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id=",0jT2$ko*M6QxwEKZ~q%"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="GeSr$Vkc~+k_S[058(D2"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="XAY!~pzLR~?YbY8q*Nv*"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="nr-mod+*oEr-rz%A/+|,"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="eBz5ZPFuwLONPf4zHZrH"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Aktuell_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="/eR#Se@[A-TxxoLIDD+Y"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="%H0GPQWSO@6E,vjxL#4Y"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Letzte_Laufzeit_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="~,qydQiq!k%6Y_z;X=vR"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="ejX~b]u@j0s_PA~Bg_6t"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Letzte_Laufzeit_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="i,;Z)-;0qDIAo{`b[8;A"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="[3x8:ZF8sHjR~,6#)}j5"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Letzte_Laufzeit_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="7Kq/t~Lzt%3d5F!8]Bje"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="02_sMkA]1gg@dYnj8FU@"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Durchschnitt_h</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="sG!06O/[J[a@eNe}a][W"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="H;41#!}l8F*8$g4/^eDT"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Durchschnitt_m</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="6cFF_!rVe{)I*?{^@yVS"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="/+e=bc|[2RrUrEyJzB~T"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Werte.Durchschnitt_s</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="?Fb8z{o6$}r$ucsng8-o"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="dfT;s/,.F-qjntgC+gW$"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pumpe.Reset</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="w1gy;Sx+`?BE-GKaFEKB"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> <block type="procedures_defcustomreturn" id="hk|~[`+!@2a1hH/A2i`." x="-87" y="563"> <mutation statements="false"> <arg name="sek" varid="`._J%HrwB/s_.vuyh?N6"></arg> </mutation> <field name="NAME">func_gesamt_s_zu_h</field> <field name="SCRIPT">ICAgIHZhciBzZWt1bmRlbiA9IHNlayU2MDsNCiAgICB2YXIgcmVzdF9taW4gPSBzZWslMzYwMCAtc2VrdW5kZW47DQogICAgdmFyIG1pbnV0ZW4gPSByZXN0X21pbi82MDsNCiAgICB2YXIgc3R1bmRlbiA9IChzZWsgLSByZXN0X21pbiAtIHNla3VuZGVuKS8zNjAwOw0KDQpyZXR1cm4gc3R1bmRlbjs=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomreturn" id="QsH$QMFAkJxdsWpk^h;f" x="-87" y="588"> <mutation statements="false"> <arg name="sek" varid="`._J%HrwB/s_.vuyh?N6"></arg> </mutation> <field name="NAME">func_gesamt_s_zu_m</field> <field name="SCRIPT">ICAgIHZhciBzZWt1bmRlbiA9IHNlayU2MDsNCiAgICB2YXIgcmVzdF9taW4gPSBzZWslMzYwMCAtc2VrdW5kZW47DQogICAgdmFyIG1pbnV0ZW4gPSByZXN0X21pbi82MDsNCg0KcmV0dXJuIG1pbnV0ZW47</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomreturn" id="hnh!@5*[7@Pl/?YI^20l" x="-87" y="613"> <mutation statements="false"> <arg name="sek" varid="`._J%HrwB/s_.vuyh?N6"></arg> </mutation> <field name="NAME">func_gesamt_s_zu_s</field> <field name="SCRIPT">ICAgIHZhciBzZWt1bmRlbiA9IHNlayU2MDsNCnJldHVybiBzZWt1bmRlbi50b0ZpeGVkKDApOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>
Latest posts made by kunigunde
-
RE: Neuer Adapter EMS-ESP für Bosch Heizungen
@tp1de
ich habe den emsesp Adapter mit aktiviertem km Gateway am laufen, und dieser schreibt dann die werte zur Heizung.
Dies funktioniert bei mir auch, bis auf das ab und an die Kommunikation zu klemmen scheint.
Ich bräuchte Ideen, wie ich sicherstellen kann, das es wirklich bei der Heizung angekommen ist nachdem ich mit Node-Red das command gesendet habe.
Adapter Config:
EMSESP: -
RE: Neuer Adapter EMS-ESP für Bosch Heizungen
Hallo,
ich suche Tester für das Zusammenspiel Buderus->kmxx->emsesp->NodeRed.Ich habe leider bisher noch nichts bestehendes gefunden, was es ermöglicht den Zeitplan komfortabel zu ändern.
Dies geht entweder über das Bedienpult, oder über die APP.
Ich wollte es aber über das Node-Red Dashboard anzeigen und ändern können.Dies ist nun mein 1. Versuch, und es scheint bei mir zu funktionieren.
Ok, manchmal kann der EmsEsp nicht schreiben.....
Aber dazu suche ich ja Tester, welche vielleicht Ideen haben, wie man dies prozesssicherer gestalten kann.Als extra node-module wird "node-red-contrib-ui-time-scheduler" benutzt.
Als Datei zum importieren: flows.json
als code zum kopieren: -
RE: Test Adapter ryd (Tanktaler) v0.3.x
Ryd Tanktaler wurde eingestellt ABER:
Man kann den Ryd Stecker jetzt auch weiter nutzen, wenn man einen Traccar Server am laufen hast.
In IOBroker dann dazu den Traccar Adapter hinzufügen, dann hat man auch wieder die Daten.
Anleitung auf Github -
RE: [Neuer Adapter] Reolink Kamera
Aktuelle API Beschreibung von REOLINK:
https://community.reolink.com/topic/4196/reolink-camera-api-user-guide_v8-updated-in-april-2023 -
RE: LoRaWAN GPS-Tracker 2 Traccar
@j_paul
hast du einen export deines Blockly scriptes? -
ems-esp (km200) Schaltprogramm darstellen/später auch ändern
Hallo,
ich suche jemanden, welcher eine Buderus bzw km200 benutzt und auch node-red als HMI/VISU.
Gibt es bereits Lösungen die km200 Zeiteinstellung extern anzupassen ohne App bzw Wandregler?
Gibt es bereits Lösungen um das Zeitprogramm auf Node-Red anzuzeigen?was ich bereits erstellt habe:
- Die Daten von der Heizung splitten in einzelne Tage und lesbare Zeit integrieren:
- eine Tabelle erstellt, mit "checkboxen" welche zurück an Node-red gesendet werden können:
Jetzt würde ich gern als erstes die Checkboxen bereits als "checked" setzen, was im Moment von km200 aktiv ist.
Ich bekomme jedoch die Daten nicht in die Tabelle integriert.Falls jemand die Sache mal selbst testen möchte hier mein Flow:
(Aufruf der Seite: http://IP_NODE_RED:1880/site_km200_switchProgramm)
[{"id":"d838b487d73a043b","type":"tab","label":"Flow 3","disabled":false,"info":"","env":[]},{"id":"61626a1ae3ab6608","type":"http in","z":"d838b487d73a043b","name":"","url":"/site_km200_switchProgramm","method":"get","upload":false,"swaggerDoc":"","x":160,"y":280,"wires":[["35ea212cb42c1ea5"]]},{"id":"d6a2d51ef6a46008","type":"http in","z":"d838b487d73a043b","name":"","url":"/sitepost","method":"post","upload":false,"swaggerDoc":"","x":110,"y":520,"wires":[["af641c1594ded66c","e65a9a92699f98d9"]]},{"id":"35ea212cb42c1ea5","type":"function","z":"d838b487d73a043b","name":"msg.url = \"sitepost\";","func":"msg.url = \"sitepost\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":280,"wires":[["b0f75ca5e0cc5b79"]]},{"id":"af641c1594ded66c","type":"debug","z":"d838b487d73a043b","name":"mysitepost","active":true,"tosidebar":true,"console":false,"complete":"payload","statusVal":"","statusType":"auto","x":760,"y":520,"wires":[]},{"id":"0bb50d25790c1461","type":"http response","z":"d838b487d73a043b","name":"","x":780,"y":480,"wires":[]},{"id":"b0f75ca5e0cc5b79","type":"template","z":"d838b487d73a043b","name":"msg.payload.script (JavaScript)","field":"payload.script","fieldType":"msg","format":"javascript","syntax":"plain","template":"$(document).ready(function(e) {\n \n $(\"form[ajax=true]\").submit(function(e) {\n \n e.preventDefault();\n \n var form_data = $(this).serialize();\n var form_url = $(this).attr(\"action\");\n var form_method = $(this).attr(\"method\").toUpperCase();\n \n $(\"#loadingimg\").show();\n \n $.ajax({\n url: form_url, \n type: form_method, \n data: form_data, \n cache: false,\n success: function(returnhtml){ \n $(\"#result\").html(returnhtml); \n $(\"#loadingimg\").hide(); \n } \n }); \n }); \n});","x":450,"y":320,"wires":[["86bbb475651a31b5"]]},{"id":"a565b23f2eacf77c","type":"http response","z":"d838b487d73a043b","name":"","x":1110,"y":360,"wires":[]},{"id":"97dc905525f2ab56","type":"template","z":"d838b487d73a043b","name":"msg.payload (HTML)","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<html>\n <head>\n <meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">\n <meta charset=\"utf-8\">\n <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js\"></script>\n <style>{{{payload.style}}}</style>\n </head>\n\n<div>\n <form method=\"post\" action=\"/{{url}}\" ajax=\"true\">\n\n<table cellpadding=\"0\" cellspacing=\"0\" id=\"our_table\" border=\"1\">\n <thead>\n <tr>\n <th></th>\n <th bgcolor=\"grey\">0</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">1</th>\n <th></th>\n <th></th>\n <th></th> \n <th bgcolor=\"grey\">2</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">3</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">4</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">5</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">6</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">7</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">8</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">9</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">10</th>\n <th></th>\n <th></th>\n <th></th> \n <th bgcolor=\"grey\">11</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">12</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">13</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">14</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">15</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">16</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">17</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">18</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">19</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">20</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">21</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">22</th>\n <th></th>\n <th></th>\n <th></th>\n <th bgcolor=\"grey\">23</th>\n <th></th>\n <th></th>\n <th></th> \n </tr>\n </thead>\n <tbody>\n {{{payload.TableLines}}}\n </tbody>\n</table>\n <input type=\"submit\" value=\"Submit\">\n </form>\n</div>\n<div>\n <span id=\"result\"></span>\n</div>\n\n</body>\n</html>\n<script>{{{payload.script}}}</script>","x":940,"y":360,"wires":[["a565b23f2eacf77c"]]},{"id":"28a8821ccf9c863f","type":"function","z":"d838b487d73a043b","name":"return msg.payload to client","func":"msg.payload = 'msg.payload: '+msg.payload;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":480,"wires":[["0bb50d25790c1461"]]},{"id":"367f7d041d7b4d09","type":"comment","z":"d838b487d73a043b","name":"Inject msg object properties","info":"","x":440,"y":240,"wires":[]},{"id":"e65a9a92699f98d9","type":"json","z":"d838b487d73a043b","name":"","x":320,"y":480,"wires":[["28a8821ccf9c863f"]]},{"id":"42cb554109f99a60","type":"comment","z":"d838b487d73a043b","name":"Website (http://IP_NODE_RED:1880/site_km200_switchProgramm)","info":"","x":260,"y":200,"wires":[]},{"id":"7120e9d144e8d9d7","type":"comment","z":"d838b487d73a043b","name":"Form Submission","info":"","x":120,"y":460,"wires":[]},{"id":"86bbb475651a31b5","type":"template","z":"d838b487d73a043b","name":"msg.payload.style (CSS)","field":"payload.style","fieldType":"msg","format":"html","syntax":"mustache","template":"input[type=submit] {\n //width: 100%;\n background-color: #4CAF50;\n color: white;\n padding: 14px 20px;\n margin: 8px 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\ninput[type=submit]:hover {\n background-color: #45a049;\n}\n//##############\n.checkbox_color {\ndisplay: inline-flex;\ncursor: pointer;\nposition: relative;\n}\n\n.checkbox_color > input {\nheight: 12px;\nwidth: 10px;\n-webkit-appearance: none;\n-moz-appearance: none;\n-o-appearance: none;\nappearance: none;\noutline: none;\ntransition-duration: 0.3s;\nbackground-color: blue;\ncursor: pointer;\n}\n\n.checkbox_color > input:checked {\nheight: 25px;\nwidth: 10px;\nbackground-color: red;\n}","x":430,"y":360,"wires":[["68cc99075a593cf0"]]},{"id":"1e9bdf58af557a76","type":"ioBroker get","z":"d838b487d73a043b","name":"ems-esp.0.heatingCircuits.hc1.switchPrograms.A","topic":"ems-esp.0.heatingCircuits.hc1.switchPrograms.A","attrname":"Data","payloadType":"value","x":370,"y":120,"wires":[["aea39cfd99b6bb61"]]},{"id":"aea39cfd99b6bb61","type":"json","z":"d838b487d73a043b","name":"","property":"Data","action":"obj","pretty":false,"x":630,"y":120,"wires":[["da1467957105598f","95f290e946f0b169"]]},{"id":"da1467957105598f","type":"function","z":"d838b487d73a043b","name":"function trenne Tage + hh:mm aus time","func":"var array = msg.Data;\nvar Mo = []\nvar Tu = []\nvar We = []\nvar Th = []\nvar Fr = []\nvar Sa = []\nvar Su = [] \nvar Week = []\n\narray.forEach(function(n) {\n var timeHH = n.time / 60;\n timeHH = timeHH | 0;\n timeHH = (\"00\" + timeHH).slice(-2);\n\n var timeMM = (n.time - (timeHH * 60));\n timeMM = (\"00\" + timeMM).slice(-2);\n\n var inhalt = {\n \"dayOfWeek\": n.dayOfWeek,\n \"setpoint\": n.setpoint,\n \"time\": n.time, \n \"zeit\": timeHH + \":\" + timeMM\n }\n\n if (n.dayOfWeek == \"Mo\")\n Mo.push(inhalt) \n if (n.dayOfWeek == \"Tu\")\n Tu.push(inhalt)\n if (n.dayOfWeek == \"We\") \n We.push(inhalt)\n if (n.dayOfWeek == \"Th\")\n Th.push(inhalt)\n if (n.dayOfWeek == \"Fr\")\n Fr.push(inhalt)\n if (n.dayOfWeek == \"Sa\")\n Sa.push(inhalt)\n if (n.dayOfWeek == \"Su\")\n Su.push(inhalt)\n})\n\nWeek.push({\n \"Mo\": Mo,\n \"Tu\": Tu,\n \"We\": We,\n \"Th\": Th, \n \"Fr\": Fr,\n \"Sa\": Sa,\n \"Su\": Su, \n})\n\nreturn [ \n { Data: Mo },\n { Data: Tu }, \n { Data: We }, \n { Data: Th }, \n { Data: Fr }, \n { Data: Sa }, \n { Data: Su }, \n { Data: Week }\n ];","outputs":8,"noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":120,"wires":[["eb5b352c30153c20"],[],[],[],[],[],["c8f6a82418e33793"],["dd2c80f8a061a6f7"]]},{"id":"432ddfb11f3bab4a","type":"comment","z":"d838b487d73a043b","name":"Ausgabe der Programme nach Tagen","info":"","x":850,"y":40,"wires":[]},{"id":"467b268b95fa4e9c","type":"inject","z":"d838b487d73a043b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":120,"wires":[["1e9bdf58af557a76"]]},{"id":"8132fdf457b8716c","type":"comment","z":"d838b487d73a043b","name":"IoBroker Datenpunkt switchPrograms.?","info":"","x":330,"y":80,"wires":[]},{"id":"dd2c80f8a061a6f7","type":"debug","z":"d838b487d73a043b","name":"msg.Data (Woche)","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"Data","targetType":"msg","statusVal":"","statusType":"auto","x":1130,"y":180,"wires":[]},{"id":"68cc99075a593cf0","type":"function","z":"d838b487d73a043b","name":"msg.payload.TableLines","func":"var days = ['Mo','Tu','We','Th','Fr','Sa','Su'];\nvar possible_times = [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 480, 495, 510, 525, 540, 555, 570, 585, 600, 615, 630, 645, 660, 675, 690, 705, 720, 735, 750, 765, 780, 795, 810, 825, 840, 855, 870, 885, 900, 915, 930, 945, 960, 975, 990, 1005, 1020, 1035, 1050, 1065, 1080, 1095, 1110, 1125, 1140, 1155, 1170, 1185, 1200, 1215, 1230, 1245, 1260, 1275, 1290, 1305, 1320, 1335, 1350, 1365, 1380, 1395, 1410,1425]\nvar woche_zeilen = '';\n\ndays.forEach(function (actual_day) {\n \n var tag_spalten = '';\n var bgcolor = '';\n var i = 0;\n possible_times.forEach(function (minuten) {\n if(i > 3)i = 0\n if(i == 0)bgcolor = 'bgcolor=\"grey\"'\n\n tag_spalten += '<td class=\"checkbox_color\" valign=\"bottom\" ' + bgcolor + '><input type=\"checkbox\" name=\"' + actual_day + '[]\" value=\"' + minuten + '\"></td>';\n bgcolor = ''\n i++\n \n });\n var tag_zeile = '<tr><th align=\"left\">' + actual_day + '</th>' + tag_spalten + '</tr>';\n woche_zeilen += tag_zeile;\n});\n\nmsg.payload.TableLines = woche_zeilen;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":710,"y":360,"wires":[["97dc905525f2ab56"]]},{"id":"95f290e946f0b169","type":"debug","z":"d838b487d73a043b","name":"msg.Data (Woche) ORIGINAL","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"Data","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":200,"wires":[]},{"id":"c8f6a82418e33793","type":"debug","z":"d838b487d73a043b","name":"msg.Data (Sonntag)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"Data","targetType":"msg","statusVal":"","statusType":"auto","x":1140,"y":140,"wires":[]},{"id":"eb5b352c30153c20","type":"debug","z":"d838b487d73a043b","name":"msg.Data (Montag)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"Data","targetType":"msg","statusVal":"","statusType":"auto","x":1130,"y":80,"wires":[]}]
- Die Daten von der Heizung splitten in einzelne Tage und lesbare Zeit integrieren:
-
RE: Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)
@zgadgeter
versuche es mal mit den ems-esp Adapter.Dort nur den "mittleren" Teil nutzen (KM200 aktiv)
Ich habe beide Adapter momentan noch am laufen, jedoch ist der km200'er nicht wirklich mit dem js-controller 4 kompatibel.
Ich werden wohl den km200 demnächst entfernen und auf ems-esp umsteigen.Dann kann ich auch endlich den js-controller updaten.
-
RE: Solax Photovoltaik Portal in ioBroker
Hier hat jemand die Firmware von dem Solax WIFI abgeändert.
Mit dieser verbindet er sich mit dem lokalen Netz und es sind keine Umwege mehr nötig:https://blog.chrisoft.io/2021/02/14/firmwares-modificados-para-solax-pocket-wifi-v2/
-
RE: Solax Photovoltaik Portal in ioBroker
Hallo, vielleicht hilft dir das weiter.
Ich habe einen X1-Boost/Air/Mini.
Da die Cloud Verbindung bei mir demnächst gekappt wird, musste ich auch einen Weg finden die Daten lokal zu bekommen.
Solax hat an dem Pocket-Wifi einen offenen Wlan-Zugang, welcher jedoch 1. nur einen Teilnehmer zulässt und nicht in meinem lokalen Netz ist.Ich habe jetzt einen einfachen kleinen ESP-01 genommen, der verbindet sich mit dem Solax Wlan, holt Daten ab, verbindet sich danach mit meinem lokalen Wlan und sendet die Daten an meinen MQTT Broker.
und wieder von vorn.....
hier ist der Arduino Code (P.S. im Online Editor kann ich nicht übersetzen, kommen Fehler, Lokal geht es):
https://create.arduino.cc/editor/kunigunde/19dce021-7701-4557-96cc-153a5e1f9bee/preview?F=ESP_SOLAX_MQTT.ino -
RE: Laufzeit Gerät berechnen
vielleicht hilft dir ja ein vorbereitetes Blockly?
https://forum.iobroker.net/post/437865