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 @haselchen last edited by bimmi

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

      @beowolf
      @bimmi

      Habt ihr das mit dem GoogleKalender in 2.07b klären können?
      Würde gerne updaten, aber nur wenn das wie mit der 2.0.5 passt.

      so sieht mein Kalender Google App Script aus für den 4" Tag. Ich habe mein Script soweit umgebaut, dass ich nur einen speziellen Kalender aus meinen Kalendern abgreife. Da wo NAME-DEINES-KALENDERS steht im script da muss der Name von Dem einen Kalender rein, den Du angezeigt haben möchtest.

      function getEventsForNextDay(days) {
        var start = new Date();
        start.setHours(0, 0, 0, 0);
        var end = new Date();
        if (days == undefined) days = 9;
        end.setDate(end.getDate() + parseInt(days, 10));
        //var calendars = CalendarApp.getAllCalendars();
        var calendars = CalendarApp.getCalendarsByName("NAME-DEINES-KALENDERS");
        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}};
        }
        const params = e.parameter;
        var content = getEventsForNextDay(params.days);
        var output = ContentService.createTextOutput(content);
        output.setMimeType(ContentService.MimeType.JSON);
        return output;
      }
      

      87104656-2eda-4278-97d2-625e231b31be-image.png

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

        @bimmi

        Es kann und soll ja alles so bleiben .
        Nur mit dem Update, warum auch immer, läuft das Skript nicht mehr so wie jetzt , sondern nur 1 Tag im Voraus.
        Änderungen im Skript haben nichts gebracht.

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

          @haselchen Was sind das denn für Termine? Evtl wiederholende? Da könnte es vielleicht daran liegen?

          B haselchen 2 Replies Last reply Reply Quote 0
          • B
            Beowolf last edited by

            Jepp, kann ich bestätigen.

            Bei den kleinen Displays ist nur ein Tag zu sehen.

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

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

              @haselchen Was sind das denn für Termine? Evtl wiederholende? Da könnte es vielleicht daran liegen?

              Sowohl als auch. Abfalltermine und einmalige Termine. Immer nur ein Tag.

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

                @bimmi

                Hatte ich im Discord schon mit Nic diskutiert.
                Die haben da was geändert .
                Warum frage ich mich immer noch .
                Ich soll es selber fixen.
                Aber wie? 🤷‍♂️

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

                  @beowolf

                  Genauso ist es.
                  Sonst hätte ich schön längst geupdatet.

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

                    IMG_20240125_190537.jpg

                    So sieht es bei mir mit dem großen Tag aus. Alles mit der aktuellsten Firmware vom Display und 2. 07b

                    @haselchen Pack doch mal dein Script hier rein, dann teste ich es mal bei mir

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

                      @bimmi

                      Es ist das gleiche von Github.
                      Ich hab nur oben die 1 gegen eine 9 getauscht.
                      Das ist die ganze Zauberei.

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

                        @haselchen Nein. Das ist von mir so abgeändert, dass nicht jeder Kalender angezeigt wird sondern nur ein spezieller. Teste das doch mal.

                        Fragen:

                        • auf welchem Tag möchtest du den Kalender? Unter 4 Zoll oder ab 4 Zoll
                        • welche Firmware hast du auf dem Tag wo der Kalender angezeigt wird?

                        Pack bitte dein Script trotzdem mal hier in Code Tags rein. Ich würde es gerne sehen und vergleichen.

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

                          @bimmi

                          Ich habe bei mir das Skript so:

                          
                          
                          function getEventsForNextDay(days) {
                            var start = new Date();
                            start.setHours(0, 0, 0, 0);
                            var end = new Date();
                            if (days == undefined) days = 14;
                            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}};
                            }
                            const params = e.parameter;
                            var content = getEventsForNextDay(params.days);
                            var output = ContentService.createTextOutput(content);
                            output.setMimeType(ContentService.MimeType.JSON);
                            return output;
                          }
                          

                          Angezeigt werden die Einträge auf den kleinen 2.9" TAGs. Einmal die weissen TAGs (FW: 37) und einmal die schwarzen TAGs(FW:35).

                          Es werden nur die Termine von heute und dem nächsten Tag angezeigt. Bei der 2.05 werden alle Termine angezeigt (bis der kleine Bildschirm voll ist).

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

                            @beowolf Ach am kleinen. Da nutze ich ein anderes Script. Ich kann nur leider am Handy nicht markieren im Google App Script. Ich schicke es heute abend rein!

                            Screenshot_20240126-081528.png

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

                              @bimmi
                              Vielen, vielen Dank.

                              Ich habe es mal "abgetippt".

                              function getEventsForNextDay(days) {
                                var start = new Date();
                                var end = new Date();
                                var time_offset = 0;
                                end.setDate(end.getDate() + 8);
                                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({
                                      title: event.getTitle(),
                                      start: Math.floor((event.getStartTime().getTime() / 1000)+(time_offset*3600)),
                                      end: Math.floor((event.getEndTime().getTime() / 1000)+(time_offset*3600)),
                                      location: event.getLocation(),
                                      description: event.getDescription()
                                    });
                                  }
                                }
                                // Sort events by start date/time
                                events.sort(function(a, b) {
                                  return a.start - b.start;
                                });
                                return JSON.stringify(events);
                              }
                               
                              function doGet() {
                                var content = getEventsForNextDay();
                                var output = ContentService.createTextOutput(content);
                                output.setMimeType(ContentService.MimeType.JSON);
                                return output;
                              }
                              

                              Sollte so richtig sein.

                              Und was noch wichtiger ist - es funktioniert. Auf beiden TAGTs.

                              Danke

                              B R 2 Replies Last reply Reply Quote 1
                              • B
                                Beowolf last edited by

                                Was mir noch aufgefallen ist, bei den weissen TAGs gibt es "Buienradar", also "Regenradar".

                                Das gibt es bei den schwarzen TAGs nicht mehr. Schade.

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

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

                                  @bimmi
                                  Vielen, vielen Dank.

                                  Ich habe es mal "abgetippt".

                                  function getEventsForNextDay(days) {
                                    var start = new Date();
                                    var end = new Date();
                                    var time_offset = 0;
                                    end.setDate(end.getDate() + 8);
                                    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({
                                          title: event.getTitle(),
                                          start: Math.floor((event.getStartTime().getTime() / 1000)+(time_offset*3600)),
                                          end: Math.floor((event.getEndTime().getTime() / 1000)+(time_offset*3600)),
                                          location: event.getLocation(),
                                          description: event.getDescription()
                                        });
                                      }
                                    }
                                    // Sort events by start date/time
                                    events.sort(function(a, b) {
                                      return a.start - b.start;
                                    });
                                    return JSON.stringify(events);
                                  }
                                   
                                  function doGet() {
                                    var content = getEventsForNextDay();
                                    var output = ContentService.createTextOutput(content);
                                    output.setMimeType(ContentService.MimeType.JSON);
                                    return output;
                                  }
                                  

                                  Sollte so richtig sein.

                                  Und was noch wichtiger ist - es funktioniert. Auf beiden TAGTs.

                                  Danke

                                  Super 😅😅😅

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

                                    @bimmi

                                    Kann ich @Beowolf nur zustimmen.
                                    Funktioniert. Dankeschön!

                                    Kleiner Schönheitsmakel.
                                    Oben rechts das Datum, wie bekomme ich da die Striche weg und "normal" geschrieben hin?
                                    27-01-2024 steht da jetzt, vorher war es 27.01.2024

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      Revobobo @Beowolf last edited by

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

                                      Mal ne Frage: wie kriege ich das Script zum laufen? Wo muss es gespeichert werden?

                                      Viele Grüße

                                      @bimmi
                                      Vielen, vielen Dank.

                                      Ich habe es mal "abgetippt".

                                      function getEventsForNextDay(days) {
                                        var start = new Date();
                                        var end = new Date();
                                        var time_offset = 0;
                                        end.setDate(end.getDate() + 8);
                                        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({
                                              title: event.getTitle(),
                                              start: Math.floor((event.getStartTime().getTime() / 1000)+(time_offset*3600)),
                                              end: Math.floor((event.getEndTime().getTime() / 1000)+(time_offset*3600)),
                                              location: event.getLocation(),
                                              description: event.getDescription()
                                            });
                                          }
                                        }
                                        // Sort events by start date/time
                                        events.sort(function(a, b) {
                                          return a.start - b.start;
                                        });
                                        return JSON.stringify(events);
                                      }
                                       
                                      function doGet() {
                                        var content = getEventsForNextDay();
                                        var output = ContentService.createTextOutput(content);
                                        output.setMimeType(ContentService.MimeType.JSON);
                                        return output;
                                      }
                                      

                                      Sollte so richtig sein.

                                      Und was noch wichtiger ist - es funktioniert. Auf beiden TAGTs.

                                      Danke

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

                                        @revobobo Schau mal hier: https://github.com/jjwbruijn/OpenEPaperLink/wiki/Google-Apps-Scripts

                                        R 1 Reply Last reply Reply Quote 0
                                        • R
                                          Revobobo @bimmi last edited by

                                          Top - hat geklappt - Dank Dir!!

                                          Viele Grüße


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

                                          Schau mal hier: https://github.com/jjwbruijn/OpenEPaperLink/wiki/Google-Apps-Scripts

                                          1 Reply Last reply Reply Quote 1
                                          • B
                                            bimmi last edited by bimmi

                                            Es kommt demnächst was neues:

                                            IMG_5451.jpg

                                            Ebenso wird aktuell an folgenden Sachen gearbeitet:

                                            • Aktualisierte Webserver-/TCP-Sockets-Bibliothek mit einer stabileren Version.
                                            • Warteschlangenbildung von ausstehenden Bildern, sodass ein ausstehendes Bild nicht mehr mit einem neuen während der Übertragung verwechselt wird.
                                            • Es wird kein Datei-Handler mehr während des JPEG-Uploads offen gehalten, keine gleichzeitigen Schreibvorgänge mehr.
                                            • Zlib-Komprimierung zum Übertragen von Bildern zwischen AP und Tags hinzugefügt. Die bevorstehende Tag-Firmware wird das nutzen.
                                            R B 2 Replies Last reply Reply Quote 3
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            787
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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