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 reminder anzeigen

    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 reminder anzeigen

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

      Ziel ist es auf dem Pixel Display den Namen eines abgelaudenen Reminders anzuzeigen.
      Das funktioniert auch mit dem folgenden Skript sofern der Timer vor dem Start des Skripts angelegt wurde da sonst die Datenpunkte noch nicht existieren und nicht darauf reagiert werden kann.

      on({id: [].concat(Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.*.Reminder.*.triggered]"))), change: "gt"}, async function (obj) {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        if (getState(obj.id).val) {
      console.log('Erinnerung an: ' + String(await getObject((String(obj.id.slice(0, 85)) + 'nextTriggerDate')).common.name));
        }
      });
      

      Nun habe ich die Lösung für das Problem hier Selektor $ Datenpunkte refresh Problem gefunden:

      const ECHO_REMINDER_PFAD = 'alexa2.0.Echo-Devices.*.Reminder';
      const sel = $(ECHO_REMINDER_PFAD + '.*.triggered');
      const ids = [];
       
      sel.each(function(id, i) {
          existsState(id, function(err, exists) {
              if(!err) {
                  if(exists) ids.push(id);
                  else deleteObject(id); // in beiden Puffern löschen
              }
          });
      });
       
      on({id: /REgExp/}, function(dp) {
          if(!ids.includes(dp.id)) { // DP ist neu
              ids.push(dp.id);
              let obj = {};
              obj.type = 'state';
              obj.common = dp.common;
              obj.native = dp.native;
              setObject(dp.id, obj); // in objects buffer
              setState(dp.id, dp.state.val, true); // in states buffer
          }
      
          // Auswertung
      
      });
      

      Leider schaffe ich es nicht diese beiden Skripte funktionstüchtig mit einander zu verbinden.
      Für Hilfe wäre ich sehr dankbar.

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

        @streit187
        Verwende im ersten Skript einen RegExp als Trigger.

        Blockly_temp.JPG

        Das zweite Skript benötigt man nur für Schleifen über alle Datenpunkte.

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

          @paul53 Vielen Dank!!!

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

          Support us

          ioBroker
          Community Adapters
          Donate

          716
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          158
          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