Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Skripten / Logik
  4. JavaScript
  5. awtrix alexa2 timer anzeigen - json parse

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    680

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

awtrix alexa2 timer anzeigen - json parse

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 4 Kommentatoren 971 Aufrufe 3 Beobachtet
  • Ä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.
  • S Offline
    S Offline
    Streit187
    schrieb am zuletzt editiert von
    #1

    Ziel ist es auf der Pixel Cock alle aktiven Timer mit Endzeit (Restzeit) anzuzeigen. Hier mein derzeitger Ansatz und die Ausgabe von Timername und Endzeit für den 1. Timer funktioniert.
    Nun müsste das Script so abgewandelt werden, dass die anderen Timer mit zB. "," getrennt folgen sofern mehrere vorhanden.

    on({id: [].concat(Array.prototype.slice.apply($("state[id=alexa2.0.Echo-Devices.*.Timer.activeTimerList]"))), change: "ne"}, async function (obj) {
      let value = obj.state.val;
      let oldValue = obj.oldState.val;
    
      if ((obj.state ? obj.state.val : "").length != 2) {
        function parsejsoncontent() {
      var obj = JSON.parse(getState('alexa2.0.Echo-Devices.xxxxxxxx.Timer.activeTimerList').val);
      console.log(obj.length);
      console.log(obj[0].label + "timer: " + (new Date(obj[0].triggerTime).toLocaleTimeString('de-DE')));
    }
    parsejsoncontent();
      }
    });
    

    Dieser Ansatz(!) ist zusammen gebastelt. Andere Verbesserungsvorschläge sind herzlich willkommen.

    Ausgabe derzeit: "Kartoffeltimer: 15:34:45"
    Gewünscht: "Kartoffeltimer: 15:34:45, Gemüsetimer: 15:24:36, Teetimer: 15:15:22"

    paul53P 1 Antwort Letzte Antwort
    1
    • S Streit187

      Ziel ist es auf der Pixel Cock alle aktiven Timer mit Endzeit (Restzeit) anzuzeigen. Hier mein derzeitger Ansatz und die Ausgabe von Timername und Endzeit für den 1. Timer funktioniert.
      Nun müsste das Script so abgewandelt werden, dass die anderen Timer mit zB. "," getrennt folgen sofern mehrere vorhanden.

      on({id: [].concat(Array.prototype.slice.apply($("state[id=alexa2.0.Echo-Devices.*.Timer.activeTimerList]"))), change: "ne"}, async function (obj) {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
      
        if ((obj.state ? obj.state.val : "").length != 2) {
          function parsejsoncontent() {
        var obj = JSON.parse(getState('alexa2.0.Echo-Devices.xxxxxxxx.Timer.activeTimerList').val);
        console.log(obj.length);
        console.log(obj[0].label + "timer: " + (new Date(obj[0].triggerTime).toLocaleTimeString('de-DE')));
      }
      parsejsoncontent();
        }
      });
      

      Dieser Ansatz(!) ist zusammen gebastelt. Andere Verbesserungsvorschläge sind herzlich willkommen.

      Ausgabe derzeit: "Kartoffeltimer: 15:34:45"
      Gewünscht: "Kartoffeltimer: 15:34:45, Gemüsetimer: 15:24:36, Teetimer: 15:15:22"

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @streit187
      Versuche es mal so:

      function parsejsoncontent(json) {
        const arr = JSON.parse(json);
        let str = '';
        for(let ele of arr) {
          str += ele.label + "timer: " + formatDate(ele.triggerTime, 'hh:mm:ss, ');
        }
        log(str);
      }
      
      $("alexa2.0.Echo-Devices.*.Timer.activeTimerList").on(function (dp) {
        if (dp.state.val.length > 2) parsejsoncontent(dp.state.val);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @streit187
        Versuche es mal so:

        function parsejsoncontent(json) {
          const arr = JSON.parse(json);
          let str = '';
          for(let ele of arr) {
            str += ele.label + "timer: " + formatDate(ele.triggerTime, 'hh:mm:ss, ');
          }
          log(str);
        }
        
        $("alexa2.0.Echo-Devices.*.Timer.activeTimerList").on(function (dp) {
          if (dp.state.val.length > 2) parsejsoncontent(dp.state.val);
        });
        
        S Offline
        S Offline
        Streit187
        schrieb am zuletzt editiert von
        #3

        @paul53 Unglaublich! Es funktioniert wie gewünscht. Vielen Dank

        S 1 Antwort Letzte Antwort
        0
        • S Streit187

          @paul53 Unglaublich! Es funktioniert wie gewünscht. Vielen Dank

          S Offline
          S Offline
          Streit187
          schrieb am zuletzt editiert von Streit187
          #4

          Nur der Vollständigkeit halber:

          const path = '0_userdata.0.awtrix-light.';
          const idTimer = path + 'alexa2_timer';
          
          if(!existsState(idTimer)) createState(idTimer, {type: 'string', name: 'alexa2 timer', role: 'state'}); 
          
          function parsejsoncontent(json) {
            const arr = JSON.parse(json);
            let str = '';
            for(let ele of arr) {
              str += ele.label + "timer: " + formatDate(ele.triggerTime, 'hh:mm, ');
            }
            //log(str);
            setState(idTimer , (str), true);
          }
           
          $("alexa2.0.Echo-Devices.*.Timer.activeTimerList").on(function (dp) {
            if (dp.state.val.length > 2) parsejsoncontent(dp.state.val);
            else setState(idTimer , "", true);
          });
          

          Im Anschluss die App im awtrix-light adapter anlegen mit dem Verweis auf den oben erstellten Datenpunkt.

          M 1 Antwort Letzte Antwort
          0
          • S Streit187

            Nur der Vollständigkeit halber:

            const path = '0_userdata.0.awtrix-light.';
            const idTimer = path + 'alexa2_timer';
            
            if(!existsState(idTimer)) createState(idTimer, {type: 'string', name: 'alexa2 timer', role: 'state'}); 
            
            function parsejsoncontent(json) {
              const arr = JSON.parse(json);
              let str = '';
              for(let ele of arr) {
                str += ele.label + "timer: " + formatDate(ele.triggerTime, 'hh:mm, ');
              }
              //log(str);
              setState(idTimer , (str), true);
            }
             
            $("alexa2.0.Echo-Devices.*.Timer.activeTimerList").on(function (dp) {
              if (dp.state.val.length > 2) parsejsoncontent(dp.state.val);
              else setState(idTimer , "", true);
            });
            

            Im Anschluss die App im awtrix-light adapter anlegen mit dem Verweis auf den oben erstellten Datenpunkt.

            M Online
            M Online
            miwu
            schrieb am zuletzt editiert von
            #5

            Ich stehe gerade vor einem ähnliche Problem. Ich möchte gern einen Alexa-Timer als Countdown auf Awtrix anzeigen lassen, es gelingt mir aber nicht, eine Variable im iobroker so zu füllen, dass sie stets den anzuzeigenden Wert anzeigt. Hat jemand eine Idee, wie ich sowas bauen könnte?

            Vielen Dank.

            Siggi0904S 1 Antwort Letzte Antwort
            0
            • M miwu

              Ich stehe gerade vor einem ähnliche Problem. Ich möchte gern einen Alexa-Timer als Countdown auf Awtrix anzeigen lassen, es gelingt mir aber nicht, eine Variable im iobroker so zu füllen, dass sie stets den anzuzeigenden Wert anzeigt. Hat jemand eine Idee, wie ich sowas bauen könnte?

              Vielen Dank.

              Siggi0904S Offline
              Siggi0904S Offline
              Siggi0904
              schrieb am zuletzt editiert von
              #6

              @miwu du kannst dir auch den Adapter "alexa-timer-vis" anschauen.
              Den nutze ich und der stellt dir eigentlich alles zur Verfügung.

              1 Antwort Letzte Antwort
              0

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              492

              Online

              32.9k

              Benutzer

              83.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