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. Jarvis 3.1.2 Icon dynamisch mittels Berechnung setzen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Jarvis 3.1.2 Icon dynamisch mittels Berechnung setzen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
own project
7 Beiträge 2 Kommentatoren 523 Aufrufe 2 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.
  • H Offline
    H Offline
    hvb
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • M MCU

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

        H Offline
        H Offline
        hvb
        schrieb am zuletzt editiert von
        #3

        @mcu

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

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

        H 1 Antwort Letzte Antwort
        0
        • H hvb

          @mcu

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

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

          H Offline
          H Offline
          hvb
          schrieb am zuletzt editiert von
          #4

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

          M 1 Antwort Letzte Antwort
          0
          • H hvb

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

            M Online
            M Online
            MCU
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 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

                800

                Online

                32.6k

                Benutzer

                82.0k

                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