Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. E-INK Display OpenEPaperLink - Displayanzeige mit Batterie

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E-INK Display OpenEPaperLink - Displayanzeige mit Batterie

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bimmi @BananaJoe last edited by bimmi

      @bananajoe nur über den serial log direkt in den ersten Nachrichten nach dem reboot sieht man die c6 Version.

      Kann aber gut sein, dass der bei dir automatisch das Update bekommt. Davon habe ich jedoch nichts mitbekommen, da das development vom c6 unabhängig von der oepl Firmware stattfindet.

      Die ap unterscheiden sich auch nicht so trivial. Meiner ist eigentlich ein apv2 und da gibt es nur die yellow Firmware.

      Edit: du hast keinen c6 ap! Der Mini ist ein segmented Display mit einem esp32. Bei dir übernimmt der Display den zigbee Teil. Bei den neuen ap ist ein esp32 und ein esp32-c6 verbaut. Der c6 ist der zigbee Sender / Empfänger.

      Dann passt das mit dem Speicher bei dir. Der esp32 mit segmented kann max 20 displays ansteuern.

      BananaJoe 1 Reply Last reply Reply Quote 0
      • B
        bimmi @Beowolf last edited by

        @beowolf sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

        So, habe jetzt komplett neu geflasht. Ein TAG neu angelernt. Aktuelles Datum ausgewählt. Anzeige wieder rosa.

        Bin wieder auf 2.52. Die läuft.

        Hast du die Tag Definitionen geupdatet? Das könnte eine Ursache sein.

        1 Reply Last reply Reply Quote 0
        • B
          bimmi @Beowolf last edited by bimmi

          doppelt

          1 Reply Last reply Reply Quote 0
          • B
            Beowolf last edited by

            Ne, ich bleib erst mal bei 2.52. Es hagelt Fehlermeldungen mit der 2.6b das die entsprechenden Anzeigen von der VIZ durch Puppeteer nicht an die TAGs gesendet werden können.

            Mit 2.52 ist alles wieder ruhig.

            B 1 Reply Last reply Reply Quote 0
            • B
              bimmi @Beowolf last edited by

              @beowolf

              • Known issue when updating to firmware version 2.60: if after updating, the white background of the tags is generated with a slight pink dithering, your tagtype files need updating. Click 'update tagtype definitions' in the update tab, and reboot the AP after.*
              1 Reply Last reply Reply Quote 0
              • BananaJoe
                BananaJoe Most Active @bimmi last edited by

                @bimmi sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                Dann passt das mit dem Speicher bei dir. Der esp32 mit segmented kann max 20 displays ansteuern.

                Ups ...

                Ok, bin erst bei 11, habe hier aber noch eine Kiste voll Tags liegen ...

                1 Reply Last reply Reply Quote 0
                • O
                  oxident last edited by

                  Sagt mal, habt ihr eigentlich noch Stress mit volllaufendem PSRAM und dadurch fehlerhaften Bildern auf den Tags?

                  Ich habe das etwa alle 2-3 Tage und muss dann rebooten. Trotz FW 2.60b

                  Neuschwansteini BananaJoe 2 Replies Last reply Reply Quote 0
                  • Neuschwansteini
                    Neuschwansteini @oxident last edited by

                    @oxident

                    ich hab 20 Tags an einem AP zur Zeit, nutze aber keine Bilder mehr, hab mir das mit json die vom iobroker gepushed werden, zusammen gebaut.

                    Allerdings ist mein AP mit den 20 Tags etwas ueberfordert, ist ein Mini AP V4, hab noch 2 andere, da muss ich aber noch die Tests mit den Tags fertig stellen und dann die location aendern, sonst kommen die sich ins Gehege..

                    Ich muss den AP alle 2h rebooten lassen, sonst schafft er das nicht..

                    1 Reply Last reply Reply Quote 1
                    • BananaJoe
                      BananaJoe Most Active @oxident last edited by

                      @oxident ich habe 2 Mini AP V3 und lasse die ebenfalls im Wechsel alle 2h rebooten (alle geraden Stunden der eine, alle ungeraden Stunden den anderen), mit der Lösung sind alle Probleme weg.

                      Ob die Probleme haben wegen dem PSRAM kann ich gar nicht sagen, mein Monitoring meldet sonst mal gerne das diese nicht mehr erreichbar sind (Ping) und dann hilft nur noch Ein- und Ausschalten. Das mit dem Speicherverbrauch haben eher zufällig gesehen

                      1 Reply Last reply Reply Quote 1
                      • O
                        oxident last edited by

                        Verstehe... dann bin ich ja sogar noch ganz gut dran. Danke für die Infos!

                        BananaJoe 1 Reply Last reply Reply Quote 0
                        • BananaJoe
                          BananaJoe Most Active @oxident last edited by

                          @oxident das mit dem alle 2h rebooten klingt zwar dramatisch ... aber davon bekommt man ja nichts mit 🙂

                          O B 2 Replies Last reply Reply Quote 1
                          • O
                            oxident @BananaJoe last edited by

                            @bananajoe Wohl wahr. Guter Workaround auf jeden Fall!

                            1 Reply Last reply Reply Quote 0
                            • B
                              Beowolf @BananaJoe last edited by Beowolf

                              @bananajoe
                              Funktioniert der Befehl "reboot" mit 2.6b nicht mehr? Ich kann das ruhig im Browser eingeben, der AP rebootet aber nicht.

                              Neuschwansteini O 2 Replies Last reply Reply Quote 0
                              • Neuschwansteini
                                Neuschwansteini @Beowolf last edited by

                                @beowolf

                                geht hier einwandfrei.. gerade im browser probiert... und mit httpget auch ohne probleme mit dem script...

                                1 Reply Last reply Reply Quote 0
                                • O
                                  oxident @Beowolf last edited by oxident

                                  @beowolf Ich hatte da gerade auch etwas Stress und bekam 404-Fehler zurück. Komischerweise scheint es aber mit dem "POST"-Befehl zu klappen. Nutze jetzt folgende Funktion:

                                  function rebootAP(IPofAP) {
                                  
                                      var sUrl = "http://" + IPofAP + "/reboot";
                                  
                                      httpPost(sUrl, { }, { timeout: 10000}, (error, response) => {
                                          if (!error) {
                                              
                                              //console.log(response);
                                              
                                          } else {
                                              log("ePaper-Fehler: " + error, "error");
                                          }
                                      });
                                  
                                  }
                                  

                                  Als Übergabe halt die IP-Adresse des APs als Argument (also z. B. "192.168.178.11")
                                  Komischerweise klappt es auch immer erst beim zweiten Anlauf. Vorher gibt's einen Timeout.
                                  Spendiere der Funktion jetzt 10s Zeit. Dann klappt's immer.

                                  Aber es funktioniert so bei mir 😉

                                  Neuschwansteini 1 Reply Last reply Reply Quote 0
                                  • Neuschwansteini
                                    Neuschwansteini @oxident last edited by

                                    @oxident

                                    bei mir so:
                                    3aff3864-afa9-44a5-abd5-30024ae4c0f2-image.png

                                    vielleicht macht die Auslastung oder der Empfang was aus... ich bekomme kein timeout bei 2000ms..
                                    hab aber auch die wifi power hoch:

                                    67fa4964-0223-4452-8cfe-a14677ef1207-image.png

                                    O BananaJoe 2 Replies Last reply Reply Quote 1
                                    • O
                                      oxident @Neuschwansteini last edited by

                                      @ilovegym Ja, ist eigentlich genau das, was das Javascript auch macht. Wer weiß, vielleicht ist mein JS-Adapter auch einfach nur überlastet 😉

                                      1 Reply Last reply Reply Quote 0
                                      • BananaJoe
                                        BananaJoe Most Active @Neuschwansteini last edited by

                                        @ilovegym sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                                        hab aber auch die wifi power hoch:

                                        Ob da gut oder schlecht ist kommt ja auf den AP an. Mein MiniAP tilt dann aus

                                        O 1 Reply Last reply Reply Quote 0
                                        • O
                                          oxident @BananaJoe last edited by

                                          @bananajoe Ja, meiner auch. Bin aber auch recht nah am Wifi-AP und konnte daher weit runter gehen. Mal sehen, ob es mit den Reboots jetzt "stabil" läuft...

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            glitzi @Beowolf last edited by

                                            @beowolf sagte in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

                                            @bananajoe

                                            So, ich habe jetzt das Skript mal ein wenig umgebaut.

                                            sendTo('puppeteer.0', 'screenshot', { 
                                                url: urlOfVISView,                     
                                                path: imageSaveToFilenameWithPath,     
                                                width: viewWidth,                      
                                                height: viewHeight,                    
                                                quality: jpgQuality,                   
                                            
                                                waitOption: {
                                                    waitForSelector: waitForSelector,  
                                                    waitForTimeout: 20000              
                                                },
                                            
                                                fullPage: false,                       
                                            
                                                clip: {         
                                                    x: cutoutX,                        
                                                    y: cutoutY,                        
                                                    width: cutoutWidth,                
                                                    height: cutoutHeight               
                                                }
                                            }, obj => {
                                                if (obj.error) {
                                                    console.warn("Fehler beim Aufruf der View: " + urlOfVISView + " => " + obj.error.message);
                                                } else {
                                                    const http = require('http'); 
                                                    const https = require('https');
                                                    const { URL } = require('url');
                                            
                                                    const boundary = '--------------------------' + Date.now().toString(16);
                                                    const CRLF = '\r\n';
                                            
                                                    // Payload-Erstellung
                                                    const payload = Buffer.concat([
                                                        Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="dither"${CRLF}${CRLF}0${CRLF}`),
                                                        Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="mac"${CRLF}${CRLF}${ePaperMAC}${CRLF}`),
                                                        Buffer.from(`--${boundary}${CRLF}Content-Disposition: form-data; name="image"; filename="screenshot.jpg"${CRLF}Content-Type: image/jpeg${CRLF}${CRLF}`),
                                                        Buffer.from(obj.result, 'binary'),
                                                        Buffer.from(`${CRLF}--${boundary}--${CRLF}`)
                                                    ]);
                                            
                                                    // URL Parsing
                                                    const url = new URL(imageUploadURL);
                                                    const options = {
                                                        hostname: url.hostname,
                                                        port: url.port || (url.protocol === 'https:' ? 443 : 80),
                                                        path: url.pathname + (url.search || ''),
                                                        method: 'POST',
                                                        headers: {
                                                            'Content-Type': 'multipart/form-data; boundary=' + boundary,
                                                            'Content-Length': payload.length
                                                        }
                                                    };
                                            
                                                    // Protokollwahl
                                                    const protocol = url.protocol === 'https:' ? https : http;
                                            
                                                    // HTTP Request
                                                    const req = protocol.request(options, function(res) {
                                                        console.log('ImageUploadStatusCode:', res.statusCode);
                                                        res.on('data', function(chunk) {
                                                            console.log('Response:', chunk.toString());
                                                        });
                                                    });
                                            
                                                    req.on('error', function(e) {
                                                        console.error('Fehler beim Hochladen:', e.message);
                                                    });
                                            
                                                    req.write(payload);
                                                    req.end();
                                                }
                                            });
                                            

                                            Na ja, ich bin jetzt mal ehrlich. Ich habe ChatGPT solange damit gernervt bis ich eine Version hatte die jetzt funktioniert.

                                            Ich habe keine Ahnung was da wie gemacht wird, aber es läuft. Die TAG werden sehr schnell aktualisiert und alles ohne Fehlermeldungen. 😊

                                            Grüße
                                            Manfred

                                            Haben wir hier jemanden der noch die Funktion groß/klein Skalieren für die bessere Bildqualität einbauen kann?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            946
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            42
                                            991
                                            231562
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo