NEWS
E-INK Display OpenEPaperLink - Displayanzeige mit Batterie
-
@haselchen 8 Seite lesen ist besser als 100 das wird schon! Sind auch Beispiel Blocklys hier für jeden. Oder wenn Du mit Javascript klar kommst, dann gibt es das auch als Javascript. Erstmal musst den Puppeteer Adapter zum laufen bekommen!
Du kannst aber auch noch warten, bis @Dutchman den Adapter fertig hat. Dann geht es für alle einfacher denk ich! https://github.com/DrozmotiX/ioBroker.open-epaper-link
-
Wie setzt Du das bisherige und aktuelle gerade um?
Das Wetter Gedöns ist schon cool für 1 Tag. Aber was mir da fehlt ist die Aktualisierungszeit.
ATC1441 meinte: Das ist derzeit leider nicht implementiert als Feature, aber auch das kann man recht gut mit dem Json Template mache, also einen weiteren string mit dem Datum bzw. ZeitJoa, wenn man davon Ahnung hat
-
@haselchen ich hab mir eine eigene VIS für die Displays erstellt, eigene Datenpunkte für jeden Display und für jedes Display ein eigenes Blockly.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="=|-HU{v0HPlybOQ*ghcR">mypath</variable> <variable id="(O?~p(`|c|(KIhiht#i*">myurl</variable> <variable id="Kg9b=20h)E,riQJeDEcb">myheight</variable> <variable id="d?/+]%mL0t@pakXBBv]V">mywidth</variable> <variable id="ELianL7RIoI]6v](.5H{">clipx</variable> <variable id="v7~-E}:`3zaZ=MG;7P=[">clipy</variable> <variable id="WKu^.B?9T66xQ_qJgB@2">clipwidth</variable> <variable id="$JY/m%d:K3q{;2o7?$9r">clipheight</variable> <variable id="*^L*3Kju!MAP#u`QL(gE">myselector</variable> <variable id="8,q0AR=qke3-k-JCj-2U">quality</variable> <variable type="timeout" id="wait-send-to-ap">wait-send-to-ap</variable> </variables> <block type="procedures_defcustomnoreturn" id="{{Bl:d;+8eDTq,0~J9H2" x="-137" y="-737"> <mutation statements="false"> <arg name="mypath" varid="=|-HU{v0HPlybOQ*ghcR"></arg> <arg name="myurl" varid="(O?~p(`|c|(KIhiht#i*"></arg> <arg name="myheight" varid="Kg9b=20h)E,riQJeDEcb"></arg> <arg name="mywidth" varid="d?/+]%mL0t@pakXBBv]V"></arg> <arg name="clipx" varid="ELianL7RIoI]6v](.5H{"></arg> <arg name="clipy" varid="v7~-E}:`3zaZ=MG;7P=["></arg> <arg name="clipwidth" varid="WKu^.B?9T66xQ_qJgB@2"></arg> <arg name="clipheight" varid="$JY/m%d:K3q{;2o7?$9r"></arg> <arg name="myselector" varid="*^L*3Kju!MAP#u`QL(gE"></arg> <arg name="quality" varid="8,q0AR=qke3-k-JCj-2U"></arg> </mutation> <field name="NAME">macheScreenshot</field> <field name="SCRIPT">c2VuZFRvKCdwdXBwZXRlZXIuMCcsICdzY3JlZW5zaG90JywgeyANCg0KICAgIHVybDogbXl1cmwgLA0KDQogICAgcGF0aDogbXlwYXRoICwgDQoNCiAgICB3aWR0aDpteXdpZHRoLA0KDQogICAgcXVhbGl0eTpxdWFsaXR5LA0KDQogICAgaGVpZ2h0Om15aGVpZ2h0LA0KDQogICAgd2FpdE9wdGlvbjogew0KICAgIA0KICAgIC8vIHdhaXRmb3JUaW1lb3V0OiA1MDAwLA0KICAgIHdhaXRGb3JTZWxlY3RvcjpteXNlbGVjdG9yLA0KDQogICAgfSwNCg0KICAgIGZ1bGxQYWdlOiBmYWxzZSwNCg0KICAgIGNsaXA6IHsgICAgICAgICANCiAgICAgICAgeDogY2xpcHgsDQogICAgICAgIHk6IGNsaXB5LA0KICAgICAgICB3aWR0aDogY2xpcHdpZHRoLA0KICAgICAgICBoZWlnaHQ6IGNsaXBoZWlnaHQNCiAgICAgIH0NCn0pOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="timeouts_cleartimeout" id="{+]/`LW5[dwJmax;hY_," x="-137" y="-687"> <field name="NAME">wait-send-to-ap</field> <next> <block type="on_ext" id="}eN|k@u_c!D@lI$KoaUS"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="B)}lX+(I#toCi.FD%0U;"> <field name="oid">00-ZUHAUSE.0.Garten.Grundwasserstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="uzl!AL`P1]h*dH#`LIa@"> <value name="IF0"> <block type="logic_operation" id="OM@7@$Q}Y`;~]l{K9Tqe"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="v^ujWoBj#N]dy*:SGrCa"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="-Zm.2uMD6rIHYj=ikSGJ"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="T(-8Br+MAk=e:5ExwNA["> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="on_source" id="WhPM4;/Q.j7!RfFpq/2["> <field name="ATTR">state.val</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="m3Sv}9Q`bMOT|rP0_W46"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="%.=jlCg)v{YSsFO_Wtfy"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="on_source" id="V~Oczq^E7^cop8:`PsB,"> <field name="ATTR">state.val</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="time_compare_ex" id="PD9.xl]MRQA;AI}ChPC4"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="vXN^V2YNQhS5sCeRN1tq"> <field name="TEXT">05:25</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="4[81^s_o#7[3h?r-Lf4D"> <field name="TEXT">22:35</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="jcZPJZx*gXbE*_eY]~.a"> <mutation name="macheScreenshot"> <arg name="mypath"></arg> <arg name="myurl"></arg> <arg name="myheight"></arg> <arg name="mywidth"></arg> <arg name="clipx"></arg> <arg name="clipy"></arg> <arg name="clipwidth"></arg> <arg name="clipheight"></arg> <arg name="myselector"></arg> <arg name="quality"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="Rn=EHGb7-#O~BJhp7dy*"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Bildpfad</field> </block> </value> <value name="ARG1"> <block type="get_value" id="yEFwNcD-,m(XY_D[SS}C"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Ziel-URL</field> </block> </value> <value name="ARG2"> <block type="math_number" id="=u%Bj@/+pmZO.1+p9.2U"> <field name="NUM">0</field> </block> </value> <value name="ARG3"> <block type="math_number" id="V:tYENJ`+Ex.G,~a(b,`"> <field name="NUM">0</field> </block> </value> <value name="ARG4"> <block type="math_number" id="eRMkWL,^q%WXn[^MzM+3"> <field name="NUM">0</field> </block> </value> <value name="ARG5"> <block type="math_number" id="/~OWUySM]p5k:+.0+$z0"> <field name="NUM">0</field> </block> </value> <value name="ARG6"> <block type="get_value" id="qG/?0TXWD~b;V!sbtD`0"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Breite</field> </block> </value> <value name="ARG7"> <block type="get_value" id="T|p5V.*UIya8#kb1bzo`"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Höhe</field> </block> </value> <value name="ARG8"> <block type="text" id="1K#!|Dg2xIq%=;;fUFA."> <field name="TEXT">#w00094</field> </block> </value> <value name="ARG9"> <block type="math_number" id="ErFk!X7n.qM]-3lR!@dS"> <field name="NUM">100</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="GRxU+^B-!F?8$s!`GU3#"> <field name="NAME">wait-send-to-ap</field> <next> <block type="timeouts_settimeout" id=")^#[3vKFXTN.!idukC0k"> <field name="NAME">wait-send-to-ap</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="exec" id="{[Z)ohn7^dqA-Z6I9L#T"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">error</field> <value name="COMMAND"> <shadow type="text" id="MN~$`E]CJQbt?7d]*sz!"> <field name="TEXT">curl -d "mac=0000021873443B16&cmd=refresh" http://192.168.1.46/tag_cmd</field> </shadow> <block type="text_join" id="Lcj3]d}7;4jE]P_muN~!"> <mutation items="6"></mutation> <value name="ADD0"> <block type="text" id="yc_-7Y19Rp5|hgxeF{gT"> <field name="TEXT">curl -v -F dither=0 -F mac=</field> </block> </value> <value name="ADD1"> <block type="get_value" id="Y^r4[RZ^Tiq;#{/YSpi3"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-MAC</field> </block> </value> <value name="ADD2"> <block type="text" id="9yLAXE^O@_vt2ULaS:$r"> <field name="TEXT"> -F upload=@</field> </block> </value> <value name="ADD3"> <block type="get_value" id="ZuDz1HsxcUbf]MWo`5!|"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Bildpfad</field> </block> </value> <value name="ADD4"> <block type="text" id="{wZ%jDm069nL1t$46xao"> <field name="TEXT"> </field> </block> </value> <value name="ADD5"> <block type="get_value" id="6pQyJoXb9cictEqd~IZ6"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.EPS-AP-OG-IMGUPLOAD-URL</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="^pqY]-.w?VNnk(baKAh^"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="##*MwdlB:*JIAo}8AFrH"> <field name="oid">00-ZUHAUSE.0.Garten.Grundwasserstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="kBOzPjEHMK(EK|^}1MP-"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="8aSJ}Ln~+Q}+qO1I*,$,"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="~rj6ej!Dl#90`bTakHWr"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="on_source" id="4,=PdCK1P,XkeA;]arDz"> <field name="ATTR">oldState.val</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="pF}km:Gn}YnuTZZ`_2Px"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Wert-steigend</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="nzW:8etT`3!|$Y42xp]*"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="XE[vVu{%{e*%~fAaW9IR"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="LXuUaCO+.1+1:L8hArWx"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="on_source" id="|96-jm}4f|YGGuO)lz6}"> <field name="ATTR">oldState.val</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="|X_C0RARmtx3oVR6:]Ev"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Wert-steigend</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="RQONurm#6#avH:rg$)X~"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
Aaaaaaalter Schwede...
Ja, ganz einfach
Da bleibe ich erstmal bei meinem Wetter, solange nicht Plug and Play kommt
-
das hier ist eigentlich der wichtige Teil:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="5+SF4(-;ihCdi9ArjB;_">mypath</variable> <variable id="@T!+aRDBZHEf1sr{au[Y">myurl</variable> <variable id="kNC){T8NU0RfFkS@):/9">myheight</variable> <variable id="|VQv_}~:IiCV*BobM.WQ">mywidth</variable> <variable id="b?w{1pAvT{4Jn*`^pS$E">clipx</variable> <variable id="J3?rr35KO=mXWjSVj]mi">clipy</variable> <variable id="MYKLdFu|{(`*q(SbfXhI">clipwidth</variable> <variable id="GIR9Ewusr)+2C?#m8gda">clipheight</variable> <variable id="4Kvy0oC`//l=E4@.:VL8">myselector</variable> <variable id="vk`?Y`++rl^+PXg3-m`?">quality</variable> <variable type="timeout" id="wait-send-to-ap">wait-send-to-ap</variable> </variables> <block type="procedures_defcustomnoreturn" id="{{Bl:d;+8eDTq,0~J9H2" x="-112" y="-687"> <mutation statements="false"> <arg name="mypath" varid="5+SF4(-;ihCdi9ArjB;_"></arg> <arg name="myurl" varid="@T!+aRDBZHEf1sr{au[Y"></arg> <arg name="myheight" varid="kNC){T8NU0RfFkS@):/9"></arg> <arg name="mywidth" varid="|VQv_}~:IiCV*BobM.WQ"></arg> <arg name="clipx" varid="b?w{1pAvT{4Jn*`^pS$E"></arg> <arg name="clipy" varid="J3?rr35KO=mXWjSVj]mi"></arg> <arg name="clipwidth" varid="MYKLdFu|{(`*q(SbfXhI"></arg> <arg name="clipheight" varid="GIR9Ewusr)+2C?#m8gda"></arg> <arg name="myselector" varid="4Kvy0oC`//l=E4@.:VL8"></arg> <arg name="quality" varid="vk`?Y`++rl^+PXg3-m`?"></arg> </mutation> <field name="NAME">macheScreenshot2</field> <field name="SCRIPT">c2VuZFRvKCdwdXBwZXRlZXIuMCcsICdzY3JlZW5zaG90JywgeyANCg0KICAgIHVybDogbXl1cmwgLA0KDQogICAgcGF0aDogbXlwYXRoICwgDQoNCiAgICB3aWR0aDpteXdpZHRoLA0KDQogICAgcXVhbGl0eTpxdWFsaXR5LA0KDQogICAgaGVpZ2h0Om15aGVpZ2h0LA0KDQogICAgd2FpdE9wdGlvbjogew0KICAgIA0KICAgIC8vIHdhaXRmb3JUaW1lb3V0OiA1MDAwLA0KICAgIHdhaXRGb3JTZWxlY3RvcjpteXNlbGVjdG9yLA0KDQogICAgfSwNCg0KICAgIGZ1bGxQYWdlOiBmYWxzZSwNCg0KICAgIGNsaXA6IHsgICAgICAgICANCiAgICAgICAgeDogY2xpcHgsDQogICAgICAgIHk6IGNsaXB5LA0KICAgICAgICB3aWR0aDogY2xpcHdpZHRoLA0KICAgICAgICBoZWlnaHQ6IGNsaXBoZWlnaHQNCiAgICAgIH0NCn0pOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_callcustomnoreturn" id="jcZPJZx*gXbE*_eY]~.a" x="-112" y="-662"> <mutation name="macheScreenshot"> <arg name="mypath"></arg> <arg name="myurl"></arg> <arg name="myheight"></arg> <arg name="mywidth"></arg> <arg name="clipx"></arg> <arg name="clipy"></arg> <arg name="clipwidth"></arg> <arg name="clipheight"></arg> <arg name="myselector"></arg> <arg name="quality"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="Rn=EHGb7-#O~BJhp7dy*"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Bildpfad</field> </block> </value> <value name="ARG1"> <block type="get_value" id="yEFwNcD-,m(XY_D[SS}C"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Ziel-URL</field> </block> </value> <value name="ARG2"> <block type="math_number" id="=u%Bj@/+pmZO.1+p9.2U"> <field name="NUM">0</field> </block> </value> <value name="ARG3"> <block type="math_number" id="V:tYENJ`+Ex.G,~a(b,`"> <field name="NUM">0</field> </block> </value> <value name="ARG4"> <block type="math_number" id="eRMkWL,^q%WXn[^MzM+3"> <field name="NUM">0</field> </block> </value> <value name="ARG5"> <block type="math_number" id="/~OWUySM]p5k:+.0+$z0"> <field name="NUM">0</field> </block> </value> <value name="ARG6"> <block type="get_value" id="qG/?0TXWD~b;V!sbtD`0"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Breite</field> </block> </value> <value name="ARG7"> <block type="get_value" id="T|p5V.*UIya8#kb1bzo`"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Höhe</field> </block> </value> <value name="ARG8"> <block type="text" id="1K#!|Dg2xIq%=;;fUFA."> <field name="TEXT">#w00094</field> </block> </value> <value name="ARG9"> <block type="math_number" id="ErFk!X7n.qM]-3lR!@dS"> <field name="NUM">100</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="GRxU+^B-!F?8$s!`GU3#"> <field name="NAME">wait-send-to-ap</field> <next> <block type="timeouts_settimeout" id=")^#[3vKFXTN.!idukC0k"> <field name="NAME">wait-send-to-ap</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="exec" id="{[Z)ohn7^dqA-Z6I9L#T"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">error</field> <value name="COMMAND"> <shadow type="text" id="MN~$`E]CJQbt?7d]*sz!"> <field name="TEXT">curl -d "mac=0000021873443B16&cmd=refresh" http://192.168.1.46/tag_cmd</field> </shadow> <block type="text_join" id="Lcj3]d}7;4jE]P_muN~!"> <mutation items="6"></mutation> <value name="ADD0"> <block type="text" id="yc_-7Y19Rp5|hgxeF{gT"> <field name="TEXT">curl -v -F dither=0 -F mac=</field> </block> </value> <value name="ADD1"> <block type="get_value" id="Y^r4[RZ^Tiq;#{/YSpi3"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-MAC</field> </block> </value> <value name="ADD2"> <block type="text" id="9yLAXE^O@_vt2ULaS:$r"> <field name="TEXT"> -F upload=@</field> </block> </value> <value name="ADD3"> <block type="get_value" id="ZuDz1HsxcUbf]MWo`5!|"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Grundwasser.Display-Bildpfad</field> </block> </value> <value name="ADD4"> <block type="text" id="{wZ%jDm069nL1t$46xao"> <field name="TEXT"> </field> </block> </value> <value name="ADD5"> <block type="get_value" id="6pQyJoXb9cictEqd~IZ6"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.EPS-AP-OG-IMGUPLOAD-URL</field> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> <block type="procedures_defcustomnoreturn" id="oJfI=rb5Xzyu4;@))nxg" x="-87" y="188"> <mutation> <arg name="mypath" varid="5+SF4(-;ihCdi9ArjB;_"></arg> <arg name="myurl" varid="@T!+aRDBZHEf1sr{au[Y"></arg> <arg name="myheight" varid="kNC){T8NU0RfFkS@):/9"></arg> <arg name="mywidth" varid="|VQv_}~:IiCV*BobM.WQ"></arg> <arg name="clipx" varid="b?w{1pAvT{4Jn*`^pS$E"></arg> <arg name="clipy" varid="J3?rr35KO=mXWjSVj]mi"></arg> <arg name="clipwidth" varid="MYKLdFu|{(`*q(SbfXhI"></arg> <arg name="clipheight" varid="GIR9Ewusr)+2C?#m8gda"></arg> <arg name="myselector" varid="4Kvy0oC`//l=E4@.:VL8"></arg> <arg name="quality" varid="vk`?Y`++rl^+PXg3-m`?"></arg> </mutation> <field name="NAME">macheScreenshot</field> <field name="SCRIPT"></field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>
Alles was bei mir so dazu kommt ist nicht essentiell für die Bildübertragung!
-
Was ihr Beide da zurechtgebastelt habt, das wäre, glaube ich, perfekt für eine Schritt für Schritt Anleitung (mit Screenshots wäre das I-Tüpfelchen).
Ich denke, dass würde hier vielen , inklusive mir, den Einstieg erleichten und das Verständnis auch fördern.Natürlich nur wenn ihr Bock habt und die Zeit es zulässt.
@bimmi , Dich möchte ich nicht vergessen
Vielleicht kannst Du für Einsteiger ebenfalls so eine Art Readme Anleitung mit Bildern posten -
@haselchen Hast du schon mal was mit iobroker gemacht? Vor allem mit blockly. Ich denke das in meinen letzten Beiträgen alles drin ist was man braucht? Gut das mit den Datenpunkten erstellen hab ich ausgelassen... Aber die braucht es nicht mal zwingend.
-
Ich muss aber einwerfen, dass Pupeteer irgendwie derzeit noch nicht rund läuft. Habe nach einem iobroker-Umzug derzeit Probleme, den Adapter wieder lauffähig zu bekommen.
Wenn das geklärt ist mache ich gerne eine Schritt für Schritt Anleitung.
Andererseits fände ich diese Funktionalität eigentlich sehr gut im OpenEPaperLink-Adapter aufgehoben. Was denkt ihr?
-
Puppeteer konnte ich gestern auch nicht installieren. Gab schon bei der Installation einen Hinweis und danach lauter rote Meldungen im Log.
Hab ich erstmal verschoben.
Den OpenEPaper Adapter hab ich gar nicht finden können. Taucht in keiner Liste auf.
Eine manuelle Installation endete mit Code 25.
Also hab ich mich versucht da ein wenig reinzufuchsen.
Ganz cool ist die/ jsontemplate-demo.html
Da kann man ein wenig üben.
War für den Anfang nicht schlecht.Dann wolte ich wenigstens mal was Produktives
Also hab ich mich an den Google Kalender gemacht. Und was soll ich sagen, ein sehr geiles Projekt.
Erklärung hier: https://github.com/jjwbruijn/OpenEPaperLink/wiki/Google-Apps-ScriptsUnd dann den Link aus der Google Script Anleitung in den Tag kopieren:
Das Skript holt alle Kalender ab, die ihr bei Google gespeichert habt.
Allerdings zeigt er nur Termine an, die am nächsten Tag sind.Edit: im Skript einfach 2 mal die 1 auf eine beliebige Zahl ändern, dann werden mehr Tage angezeigt.
var start = new Date(); start.setHours(0, 0, 0, 0); var end = new Date(); if (days == undefined) days = 1; <------ HIER end.setDate(end.getDate() + parseInt(days, 10)); var calendars = CalendarApp.getAllCalendars(); var events = []; for (var i = 0; i < calendars.length; i++) { var calendar = calendars[i]; var eventsInCalendar = calendar.getEvents(start, end); for (var j = 0; j < eventsInCalendar.length; j++) { var event = eventsInCalendar[j]; events.push({ calendar: i, title: event.getTitle(), start: Math.floor(event.getStartTime().getTime() / 1000), end: Math.floor(event.getEndTime().getTime() / 1000), isallday: event.isAllDayEvent() }); } } events.sort(function(a, b) { return a.start - b.start; }); return JSON.stringify(events); } function doGet(e) { if(!e) { e = {parameter: {days: 1}}; <---------------- HIER } const params = e.parameter; var content = getEventsForNextDay(params.days); var output = ContentService.createTextOutput(content); output.setMimeType(ContentService.MimeType.JSON); return output; }
-
@haselchen said in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
Puppeteer konnte ich gestern auch nicht installieren. Gab schon bei der Installation einen Hinweis und danach lauter rote Meldungen im Log.
Welche Meldungen?
Im Adapter Repo seh ich keinen Hinweis dass es prinzipiell Probleme gibt. Da Foxriver als Maintainer durchaus aktiv ist, sollte man dem nachgehen wenn wes nicht "nur" ein Problem deiner konkreten Installation ist. Und auch dann sollten wir den Fehler suchen.Den OpenEPaper Adapter hab ich gar nicht finden können. Taucht in keiner Liste auf.
Den Adapter gibts noch nicht im Repository - wenn du open-epapaper-link meinst. Beim Review wurden ein paar Kleinigkeiten angemerkt - seither hatte niemand mehr Zeit den Adapter weiter zu entwickeln. (https://github.com/ioBroker/ioBroker.repositories/pull/3003)
-
@revobobo sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@BananaJoe & @bimmi
Ich bin mir ziemlich sicher, dass es an der Firware des AP liegt. Diese schwarzen Schatten sind bei mir nach einem Update aufgetreten. Ich glaube die 1.7-beta hatte das noch nicht. Würde es gerne testen - weiß aber nicht wie ich zurück springen kann.Zitat Discord:
I revisited the part of the rendering code that looks for the nearest color, and made an improvement. Or, to say, I changed it back like it was before . The artifacts on your image will be gone in the next release.
(I originally changed it because I wanted to apply a gamma correction for the dithering, but it turned out it wasn’t working anyway)Mit dem nächsten Release sollten die Artefakte wohl verschwinden!
-
@bimmi sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@haselchen ich hab mir eine eigene VIS für die Displays erstellt, eigene Datenpunkte für jeden Display und für jedes Display ein eigenes Blockly.
Ich persönlich finde den Ansatz von -->> oxident <<-- sehr interessant (Interessanter):
https://forum.iobroker.net/post/1064528
Das Script läuft einfach im Hintergrund und du gibst die Aktualisierungen per Cron im Script an - das Bild wird gespeichert und der AP schaut selbstständig ob sich das Bild verändert hat - ist das der Fall, wird es zum Tag hochgeladen.
Das Display stellst du auf Image URL mit dem Pfad zum Bild ein.
Aber auch hier ist puppeteer Voraussetzung.
Blockly brauchst du nicht unbedingt.
Finds übersichtlicher und schlanker.Viele Grüße
-
@bimmi sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@revobobo sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@BananaJoe & @bimmi
Ich bin mir ziemlich sicher, dass es an der Firware des AP liegt. Diese schwarzen Schatten sind bei mir nach einem Update aufgetreten. Ich glaube die 1.7-beta hatte das noch nicht. Würde es gerne testen - weiß aber nicht wie ich zurück springen kann.Zitat Discord:
I revisited the part of the rendering code that looks for the nearest color, and made an improvement. Or, to say, I changed it back like it was before . The artifacts on your image will be gone in the next release.
(I originally changed it because I wanted to apply a gamma correction for the dithering, but it turned out it wasn’t working anyway)Mit dem nächsten Release sollten die Artefakte wohl verschwinden!
Dank Dir!
Das hatte ich auch schon gesehen und bin direkt auf die 2.05 aufgesprungen....
War wohl ein Fehler - die schwarzen Ränder habe ich noch immer und komme leider nicht mehr zurück auf die 1.08-beta.
In der Update-Übersicht taucht auch keine 1.xx Version mehr auf.
Wenn also einer ne Idee hat (eine 1.xx FW aufzuspielen) - bin ich gaaanz Ohr.Viele Grüße
-
-
@revobobo sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@bimmi sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@revobobo sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@BananaJoe & @bimmi
Ich bin mir ziemlich sicher, dass es an der Firware des AP liegt. Diese schwarzen Schatten sind bei mir nach einem Update aufgetreten. Ich glaube die 1.7-beta hatte das noch nicht. Würde es gerne testen - weiß aber nicht wie ich zurück springen kann.Zitat Discord:
I revisited the part of the rendering code that looks for the nearest color, and made an improvement. Or, to say, I changed it back like it was before . The artifacts on your image will be gone in the next release.
(I originally changed it because I wanted to apply a gamma correction for the dithering, but it turned out it wasn’t working anyway)Mit dem nächsten Release sollten die Artefakte wohl verschwinden!
Dank Dir!
Das hatte ich auch schon gesehen und bin direkt auf die 2.05 aufgesprungen....
War wohl ein Fehler - die schwarzen Ränder habe ich noch immer und komme leider nicht mehr zurück auf die 1.08-beta.
In der Update-Übersicht taucht auch keine 1.xx Version mehr auf.
Wenn also einer ne Idee hat (eine 1.xx FW aufzuspielen) - bin ich gaaanz Ohr.Viele Grüße
https://github.com/jjwbruijn/OpenEPaperLink/releases
Musst mal etwas lesen. Es geht glaub ich mit den typischen esp programmern... NodeMCU PyFlasher nutze ich meistens.
Sichere dir die Tag db dann musst auch nichts neu einrichten glaub ich.
-
@mcm57 Ich bin mir ziemlich sicher, dass es an meiner Installation liegt. So wie es scheint, mag Pupeteer nicht auf arm64-Platformen laufen da angemeckert wird, es gibt kein chromium dafür.
Unter x86 lief es stressfrei, daher denke ich, ich bin jetzt erstmal auf dem Wartegleis
-
Das wird auch vermutlich mein Problem auf der Synology sein.
-
@oxident said in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@mcm57 Ich bin mir ziemlich sicher, dass es an meiner Installation liegt. So wie es scheint, mag Pupeteer nicht auf arm64-Platformen laufen da angemeckert wird, es gibt kein chromium dafür.
Unter x86 lief es stressfrei, daher denke ich, ich bin jetzt erstmal auf dem Wartegleis
Da der Adapter von @Foxriver76 ist würd ich anregen im Repo ein Issue zu eröffnen sofern weder ein issue existiert und auch nichts bezüglich Einschränkungen im Readme steht. Er kann sicher rasch beurteilen ob hier etwas verbessert / ergänzt werden kann - oder ob ggF eine Anmerkung ins Readme muss weil es (mit angemessenem Aufwand) nicht anders geht
-
@haselchen sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
Das wird auch vermutlich mein Problem auf der Synology sein.
Du könntest bei deiner Synology - vorausgesetzt es ist ein + Modell - auch Docker laufen lassen mit Puppeteer: https://hub.docker.com/r/buildkite/puppeteerDeine Synology lt Signatur hat aber einen Intel Prozessor und keinen ARM. Da sollte es auf jeden Fall laufen.
-
@bimmi @mcm57 @haselchen
Wenn iobroker als Docker auf der Synology laeuft, geht kein puppeteer, dazu braucht man einen extra Puppeteer-Docker, das Problem wurde auch schonmal mit @foxriver76 und @andre diskutiert.
siehe auch hier im Puppeteer-iobroker-Adapter ThreadMal ganz abgesehen davon, dass fuer Puppeteer 292 Issues auf Github offen sind..
und der Adapter installiert ne depricated Version (V19.x), aktuell ist 21.x...
Auf meinem Operations-Iobroker im Docker auf der Syno RS1619xs gehts nicht, auf dem aktuellen Raspi-Image Bookworm Raspi-4 auch nicht, das einzige, wo ich den iobroker-Puppeteer installieren konnte, war jetzt ne VM in Proxmox unter Debian Bookworm, Node 20.