Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter Slideshow (ehemals Diashow) v0.1.x

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Test Adapter Slideshow (ehemals Diashow) v0.1.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • DJMarc75
      DJMarc75 last edited by DJMarc75

      Kleiner Edit von mir in der main.js im Verzeichnis

      /opt/iobroker/node_modules/iobroker.slideshow/build
      

      var __create = Object.create;
      var __defProp = Object.defineProperty;
      var __defProps = Object.defineProperties;
      var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
      var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
      var __getOwnPropNames = Object.getOwnPropertyNames;
      var __getOwnPropSymbols = Object.getOwnPropertySymbols;
      var __getProtoOf = Object.getPrototypeOf;
      var __hasOwnProp = Object.prototype.hasOwnProperty;
      var __propIsEnum = Object.prototype.propertyIsEnumerable;
      var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
      var __spreadValues = (a, b) => {
       for (var prop in b || (b = {}))
         if (__hasOwnProp.call(b, prop))
           __defNormalProp(a, prop, b[prop]);
       if (__getOwnPropSymbols)
         for (var prop of __getOwnPropSymbols(b)) {
           if (__propIsEnum.call(b, prop))
             __defNormalProp(a, prop, b[prop]);
         }
       return a;
      };
      var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
      var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
      var __reExport = (target, module2, copyDefault, desc) => {
       if (module2 && typeof module2 === "object" || typeof module2 === "function") {
         for (let key of __getOwnPropNames(module2))
           if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
             __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
       }
       return target;
      };
      var __toESM = (module2, isNodeMode) => {
       return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
      };
      var utils = __toESM(require("@iobroker/adapter-core"));
      var import_global_helper = require("./modules/global-helper");
      var slideBing = __toESM(require("./modules/slideBing"));
      var slideLocal = __toESM(require("./modules/slideLocal"));
      var slideFS = __toESM(require("./modules/slideFS"));
      var slideSyno = __toESM(require("./modules/slideSynology"));
      let Helper;
      const MsgErrUnknown = "Unknown Error";
      let UpdateRunning = false;
      class Slideshow extends utils.Adapter {
       constructor(options = {}) {
         super(__spreadProps(__spreadValues({}, options), {
           name: "slideshow"
         }));
         this.tUpdatePictureStoreTimeout = null;
         this.tUpdateCurrentPictureTimeout = null;
         this.on("ready", this.onReady.bind(this));
         this.on("stateChange", this.onStateChange.bind(this));
         this.on("unload", this.onUnload.bind(this));
         this.isUnloaded = false;
       }
       async onReady() {
         try {
           Helper = new import_global_helper.GlobalHelper(this);
           await this.setObjectNotExistsAsync("updatepicturelist", {
             type: "state",
             common: {
               name: "updatepicturelist",
               type: "boolean",
               role: "button",
               read: true,
               write: true,
               desc: "Update picture list",
               def: false
             },
             native: {}
           });
           await this.setStateAsync("updatepicturelist", false, true);
           this.subscribeStates("updatepicturelist");
           await this.updatePictureStoreTimer();
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "onReady");
         }
       }
       async onStateChange(id, state) {
         if (state) {
           if (id === `${this.namespace}.updatepicturelist` && (state == null ? void 0 : state.val) === true && (state == null ? void 0 : state.ack) === false) {
             if (UpdateRunning === true) {
               Helper.ReportingInfo("Info", "Adapter", "Update picture list already running");
             } else {
               Helper.ReportingInfo("Info", "Adapter", "Updating picture list");
               clearTimeout(this.tUpdateCurrentPictureTimeout);
               await this.updatePictureStoreTimer();
             }
             await this.setStateAsync("updatepicturelist", false, false);
           }
         }
       }
       onUnload(callback) {
         try {
           this.isUnloaded = true;
           clearTimeout(this.tUpdateCurrentPictureTimeout);
           clearTimeout(this.tUpdatePictureStoreTimeout);
           callback();
         } catch (e) {
           callback();
         }
       }
       async updatePictureStoreTimer() {
         UpdateRunning = true;
         let updatePictureStoreResult = { success: false, picturecount: 0 };
         Helper.ReportingInfo("Debug", "Adapter", "UpdatePictureStoreTimer occured");
         try {
           this.tUpdatePictureStoreTimeout && clearTimeout(this.tUpdatePictureStoreTimeout);
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updatePictureStoreTimer", "Clear Timer");
         }
         try {
           switch (this.config.provider) {
             case 1:
               updatePictureStoreResult = await slideBing.updatePictureList(Helper);
               break;
             case 2:
               updatePictureStoreResult = await slideLocal.updatePictureList(Helper);
               break;
             case 3:
               updatePictureStoreResult = await slideFS.updatePictureList(Helper);
               break;
             case 4:
               updatePictureStoreResult = await slideSyno.updatePictureList(Helper);
               break;
           }
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updatePictureStoreTimer", "Call Timer Action");
         }
         try {
           if (this.config.update_picture_list && this.config.update_picture_list > 0 && updatePictureStoreResult.success === true) {
             Helper.ReportingInfo("Debug", "updatePictureStoreTimer", `Update every ${this.config.update_picture_list} hours, starting timer`);
             this.tUpdatePictureStoreTimeout = setTimeout(() => {
               this.updatePictureStoreTimer();
             }, this.config.update_picture_list * 36e5);
           } else if (updatePictureStoreResult.success === false) {
             this.tUpdatePictureStoreTimeout = setTimeout(() => {
               this.updatePictureStoreTimer();
             }, this.config.update_interval * 3e5);
           }
           if (updatePictureStoreResult.success === true && updatePictureStoreResult.picturecount > 0 && this.isUnloaded === false) {
             await this.setObjectNotExistsAsync("picturecount", {
               type: "state",
               common: {
                 name: "picturecount",
                 type: "number",
                 role: "value",
                 read: true,
                 write: false,
                 desc: "Pictures found"
               },
               native: {}
             });
             await this.setStateAsync("picturecount", { val: updatePictureStoreResult.picturecount, ack: true });
             this.updateCurrentPictureTimer();
           }
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updatePictureStoreTimer", "Set Timer");
         }
         UpdateRunning = false;
       }
       async updateCurrentPictureTimer() {
         var _a;
         let CurrentPictureResult = null;
         let Provider = "";
         Helper.ReportingInfo("Debug", "Adapter", "updateCurrentPictureTimer occured");
         try {
           this.tUpdateCurrentPictureTimeout && clearTimeout(this.tUpdateCurrentPictureTimeout);
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updateCurrentPictureTimer", "Clear Timer");
         }
         try {
           switch (this.config.provider) {
             case 1:
               CurrentPictureResult = await slideBing.getPicture(Helper);
               Provider = "Bing";
               break;
             case 2:
               CurrentPictureResult = await slideLocal.getPicture(Helper);
               Provider = "Local";
               break;
             case 3:
               CurrentPictureResult = await slideFS.getPicture(Helper);
               Provider = "FileSystem";
               break;
             case 4:
               CurrentPictureResult = await slideSyno.getPicture(Helper);
               Provider = "Synology";
               break;
           }
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updateCurrentPictureTimer", "Call Timer Action");
         }
         try {
           if (CurrentPictureResult !== null && this.isUnloaded === false) {
             Helper.ReportingInfo("Debug", Provider, `Set picture to ${CurrentPictureResult.path}`);
             await this.setObjectNotExistsAsync("picture", {
               type: "state",
               common: {
                 name: "picture",
                 type: "string",
                 role: "text",
                 read: true,
                 write: false,
                 desc: "Current picture"
               },
               native: {}
             });
             await this.setStateAsync("picture", { val: CurrentPictureResult.url, ack: true });
             await this.setObjectNotExistsAsync("path", {
               type: "state",
               common: {
                 name: "path",
                 type: "string",
                 role: "text",
                 read: true,
                 write: false,
                 desc: "Path and Name"
               },
               native: {}
             });
             await this.setStateAsync("path", { val: CurrentPictureResult.path, ack: true });
             await this.setObjectNotExistsAsync("info1", {
               type: "state",
               common: {
                 name: "info1",
                 type: "string",
                 role: "text",
                 read: true,
                 write: false,
                 desc: "Info 1 for picture"
               },
               native: {}
             });
             await this.setStateAsync("info1", { val: CurrentPictureResult.info1, ack: true });
             await this.setObjectNotExistsAsync("info2", {
               type: "state",
               common: {
                 name: "info2",
                 type: "string",
                 role: "text",
                 read: true,
                 write: false,
                 desc: "Info 2 for picture"
               },
               native: {}
             });
             await this.setStateAsync("info2", { val: CurrentPictureResult.info2, ack: true });
             await this.setObjectNotExistsAsync("info3", {
               type: "state",
               common: {
                 name: "info3",
                 type: "string",
                 role: "text",
                 read: true,
                 write: false,
                 desc: "Info 3 for picture"
               },
               native: {}
             });
             await this.setStateAsync("info3", { val: CurrentPictureResult.info3, ack: true });
             await this.setObjectNotExistsAsync("date", {
               type: "state",
               common: {
                 name: "date",
                 type: "number",
                 role: "date",
                 read: true,
                 write: false,
                 desc: "Date of picture"
               },
               native: {}
             });
             await this.setStateAsync("date", { val: ((_a = CurrentPictureResult.date) == null ? void 0 : _a.getTime()) || null, ack: true });
           }
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updateCurrentPictureTimer", "Call Timer Action");
         }
         try {
           this.tUpdateCurrentPictureTimeout = setTimeout(() => {
             this.updateCurrentPictureTimer();
           }, this.config.update_interval * 1e3);
         } catch (err) {
           Helper.ReportingError(err, MsgErrUnknown, "updateCurrentPictureTimer", "Set Timer");
         }
       }
      }
      if (module.parent) {
       module.exports = (options) => new Slideshow(options);
      } else {
       (() => new Slideshow())();
      }
      //# sourceMappingURL=main.js.map
      
      

      Zeile 211 bis 223 von mir hinzugefügt.
      Dadurch wird ein neuer DP "path" erzeugt (Neustart des Adapters) in welchen bei jedem Bilderwechsel der aktuelle Pfad inkl. Dateiname geschrieben wird.

      Benutzung auf eigenes Risiko natürlich aber falls das jemand testen mag dann gerne.

      p.s. bei Update vom Adapter wird die main.js natürlich wieder mit der originalen überschrieben.

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

        @djmarc75

        super, gute Idee, danke dir! Zu beachten, wer in der Shell an den Dateien rumfummelt, sollte mit den richtigen Rechten arbeiten, also entweder als user iobroker oder anschliessend mit chown die Rechte wieder auf iobroker:iobroker setzen, sonst schiesst ihr euch unter Umstaenden was..

        Ich habs so gemacht, geht bestimmt auch anders, wenn man sudo -u iobroker macht 🙂

        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ sudo cp main.js main.js-old
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ ls
        lib  main.js  main.js-old  modules
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ sudo rm main.js
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ sudo nano main.js
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ ls -la
        total 40
        drwxrwxr-x+ 4 iobroker iobroker  4096 Dec 15 07:20 .
        drwxrwxr-x+ 7 iobroker iobroker  4096 Dec 10 13:10 ..
        drwxrwxr-x+ 2 iobroker iobroker  4096 Dec 10 13:10 lib
        -rw-rw-r--+ 1 root     root     10815 Dec 15 07:20 main.js
        -rw-rw-r--+ 1 root     root     10676 Dec 15 07:20 main.js-old
        drwxrwxr-x+ 2 iobroker iobroker  4096 Dec 10 13:10 modules
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ sudo chown iobroker:iobroker main.js
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$ ls -la
        total 40
        drwxrwxr-x+ 4 iobroker iobroker  4096 Dec 15 07:20 .
        drwxrwxr-x+ 7 iobroker iobroker  4096 Dec 10 13:10 ..
        drwxrwxr-x+ 2 iobroker iobroker  4096 Dec 10 13:10 lib
        -rw-rw-r--+ 1 iobroker iobroker 10815 Dec 15 07:20 main.js
        -rw-rw-r--+ 1 root     root     10676 Dec 15 07:20 main.js-old
        drwxrwxr-x+ 2 iobroker iobroker  4096 Dec 10 13:10 modules
        ilovegym@iobrokerS:/opt/iobroker/node_modules/iobroker.slideshow/build$
        
        
        1 Reply Last reply Reply Quote 0
        • Attila Perge
          Attila Perge last edited by

          Hallo Ralf,
          super Adapter, Danke!

          Habe die Tage installiert und getestet.
          Auf mein Laptop funktioniert es auch.
          Auf ein Android Tablet unter Firefox und Chrom funktioniert es auch.
          Habe jetzt noch auf einen älteren IPad getestet, dort scheint es aber nicht zu funktionieren.
          Sollte später aber darüber laufen.

          Hast du eine Idee, was ich unter IOS anders machen muss, damit es dort auch funktioniert?

          Ich habe es auch in der ioBroker App versucht, dort scheint es leider auch nicht zu funktionieren.

          Hat es jemand unter IOS zum laufen bekommen?

          VG Attila

          1 Reply Last reply Reply Quote 0
          • W
            Wiesel 0 last edited by

            Hallo zusammen,

            (Hoffe hier richtig zu sein, da dies mein erster Beitrag in diesem Forum ist.)

            zunächst mal: super Adapter, der hat mir wirklich noch gefehlt!

            ich habe die Slideshow seit kurzem auf einem Android Outkitel RT1 und auf einem kleinen NUC über Windows in VIS 1.4.16. am laufen.

            Ich habe leider das Problem, dass sowohl beim Tablet als auch im Windows-Browser nach einigen Stunden der Speicher voll läuft und die View abstürzt.
            Ich habe es dann auf dem Tablet mit der App IOBroker Visu probiert, was leider auch keine Besserung brachte.

            Im Browser steht nur Fehlercode: Out of Memory und die Visu App friert einfach ein.

            Ich habe leider im Forum zu dem Problem nichts gefunden.

            Hat jemand eine Idee, wie ich das Problem in den Griff bekomme?

            Vielen Dank schonmal für eure Hilfe.!

            Einstellungen Slideshow.png

            Ro75 DJMarc75 2 Replies Last reply Reply Quote 0
            • Ro75
              Ro75 @Wiesel 0 last edited by

              @wiesel-0 Aller 20 Sekunden werden neue Bilder geladen und ggfs. im Speicher (Cache) gehalten. Irgendwann läuft der halt voll.

              1 Reply Last reply Reply Quote 1
              • DJMarc75
                DJMarc75 @Wiesel 0 last edited by DJMarc75

                @wiesel-0 sagte in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                der Speicher voll läuft und die View abstürzt

                Ja, das ist bei mir auch so und eigentlich auch "normal". Erklärung dazu: Je mehr verschiedene Bilder (Summe in MB aller Bilder) Du in deinem Verzeichnis hast, desto mehr wird im jeweiligen Browser in den Cache geschrieben und irgendwann ist der dann übervoll und zwingt den Browser in die Knie.
                Teste es mal mit den BING Bildern und Du wirst sehen dass der Browser nicht abstürzt.

                Eine Lösung diesbezüglich seitens des Adapters oder ioBroker kann und wird es daher nicht geben. 🙂

                EDIT:
                Ich nutze den Fullybrowser auf einem FireTV Stick - falls der Fully dann mal abschmieren sollte, startet dieser eben automatisch wieder neu 🙂

                1 Reply Last reply Reply Quote 0
                • W
                  Wiesel 0 last edited by

                  Hallo DJMarc75,

                  danke für die schnelle Hilfe!
                  Tatsächlich kannte ich den Fully Browser noch nicht!

                  Der hat es voll gebracht und hat genau die Einstellungen (Auto-Relaoad, Delete Cache on Auto-Reload und Delete Webstorage), die ich gesucht habe!

                  Vielen Dank für diesen Tip!

                  VG

                  1 Reply Last reply Reply Quote 0
                  • J
                    jensven last edited by

                    habe mir die slideshow jetzt auch mal installiert und funktionier soweit auch ganz gut
                    Verstehe ich das so richtig:
                    Ich erstelle eine View in der ich dann das Widget über den ganzen Bildschirm lege. Dann muss ich ein Script erstelle mit dem ich dann nach einer vorgegeben inaktiviät in das View von der slideshow wechsle?

                    DJMarc75 1 Reply Last reply Reply Quote 0
                    • DJMarc75
                      DJMarc75 @jensven last edited by

                      @jensven sagte in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                      habe mir die slideshow jetzt auch mal installiert und funktionier soweit auch ganz gut

                      super 👍

                      @jensven sagte in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                      Ich erstelle eine View in der ich dann das Widget über den ganzen Bildschirm lege. Dann muss ich ein Script erstelle mit dem ich dann nach einer vorgegeben inaktiviät in das View von der slideshow wechsle?

                      Das kommt ja darauf an was Du wie genau umsetzen willst, aber das sollte nicht in diesem Beitrag behandelt werden da dies nichts mit dem Adapter zu tun hat sondern eine allgemeine Frage zum Thema "Visualisierung" ist. 🙂

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        jensven @DJMarc75 last edited by

                        @djmarc75
                        da gebe ich dir insofern recht dass das mit der Thematik VIS zu tun hat.
                        Aber die grundsätzliche Aufgabe dieses Adapters ist es ja eine Diashow für die VIS zu sein anstatt das abschalten des Bildschirms o. ä.
                        Deswegen die Frage ob ich das so wie ich es beschrieben habe richtig verstanden habe oder ob es einen anderen Weg dafür gibt.

                        DJMarc75 1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 @jensven last edited by

                          @jensven sagte in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                          die grundsätzliche Aufgabe dieses Adapters ist es ja eine Diashow für die VIS zu sein

                          Ja genau und dieser Adapter und das zugehörige Widget macht auch absolut nichts anderes.
                          Es gibt da keinerlei Funktionen wie das Display zu schalten oder Sonstiges.
                          Dazu sind andere Adapter, Skripte, Browser, usw anzuwenden.

                          1 Reply Last reply Reply Quote 0
                          • T
                            TripleX last edited by

                            @AggroRalf

                            Habe gerade deinen Adapter installiert.
                            Ordner und Bilder habe ich über den Dateimanager angelegt und das Widget auf eine extra Seite gepackt.
                            Nur startet die Diashow bei mir nicht.
                            Laut Protokoll ist alles ok.
                            Habe das Timeout auf 1 gesetzt.
                            Gehe mal davon aus, dass damit Minuten gemeint sind.
                            Kann es evtl. daran liegen, dass ich auf jeder Seite ein animiertes gif laufen habe oder wird sowas ignoriert?
                            Wäre es evtl. auch möglich den Adapter auf einer geteilten View (links Diashow / rechts z.B. Kalender) zu nutzen?

                            DJMarc75 1 Reply Last reply Reply Quote 0
                            • DJMarc75
                              DJMarc75 @TripleX last edited by

                              @triplex zeig mal bitte einen Screenshot von Deinen Einstellungen.

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                TripleX @DJMarc75 last edited by

                                @djmarc75 said in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                                @triplex zeig mal bitte einen Screenshot von Deinen Einstellungen.

                                11da9038-349b-4a57-8804-8ed3c083ef89-image.png

                                87bd21a0-269d-442d-a59e-2d8250970c30-image.png

                                8a502410-33aa-443b-98a9-f462abbe42b4-image.png

                                57849f74-e473-47a9-add3-a34a719b5c76-image.png

                                J 1 Reply Last reply Reply Quote 0
                                • J
                                  jensven @TripleX last edited by

                                  @triplex
                                  die Bilder hast du auch so hochgeladen wie es dort steht ?

                                  Bilder aus dem lokalen Ordner iobroker/iobroker-data/files/vis.0/slideshow
                                  Bitte mit VIS-Dateimanager Ordner erstellen und Bilder hochladen
                                  

                                  Hast du mal den Button "updatepicturelist" während der adapter läuft gedrückt ? Vllt. wird dadurch das Problem gelöst.
                                  Ansonsten würde ich mal nur normale Bilder ausprobieren. Dann merkst du sofort ob es an den animierten GIF liegt

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    TripleX @jensven last edited by

                                    @jensven said in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                                    @triplex
                                    die Bilder hast du auch so hochgeladen wie es dort steht ?

                                    Bilder aus dem lokalen Ordner iobroker/iobroker-data/files/vis.0/slideshow
                                    Bitte mit VIS-Dateimanager Ordner erstellen und Bilder hochladen
                                    

                                    Hast du mal den Button "updatepicturelist" während der adapter läuft gedrückt ? Vllt. wird dadurch das Problem gelöst.
                                    Ansonsten würde ich mal nur normale Bilder ausprobieren. Dann merkst du sofort ob es an den animierten GIF liegt

                                    Bilder habe ich wie beschrieben hochgeladen.
                                    Im Datenpunkt picturecount werden auch die Anzahl der Fotos angezeigt.

                                    Das mit dem GIF hast du falsch verstanden.
                                    Ich habe keine GIFs in der Diashow sondern auf den einzelnen Seiten.
                                    Könnte es evtl. daran liegen, dass die Diashow nicht startet, da sich immer was auf der View bewegt?

                                    T J 2 Replies Last reply Reply Quote 0
                                    • T
                                      TripleX @TripleX last edited by

                                      Hallo zusammen!

                                      Noch jemand ne Idee warum die Diashow nicht startet?

                                      manuxi 1 Reply Last reply Reply Quote 0
                                      • manuxi
                                        manuxi @TripleX last edited by

                                        Ich wollte eigentlich letztens schon hier reingeschrieben haben, aber irgendwie ist das untergegangen.
                                        Ich bekomme leider Synology Photos nicht eingebunden. Wir sharen hier ziemlich viele Alben, daher wäre das klasse, das hinzubekommen.
                                        Ich habe einen User mit Upload-Rechten ausgestattet und versucht, die Slideshow damit zum Laufen zu bekommen. Leider ohne Erfolg.
                                        Mit dem User kann ich mich über den Browser anmelden und in SynoPhotos das eine freigegebene Album anschauen. Das klappt also generell.
                                        Im Slideshow-Log steht aber leider:

                                        slideshow.0
                                        2024-02-15 01:19:09.203	error	Error occured: No pictures found in Synology(updatePictureList)
                                        
                                        slideshow.0
                                        2024-02-15 01:19:09.202	error	Error occured: Error getting folders from Synology in Synology(synoGetFolders)
                                        

                                        Dazu habe ich in der Doku nichts finden können. Hat jemand einen Tipp für mich?

                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          jensven @TripleX last edited by

                                          @triplex

                                          Das mit dem GIF hast du falsch verstanden.
                                          Ich habe keine GIFs in der Diashow sondern auf den einzelnen Seiten.
                                          Könnte es evtl. daran liegen, dass die Diashow nicht startet, da sich immer was auf der View bewegt?

                                          Daran kann es nicht liegen, ich habe auch GIFs bei mir am laufen und es funktioniert.
                                          Dumme Frage aber kann die Lösung sein:
                                          Du weisst das du dir nen blockly bzw. nen script schreiben musst mit dem du auf die slideshow view wechselst?
                                          Das macht der Adapter ja nicht selbst.

                                          T 2 Replies Last reply Reply Quote 0
                                          • T
                                            TripleX @jensven last edited by

                                            @jensven said in Test Adapter Slideshow (ehemals Diashow) v0.1.x:

                                            @triplex

                                            Das mit dem GIF hast du falsch verstanden.
                                            Ich habe keine GIFs in der Diashow sondern auf den einzelnen Seiten.
                                            Könnte es evtl. daran liegen, dass die Diashow nicht startet, da sich immer was auf der View bewegt?

                                            Daran kann es nicht liegen, ich habe auch GIFs bei mir am laufen und es funktioniert.
                                            Dumme Frage aber kann die Lösung sein:
                                            Du weisst das du dir nen blockly bzw. nen script schreiben musst mit dem du auf die slideshow view wechselst?
                                            Das macht der Adapter ja nicht selbst.

                                            Das mit dem blockly wusste ich nicht...stand das irgendwo?
                                            Wenn ja, dann habe ich das wohl überlesen.
                                            Wäre es denn auch möglich die Diashow nur auf einer Hälfte der View laufen zu lassen und auf der anderen Hälfte was anderes?
                                            Könntest mir das Blockly mal zur Verfügung stellen?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            595
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter bildschirmschoner diashow slideshow
                                            26
                                            100
                                            8308
                                            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