Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. awtrix alexa2 timer anzeigen - json parse

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    awtrix alexa2 timer anzeigen - json parse

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

      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"

      paul53 1 Reply Last reply Reply Quote 1
      • paul53
        paul53 @Streit187 last edited by

        @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 1 Reply Last reply Reply Quote 0
        • S
          Streit187 @paul53 last edited by

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

          S 1 Reply Last reply Reply Quote 0
          • S
            Streit187 @Streit187 last edited by 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 1 Reply Last reply Reply Quote 0
            • M
              miwu @Streit187 last edited by

              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.

              S 1 Reply Last reply Reply Quote 0
              • S
                Siggi0904 @miwu last edited by

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

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

                Support us

                ioBroker
                Community Adapters
                Donate

                412
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                4
                6
                627
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo