Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. SONOFF NSPanel mit Lovelace UI

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TT-Tom @Kerschte_de last edited by TT-Tom

      @kerschte_de

      als Alternative hier ein JS-Script. Als Beispiel wird hier der selbst erstellte Datenpunkt auf true gesetzt.

      const dp_userdata: string = '0_userdata.0.NSPanel';
      const dp_alias: string = 'alias.0.NSPanel';
      
      // Der nachfolgende Datenpunkt muss manuell angelegt werden
      const dpAction: string = '0_userdata.0.example_boolean'; // anpassen
      
      const debug = false;
      
      let intervallCounter: any;
      
      let sec_timer = getState(dp_userdata + '.Countdown.Time').val;
      on({ id: dp_userdata + '.Countdown.State', change: 'ne' }, async (obj) => {
          switch (obj.state.val) {
              case 'active':
                  if (intervallCounter) {
                      clearInterval(intervallCounter);
                      intervallCounter = null;
                  }
                  intervallCounter = setInterval(async () => {
                      if (getState(dp_userdata + '.Countdown.Time').val > 0) {
                          sec_timer = getState(dp_userdata + '.Countdown.Time').val;
                          setState(dp_userdata + '.Countdown.Time', sec_timer - 1, false);
                      } else {
                          setState(dp_userdata + '.Countdown.Time', 0, false);
                          setState(dp_userdata + '.Countdown.State', 'idle', false);
                          // An dieser Stelle kann auch noch eine Meldung an Alexa oder Telegram, etc. erfolgen
                           setState(dpAction, <iobJS.State>{ val: true, ack: true });
                      }
                  }, 1000);
      
                  break;
              default:
                  if (intervallCounter) {
                      clearInterval(intervallCounter);
                      intervallCounter = null;
                  }
      
                  break;
          }
      });
      
      async function Init_Datenpunkte() {
          if (existsState(dp_alias + '.Countdown.ACTUAL') == false) {
              log('Datenpunkte werden erstellt', 'info');
              await createStateAsync(dp_userdata + '.Countdown.Time', '0', { type: 'number' });
              await createStateAsync(dp_userdata + '.Countdown.State', 'paused', { type: 'string' });
              setObject(dp_alias + '.Countown', { type: 'channel', common: { role: 'level.timer', name: 'Countdown' }, native: {} });
              await createAliasAsync(dp_alias + '.Countdown.ACTUAL', dp_userdata + '.Countdown.Time', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' });
              await createAliasAsync(dp_alias + '.Countdown.STATE', dp_userdata + '.Countdown.State', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'STATE' });
              log("{id: '" + dp_alias + ".Countdown', name: 'Timer'}", 'info');
          }
      }
      Init_Datenpunkte();
      
      
      1 Reply Last reply Reply Quote 2
      • K
        Kerschte_de @Armilar last edited by

        @armilar Ich habe das Blockly erfolgreich über die RAW-Version importiert. Die Pfade im Blockly habe ich angepasst, so dass ich den Timer einstellen und starten kann. Was mir in den Objekten aufgefallen ist, die Datenpunkte sind alle unbestätigt (rot). Ist das so gewollt?
        Nach Ablauf des Timers gibt es im Sekundentakt die Warnmeldung, die erst durch stoppen des Scripts unterbrochen wird:

        2a42ac1b-a0b7-4fab-b29e-aeeb794ebc96-image.png

        Rückmeldung zur Anleitung: Die Anleitung ist sicher aus verschiedenen Entwicklungsständen entstanden. Verwirrend war gewesen, dass im Blockly die beiden Punkte State und Actual auf Zustand und Sekunden läuft. Demnach wäre es für einen Newbie besser zu verstehen, wenn die Datenpunkte gemäß dem Blockly lauten oder das Blockly an die Benamung aus der Beschreibung angepasst wird --> und sehr gern mit vollem Pfad (rote Markierung Bild unten). Denn man musste mehrfach nachvollziehen, ob man in den Datenpunkten unter 0_userdata oder unter den Aliasen unterwegs ist. Vielleicht tut es auch ein zusätzlicher Screenshot von den Datenpunkten unter 0_userdata (zwischen rot und gelber Markierung).
        373f4312-d51d-4341-b8e5-7fdceb31b127-image.png

        T 1 Reply Last reply Reply Quote 0
        • T
          TT-Tom @Kerschte_de last edited by

          @kerschte_de
          Danke für deine Rückmeldung, das Wiki werde ich mir die Tage ansehen und anpassen.
          Mit dem Blockly kann ich die leider nicht weiterhelfen, bin noch unterwegs.

          K 1 Reply Last reply Reply Quote 1
          • K
            Kerschte_de @TT-Tom last edited by Kerschte_de

            @TT-Tom
            Das Blockly scheint in Ordnung. Was mir auffällt ist, dass nach Ablauf des Timers der Datenpunkt STATE nicht von "active" auf "idle" gesetzt wird. Das scheint jedoch nicht aus dem Blockly zu kommen, sondern am Script des NSP zu liegen?
            Hier das Blockly mal als Grafik zur "Lektüre unterwegs", Tom. Im Ablauf sehe ich keinen Bug, zumal es das schon so einige Zeit gibt.
            336587c0-2fbf-4064-bda9-cc6778a7c32d-image.png

            Würde mich über eine Nachricht nach Deiner Rückkehr freuen 🙂

            Armilar T 2 Replies Last reply Reply Quote 0
            • Armilar
              Armilar Most Active Forum Testing @Kerschte_de last edited by Armilar

              @kerschte_de

              Die Logik für den Status liegt ausschließlich im Blockly. Nur der Status "active" wird im NSPanel Skript gesetzt.

              Das würde gem. der Blockly-Logik aber ebenfalls bedeuten, dass der Timer die "0" nicht erreicht.

              Prüfe das bitte mal mit Debug-Blöcken im Blockly.

              Ab dem Zeitpunkt, wenn das NSPanel Script den Status "active" setzt, spielt sich alles hier ab:

              8cceca27-4a81-465c-9a51-505c153f62aa-image.png

              Der Timer dekrementiert bis zur "0" bei Status "active" und geht dann eine Sekunde später in den Else-Zweig und sollte dort den Status auf "idle" umbiegen.

              Diese Zeile ist dabei sogar überflüssig:
              1e643eac-923a-43c7-a22f-ccf32789bc02-image.png

              solange die 0 im oberen Zweig nicht erreicht wird, wird vACTUAL dekrementiert. Auch bis 0...

              Hier müsste eigentlich "Intervall" statt vState stehen. Da es keinen Timer "vState" gibt. Das sollte doppelte Ausführungen verhindern. Wird aber in der Regel nur einmal getriggert.
              91f635dd-cc4b-4c6d-9485-be407bf247e4-image.png

              K 1 Reply Last reply Reply Quote 1
              • T
                TT-Tom @Kerschte_de last edited by TT-Tom

                @kerschte_de

                du hast ja @Armilar sein Post schon gelesen. Ich habe das Blockly jetzt bei mir getestet und der einzige Fehler den ich erkennen kann ist vSTATE im Intervall.

                Edit: Der Fehler kommt beim Einlesen des Blockly. Bei mir stand auch vSTATE, im Quelltext steht aber Intervall (Zeile 3)

                 <statement name="CASE0">
                                      <block type="timeouts_clearinterval" id="H1?KT2GS=;m|lB4B[d9{">
                                        <field name="NAME">Intervall</field>
                                        <next>
                                          <block type="timeouts_setinterval" id="OCAffLYx5xl2^)mb:1ON">
                                            <field name="NAME">Intervall</field>
                                            <field name="INTERVAL">1000</field>
                                            <field name="UNIT">ms</field>
                
                K 1 Reply Last reply Reply Quote 1
                • K
                  Kerschte_de @Armilar last edited by

                  @armilar
                  Vielen Dank für Deine Rückmeldung. Bevor ich mich im Setzen von Debug-Blöcken in einem Blockly versuche, hier vorab ein Ausschnitte der letzten Sekunden beim Ablaufen des Timers über die erweiterte Protokollierung. Der debug-Modus des gesamten Blockly funktioniert nicht, das wird vom Blockly abgelehnt (dann läuft das Script nicht).

                  Hier jetzt mal, was im jetzigen Blockly in den letzten Sekunden vor Ablauf und den ersten Sekunden NACH Ablauf ausgegeben wird:

                  30.12.2024, 19:11:35.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":6,"ack":false,"ts":1735582294747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582294747}
                  30.12.2024, 19:11:35.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":6,"ack":false,"ts":1735582294747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582294747}
                  30.12.2024, 19:11:35.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":5,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:35.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":5,"ack":false,"ts":1735582295748,"q":0,"from":"system.adapter.javascript.0","lc":1735582295748,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:36.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":5,"ack":false,"ts":1735582295748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582295748}
                  30.12.2024, 19:11:36.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":5,"ack":false,"ts":1735582295748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582295748}
                  30.12.2024, 19:11:36.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":4,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:36.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":4,"ack":false,"ts":1735582296747,"q":0,"from":"system.adapter.javascript.0","lc":1735582296747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:37.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":4,"ack":false,"ts":1735582296747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582296747}
                  30.12.2024, 19:11:37.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":4,"ack":false,"ts":1735582296747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582296747}
                  30.12.2024, 19:11:37.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":3,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:37.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":3,"ack":false,"ts":1735582297747,"q":0,"from":"system.adapter.javascript.0","lc":1735582297747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:38.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":3,"ack":false,"ts":1735582297747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582297747}
                  30.12.2024, 19:11:38.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":3,"ack":false,"ts":1735582297747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582297747}
                  30.12.2024, 19:11:38.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":2,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:38.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":2,"ack":false,"ts":1735582298747,"q":0,"from":"system.adapter.javascript.0","lc":1735582298747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:39.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":2,"ack":false,"ts":1735582298747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582298747}
                  30.12.2024, 19:11:39.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":2,"ack":false,"ts":1735582298747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582298747}
                  30.12.2024, 19:11:39.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":1,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:39.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":1,"ack":false,"ts":1735582299748,"q":0,"from":"system.adapter.javascript.0","lc":1735582299748,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:40.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":1,"ack":false,"ts":1735582299748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582299748}
                  30.12.2024, 19:11:40.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":1,"ack":false,"ts":1735582299748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582299748}
                  30.12.2024, 19:11:40.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:40.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false,"ts":1735582300747,"q":0,"from":"system.adapter.javascript.0","lc":1735582300747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:41.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":0,"ack":false,"ts":1735582300747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582300747}
                  30.12.2024, 19:11:41.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:41.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false,"ts":1735582301747,"q":0,"from":"system.adapter.javascript.0","lc":1735582300747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:41.747	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=null, state={"val":"idle","ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:41.748	[warn ]: javascript.0 (1832)     at Object.<anonymous> (script.js.common.Blockly.PopupTimer:21:9)
                  30.12.2024, 19:11:42.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":0,"ack":false,"ts":1735582301747,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582300747}
                  30.12.2024, 19:11:42.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:42.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false,"ts":1735582302748,"q":0,"from":"system.adapter.javascript.0","lc":1735582300747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:42.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=null, state={"val":"idle","ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:42.749	[warn ]: javascript.0 (1832)     at Object.<anonymous> (script.js.common.Blockly.PopupTimer:21:9)
                  30.12.2024, 19:11:43.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":0,"ack":false,"ts":1735582302748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582300747}
                  30.12.2024, 19:11:43.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:43.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false,"ts":1735582303748,"q":0,"from":"system.adapter.javascript.0","lc":1735582300747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:43.749	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=null, state={"val":"idle","ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:43.749	[warn ]: javascript.0 (1832)     at Object.<anonymous> (script.js.common.Blockly.PopupTimer:21:9)
                  30.12.2024, 19:11:44.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":0,"ack":false,"ts":1735582303748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582300747}
                  30.12.2024, 19:11:44.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:44.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false,"ts":1735582304748,"q":0,"from":"system.adapter.javascript.0","lc":1735582300747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:44.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=null, state={"val":"idle","ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:44.748	[warn ]: javascript.0 (1832)     at Object.<anonymous> (script.js.common.Blockly.PopupTimer:21:9)
                  30.12.2024, 19:11:45.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: getState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, timerId=undefined) => {"val":0,"ack":false,"ts":1735582304748,"q":0,"c":"script.js.common.Blockly.PopupTimer","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1735582300747}
                  30.12.2024, 19:11:45.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:45.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setForeignState(id=0_userdata.0.NSPanel.Countdown.ACTUAL, state={"val":0,"ack":false,"ts":1735582305748,"q":0,"from":"system.adapter.javascript.0","lc":1735582300747,"c":"script.js.common.Blockly.PopupTimer"})
                  30.12.2024, 19:11:45.748	[info ]: javascript.0 (1832) script.js.common.Blockly.PopupTimer: setStateDelayed(id=null, state={"val":"idle","ack":false}, isAck=undefined, delay=NaN, clearRunning=false)
                  30.12.2024, 19:11:45.749	[warn ]: javascript.0 (1832)     at Object.<anonymous> (script.js.common.Blockly.PopupTimer:21:9)
                  30.12.2024, 19:11:46.582	[info ]: javascript.0 (1832) Stopping script script.js.common.Blockly.PopupTimer
                  
                  1 Reply Last reply Reply Quote 0
                  • K
                    Kerschte_de @TT-Tom last edited by

                    @tt-tom @Armilar

                    Hi Tom. Habe es entsprechend geändert --> und es funktioniert nun. Der STATE wird am Ende des Countdowns von active auf idle gesetzt und das Blockly stoppt.
                    In Summe handelt es sich also um einen kleinen Fehler in der RAW-Version auf Github. Dann kann ich mich nun dem Ausbau des Countdowns sowie dem nächsten inhaltlichen Thema im NSP widmen - der Einbindung des Alexa-Players.

                    Mal wieder vielen Dank für Eure schnelle, unkomplizierte und sehr lösungsorientierte Unterstützung. 🙂
                    Kersten

                    T 1 Reply Last reply Reply Quote 2
                    • T
                      TT-Tom @Kerschte_de last edited by

                      @kerschte_de
                      Das Blockly auf GitHub ist und war richtig. Aber beim Import in den ioBroker ist da was schief gelaufen. Hatte bei mir auch den Effect. Habe meine Version und die auf GitHub verglichen, sind beide identisch. Hauptsache es funktioniert jetzt. Viel Spass noch und einen guten Rutsch

                      1 Reply Last reply Reply Quote 1
                      • K
                        Kerschte_de last edited by Kerschte_de

                        Hallo zusammen.
                        Die Einbindung des Alexa2.0 Adapters und Einrichtung des Players hat funktioniert. Ich kann auf die Playliste/Radiosender zugreifen. Auch der Wechsel bei den Ausgabegeräten klappt - allerdings nur 1mal. Gibt es die Möglichkeit, da noch etwas weiter reinzulesen? Die Wiki-Seite ist da gerade in Arbeit.
                        Bei mir gibt es 2 Punkte:
                        Ich wechsle von dem Quellgerät (Echo Dot Wohnzimmer) auf eine Gruppe (Erdgeschoss) oder anderes Ausgabegerät (Echo Dot Küche bspw.). Das funktioniert 1mal. Will ich die Musik wieder zurückholen auf nur 1 Gerät (Echo Dot Wohnzimmer), so ändert sich nichts. Es spielt also weiter das gesamte Erdgeschoss. Starte ich die Playlist bspw. neu auf Echo Dot Wohnzimmer, so beginnt diese auch dort. Der bisherige Stream wird aber weiterhin auf Küche ausgegeben.
                        Der zweite Punkt ist die Lautstärkesteuerung über das NSP. Die spricht bei mir garnicht an. Ich kann steuern, es passiert jedoch nichts bei der Lautstärke auf dem Ausgabegerät.
                        Gibt es Lösungsansätze, die ich dazu durchlesen kann?

                        Beste Grüße und allen heute abend einen guten Rutsch ins neue Jahr.
                        Kersten

                        1 Reply Last reply Reply Quote 0
                        • T
                          Toysman last edited by

                          Hallo zusammen und ein frohes neues Jahr,

                          mein Sonoff NSPanel ist mit Tasmota-nspanel 14.4.1 geflasht, nun will ich es in den ioBroker einbinden um das Teil zum laufen zu bringen gemäß des YT Tutorials von Matthias Kleine. Die TS Scripte habe ich in eingebunden und an den entsprechende Passagen angepasst.

                          Bei Start des NSPanel Scripts erhalte ich den Log Eintrag, das nodeJS aktualisiert werden muss. "Angeblich" liegt die Version 16.17.0 vor und ich müsste auf 18 updaten. Laut "Hosts" ist jedoch Node.js: v20.17.0 installiert.

                          Ferner bleibt der Script in einer Art Schleife hängen bei der Installation der TFT Firmeware.

                          Könnte ein wenig Unterstützung gebrauchen und hoffe hier richtig zu sein.

                          Danke & Gruß

                          472039951_10232295700473765_1156533940919961903_n.jpg
                          472055324_10232295700433764_7415065131012174448_n.jpg

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            TT-Tom @Toysman last edited by

                            @toysman
                            Dir auch ein gesundes neues Jahr.

                            Mit deinen Fragen bist du hier genau richtig.
                            Bitte poste log Ausgaben nicht als Bild, sondern kopieren und in die Code Tags packen </>.
                            Die Bilder sind auf dem Handy schwer zu lesen.

                            Der erste Fehler ist, das dir Module im JavaScript Adapter fehlen. Hier bitte nachschauen.

                            Im Wiki findest du auch eine komplette Anleitung.
                            Siehe meine Signatur.

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              Toysman @TT-Tom last edited by Toysman

                              @tt-tom

                              besten Dank für Deine Rückmeldung... die fehlenden Module habe ich im JS Adapter nachgetragen, und in JS den Script neu angelegt und angepasst. Soweit startet das Schipt fehlerfrei, aber dieser Loop, der sich nicht beendet, ärgert mich noch, denn auf dem Screen ist nur "Waiting for contet...." zu sehen.

                              javascript.0
                              	265448	2025-01-02 12:51:27.275	info	Stopping script script.js.NSPanels.NSPanel_Office
                              javascript.0
                              	265448	2025-01-02 12:51:21.233	info	script.js.NSPanels.NSPanel_Office: Installed TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:21.233	info	script.js.NSPanels.NSPanel_Office: Desired TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:15.326	info	script.js.NSPanels.NSPanel_Office: Installed TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:15.326	info	script.js.NSPanels.NSPanel_Office: Desired TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:09.343	info	script.js.NSPanels.NSPanel_Office: Installed TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:09.343	info	script.js.NSPanels.NSPanel_Office: Desired TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:03.435	info	script.js.NSPanels.NSPanel_Office: Installed TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:03.435	info	script.js.NSPanels.NSPanel_Office: Desired TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: End MQTT-Port-Check ---------------------------------------
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: - MQTT-Port-Check OK: Instance of Adapter: mqtt.0 is running on Port:1886
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- zigbee.0 - tcp
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- xterm.0 - 8099
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- ws.0 - 8085
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- web.0 - 8082
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- telegram.0 - 8443
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- sonoff.0 - 1883
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- socketio.0 - 8084
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- simple-api.0 - 8087
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- shelly.0 - 1882
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- proxmox.0 - 8006
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- mqtt.0 - 1886
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- hm-rpc.1 - 0
                              javascript.0
                              	265448	2025-01-02 12:51:00.965	info	script.js.NSPanels.NSPanel_Office: -- hm-rpc.0 - 0
                              javascript.0
                              	265448	2025-01-02 12:51:00.964	info	script.js.NSPanels.NSPanel_Office: -- admin.0 - 8081
                              javascript.0
                              	265448	2025-01-02 12:51:00.964	info	script.js.NSPanels.NSPanel_Office: Start MQTT-Port-Check -------------------------------------
                              javascript.0
                              	265448	2025-01-02 12:50:59.616	info	script.js.NSPanels.NSPanel_Office: hidden Cards disabled
                              javascript.0
                              	265448	2025-01-02 12:50:59.018	info	script.js.NSPanels.NSPanel_Office: Debug mode disabled
                              javascript.0
                              	265448	2025-01-02 12:50:58.854	info	script.js.NSPanels.NSPanel_Office: Installed TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:50:58.854	info	script.js.NSPanels.NSPanel_Office: Desired TFT Firmware: 53 / v4.4.0
                              javascript.0
                              	265448	2025-01-02 12:50:58.777	info	script.js.NSPanels.NSPanel_Office: registered 41 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              javascript.0
                              	265448	2025-01-02 12:50:58.773	info	script.js.NSPanels.NSPanel_Office: weather alias for accuweather.0. already exists
                              javascript.0
                              	265448	2025-01-02 12:50:58.772	info	script.js.NSPanels.NSPanel_Office: setObjects enabled - create Alias Channels possible
                              javascript.0
                              	265448	2025-01-02 12:50:58.768	info	script.js.NSPanels.NSPanel_Office: nodeJS must be at least v18.X.X. Currently: v16.17.0! Please Update your System! --> iob nodejs-update 18
                              javascript.0
                              	265448	2025-01-02 12:50:58.754	info	script.js.NSPanels.NSPanel_Office: --- start of NsPanelTs: 0_userdata.0.Datenpunkte.NSPanels.NSPanel_Office. ---
                              javascript.0
                              	265448	2025-01-02 12:50:58.683	info	script.js.NSPanels.NSPanel_Office: source code did not change, using cached compilation result...
                              javascript.0
                              	265448	2025-01-02 12:50:58.217	info	Compiling TypeScript source script.js.NSPanels.NSPanel_Office
                              

                              Würde gerne mal wenigstens den Startbildschirm sehen 😉

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                TT-Tom @Toysman last edited by

                                @toysman

                                zeige mal bitte deine MQTT Objekte vom Panel.

                                T 1 Reply Last reply Reply Quote 0
                                • T
                                  Toysman @TT-Tom last edited by

                                  @tt-tom sagte in SONOFF NSPanel mit Lovelace UI:

                                  @toysman

                                  zeige mal bitte deine MQTT Objekte vom Panel.

                                  ich hoffe als Screenshot ist es okay?

                                  Bildschirmfoto 2025-01-02 um 15.29.51.png

                                  dieses ist der Wert, der bei CustomSend steht:

                                  entityUpd~Service Menü~button~bPrev~~65535~button~bNext~~65535~button~navigate.NSPanel_Infos~~38060~Infos~mehr...~button~navigate.NSPanel_Einstellungen~~38060~Einstellungen~mehr...~button~navigate.NSPanel_Firmware~~38060~Firmware~mehr...~button~3~~64332~Reboot NSPanel~Start

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    TT-Tom @Toysman last edited by

                                    @toysman

                                    zeige mal die Einstellungen im script für MQTT.

                                    T 1 Reply Last reply Reply Quote 0
                                    • T
                                      Toysman @TT-Tom last edited by

                                      @tt-tom sagte in SONOFF NSPanel mit Lovelace UI:

                                      @toysman

                                      zeige mal die Einstellungen im script für MQTT.

                                          const NSPanelReceiveTopic: string = 'mqtt.0.NSPanel.tele.NSPanel-Office.RESULT';
                                          const NSPanelSendTopic: string = 'mqtt.0.NSPanel.cmnd.NSPanel-Office.CustomSend';
                                      
                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        TT-Tom @Toysman last edited by

                                        @toysman

                                        sieht alles richtig aus. Hat das Flaschen den komplett funktioniert? Das Script schickt die Seitendaten auf den richtigen DP, aber das Panel kann es nicht verarbeiten.

                                        T 1 Reply Last reply Reply Quote 0
                                        • T
                                          Toysman @TT-Tom last edited by Toysman

                                          @tt-tom

                                          flashen hat soweit funktioniert, hab vor dem Upload des Berry Treibers ja noch das "normale" Display gesehen...

                                          im LOG ist aber noch etwas unklares....

                                          javascript.0	16:25:26.487	info	script.js.NSPanels.NSPanel_Office: nodeJS must be at least v18.X.X. Currently: v16.17.0! Please Update your System! --> iob nodejs-update 18
                                          

                                          auf dem ioBroker System ist definitiv nodejs 20.18.0 installiert, wird in der Konsole wie auch in der GUI bestätigt

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            TT-Tom @Toysman last edited by TT-Tom

                                            @toysman

                                            die TFT-Firmware hast du auch installiert?

                                            auf dem ioBroker System ist definitiv nodejs 20.18.0 installiert, wird in der Konsole wie auch in der GUI bestätigtt

                                            wenn das so ist , dann ist in diesem Datenpunkt ein falscher Wert.

                                            system.host.*.nodeCurrent
                                            

                                            hast du den Rechner mal neu gestartet.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            605
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            261
                                            7159
                                            4812728
                                            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