Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Jarvis 3.1.2 Icon dynamisch mittels Berechnung setzen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    247

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

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

Jarvis 3.1.2 Icon dynamisch mittels Berechnung setzen

Scheduled Pinned Locked Moved Visualisierung
own project
7 Posts 2 Posters 578 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    hvb
    wrote on last edited by
    #1

    Ich möchte gerne das Icon eines Bewegungsmelder Devices ändern, wenn die letzte Bewegung vor mehr als x Sekunden gemeldet wurde.
    Der Bewegungsmelder liefert einen timestamp zurück.

    Für den State kann ich die Sekunden seit dem letzten Eintrag wie folgt ermitteln und setzten:

    Sate Properties

    {"value":"val => {return Math.floor((new Date().getTime()-val)/1000);}"}
    

    Nun möchte ich das Icon entsprechend ändern, wenn die letzte Bewegungserkennung mehr als z.B. 30 Sekunden zurückliegt.

    Icon

    {"<30":"mdi:motion-sensor", "default":"mdi:motion-sensor-off"}
    

    Der Vergleich "<30" verwendet jedoch val und nicht value. Also müsste ich die Berechnung aus den State Properties in Icon nochmals in ähnlicher weise durchführen. In etwa so:

    {"Math.floor((new Date().getTime()-val)/1000)<30":"mdi:motion-sensor", "default":"mdi:motion-sensor-off"}
    

    Das funktioniert aber leider nicht. Hat jemand so eine ähnliche Anforderung schon einmal gelöst?

    M 1 Reply Last reply
    0
    • H hvb

      Ich möchte gerne das Icon eines Bewegungsmelder Devices ändern, wenn die letzte Bewegung vor mehr als x Sekunden gemeldet wurde.
      Der Bewegungsmelder liefert einen timestamp zurück.

      Für den State kann ich die Sekunden seit dem letzten Eintrag wie folgt ermitteln und setzten:

      Sate Properties

      {"value":"val => {return Math.floor((new Date().getTime()-val)/1000);}"}
      

      Nun möchte ich das Icon entsprechend ändern, wenn die letzte Bewegungserkennung mehr als z.B. 30 Sekunden zurückliegt.

      Icon

      {"<30":"mdi:motion-sensor", "default":"mdi:motion-sensor-off"}
      

      Der Vergleich "<30" verwendet jedoch val und nicht value. Also müsste ich die Berechnung aus den State Properties in Icon nochmals in ähnlicher weise durchführen. In etwa so:

      {"Math.floor((new Date().getTime()-val)/1000)<30":"mdi:motion-sensor", "default":"mdi:motion-sensor-off"}
      

      Das funktioniert aber leider nicht. Hat jemand so eine ähnliche Anforderung schon einmal gelöst?

      M Online
      M Online
      MCU
      wrote on last edited by MCU
      #2

      @hvb Zeig mal bitte den verwendeten DP (ioBroker).

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      H 1 Reply Last reply
      0
      • M MCU

        @hvb Zeig mal bitte den verwendeten DP (ioBroker).

        H Offline
        H Offline
        hvb
        wrote on last edited by
        #3

        @mcu

        3d4a7c35-c8b0-4cc0-98da-529b1d5d9d17-image.png

        b50a862c-fc75-406d-bba1-0e28da080aa0-image.png

        H 1 Reply Last reply
        0
        • H hvb

          @mcu

          3d4a7c35-c8b0-4cc0-98da-529b1d5d9d17-image.png

          b50a862c-fc75-406d-bba1-0e28da080aa0-image.png

          H Offline
          H Offline
          hvb
          wrote on last edited by
          #4

          @MCU 87228013-646b-4360-b2e4-1c09204158ac-image.png

          M 1 Reply Last reply
          0
          • H hvb

            @MCU 87228013-646b-4360-b2e4-1c09204158ac-image.png

            M Online
            M Online
            MCU
            wrote on last edited by MCU
            #5

            @hvb Welche Werte zeigt er denn nach der Berechnung an?
            0581f3d8-a7c6-4071-abae-7f96f73c7657-image.png
            Sieht man im Geräte-Popup.

            Also wenn dort
            8ac1e71b-bbd8-4420-b605-7834fd0a47a4-image.png
            ??? Versuch

            {"{val}< new Date().getTime()/1000":"icon"}
            

            Das ist doch dieser Wert:
            2da101be-901e-46a5-89b4-1e9c6dbf7713-image.png
            Hat der Sensor denn keinen boolean-Wert?

            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

            H 1 Reply Last reply
            0
            • M MCU

              @hvb Welche Werte zeigt er denn nach der Berechnung an?
              0581f3d8-a7c6-4071-abae-7f96f73c7657-image.png
              Sieht man im Geräte-Popup.

              Also wenn dort
              8ac1e71b-bbd8-4420-b605-7834fd0a47a4-image.png
              ??? Versuch

              {"{val}< new Date().getTime()/1000":"icon"}
              

              Das ist doch dieser Wert:
              2da101be-901e-46a5-89b4-1e9c6dbf7713-image.png
              Hat der Sensor denn keinen boolean-Wert?

              H Offline
              H Offline
              hvb
              wrote on last edited by
              #6

              @mcu
              cc98b982-5d85-4b6e-9c7a-0fe549f69ab9-image.png

              Sensor liefert im original einen timestamp als UTC String den hab ich dann mittels Alias in einen Timestamp umgewandelt, damit ich einen numerischen Werthabe mit dem ich rechnen kann.

              Ich könnten natürlich auch direkt in ein boolean umwandeln, dann passiert das aber nur beim einlesen und ändert sich nicht mehr.

              Ich möchte gerne laufend neu berechnen obwohl sich der eigentliche Wert des Adapters nicht ändert.

              Das refreshen mache ich mittels Script via

              let intRefresh = setInterval(async function(){
                  refreshDeviceState("bd8aadca-4695-4536-9954-3b4244f9c646", "Motion detected");  // Corridor base Motion Detector 
              },5000);
              

              Das erzeugt mir dann alle 5 sekunden ein neues Value (zählt also ab Bewegungserkennung die Sekunden hoch) Am Anfang zeige ich das on-Icon nach 30 Sekunden das off-Icon.

              H 1 Reply Last reply
              0
              • H hvb

                @mcu
                cc98b982-5d85-4b6e-9c7a-0fe549f69ab9-image.png

                Sensor liefert im original einen timestamp als UTC String den hab ich dann mittels Alias in einen Timestamp umgewandelt, damit ich einen numerischen Werthabe mit dem ich rechnen kann.

                Ich könnten natürlich auch direkt in ein boolean umwandeln, dann passiert das aber nur beim einlesen und ändert sich nicht mehr.

                Ich möchte gerne laufend neu berechnen obwohl sich der eigentliche Wert des Adapters nicht ändert.

                Das refreshen mache ich mittels Script via

                let intRefresh = setInterval(async function(){
                    refreshDeviceState("bd8aadca-4695-4536-9954-3b4244f9c646", "Motion detected");  // Corridor base Motion Detector 
                },5000);
                

                Das erzeugt mir dann alle 5 sekunden ein neues Value (zählt also ab Bewegungserkennung die Sekunden hoch) Am Anfang zeige ich das on-Icon nach 30 Sekunden das off-Icon.

                H Offline
                H Offline
                hvb
                wrote on last edited by
                #7

                @MCU Funktioniert jetzt :smiley:

                Der entscheidende Hinweis war die korrekte Notation in Deinem Beispiel.

                {"{val}< new Date().getTime()/1000 - 30":"icon"}
                

                val in Klammern nach links und die Berechnung komplett nach rechts ohne Klammern.

                Vielen Dank!

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                233

                Online

                32.7k

                Users

                82.5k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Home
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe