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.
    • E
      eMd last edited by

      Ich bedanke mich bei euch allen und vorallem bei @BananaJoe !

      Ich weiß nicht warum, aber es geht nun, habe in der zwischenzeit gefühlt 1000 Sachen geändert und mit einmal geht es.
      Keine Ahnung wo da der Fehler lag...

      MfG
      eMd

      Webranger 1 Reply Last reply Reply Quote 1
      • B
        bonsai308 @BananaJoe last edited by

        @bananajoe said in E-INK Display OpenEPaperLink - Displayanzeige mit Batterie:

        Die Screenshots werden doppelt so groß gefertigt und dann herunterskaliert, dafür muss Imagemagick evenfalls installiert sein (für den Befehl convert)

        Eine Frage: wie genau erledigst Du das konvertieren?

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

          @bonsai308 ich nutze dazu ImageMagick / den Befehl Convert:

          /usr/bin/convert /var/www/html/openepaper/FensterTueren_4x.png -sample 400x300 -quality 100 -sampling-factor 4:4:4 -brightness-contrast 0x99 /var/www/html/openepaper/FensterTueren.jpg' 
          

          Die Parameter hatte ich mir durch ausprobieren ausgeklüngelt.

          Ganz genau: Ich habe das ganze in ein Python-Skript gepackt (weil da heraus playwright gut ansteuern kann, mit einem Aufruf gleich 4 Webseiten abholen) und starte aus diesem Skript auch die Konvertierung.
          Abgelegt wird alles im www Verzeichnis von Apache aus dem sich die OpeneEpaper AccessPoints die Bilder abholen können.

          1 Reply Last reply Reply Quote 0
          • E
            eMd last edited by

            Ich bin euch ja noch meinen Einsatzbereich schuldig 😎

            Ich habe für meinen Sohn es so eingestellt, daß immer der nächste Tag als Stundenplan angezeigt wird damit er abends die Mappe packen kann.
            Täglich um 12uhr springt er auf den nächsten Tag um.

            2,2zoll Tag mit Magnet an seinem White Board befestigt.

            Noch ist der Stundenplan einfach nur eine statische HTML Datei. In Zukunft wird das dynamisch über webuntis eingespielt da die Schule da den Stundenplan hinterlegt hat. So kann auch Ausfall und Fächerwechsel angezeigt werden (in rot)

            MfG
            eMd

            haselchen Eisbaeeer 2 Replies Last reply Reply Quote 0
            • haselchen
              haselchen Most Active @eMd last edited by haselchen

              Puh, 39 Seiten....

              Vielleicht kann meine Frag ja schnell abgehakt werden.
              Ich hab nen Aqara Temp.Sensor.
              Und nur die Temperatur soll auf dem Tag angezeigt werden.
              Bisher nutze ich die Temperatureinstellung meines Wohnortes.
              Das ist ja als Template hinterlegt.

              @BananaJoe
              @Beowolf
              @bimmi

              S 1 Reply Last reply Reply Quote 0
              • S
                stenmic @haselchen last edited by

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

                Puh, 39 Seiten....

                Vielleicht kann meine Frag ja schnell abgehakt werden.
                Ich hab nen Aqara Temp.Sensor.
                Und nur die Temperatur soll auf dem Tag angezeigt werden.
                Bisher nutze ich die Temperatureinstellung meines Wohnortes.
                Das ist ja als Template hinterlegt.

                @BananaJoe
                @Beowolf
                @bimmi

                schau dir das mal an, ist denke ich am einfachsten
                https://forum.iobroker.net/post/1186555

                haselchen B 2 Replies Last reply Reply Quote 0
                • haselchen
                  haselchen Most Active @stenmic last edited by haselchen

                  @stenmic

                  Danke für Dein Feedback.
                  Habs nach Stunden und Gebastel geschafft im Zusammenspiel mit Homeassistant.
                  Falls das jemand nachmachen möchte...

                  Im Iobroker MQTT Client installiert. Dann einen DP ausgewählt und dort MQTT Client aktiviert.
                  In HA MQTT Mosquitto installiert und mit den IObroker Daten gefüttert.
                  Eine YAML gebastelt (von Github), https://github.com/OpenEPaperLink/Home_Assistant_Integration)
                  Damit eine Automatisierung erstellt.

                  42d0e53f-2cc8-43a2-b819-2e744f21a22f-grafik.png

                  Und so sieht es aus:

                  IMG_2824.jpeg

                  Also ich finde, gar nicht mal so schlecht 🙂
                  Einmal das ganze Prozedere gemacht, kann man alles drauf darstellen.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    stenmic @haselchen last edited by

                    @haselchen hätte aber auch ein einfaches Blockly gereicht 🙂

                    haselchen 1 Reply Last reply Reply Quote 0
                    • haselchen
                      haselchen Most Active @stenmic last edited by

                      @stenmic

                      Wer will denn hier einfach 😂

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

                        Hat sich erledigt. Diesen Beitrag nicht beachten.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          stenmic @Beowolf last edited by stenmic

                          @beowolf
                          wenn du meinst
                          nenn mir mal bitte ne echte Quelle dazu in der das steht.

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

                            Hat sich erledigt. Diesen Beitrag nicht beachten.

                            S 2 Replies Last reply Reply Quote 1
                            • S
                              stenmic @Beowolf last edited by stenmic

                              @BananaJoe
                              bitte um Aufklärung, wo ist die Quelle deiner Behauptung?
                              https://forum.iobroker.net/topic/66380/e-ink-display-openepaperlink-displayanzeige-mit-batterie/761?_=1729425546222

                              Es geht um axios

                              1 Reply Last reply Reply Quote 0
                              • S
                                stenmic @Beowolf last edited by

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

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

                                @beowolf
                                wenn du meinst
                                nenn mir mal bitte ne echte Quelle dazu in der das steht.

                                Naj, es steht in einem Beitrag von "BananaJoe". Er würde das nicht schreiben, nur weil so viel Tasten auf der Tastatur sind.

                                wenn du alles glaubst…

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

                                  Hat sich erledigt. Diesen Beitrag nicht beachten.

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    stenmic @Beowolf last edited by stenmic

                                    @beowolf
                                    so ganz mochte ich deinen Hinweis ohne richtige Quellenangabe auch nicht. Nur wenn hier ein User was schreibt, ist das ohne Quelle nix wert. Gerade bei so einer Behauptung.
                                    Aber lass uns besser jetzt aufhören.

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

                                      @stenmic Mein Post bezog sich auf das gepostete Skript eines anderen Benutzers /was er gerade benutzt:
                                      a90a7352-d545-4f79-bc95-c457d95e67d3-image.png

                                      Aber ich habe gerade mal gesucht und es genau falsch herum verwechselt, request war das alte und muss durch axios ersetzt werden, was auch die neuen Blockly-Bausteine für http-Abfragen verwenden.

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

                                        @bananajoe

                                        So einfach kann es gehen. Danke für die Korrektur. 👍

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

                                          Hallo,

                                          seit dem Update von Pupeteer auf 0.4.0 bekomme ich folgende Fehlermeldung.

                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at processImmediate (node:internal/timers:483:21)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Immediate._onImmediate (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:381:37)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10886:45)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3097:38)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Object.<anonymous> (script.js.ESP-E-INK.VIS-View-an-eTag-senden:43:24)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.284	error	at Function.from (node:buffer:320:9)
                                          
                                          javascript.0
                                          2024-10-28 18:54:02.283	error	Error in callback: TypeError: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of Object
                                          

                                          Hier mein Script

                                          
                                          sendTo('puppeteer.0', 'screenshot', { 
                                              url: urlOfVISView,                     
                                              path: imageSaveToFilenameWithPath,     
                                              width: viewWidth,                      
                                              height: viewHeight,                    
                                              quality: jpgQuality,                   
                                           
                                              waitOption: {
                                                  waitForSelector: waitForSelector,  
                                                  waitForTimeout: 30000              
                                              },
                                           
                                              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}${dither}${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();
                                              }
                                          });
                                          
                                          
                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            Beowolf @glitzi last edited by

                                            @glitzi
                                            Jepp, ist so.

                                            wieder zurück auf 0.2.8 und alles ist gut.

                                            Änderung in der

                                            /opt/iobroker/node_modules/iobroker.puppeteer/build/main.js

                                            nicht vergessen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            43
                                            993
                                            253827
                                            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