Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. E-INK Display OpenEPaperLink - Displayanzeige mit Batterie

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

E-INK Display OpenEPaperLink - Displayanzeige mit Batterie

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
1.0k Beiträge 48 Kommentatoren 344.8k Aufrufe 52 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • O Offline
    O Offline
    oxident
    schrieb am zuletzt editiert von oxident
    #176

    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?

    haselchenH 1 Antwort Letzte Antwort
    2
    • O oxident

      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?

      haselchenH Offline
      haselchenH Offline
      haselchen
      Most Active
      schrieb am zuletzt editiert von haselchen
      #177

      @oxident

      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-Scripts

      Und dann den Link aus der Google Script Anleitung in den Tag kopieren:

      50557b3b-5276-4dc1-9e27-42e153f2eae8-grafik.png

      IMG_2147.jpeg

      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;
      }
      
      

      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

      mcm1957M B 2 Antworten Letzte Antwort
      1
      • haselchenH haselchen

        @oxident

        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-Scripts

        Und dann den Link aus der Google Script Anleitung in den Tag kopieren:

        50557b3b-5276-4dc1-9e27-42e153f2eae8-grafik.png

        IMG_2147.jpeg

        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;
        }
        
        
        mcm1957M Online
        mcm1957M Online
        mcm1957
        schrieb am zuletzt editiert von mcm1957
        #178

        @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)

        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
        Support Repositoryverwaltung.

        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

        LESEN - gute Forenbeitrage

        O 1 Antwort Letzte Antwort
        1
        • R Revobobo

          @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.

          B Offline
          B Offline
          bimmi
          schrieb am zuletzt editiert von
          #179

          @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!

          Gruß Bimmi

          iobroker in einer Proxmox Umgebung auf einem ausrangierten DELL OptiPlex 3080 24GB i5 in der VM auf SSD. Nutze den slaeh zigbee Router mit Tür- und Temperatursensoren von Aqara, viele Tasmota Devices, Unifi AP, Sprinklecontrol, günstige E-INK Displays, Adguard und noch vieles mehr 😬

          R 1 Antwort Letzte Antwort
          0
          • B bimmi

            @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.

            0f737952-40ab-49f6-9b65-3a9752e44b2b-image.png

            4c64ba74-1494-41f8-bcea-2e273d40408f-image.png

            40cae8cc-3bbf-4efa-bce6-9f8793f779e6-image.png

            <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&amp;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>
            
            R Offline
            R Offline
            Revobobo
            schrieb am zuletzt editiert von
            #180

            @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.

            0f737952-40ab-49f6-9b65-3a9752e44b2b-image.png

            4c64ba74-1494-41f8-bcea-2e273d40408f-image.png

            40cae8cc-3bbf-4efa-bce6-9f8793f779e6-image.png

            <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&amp;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>
            


            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.
            db81a667-fe14-4554-ac10-58a95338097a-grafik.png
            Aber auch hier ist puppeteer Voraussetzung.
            Blockly brauchst du nicht unbedingt.
            Finds übersichtlicher und schlanker.

            Viele Grüße

            1 Antwort Letzte Antwort
            0
            • B bimmi

              @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!

              R Offline
              R Offline
              Revobobo
              schrieb am zuletzt editiert von Revobobo
              #181

              @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!


              :blush: 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.
              65852339-f859-477a-92f5-5a0a77a4d256-grafik.png
              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

              haselchenH B 2 Antworten Letzte Antwort
              0
              • R Revobobo

                @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!


                :blush: 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.
                65852339-f859-477a-92f5-5a0a77a4d256-grafik.png
                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

                haselchenH Offline
                haselchenH Offline
                haselchen
                Most Active
                schrieb am zuletzt editiert von
                #182

                @revobobo

                Die 2.06 soll demnächst (heute, morgen , übermorgen ….) kommen.
                Das würde ich eher probieren , als wild ne 1.er FW zu flashen.

                Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                R 1 Antwort Letzte Antwort
                1
                • R Revobobo

                  @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!


                  :blush: 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.
                  65852339-f859-477a-92f5-5a0a77a4d256-grafik.png
                  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

                  B Offline
                  B Offline
                  bimmi
                  schrieb am zuletzt editiert von
                  #183

                  @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!


                  :blush: 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.
                  65852339-f859-477a-92f5-5a0a77a4d256-grafik.png
                  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.

                  Gruß Bimmi

                  iobroker in einer Proxmox Umgebung auf einem ausrangierten DELL OptiPlex 3080 24GB i5 in der VM auf SSD. Nutze den slaeh zigbee Router mit Tür- und Temperatursensoren von Aqara, viele Tasmota Devices, Unifi AP, Sprinklecontrol, günstige E-INK Displays, Adguard und noch vieles mehr 😬

                  1 Antwort Letzte Antwort
                  0
                  • mcm1957M mcm1957

                    @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)

                    O Offline
                    O Offline
                    oxident
                    schrieb am zuletzt editiert von
                    #184

                    @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 ;-)

                    haselchenH mcm1957M 2 Antworten Letzte Antwort
                    0
                    • O oxident

                      @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 ;-)

                      haselchenH Offline
                      haselchenH Offline
                      haselchen
                      Most Active
                      schrieb am zuletzt editiert von
                      #185

                      @oxident

                      Das wird auch vermutlich mein Problem auf der Synology sein.

                      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                      B 1 Antwort Letzte Antwort
                      0
                      • O oxident

                        @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 ;-)

                        mcm1957M Online
                        mcm1957M Online
                        mcm1957
                        schrieb am zuletzt editiert von
                        #186

                        @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

                        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                        Support Repositoryverwaltung.

                        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                        LESEN - gute Forenbeitrage

                        1 Antwort Letzte Antwort
                        1
                        • haselchenH haselchen

                          @oxident

                          Das wird auch vermutlich mein Problem auf der Synology sein.

                          B Offline
                          B Offline
                          bimmi
                          schrieb am zuletzt editiert von bimmi
                          #187

                          @haselchen sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                          @oxident

                          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/puppeteer~~

                          Deine Synology lt Signatur hat aber einen Intel Prozessor und keinen ARM. Da sollte es auf jeden Fall laufen.

                          Gruß Bimmi

                          iobroker in einer Proxmox Umgebung auf einem ausrangierten DELL OptiPlex 3080 24GB i5 in der VM auf SSD. Nutze den slaeh zigbee Router mit Tür- und Temperatursensoren von Aqara, viele Tasmota Devices, Unifi AP, Sprinklecontrol, günstige E-INK Displays, Adguard und noch vieles mehr 😬

                          ? 1 Antwort Letzte Antwort
                          0
                          • B bimmi

                            @haselchen sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                            @oxident

                            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/puppeteer~~

                            Deine Synology lt Signatur hat aber einen Intel Prozessor und keinen ARM. Da sollte es auf jeden Fall laufen.

                            ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                            #188

                            @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 Thread

                            Mal 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.

                            foxriver76F B 3 Antworten Letzte Antwort
                            0
                            • ? Ein ehemaliger Benutzer

                              @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 Thread

                              Mal 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.

                              foxriver76F Offline
                              foxriver76F Offline
                              foxriver76
                              Developer
                              schrieb am zuletzt editiert von
                              #189

                              @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                              Mal ganz abgesehen davon, dass fuer Puppeteer 292 Issues auf Github offen sind..

                              allerdings auch über 6K geschlossene, das Projekt wird sehr aktiv entwickelt, nicht dass hier der falsche Eindruck entsteht.

                              Videotutorials & mehr

                              Hier könnt ihr mich unterstützen.

                              ? 1 Antwort Letzte Antwort
                              0
                              • ? Ein ehemaliger Benutzer

                                @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 Thread

                                Mal 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.

                                foxriver76F Offline
                                foxriver76F Offline
                                foxriver76
                                Developer
                                schrieb am zuletzt editiert von
                                #190

                                @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                                und der Adapter installiert ne depricated Version (V19.x), aktuell ist 21.x...

                                gerne mal issue beim adapter.

                                Videotutorials & mehr

                                Hier könnt ihr mich unterstützen.

                                1 Antwort Letzte Antwort
                                0
                                • ? Offline
                                  ? Offline
                                  Ein ehemaliger Benutzer
                                  schrieb am zuletzt editiert von
                                  #191

                                  @foxriver76 sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                                  @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                                  und der Adapter installiert ne depricated Version (V19.x), aktuell ist 21.x...

                                  gerne mal issue beim adapter.

                                  gerne, hier fuer die Deprecated Version:
                                  https://github.com/foxriver76/ioBroker.puppeteer/issues/11
                                  :-)

                                  B 1 Antwort Letzte Antwort
                                  0
                                  • foxriver76F foxriver76

                                    @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                                    Mal ganz abgesehen davon, dass fuer Puppeteer 292 Issues auf Github offen sind..

                                    allerdings auch über 6K geschlossene, das Projekt wird sehr aktiv entwickelt, nicht dass hier der falsche Eindruck entsteht.

                                    ? Offline
                                    ? Offline
                                    Ein ehemaliger Benutzer
                                    schrieb am zuletzt editiert von
                                    #192

                                    @foxriver76 sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                                    @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:

                                    Mal ganz abgesehen davon, dass fuer Puppeteer 292 Issues auf Github offen sind..

                                    allerdings auch über 6K geschlossene, das Projekt wird sehr aktiv entwickelt, nicht dass hier der falsche Eindruck entsteht.

                                    Das stimmt, die 6k muss man erstmal schliessen(koennen !! ) - ist schon ne Entwicklung, aber wie immer, das eine haengt vom andern ab, und deshalb haben alle was zu tun.. :-)

                                    Zweites Issue aufgemacht, wegen dem hier:

                                    2024-01-09 08:51:01.444  - info: puppeteer.0 (131346) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v20.10.0, js-controller: 5.0.17
                                    2024-01-09 08:51:01.533  - error: puppeteer.0 (131346) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                                    2024-01-09 08:51:01.540  - error: puppeteer.0 (131346) unhandled promise rejection: Failed to launch the browser process! undefined
                                    TROUBLESHOOTING: https://pptr.dev/troubleshooting
                                    2024-01-09 08:51:01.542  - error: puppeteer.0 (131346) Error: Failed to launch the browser process! undefined
                                    TROUBLESHOOTING: https://pptr.dev/troubleshooting
                                        at ChildProcess.onClose (/opt/iobroker/node_modules/@puppeteer/browsers/lib/cjs/launch.js:262:24)
                                        at ChildProcess.emit (node:events:526:35)
                                        at ChildProcess._handle.onexit (node:internal/child_process:294:12)
                                    2024-01-09 08:51:01.544  - error: puppeteer.0 (131346) Failed to launch the browser process! undefined
                                    TROUBLESHOOTING: https://pptr.dev/troubleshooting
                                    2024-01-09 08:51:01.555  - info: puppeteer.0 (131346) terminating
                                    2024-01-09 08:51:01.556  - warn: puppeteer.0 (131346) Terminated (UNCAUGHT_EXCEPTION): Without reason
                                    2024-01-09 08:51:02.060  - info: puppeteer.0 (131346) terminating
                                    2024-01-09 08:51:02.213  - error: host.iobroker-P4 Caught by controller[0]:
                                    2024-01-09 08:51:02.214  - error: host.iobroker-P4 Caught by controller[0]:   Puppeteer old Headless deprecation warning:
                                    2024-01-09 08:51:02.215  - error: host.iobroker-P4 Caught by controller[0]:     In the near feature `headless: true` will default to the new Headless mode
                                    2024-01-09 08:51:02.216  - error: host.iobroker-P4 Caught by controller[0]:     for Chrome instead of the old Headless implementation. For more
                                    2024-01-09 08:51:02.217  - error: host.iobroker-P4 Caught by controller[0]:     information, please see https://developer.chrome.com/articles/new-headless/.
                                    2024-01-09 08:51:02.218  - error: host.iobroker-P4 Caught by controller[0]:     Consider opting in early by passing `headless: "new"` to `puppeteer.launch()`
                                    2024-01-09 08:51:02.219  - error: host.iobroker-P4 Caught by controller[0]:     If you encounter any bugs, please report them to https://github.com/puppeteer/puppeteer/issues/new/choose.
                                    2024-01-09 08:51:02.220  - error: host.iobroker-P4 instance system.adapter.puppeteer.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
                                    2024-01-09 08:51:02.221  - info: host.iobroker-P4 Restart adapter system.adapter.puppeteer.0 because enabled
                                    2024-01-09 08:51:32.265  - info: host.iobroker-P4 instance system.adapter.puppeteer.0 started with pid 131600
                                    2024-01-09 08:51:34.341  - info: puppeteer.0 (131600) starting. Version 0.2.7 in /opt/iobroker/node_modules/iobroker.puppeteer, node: v20.10.0, js-controller: 5.0.17
                                    2024-01-09 08:51:34.427  - error: puppeteer.0 (131600) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                                    2024-01-09 08:51:34.429  - error: puppeteer.0 (131600) unhandled promise rejection: Failed to launch the browser process! undefined
                                    TROUBLESHOOTING: https://pptr.dev/troubleshooting
                                    2024-01-09 08:51:34.431  - error: puppeteer.0 (131600) Error: Failed to launch the browser process! undefined
                                    TROUBLESHOOTING: https://pptr.dev/troubleshooting
                                        at ChildProcess.onClose (/opt/iobroker/node_modules/@puppeteer/browsers/lib/cjs/launch.js:262:24)
                                        at ChildProcess.emit (node:events:526:35)
                                        at ChildProcess._handle.onexit (node:internal/child_process:294:12)
                                    2024-01-09 08:51:34.432  - error: puppeteer.0 (131600) Failed to launch the browser process! undefined
                                    TROUBLESHOOTING: https://pptr.dev/troubleshooting
                                    
                                    
                                    1 Antwort Letzte Antwort
                                    1
                                    • ? Ein ehemaliger Benutzer

                                      @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 Thread

                                      Mal 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.

                                      B Offline
                                      B Offline
                                      bimmi
                                      schrieb am zuletzt editiert von
                                      #193

                                      @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
                                      das einzige, wo ich den iobroker-Puppeteer installieren konnte, war jetzt ne VM in Proxmox unter Debian Bookworm, Node 20.

                                      stimmt. Bei mir das gleich. VM Bookworm und Node20. Da läuft es. Ich hatte aber damals auch probleme bei der Installation über den Apapter. Bin dann erst den umständlichen Weg gegangen und habe mir chromium headless über die Konsole installiert. Anschließend irgendwann nochmal den Adapter dann hat es funktioniert. Ich weiß jedoch nicht mehr, ob das zusammenhängt.

                                      Gruß Bimmi

                                      iobroker in einer Proxmox Umgebung auf einem ausrangierten DELL OptiPlex 3080 24GB i5 in der VM auf SSD. Nutze den slaeh zigbee Router mit Tür- und Temperatursensoren von Aqara, viele Tasmota Devices, Unifi AP, Sprinklecontrol, günstige E-INK Displays, Adguard und noch vieles mehr 😬

                                      ? 1 Antwort Letzte Antwort
                                      0
                                      • B bimmi

                                        @ilovegym sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
                                        das einzige, wo ich den iobroker-Puppeteer installieren konnte, war jetzt ne VM in Proxmox unter Debian Bookworm, Node 20.

                                        stimmt. Bei mir das gleich. VM Bookworm und Node20. Da läuft es. Ich hatte aber damals auch probleme bei der Installation über den Apapter. Bin dann erst den umständlichen Weg gegangen und habe mir chromium headless über die Konsole installiert. Anschließend irgendwann nochmal den Adapter dann hat es funktioniert. Ich weiß jedoch nicht mehr, ob das zusammenhängt.

                                        ? Offline
                                        ? Offline
                                        Ein ehemaliger Benutzer
                                        schrieb am zuletzt editiert von
                                        #194

                                        @bimmi

                                        hab ich auch schon alles durch.. nee.. muss am Environment liegen.. jetzt ist der Puppeteer aufm dem Proxmox-Testknecht ... dank Multihost ja kein Problem..

                                        1 Antwort Letzte Antwort
                                        0
                                        • B Offline
                                          B Offline
                                          bimmi
                                          schrieb am zuletzt editiert von bimmi
                                          #195

                                          Mit der neuen Access Point Firmware ist es möglich die Displays per Gui auf den neuesten Stand zu bringen. Dazu das kleine Dreieck im Display Menü drücken und auf Autoupdate klicken.

                                          Es wird empfohlen jeden Display nacheinander upzudaten und die Tag db json downloaden. Anschließend kann man mit der Datei die Einstellungen der einzelnen Tags wieder herstellen.

                                          Gruß Bimmi

                                          iobroker in einer Proxmox Umgebung auf einem ausrangierten DELL OptiPlex 3080 24GB i5 in der VM auf SSD. Nutze den slaeh zigbee Router mit Tür- und Temperatursensoren von Aqara, viele Tasmota Devices, Unifi AP, Sprinklecontrol, günstige E-INK Displays, Adguard und noch vieles mehr 😬

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          361

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe