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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Bilder alle x Sekunden wechseln

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Bilder alle x Sekunden wechseln

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
16 Beiträge 4 Kommentatoren 1.6k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • metaxaM Offline
    metaxaM Offline
    metaxa
    schrieb am zuletzt editiert von
    #1

    Ich möchte meinen Mähroboter symbolisch im Übersichtsview herumfahen lassen.

    Dafür habe ich jetzt testweise 6 Bilder produziert, wo Dolly (=Ladroid S) immer an einer ander Stelle positioniert ist. In einem "basic-Image 8" kann ich x Bilder je nach bestimmten Wert einblenden. Ich suche jetzt eine elegante Lösung die Bilder alle 1-3 Sekunden zu wechseln. Mir widerstrebt aus Performancegründen ein Script zu schreiben, dass einen Datenpunkt alle 1-3 Sekunden mit einem anderen Wert befüllt. Eine Schleife wäre auch eine Möglichkeit.

    Wisst ihr, oder habt ihr eine Idee für, einen eleganteren Weg?

    LG, mxa

    1 Antwort Letzte Antwort
    0
    • OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      Wenn die Liste der Bilder dynamisch sein soll, kannst du ja in einen datenpunkt eine Array mit allen Bildpfaden als Json schreiben.
      Ein Skript in der visualisierung mit settimeout oder setinterval wechselt dann alle paar Sekunden das Bild .

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      metaxaM 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        Wenn die Liste der Bilder dynamisch sein soll, kannst du ja in einen datenpunkt eine Array mit allen Bildpfaden als Json schreiben.
        Ein Skript in der visualisierung mit settimeout oder setinterval wechselt dann alle paar Sekunden das Bild .

        metaxaM Offline
        metaxaM Offline
        metaxa
        schrieb am zuletzt editiert von
        #3

        @OliverIO Hi!

        Ja ........ hmhmm ....... da habe ich mich wohl mit den "Script schreiben" ein wenig zu weit rausgelehnt. Besser wäre gewesen, ich kann mir in Blockly was zusammenklicken.

        @OliverIO sagte in Bilder alle x Sekunden wechseln:

        Wenn die Liste der Bilder dynamisch sein soll, kannst du ja in einen datenpunkt eine Array mit allen Bildpfaden als Json schreiben.

        Da steige ich schon aus.

        @OliverIO sagte in Bilder alle x Sekunden wechseln:

        Ein Skript in der visualisierung mit settimeout oder setinterval wechselt dann alle paar Sekunden das Bild .

        Das klingt sehr vernünftig, da ja die Arbeit aus das jeweilige Device ausgelagert wird. Aber leider, das ist mir eine Nummer zu groß.

        Lieben Dank Oliver für deine Idee!
        LG, mxa

        1 Antwort Letzte Antwort
        0
        • OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #4

          Ich finde, blockly ist nur vermeintlich einfacher wie Java Skript,
          Da ja man nur die symbolische Repräsentation von Javasvript befehlen zusammenklickt
          Mach doch einfach mal ein JavaScript Tutorial durch und du wirst sehen, das es gar nicht so schwer ist.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Antwort Letzte Antwort
          0
          • liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von liv-in-sky
            #5

            habe mal etwas getestet - mit bindings

            ein widget mit einem datenpunkt als img-quelle

            Image 4.png

            im datenpunkt (string/text) steht die quelle des bildes -

            Image 6.png

            jetzt kannst du ganz simple ein blockly schreiben: trigger alle 25 sekunden
            und dann schreibe in den datenpunkt deinen dateipfad, ; schreibe deinen dateipfad (verzögert 5 sek), schreibe datenpfad (verzögert 10 sek,,, bis alle 5 bilder durch sind

            Image 11.png

            vielleicht solltest du nicht alle 5 sekunden nehmen - eher einen größeren zeitraum

            wechsel.gif

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            metaxaM 1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              habe mal etwas getestet - mit bindings

              ein widget mit einem datenpunkt als img-quelle

              Image 4.png

              im datenpunkt (string/text) steht die quelle des bildes -

              Image 6.png

              jetzt kannst du ganz simple ein blockly schreiben: trigger alle 25 sekunden
              und dann schreibe in den datenpunkt deinen dateipfad, ; schreibe deinen dateipfad (verzögert 5 sek), schreibe datenpfad (verzögert 10 sek,,, bis alle 5 bilder durch sind

              Image 11.png

              vielleicht solltest du nicht alle 5 sekunden nehmen - eher einen größeren zeitraum

              wechsel.gif

              metaxaM Offline
              metaxaM Offline
              metaxa
              schrieb am zuletzt editiert von
              #6

              @liv-in-sky Servus!
              Ja, das war auch mein erster gedanklicher Ansatz, aber ich wollte eben aus performanten Gründen eine elegantere Lösung.
              Oliver hat recht, seinen Lösungsansatz finde ich gut.
              Oliver hat leider auch recht, ich sollt mich endlich bei JS von copy/paste und try/error verabschieden und z.B. mich da durcharbeiten :-)

              Abef jedenfalls ganz lieben Dank für deinen Vorschlag, ich schaue mal wie weit ich komme. Bei 98f65bc9-b877-48f6-90ff-72f8be1bc647-grafik.png
              bin ich schon, da wird es ja jetzt schon interessant :-?

              LG, mxa

              1 Antwort Letzte Antwort
              0
              • OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                👍👍👍👍👍👍

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  pix
                  schrieb am zuletzt editiert von pix
                  #8

                  Hallo,

                  ich würde auch auf jeden Fall ein Skript nutzen. Man kann nun überlegen, was das Skript übernehmen soll und was das Widget.
                  Natürlich kann ein Skript alles übernehmen und den URL zum Bild alle paar Sekunden in einen Datenpunkt schreiben.

                  Man kann aber auch per Skript einfach nur eine aufsteigende Zahl in einen Datenpunkt schreiben. Sagen wir 1 bis 10, Wechsel alle 1s. Dann könnten mehrere Widgets in VIS damit gesteuert werden. Ich nenne das Rolle.

                  /*
                   Skript zählt ganze Zahlen hoch bis Maxwert, dann Reset auf Minwert
                  */
                  
                  const idNummer = "VIS.Webcam.Rotation.Nummer"; // Pfad zum Datenpunkt
                  
                  const delay = 1; // Verzögerung beim Hochzählen in Sekunden
                  const min = 0; // minimaler Wert
                  const max = 10 // maximaler Wert
                  
                  // ab hier nix mehr ändern
                  createState(idNummer, min, { // Datenpunkt erstellen
                      name: 'VIS Webcam (rotierend) Nummer',
                      desc: 'aufsteigende Nummer',
                      def: min,
                      type: 'number'
                  });
                  
                  // Rolle
                  let x = min;
                  
                  setInterval(function () {
                      x = x + 1; // neue Version
                      setState(idNummer, x); // neue Version
                      // setState(idNummer, x+1); // Alte Version vor Korrektur durch OliverO
                      if (x == max) x = min-1;
                  }, delay * 1000);
                  

                  Jetzt kannst du mit den "8er"-Widgets darauf reagieren.
                  Oder über die Sichtbarkeit nur bei Wert >= 5 etwas anzeigen lassen (5s an, 5s aus) oder über gerade/ungerade im Sekundentakt blinken.

                  Gruß
                  Pix

                  ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                  metaxaM 1 Antwort Letzte Antwort
                  1
                  • P pix

                    Hallo,

                    ich würde auch auf jeden Fall ein Skript nutzen. Man kann nun überlegen, was das Skript übernehmen soll und was das Widget.
                    Natürlich kann ein Skript alles übernehmen und den URL zum Bild alle paar Sekunden in einen Datenpunkt schreiben.

                    Man kann aber auch per Skript einfach nur eine aufsteigende Zahl in einen Datenpunkt schreiben. Sagen wir 1 bis 10, Wechsel alle 1s. Dann könnten mehrere Widgets in VIS damit gesteuert werden. Ich nenne das Rolle.

                    /*
                     Skript zählt ganze Zahlen hoch bis Maxwert, dann Reset auf Minwert
                    */
                    
                    const idNummer = "VIS.Webcam.Rotation.Nummer"; // Pfad zum Datenpunkt
                    
                    const delay = 1; // Verzögerung beim Hochzählen in Sekunden
                    const min = 0; // minimaler Wert
                    const max = 10 // maximaler Wert
                    
                    // ab hier nix mehr ändern
                    createState(idNummer, min, { // Datenpunkt erstellen
                        name: 'VIS Webcam (rotierend) Nummer',
                        desc: 'aufsteigende Nummer',
                        def: min,
                        type: 'number'
                    });
                    
                    // Rolle
                    let x = min;
                    
                    setInterval(function () {
                        x = x + 1; // neue Version
                        setState(idNummer, x); // neue Version
                        // setState(idNummer, x+1); // Alte Version vor Korrektur durch OliverO
                        if (x == max) x = min-1;
                    }, delay * 1000);
                    

                    Jetzt kannst du mit den "8er"-Widgets darauf reagieren.
                    Oder über die Sichtbarkeit nur bei Wert >= 5 etwas anzeigen lassen (5s an, 5s aus) oder über gerade/ungerade im Sekundentakt blinken.

                    Gruß
                    Pix

                    metaxaM Offline
                    metaxaM Offline
                    metaxa
                    schrieb am zuletzt editiert von
                    #9

                    HI @pix!
                    Vorab, ganz lieben Dank. An so etwas habe ich über Blockly gedacht, aber noch nicht begonnen. Dein Script habe ich für meine Voraussetzungen angepaßt, aber es tut nicht. Ich sitze jetzt schon seit Stunden um den Fehler zu finden, steige aber nicht dahinter.

                    Hier das abgewandelte Script:

                    /*
                     Skript zählt ganze Zahlen hoch bis Maxwert, dann Reset auf Minwert
                    */
                    
                    const idNummer = "a_andreas.0.eigene_dp.VIS.Dolly.Wertrotation"; // Pfad zum Datenpunkt
                    
                    const delay = 5; // Verzögerung beim Hochzählen in Sekunden
                    const min = 0; // minimaler Wert
                    const max = 9; // maximaler Wert
                    
                    /*
                     ab hier nix mehr ändern
                    createState(idNummer, min, { // Datenpunkt erstellen
                        name: 'VIS Webcam (rotierend) Nummer',
                        desc: 'aufsteigende Nummer',
                        def: min,
                        type: 'number'
                    });
                    */
                    
                    // Rolle
                    var x = min;
                    
                    setInterval(function () {
                        setState(idNummer, x + 1);
                        if (x == max) x = min;
                    }, delay * 1000);
                    
                    // setState(idNummer, x + 5);
                    // console.log(x);
                    


                    Was passiert, oder eben auch nicht:
                    Ich starte das Script, nach Ablauf der ersten Verzögerung wird mein DP auf 1 geändert. Die verwendeten delayzeiten passen, das funktioniert. Nach Ablauf der nächsten Verzögerung blinkt der DP wieder auf und bleibt aber beharlich auf 1. Ist sicher ganz trivial, ich habe auch schon stundenlang hier herumgesucht und probiert, auch hier, komme aber nicht weiter. Ich habe das Gefühl, die function() startet bei jedem Durchlauf mit "let x = min", auch ein ändern auf "var" hilft nicht.

                    @pix, wo muss ich was ändern?

                    LG, mxa

                    OliverIOO 1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #10

                      Hallo mxa,

                      der Ablauf bei Deinem Skript ist so:

                      • Skriptstart x wird mit min befüllt, also 0
                      • Intervall startet
                      • Datenpunkt wird sofort mit 0 + 1, also 1 beschrieben
                      • Prüfung, ob x schon max erreicht hat, wenn ja x wieder mit min (0) füllen
                      • 5 * 1000ms warten und Intervall wieder starten

                      Sollte gehen. Du hast meine Zeile 24 (deine Zeile 26) abgewandelt. Das minus 1 sorgt dafür, dass der Datenpunkt auch wirklich den Minimalwert bekommt, denn setState() schreibt ja sofort x+1

                      Ich sehe ein Problem in deinem State / Datenpunkt.
                      Es ist in meinen Augen nicht gut, Datenpunkte außerhalb des Javascript-Adapters (vermutlich von Hand) anzulegen. Du solltest dabei unbedingt auf den Typ und ggf. auf die Rolle achten. Läuft denn mein Skript bei dir, wenn du nur die Anpassungen

                      const delay = 5; // Verzögerung beim Hochzählen in Sekunden
                      const min = 0; // minimaler Wert
                      const max = 9; // maximaler Wert
                      

                      vornimmst?

                      Gruß
                      Pix

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      1 Antwort Letzte Antwort
                      0
                      • metaxaM metaxa

                        HI @pix!
                        Vorab, ganz lieben Dank. An so etwas habe ich über Blockly gedacht, aber noch nicht begonnen. Dein Script habe ich für meine Voraussetzungen angepaßt, aber es tut nicht. Ich sitze jetzt schon seit Stunden um den Fehler zu finden, steige aber nicht dahinter.

                        Hier das abgewandelte Script:

                        /*
                         Skript zählt ganze Zahlen hoch bis Maxwert, dann Reset auf Minwert
                        */
                        
                        const idNummer = "a_andreas.0.eigene_dp.VIS.Dolly.Wertrotation"; // Pfad zum Datenpunkt
                        
                        const delay = 5; // Verzögerung beim Hochzählen in Sekunden
                        const min = 0; // minimaler Wert
                        const max = 9; // maximaler Wert
                        
                        /*
                         ab hier nix mehr ändern
                        createState(idNummer, min, { // Datenpunkt erstellen
                            name: 'VIS Webcam (rotierend) Nummer',
                            desc: 'aufsteigende Nummer',
                            def: min,
                            type: 'number'
                        });
                        */
                        
                        // Rolle
                        var x = min;
                        
                        setInterval(function () {
                            setState(idNummer, x + 1);
                            if (x == max) x = min;
                        }, delay * 1000);
                        
                        // setState(idNummer, x + 5);
                        // console.log(x);
                        


                        Was passiert, oder eben auch nicht:
                        Ich starte das Script, nach Ablauf der ersten Verzögerung wird mein DP auf 1 geändert. Die verwendeten delayzeiten passen, das funktioniert. Nach Ablauf der nächsten Verzögerung blinkt der DP wieder auf und bleibt aber beharlich auf 1. Ist sicher ganz trivial, ich habe auch schon stundenlang hier herumgesucht und probiert, auch hier, komme aber nicht weiter. Ich habe das Gefühl, die function() startet bei jedem Durchlauf mit "let x = min", auch ein ändern auf "var" hilft nicht.

                        @pix, wo muss ich was ändern?

                        LG, mxa

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #11

                        @metaxa
                        der fehler liegt daran, dass du zwar 1 zu x addierst,
                        das ergebnis aber nicht wieder in x abspeicherst.
                        deswegen bleibt x immer 0

                        setInterval(function () {
                             x = x + 1;
                            setState(idNummer, x );
                            if (x == max) x = min;
                        }, delay * 1000);
                        

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        P 1 Antwort Letzte Antwort
                        1
                        • OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #12

                          Eine Frage zu deinem ursprünglichen Anwendungsfall:

                          Sind die 6 Bilder immer fix oder ändern die sich immer wieder mal?
                          Ist das eine Abbildung deines Mähroboters, der auf dem Bildschirm rumfährt
                          aber halt nur symbolisch ohne irgendein realen Hintergrund?

                          Dann könntest du auch mal noch unter CSS-Animationen schauen.
                          Wenn da keine dynamischen Daten beteiligt sind,
                          dann kannst du das rein im Browser laufen lassen
                          Hier ein Beispiel: https://codepen.io/mmzzba/pen/VpRbjz

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          metaxaM 1 Antwort Letzte Antwort
                          1
                          • OliverIOO OliverIO

                            @metaxa
                            der fehler liegt daran, dass du zwar 1 zu x addierst,
                            das ergebnis aber nicht wieder in x abspeicherst.
                            deswegen bleibt x immer 0

                            setInterval(function () {
                                 x = x + 1;
                                setState(idNummer, x );
                                if (x == max) x = min;
                            }, delay * 1000);
                            
                            P Offline
                            P Offline
                            pix
                            schrieb am zuletzt editiert von pix
                            #13

                            @OliverIO Du hast natürlich recht, werde das oben mal für Nachbauer korrigieren https://forum.iobroker.net/post/270338

                            Danke! Ist passiert, weil ich meinen (funktionierenden) Code nicht komplett kopiert habe, um ihn zu vereinfachen. Ein x++ ist rausgeflutscht.

                            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                            metaxaM 1 Antwort Letzte Antwort
                            0
                            • P pix

                              @OliverIO Du hast natürlich recht, werde das oben mal für Nachbauer korrigieren https://forum.iobroker.net/post/270338

                              Danke! Ist passiert, weil ich meinen (funktionierenden) Code nicht komplett kopiert habe, um ihn zu vereinfachen. Ein x++ ist rausgeflutscht.

                              metaxaM Offline
                              metaxaM Offline
                              metaxa
                              schrieb am zuletzt editiert von metaxa
                              #14

                              @pix & @OliverIO!
                              Lieben Dank Euch beiden! Was mich jetzt nur so ärgert, ich sitze stundenlang und behirne es einfach nicht, finde den offensichtlichen Fehler nicht. Zeile eingefügt und schon läuft es astrein, nichmals großes Danke!

                              Aus der Not ein Tugend gemacht, hatte ich mich dann im Frust in Blockly versucht:

                              Script 1:
                              f039803d-5098-4bc6-853a-4f77be4a76a2-grafik.png

                              <xml xmlns="http://www.w3.org/1999/xhtml">
                                <variables>
                                  <variable type="" id="e:reE_ld51DSd_rk)yzR">sv_dolly_aktueller_status_number</variable>
                                </variables>
                                <block type="on_ext" id="tmLQj%iFN?o#bvn8tzG:" x="-37" y="-362">
                                  <mutation items="1"></mutation>
                                  <field name="CONDITION">ne</field>
                                  <field name="ACK_CONDITION"></field>
                                  <value name="OID0">
                                    <shadow type="field_oid" id="fd^.QmE;b_O^I,PkVq@_">
                                      <field name="oid">worx.0.201730190911000203F7.mower.status</field>
                                    </shadow>
                                  </value>
                                  <statement name="STATEMENT">
                                    <block type="variables_set" id="GMFH+aC`Xngubf9z]pvB">
                                      <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                      <value name="VALUE">
                                        <block type="get_value" id="hd86oj|wcJ$r_PY?~Ud%">
                                          <field name="ATTR">val</field>
                                          <field name="OID">worx.0.201730190911000203F7.mower.status</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="debug" id="Gh-uHtMi{mHK*7!%2%-Q">
                                          <field name="Severity">warn</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="Jh;DWV6DK^aI2EWx7%O2">
                                              <field name="TEXT">test</field>
                                            </shadow>
                                            <block type="text_join" id="UF7n4j*)o9I3:,+J@O]T">
                                              <mutation items="2"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="J*EF{X3rHJLI;T1(sdV?">
                                                  <field name="TEXT">dolly_aktuelle_statusnummer: </field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="variables_get" id="1VXNUI!Lde86Kp1x9Bd1">
                                                  <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="controls_if" id="JkVP]~mk:`@K+jID5(j7">
                                              <mutation elseif="1"></mutation>
                                              <value name="IF0">
                                                <block type="logic_operation" id="/LMF7c91RbUs1|~lW%+0" inline="false">
                                                  <field name="OP">OR</field>
                                                  <value name="A">
                                                    <block type="logic_operation" id=")VIFOskGJ*d)FP[u,wS[" inline="false">
                                                      <field name="OP">AND</field>
                                                      <value name="A">
                                                        <block type="logic_compare" id="$.9kFZvFdH7[H/:7]x.*">
                                                          <field name="OP">GTE</field>
                                                          <value name="A">
                                                            <block type="variables_get" id=".8yrjrrLp)cQFXx%p(2S">
                                                              <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="n3T.DYPCAHX)XYB,z5SK">
                                                              <field name="NUM">2</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="logic_compare" id="$l~r8S-@bK8ttl0.)wv[">
                                                          <field name="OP">LTE</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="yI/FLenfb)BUmjpZxc`;">
                                                              <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="80~.wglzx]|gMu`G1g?5">
                                                              <field name="NUM">7</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <block type="logic_operation" id="K6tCO@-@G7^L46LAWR:Q" inline="false">
                                                      <field name="OP">AND</field>
                                                      <value name="A">
                                                        <block type="logic_compare" id="pzQ8VU~=fZJ`Q8`{)9)i">
                                                          <field name="OP">GTE</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="CCy4uH^4X8[gQSS.IpQ;">
                                                              <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="v3odn[`U~cgDvPo9WWFI">
                                                              <field name="NUM">30</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="logic_compare" id="vA2[eT{T/hIe(C8#9_/Z">
                                                          <field name="OP">LTE</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="e@RsDvC6=tWDscYrjJB-">
                                                              <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="VUo144fBV/Fz8D0Tz6H8">
                                                              <field name="NUM">33</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <statement name="DO0">
                                                <block type="control" id="PU_mN?qrSGi(sT:7A+mH">
                                                  <mutation delay_input="false"></mutation>
                                                  <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="logic_boolean" id="{W20`bII7}Z6m=h!Tz%V">
                                                      <field name="BOOL">TRUE</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="debug" id="9h+{Rgt!1J,vJ7JE!Ahe">
                                                      <field name="Severity">warn</field>
                                                      <value name="TEXT">
                                                        <shadow type="text" id="Jh;DWV6DK^aI2EWx7%O2">
                                                          <field name="TEXT">test</field>
                                                        </shadow>
                                                        <block type="text_join" id="N[(6(t@3u31-6YszP]BP">
                                                          <mutation items="2"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id="H#x[JP!C=F%71/.u0*WY">
                                                              <field name="TEXT">dolly_aktuell_unterwegs: </field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="get_value" id="JHk.7Glv?tI)jm+Og8B~">
                                                              <field name="ATTR">val</field>
                                                              <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                              <value name="IF1">
                                                <block type="logic_operation" id="$g1K6IG;$~r42~.(R$ev" inline="false">
                                                  <field name="OP">OR</field>
                                                  <value name="A">
                                                    <block type="logic_compare" id="p?LYnP~?U7(68Wu*{)F#">
                                                      <field name="OP">LTE</field>
                                                      <value name="A">
                                                        <block type="variables_get" id="Td6%X~p[j{cjo5F-m-p7">
                                                          <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="math_number" id="1b%nJYhz`q]Bc5B^_Zuu">
                                                          <field name="NUM">1</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <block type="logic_operation" id="3SPHfyju8lRQUV2$/EOo" inline="false">
                                                      <field name="OP">AND</field>
                                                      <value name="A">
                                                        <block type="logic_compare" id="*g%.z/-^eE,1F5mbTzIM">
                                                          <field name="OP">GTE</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="G$1R0(_rHW*p7g.S6b9=">
                                                              <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="tUe|sJAN=+@lZVxZj|Zw">
                                                              <field name="NUM">8</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="logic_compare" id="*4n9Ml^}xAvCIn}0Px=B">
                                                          <field name="OP">LTE</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="dYb)i[v-;T1Z_I31^e-h">
                                                              <field name="VAR" id="e:reE_ld51DSd_rk)yzR" variabletype="">sv_dolly_aktueller_status_number</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="7@`t}{k6:$fd1Ir7puc!">
                                                              <field name="NUM">12</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <statement name="DO1">
                                                <block type="control" id="hSO3}P^2JU{ak|7-EMz:">
                                                  <mutation delay_input="false"></mutation>
                                                  <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="logic_boolean" id="`sfBA|NSo]aFMDs%XY9n">
                                                      <field name="BOOL">FALSE</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="debug" id=")BzPop.}?]~jWto$JITb">
                                                      <field name="Severity">warn</field>
                                                      <value name="TEXT">
                                                        <shadow type="text" id="Jh;DWV6DK^aI2EWx7%O2">
                                                          <field name="TEXT">test</field>
                                                        </shadow>
                                                        <block type="text_join" id="p3!Em{~Lywdy,`Vu8q4M">
                                                          <mutation items="2"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id="Ey6%9NnMnmQn(MlZx,!W">
                                                              <field name="TEXT">dolly_aktuell_unterwegs: </field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="get_value" id="^)gP)aG{r6:2HE;N?`Rb">
                                                              <field name="ATTR">val</field>
                                                              <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </xml>
                              

                              Script 2:
                              f2fdb2f6-13fb-41b5-8e7d-cd48bca2cfa9-grafik.png

                              <xml xmlns="http://www.w3.org/1999/xhtml">
                                <variables>
                                  <variable type="undefined" id="Intervall">Intervall</variable>
                                </variables>
                                <block type="on_ext" id="~_%_1+RE{*DQ^.xxGbIo" x="-62" y="-362">
                                  <mutation items="1"></mutation>
                                  <field name="CONDITION">ne</field>
                                  <field name="ACK_CONDITION"></field>
                                  <value name="OID0">
                                    <shadow type="field_oid" id="h[~E+~ex;[mcd~yd[;@b">
                                      <field name="oid">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                    </shadow>
                                  </value>
                                  <statement name="STATEMENT">
                                    <block type="controls_if" id="rvo*yc{)=yQ,`^V4T}Pn">
                                      <mutation else="1"></mutation>
                                      <value name="IF0">
                                        <block type="logic_compare" id="+F+qs|YVKDLaX,e{3*t;">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="get_value" id="]8AE4jq]]Cb*@$|=`@VK">
                                              <field name="ATTR">val</field>
                                              <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="logic_boolean" id="LBX++{Hg*];33.kjB{V{">
                                              <field name="BOOL">TRUE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <statement name="DO0">
                                        <block type="debug" id="yF,$)@6E^_rU^,ew,jDC">
                                          <field name="Severity">warn</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="S%I)|=;L`uquY~jH-=oV">
                                              <field name="TEXT">test</field>
                                            </shadow>
                                            <block type="text_join" id="8k#G#]}q{AU4HA-taTbH">
                                              <mutation items="2"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="5ZERiW.v}-Kw5!65BZ|A">
                                                  <field name="TEXT">2_dolly_aktuell_unterwegs: </field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="get_value" id="hQaN1KQzgfzBAYd{l+xf">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="debug" id=".^upa$mhwc6qAz+GQgnk">
                                              <field name="Severity">warn</field>
                                              <value name="TEXT">
                                                <shadow type="text" id="Zj@jy+|5P-@8q2Ipr]x,">
                                                  <field name="TEXT">Intervall startet</field>
                                                </shadow>
                                              </value>
                                              <next>
                                                <block type="timeouts_setinterval" id="SB;voF:6$Z3t)i?:N_5x">
                                                  <field name="NAME">Intervall</field>
                                                  <field name="INTERVAL">5000</field>
                                                  <field name="UNIT">ms</field>
                                                  <statement name="STATEMENT">
                                                    <block type="update" id="%2u%@..R/[z12Cf@Ppe3" inline="false">
                                                      <mutation delay_input="false"></mutation>
                                                      <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.Wertrotation</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="math_random_int" id="9~A-7emul/p)qClE2a9p">
                                                          <value name="FROM">
                                                            <shadow type="math_number" id=")Xk$`tOG!76ME;^zMFij">
                                                              <field name="NUM">0</field>
                                                            </shadow>
                                                          </value>
                                                          <value name="TO">
                                                            <shadow type="math_number" id="M[i]ix[Lg]vfR%xI^{%[">
                                                              <field name="NUM">9</field>
                                                            </shadow>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </statement>
                                      <statement name="ELSE">
                                        <block type="debug" id="ZED`0DgD[iPK[ia76!cj">
                                          <field name="Severity">warn</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="!Nxm}GZSk#]`Sr;nbnxq">
                                              <field name="TEXT">test</field>
                                            </shadow>
                                            <block type="text_join" id="eU9#gh3UifyFAxcU$w`c">
                                              <mutation items="2"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="Ku$Wx|3:haYk0DhHqy;m">
                                                  <field name="TEXT">2_dolly_aktuell_unterwegs: </field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="get_value" id="=_ej;2[B%A_95;FMeb`)">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.ist_unterwegs</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="timeouts_clearinterval" id="b(]56#eGh|/Yl*=F]7?3">
                                              <field name="NAME">Intervall</field>
                                              <next>
                                                <block type="debug" id="{2azX(KVWXW6n*=@5|B6">
                                                  <field name="Severity">warn</field>
                                                  <value name="TEXT">
                                                    <shadow type="text" id="ws#|#n7yN{#d_(!.Oo/:">
                                                      <field name="TEXT">Intervall beendet</field>
                                                    </shadow>
                                                  </value>
                                                  <next>
                                                    <block type="control" id="`K2g~%/A=byLekH*Oa^}">
                                                      <mutation delay_input="false"></mutation>
                                                      <field name="OID">a_andreas.0.eigene_dp.VIS.Dolly.Wertrotation</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="math_number" id="X?8H[Tee@^2:21F(%unL">
                                                          <field name="NUM">10</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </statement>
                                    </block>
                                  </statement>
                                </block>
                              </xml>
                              

                              Da habe ich mich ausgetobt, denn das hätte meine JS-Anfängerschritte völlig überfordert. Aber, jetzt werde ich eine Mischung machen, denn der Intervall im Blockly .... sieht sehr anfällig aus und ich habe Angst, dass der irgendwann mal hängen bleibt.

                              LG, mxa

                              1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                Eine Frage zu deinem ursprünglichen Anwendungsfall:

                                Sind die 6 Bilder immer fix oder ändern die sich immer wieder mal?
                                Ist das eine Abbildung deines Mähroboters, der auf dem Bildschirm rumfährt
                                aber halt nur symbolisch ohne irgendein realen Hintergrund?

                                Dann könntest du auch mal noch unter CSS-Animationen schauen.
                                Wenn da keine dynamischen Daten beteiligt sind,
                                dann kannst du das rein im Browser laufen lassen
                                Hier ein Beispiel: https://codepen.io/mmzzba/pen/VpRbjz

                                metaxaM Offline
                                metaxaM Offline
                                metaxa
                                schrieb am zuletzt editiert von metaxa
                                #15

                                @OliverIO sagte in Bilder alle x Sekunden wechseln:

                                Hier ein Beispiel: https://codepen.io/mmzzba/pen/VpRbjz

                                Ja, genau ...... da bin ich Kilometer weit enfernt. Genau soetwas wäre natürlich das Sahnehäubchen. Wenn ich das dann schaffe, wohin mit der CSS, wie aufrufen, wie und wo ?????. Die Baustelle ist mir um mehrere Schuhgrößen zu groß :-)

                                Wenn meine Dolly mal über meine Tablets tuckelt, dann mache ich mir um meinen künftigen Job und mein Einkommen keine Sorgen mehr.

                                Ich bleibe mal bei meinem Leisten, die kann ich gegebenenfalls dann auch selbst anpassen.

                                LG, mxa

                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • metaxaM metaxa

                                  @OliverIO sagte in Bilder alle x Sekunden wechseln:

                                  Hier ein Beispiel: https://codepen.io/mmzzba/pen/VpRbjz

                                  Ja, genau ...... da bin ich Kilometer weit enfernt. Genau soetwas wäre natürlich das Sahnehäubchen. Wenn ich das dann schaffe, wohin mit der CSS, wie aufrufen, wie und wo ?????. Die Baustelle ist mir um mehrere Schuhgrößen zu groß :-)

                                  Wenn meine Dolly mal über meine Tablets tuckelt, dann mache ich mir um meinen künftigen Job und mein Einkommen keine Sorgen mehr.

                                  Ich bleibe mal bei meinem Leisten, die kann ich gegebenenfalls dann auch selbst anpassen.

                                  LG, mxa

                                  OliverIOO Offline
                                  OliverIOO Offline
                                  OliverIO
                                  schrieb am zuletzt editiert von
                                  #16

                                  @metaxa schau dir mal das beispiel mit dem codepen link an,
                                  da kannst du auch direkt drin spielen
                                  bei self.html ist jeder einzelne befehl erklärt und direkt mit beispielen hinterlegt
                                  css wird nicht aufgerufen, sondern ist im Browser einfach da.
                                  Damit wird mittlerweile eine komplette Webseite formatiert und wurde
                                  in den Jahren mit immer mehr Funktionen gefüllt.

                                  Meine Adapter und Widgets
                                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                  Links im Profil

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


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  608

                                  Online

                                  32.7k

                                  Benutzer

                                  82.4k

                                  Themen

                                  1.3m

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

                                  • Du hast noch kein Konto? Registrieren

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