NEWS
E-INK Display OpenEPaperLink - Blockly, Java-Skripte usw.
-
Hallo zusammen,
das andere Thema
https://forum.iobroker.net/topic/66380/e-ink-display-openepaperlink-displayanzeige-mit-batterie
hat jetzt schon an die 900 Beiträge.
Da wäre es doch etwas übersichtlicher wenn wir hier alles an Blocklys, Java-Skipte usw. posten.
Grüße
Manfred -
Ich mache mal den Anfang.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="e.-?J1RG(1E03apliOsd">url</variable> <variable id="eMqV!m8?ZCdqN2].w`xb">TagMini1</variable> <variable id="*)}|9mHpKcV3YN}|a_t5">jsonMini1</variable> </variables> <block type="procedures_defcustomreturn" id="Q)=N/g,e;;C$aa#GZ/g6" x="738" y="388"> <mutation statements="false"> <arg name="url" varid="e.-?J1RG(1E03apliOsd"></arg> </mutation> <field name="NAME">encodeURL</field> <field name="SCRIPT">dXJsID0gZW5jb2RlVVJJQ29tcG9uZW50KHVybCk7DQpyZXR1cm4gdXJsOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="P$af/8byEUS#qCA]5B-P" x="738" y="413"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="qKgG$O[{3RUIQEMyX@84"> <field name="oid">hm-rpc.0.KEQ0908967.4.ACTUAL_TEMPERATURE</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="1=$zeB_8NZ{``1IKhA@;"> <field name="oid">hm-rpc.0.KEQ0908967.4.SET_TEMPERATURE</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="3xv_){1%Z-Px_oc=|ee]"> <field name="oid">hm-rpc.0.KEQ0908967.4.VALVE_STATE</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="1%z%;+tP3g0pYuG^87_*"> <field name="oid">hm-rpc.0.KEQ0908967.4.BATTERY_STATE</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="?`c`Nn3U3V@~!c@vILtF"> <value name="IF0"> <block type="time_compare" id="7~bZxST63%E#3wG~e~C$"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">9:00</field> <field name="END_TIME">20:00</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="}kvQ}B#.rViPjfKc-HTi"> <field name="VAR" id="eMqV!m8?ZCdqN2].w`xb">TagMini1</field> <value name="VALUE"> <block type="text" id="AS0{YNAIOlM%S|LO,c(?"> <field name="TEXT">0000050CE8EFB29E</field> </block> </value> <next> <block type="variables_set" id="k02GjbFfyHgTN`gcO-Da"> <field name="VAR" id="*)}|9mHpKcV3YN}|a_t5">jsonMini1</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="m+$OB%}5|)Pwa;Sp_8Xz"> <mutation name="encodeURL"> <arg name="url"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="%7M,-4ru#q{/k6KDWMHm"> <mutation items="11"></mutation> <value name="ADD0"> <block type="text" id="KG:U*zHU9}`ZAfY=W0tK"> <field name="TEXT">[ {"text": [10,10,"Arbeitszimmer","fonts/bahnschrift30",2]},</field> </block> </value> <value name="ADD1"> <block type="text" id="J8kE(`F|;UG(UnXYIXH/"> <field name="TEXT">{"line": [10,35,374,35,1]},</field> </block> </value> <value name="ADD2"> <block type="text" id="n|(:Q;;@|/rl*,,eDMQ0"> <field name="TEXT">{"text": [10,50,"Aktuelle Temperatur:","fonts/bahnschrift20",1]}, {"text": [240,50,"</field> </block> </value> <value name="ADD3"> <block type="get_value" id="Ivop[TTx6k8izC(a}Lh$"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0908967.4.ACTUAL_TEMPERATURE</field> </block> </value> <value name="ADD4"> <block type="text" id=".;[edg]Q8Y}~9~$]`WGh"> <field name="TEXT">°C","fonts/bahnschrift20",2]}, {"text": [10,80,"Eingestellte Temperatur:","fonts/bahnschrift20",1]}, {"text": [240,80,"</field> </block> </value> <value name="ADD5"> <block type="get_value" id="!vH6u](8OPQ3|j4+-R0`"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0908967.4.SET_TEMPERATURE</field> </block> </value> <value name="ADD6"> <block type="text" id="10FFF9ZLy|n:h)tY)c|m"> <field name="TEXT">°C","fonts/bahnschrift20",2]}, {"text": [10,110,"Aktuelle Ventilstellung:","fonts/bahnschrift20",1]}, {"text": [240,110,"</field> </block> </value> <value name="ADD7"> <block type="get_value" id="N~fNY_bADcQ(?eeOcd70"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0908967.4.VALVE_STATE</field> </block> </value> <value name="ADD8"> <block type="text" id="#7e9sI0@iu:c/+?Dr@Z."> <field name="TEXT"> %","fonts/bahnschrift20",2]}, {"text": [10,140,"Batteriespannung:","fonts/bahnschrift20",1]}, {"text": [240,140,"</field> </block> </value> <value name="ADD9"> <block type="get_value" id="M=3Q06RUua?Te,a?1Ui;"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.KEQ0908967.4.BATTERY_STATE</field> </block> </value> <value name="ADD10"> <block type="text" id="8Mjb{3)XGWhzToz{:.]t"> <field name="TEXT"> V","fonts/bahnschrift20",2]} ]</field> </block> </value> </block> </value> </block> </value> <next> <block type="http_post" id="AoQ+~mSdktWzhHgxGz#C"> <field name="TIMEOUT">15</field> <field name="UNIT">sec</field> <field name="TYPE">text</field> <value name="URL"> <shadow type="text" id="qh|GfefbC0op9nMhC4nk"> <field name="TEXT">http://192.168.49.187/jsonupload</field> </shadow> </value> <value name="DATA"> <block type="text_join" id="YiM(/:1NU2PK@ysCbT8$"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="sY#__Tq@9.DrJShh~Ant"> <field name="TEXT">mac=</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="^ag2u;YyTY9!dP{tJ|}c"> <field name="VAR" id="eMqV!m8?ZCdqN2].w`xb">TagMini1</field> </block> </value> <value name="ADD2"> <block type="text" id="k:I$k7w),ZmO9hEwr:$W"> <field name="TEXT">&json=</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="MEQ/.CHU]v1WHbuc@`Ly"> <field name="VAR" id="*)}|9mHpKcV3YN}|a_t5">jsonMini1</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Das ist ein Blockly um eine Anzeige zu erstellen die dann die aktuelle und die eingestellte Temperatur, die Ventilestellung und die Batteriespannung von HM Heizungsstellantrieb anzeigt.
Natürlich müssen die Datenpunkte, AP-Adresse usw. entsprechend geändert werden. Das sollte aber klar sein.
Ob das Blockly auch noch besser geht? Kann sein. Hier läuft es ohne Probleme.
Grüße
PS
Bei mir werden die TAGs nur in der Zeit zwischen 9 und 20 Uhr aktualisiert (kann natürlich geändert werden). Später ist keiner mehr da der auf dieTAGs schaut. Das entlastet ein wenig die Batterie in den TAGs.Noch was. Hatte ich leider vergessen. Ich möchte mich hier nicht mit fremden Federn schmücken.
Das ursprüngliche Skript kommt von "ilovegym"Vielen Dank dafür
-
Hier ein kleines Blockly, wenn in den TAGs angezeigt werden soll ob etwas eingeschaltet oder ausgeschaltet ist.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id=".N:Ev).-4-82UMj~s}jT">Uebergabe</variable> <variable id=":!8~[_wM)Q:b4Pev1|^x">Search</variable> <variable id="8f|o07jxrqx*$7Vx~oCA">Replace</variable> <variable id="e.-?J1RG(1E03apliOsd">url</variable> <variable id="eMqV!m8?ZCdqN2].w`xb">TagMini1</variable> <variable id="*)}|9mHpKcV3YN}|a_t5">jsonMini1</variable> </variables> <block type="procedures_defcustomreturn" id="X|o`:e#4rUy{jrxDqT0Y" x="738" y="338"> <mutation statements="false"> <arg name="Uebergabe" varid=".N:Ev).-4-82UMj~s}jT"></arg> <arg name="Search" varid=":!8~[_wM)Q:b4Pev1|^x"></arg> <arg name="Replace" varid="8f|o07jxrqx*$7Vx~oCA"></arg> </mutation> <field name="NAME">Replace Text</field> <field name="SCRIPT">bGV0IHN0cl8xID0gVWViZXJnYWJlOw0KbGV0IHN0cl8yID0gU2VhcmNoOw0KbGV0IHN0cl8zID0gUmVwbGFjZTsNCnN0cl8xID0gc3RyXzEucmVwbGFjZShTZWFyY2gsIFJlcGxhY2UpOw0KcmV0dXJuIHN0cl8xOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomreturn" id="Q)=N/g,e;;C$aa#GZ/g6" x="738" y="388"> <mutation statements="false"> <arg name="url" varid="e.-?J1RG(1E03apliOsd"></arg> </mutation> <field name="NAME">encodeURL</field> <field name="SCRIPT">dXJsID0gZW5jb2RlVVJJQ29tcG9uZW50KHVybCk7DQpyZXR1cm4gdXJsOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="P$af/8byEUS#qCA]5B-P" x="738" y="438"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="qKgG$O[{3RUIQEMyX@84"> <field name="oid">mqtt.0.Heizung.config.HK2_Betriebsart</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="1=$zeB_8NZ{``1IKhA@;"> <field name="oid">mqtt.0.Heizung.config.WW_Betriebsart</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="3xv_){1%Z-Px_oc=|ee]"> <field name="oid">mqtt.0.Heizung.status.HK2_Pumpe</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="1%z%;+tP3g0pYuG^87_*"> <field name="oid">mqtt.0.Heizung.status.Brenner_Ansteuerung</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="cfr[e6_/^LK-t[30k1HG"> <value name="IF0"> <block type="time_compare" id="7~bZxST63%E#3wG~e~C$"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">9:00</field> <field name="END_TIME">20:00</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="}kvQ}B#.rViPjfKc-HTi"> <field name="VAR" id="eMqV!m8?ZCdqN2].w`xb">TagMini1</field> <value name="VALUE"> <block type="text" id="AS0{YNAIOlM%S|LO,c(?"> <field name="TEXT">00007E1BD7BCB29E</field> </block> </value> <next> <block type="variables_set" id="k02GjbFfyHgTN`gcO-Da"> <field name="VAR" id="*)}|9mHpKcV3YN}|a_t5">jsonMini1</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="m+$OB%}5|)Pwa;Sp_8Xz"> <mutation name="encodeURL"> <arg name="url"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="%7M,-4ru#q{/k6KDWMHm"> <mutation items="7"></mutation> <value name="ADD0"> <block type="text" id="KG:U*zHU9}`ZAfY=W0tK"> <field name="TEXT">[ {"text": [10,10,"Heizung","fonts/bahnschrift30",2]},</field> </block> </value> <value name="ADD1"> <block type="text" id="J8kE(`F|;UG(UnXYIXH/"> <field name="TEXT">{"line": [10,35,374,35,1]},</field> </block> </value> <value name="ADD2"> <block type="text" id="n|(:Q;;@|/rl*,,eDMQ0"> <field name="TEXT">{"text": [10,50,"Betriebsart Heizung:","fonts/bahnschrift20",1]}, {"text": [250,50,"</field> </block> </value> <value name="ADD3"> <block type="logic_ternary" id="yJ,9[#P7w*KD^#R7%o1p"> <value name="IF"> <block type="logic_compare" id="_nY8e5S_F|Uf*C2U={MR"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="5Z^|9w~(1YmdVJQ7%v$0"> <field name="ATTR">val</field> <field name="OID">mqtt.0.Heizung.status.HK2_Pumpe</field> </block> </value> <value name="B"> <block type="text" id="DjlkmM}:zWp9nUl1c#%w"> <field name="TEXT">Tag</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id=".;[edg]Q8Y}~9~$]`WGh"> <field name="TEXT">Tag","fonts/bahnschrift20",2]}, {"text": [10,80,"Betriebsart Warmwasser:","fonts/bahnschrift20",1]}, {"text": [250,80,"</field> </block> </value> <value name="ELSE"> <block type="text" id="qo8G;N~ktlTg~Y,fI|~L"> <field name="TEXT">Nacht","fonts/bahnschrift20",2]}, {"text": [10,80,"Betriebsart Warmwasser:","fonts/bahnschrift20",1]}, {"text": [250,80,"</field> </block> </value> </block> </value> <value name="ADD4"> <block type="logic_ternary" id="@@MWpXGPxtivK*HP7FQ5"> <value name="IF"> <block type="logic_compare" id="],Di%nSz6X0:3d?mKs`u"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="%*uWF0=YeiZ7uN[o`X|}"> <field name="ATTR">val</field> <field name="OID">mqtt.0.Heizung.config.WW_Betriebsart</field> </block> </value> <value name="B"> <block type="text" id="hPuXlR|41/Yeo$oQ@=HH"> <field name="TEXT">Tag</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="0xLY3lrDE~(SkKt_f8DH"> <field name="TEXT">Tag","fonts/bahnschrift20",2]}, {"text": [10,110,"Umwälzpumpe:","fonts/bahnschrift20",1]}, {"text": [250,110,"</field> </block> </value> <value name="ELSE"> <block type="text" id="Mm#t/sCT:uXw`)II6s=Y"> <field name="TEXT">Nacht","fonts/bahnschrift20",2]}, {"text": [10,110,"Umwälzpumpe:","fonts/bahnschrift20",1]}, {"text": [250,110,"</field> </block> </value> </block> </value> <value name="ADD5"> <block type="logic_ternary" id="xu3kals`NOzfBfKf^UVC"> <value name="IF"> <block type="logic_compare" id="!@n,)^%^oIzm9M$zIT[,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="N~fNY_bADcQ(?eeOcd70"> <field name="ATTR">val</field> <field name="OID">mqtt.0.Heizung.status.HK2_Pumpe</field> </block> </value> <value name="B"> <block type="math_number" id="K0!IMZFfNjD]w1)oD[`["> <field name="NUM">100</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id=".yP]thn0Q)aA:e5!02ZK"> <field name="TEXT">Eingeschaltet","fonts/bahnschrift20",2]}, {"text": [10,140,"Ölbrenner:","fonts/bahnschrift20",1]}, {"text": [250,140,"</field> </block> </value> <value name="ELSE"> <block type="text" id="d(zc`iTQSg0r.f^FkqK:"> <field name="TEXT">Ausgeschaltet","fonts/bahnschrift20",1]}, {"text": [10,140,"Ölbrenner:","fonts/bahnschrift20",1]}, {"text": [250,140,"</field> </block> </value> </block> </value> <value name="ADD6"> <block type="logic_ternary" id="/+tc%%-nw4~=fQaHU,9Q"> <value name="IF"> <block type="logic_compare" id="kcb6qGG2z-7N*~2XYxvy"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="w52ns6N;Fk#N7x]WC6)!"> <field name="ATTR">val</field> <field name="OID">mqtt.0.Heizung.status.Brenner_Ansteuerung</field> </block> </value> <value name="B"> <block type="math_number" id="mN;DhZ|;S1bNC5I,OH!m"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="8Mjb{3)XGWhzToz{:.]t"> <field name="TEXT">Eingeschaltet","fonts/bahnschrift20",2]} ]</field> </block> </value> <value name="ELSE"> <block type="text" id="$l@9YB:|C/ww3ec:AL:8"> <field name="TEXT">Ausgeschaltet","fonts/bahnschrift20",1]} ]</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="http_post" id="AoQ+~mSdktWzhHgxGz#C"> <field name="TIMEOUT">15</field> <field name="UNIT">sec</field> <field name="TYPE">text</field> <value name="URL"> <shadow type="text" id="qh|GfefbC0op9nMhC4nk"> <field name="TEXT">http://192.168.49.185/jsonupload</field> </shadow> </value> <value name="DATA"> <block type="text_join" id="YiM(/:1NU2PK@ysCbT8$"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="sY#__Tq@9.DrJShh~Ant"> <field name="TEXT">mac=</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="^ag2u;YyTY9!dP{tJ|}c"> <field name="VAR" id="eMqV!m8?ZCdqN2].w`xb">TagMini1</field> </block> </value> <value name="ADD2"> <block type="text" id="k:I$k7w),ZmO9hEwr:$W"> <field name="TEXT">&json=</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="MEQ/.CHU]v1WHbuc@`Ly"> <field name="VAR" id="*)}|9mHpKcV3YN}|a_t5">jsonMini1</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Natürlich müssen die Datenpunkte, AP-Adresse usw. entsprechend geändert werden. Das sollte aber klar sein.
Ob das Blockly auch noch besser geht? Kann sein. Hier läuft es ohne Probleme.
Grüße
Noch was. Hatte ich leider vergessen. Ich möchte mich hier nicht mit fremden Federn schmücken.
Das ursprüngliche Skript kommt von "ilovegym"Vielen Dank dafür
-
Ich mache es wahrscheinlich noch ein wenig anders als Andere hier
Über HomeAssistantDort gibt es eine Integration, die den AP und die angeschlossenen Tags erkennt.
Über Github gibt es verschiedene Anleitungen, was man umsetzen möchte.
https://github.com/OpenEPaperLink/Home_Assistant_Integration/wikiIch hab einen Xiaomi Temperatur Sensor eingebunden und auf den Tag gebracht.
Muss sagen, dass hat echt Spass gemacht, dass alles zurecht zu fummeln (x Daten y Daten, Datum....)Für die Experten hier, ist das natürlich nen Witz
Ich löse das als Automation
-
Prima! Hatte das vor einem halben Jahr oder so auch mal, zur Zeit aber kein HA mehr in Betrieb.
Du hast damit aber auch den Xiaomi Sensor in HA drin, richtig? -
War halt mal Neugierig auf HA.
Und tatsächlich gibt es ganz wenige Dinge , die dort besser funktionieren.
Den Sensor habe ich da irgendwie manuell reingeklöppelt.
Ich wollte einfach mal rumtesten und man findet immer mehr , was man ausprobieren möchte .