NEWS
E-INK Display OpenEPaperLink - Displayanzeige mit Batterie
-
@bimmi sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
Du kannst unten im Display Menü auf den kleinen Pfeil klicken. Da gibt es auch löschen.
I know - aber genau dieses Menü kommt nicht wenn ich auf die nicht erreichbaren Tags klicke.
-
@revobobo Hast du mal neu gestartet? Ansonsten weiß ich auch nicht genau. Das Problem hatte ich bisher noch nicht. Tags db löschen entfernt alle tags.
-
@bimmi sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@revobobo Ich finde alle Ideen super. Auch das zu Weihnachten. Man könnte so einen 'special day" Display machen. Immer passend.... Noch 37 Tage bis Ostern usw noch drei Tage bis 2024 usw...
Bei mir sind es wechselnde Kaffee trink Sprüche. Jeden Tag einen anderen Spruch Ideen hätte ich noch viele...
- Temperaturen und Luftfeuchte der einzelnen Räume
- KraftstoffPreise
- Geburtstage
- Müllabfuhr
- Temperatur/Betriebs-Kurve der Heizung
- usw...
Alles um mal schnell einen Überblick zu bekommen.
-
@bimmi sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
@revobobo Hast du mal neu gestartet? Ansonsten weiß ich auch nicht genau. Das Problem hatte ich bisher noch nicht. Tags db löschen entfernt alle tags.
Wie Geil ist dass denn? Den letzten konnte ich gerade durch einen Reboot und WebCache leeren entfernen - habe das ganze wiederholt und weg sind se. In der tagDB.json stehen die auch nicht mehr drin - manchmal ist sooo einfach!
DANKE für den Tip!! -
-
und den Rest
Diese Price Tags haben mich mal so richtig in den Bann gezogen.
Täglich gibt es immer mehr Anwendungsmöglichkeiten (durch Entwickler im Discord Channel)
Leider wird dort nur Englisch kommuniziert, was natürlich schwierig ist, wenn man die "Nerdbegriffe" nicht kennt.
Aus diesem Grund würde ich das gerne hierher ins deutsche Forum holen.
Also die Ansteuerungsmöglichkeiten etc.@bimmi, Du bist da auch aktiv. Eventuell kannst Du ja hier auch unterstützend tätig werden, was Firmware , Installationen angeht.
Ich habe mich die ganze Nacht an Homeassistant versucht und habe es wieder runtergeschmissen, da das überhaupt nicht mein Fall ist.
Ich hatte es deswegen installiert , weil viele Discord Mitlieder darüber die Tags programmieren.
Aber es scheint zum Glück auch andere Möglichkeiten zu geben. Node-Red....Vielleicht fühlen sich ein paar Forumsmitglieder angesprochen, die mit dem Thema noch gar nicht in Berührung gekommen sind.
-
@haselchen ja so geht es mir auch ich hab echt jeden teil meiner bude mit so einem display ausgestattet hahaha
das wichtigste wird auf github auch kommuniziert. Mich stört das Englisch auch, ist halt nunmal so das da auch Entwickler tätig sind, die dem deutschen nicht mächtig sind.
Es werden fast täglich irgendwelche Dinge gezeigt und geändert. All das auszuführen würde hier den Rahmen sprengen. Ebenso auch die Zeit die man dafür investiert. Wir sollten uns hier wirklich nur um die Implementierung in iobroker kümmern.
Ansteuerungsmöglichkeit haben wir ja bereits mit Puppeteer. Damit haben wir ja schon viel mehr Möglichkeiten - aufgrund der VIS - als HASS User je haben werden. Die können nur json übertragen (bis jetzt).
-
Ich muss wohl nochmal die 8 Seiten hier lesen....war die letzten Tage nur im Discord Channel und habe dort die Bilder und Codes gesehen (Böhmische Dörfer )
Und versuche über ATC1441 mich auf deutsch anleiten zu lassen, wie man das umsetzt für Newbies.
Bisher ohne Erfolg
Nutze bis jetzt nur die voreingestellten Möglichkeiten...Wetter... -
@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