Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen

    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

    Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen

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

      Danke Dir für deine Hilfe.
      Hab es jetzt so gemacht:

      const instanzname = wmswebcontrol.0;
      const dp_userdata = 0_userdata.0.var_Instantz_WMS_Trigger_aus_Log;
      const Debug = true;
       
       
      onLog('error', data => {
          if (Debug) console.log('Fehler von: ' + data.from + ' mit Meldung: ' + data.message + ' ' + data.severity + ' ' + data.ts);
          let loginstanzname = data.from.split('.', 1);
          if (Debug) console.log(loginstanzname[0])
          if (loginstanzname[0] == instanzname) {
              let logTimeout = null;
              if (logTimeout) { clearTimeout(logTimeout) };
              setState(dp_userdata, true, true);
              if (Debug) console.log('Datenpunkt ' + dp_userdata + ' gesetzt')
              logTimeout = setTimeout(async function () {
                  setState(dp_userdata, false, true);
                  if (Debug) console.log('Datenpunkt ' + dp_userdata + ' zurückgesetzt')
              }, 5000);
          }
      });
      

      Erhalte aber eine Fehlermeldung beim Start des Skripts:

      b7a60703-4113-4040-a948-e4feabbe356e-image.png

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

        @BlackTigga
        ja ist klar, du musst auch Springs übergeben, also

        const instanzname = 'wmswebcontrol';
        const dp_userdata = '0_userdata.0.var_Instantz_WMS_Trigger_aus_Log';
        

        die "0" bleibt weg bei der Instanz

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

          @tt-tom

          wenn du es testen willst, bau dir ein blockly und nehme als Instanzname

          const instanzname = 'javascript';
          

          Bildschirmfoto 2023-06-01 um 12.20.50.png

          bei jedem Neustart des Blockly sollte das Script auslösen

          B 1 Reply Last reply Reply Quote 0
          • B
            BlackTigga @TT-Tom last edited by BlackTigga

            @tt-tom sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:

            Der Test sieht im Log jetzt so aus:. Aus meiner Sicht erstmal erfolgreich, oder?

            javascript.0 2023-06-01 12:48:31.612	info	script.js.common.Warema_Neustart_Trigger_aus_Log_Eintrag: Datenpunkt 0_userdata.0.var_Instantz_WMS_Trigger_aus_Log zurückgesetzt
            javascript.0 2023-06-01 12:48:26.609	info	script.js.common.Warema_Neustart_Trigger_aus_Log_Eintrag: Datenpunkt 0_userdata.0.var_Instantz_WMS_Trigger_aus_Log gesetzt
            javascript.0 2023-06-01 12:48:26.607	info	script.js.common.Warema_Neustart_Trigger_aus_Log_Eintrag: javascript
            javascript.0 2023-06-01 12:48:26.605	info	script.js.common.Warema_Neustart_Trigger_aus_Log_Eintrag: Fehler von: javascript.0 mit Meldung: javascript.0 (24658) script.js.common.00_Test: test error 1685616506599
            javascript.0 2023-06-01 12:48:26.600	info	script.js.common.00_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
            javascript.0 2023-06-01 12:48:26.599	error	script.js.common.00_Test: test
            javascript.0 2023-06-01 12:48:26.578	info	Start javascript script.js.common.00_Test
            javascript.0 2023-06-01 12:48:26.549	info	Stop script script.js.common.00_Test
            
            T 1 Reply Last reply Reply Quote 0
            • T
              TT-Tom @BlackTigga last edited by

              @blacktigga

              ja, so sollte es sein. Im nächsten Schritt könnte man noch die Meldung vergleichen, um nur bei einer bestimmten auszulösen.

              Für den Anfang sollte es aber so passen.

              B 1 Reply Last reply Reply Quote 0
              • B
                BlackTigga @TT-Tom last edited by

                @tt-tom

                Super, Danke Dir. Ich werde es testen und mich zurückmelden bei Erfolg/Misserfolg.

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

                  @blacktigga sagte: Schaltsteckdose davor geschaltet um dann in diesen Fällen das Stromlosschalten und den Neutsart automatisch durchlaufen zu lassen.

                  Vorschlag:

                  const idPlug = ''; // DP-ID der Steckdose eintragen!
                  const instanz = 'wmswebcontrol.0';
                  const msg = 'Get device status failed';
                  
                  var timer = null;
                  
                  onLog('error', data => {
                      if(data.from  == instanz && data.message.includes(msg)) {
                          setState(idPlug, false); // Steckdose aus
                          if(timer) clearTimeout(timer);
                          timer = setTimeout(function () {
                              setState(idPlug, true); // Steckdose ein
                          }, 5000);
                      }
                  });
                  
                  B 1 Reply Last reply Reply Quote 0
                  • B
                    BlackTigga @paul53 last edited by

                    @paul53

                    Hi, vielen Dank für die Erweiterung. Ich bin kein Experte für Coding, aber vorgefertigte Skripte bekomme ich der Regel dann irgendwie eingebunden. Dennoch versuche ich zumindest immer den Code ein weinig zu "verstehen".

                    Was ich ier noch nicht ganz verstanden habe, wodurch genau dein Skript jetzt angetriggert wird.
                    Es muss ja hiermit zu tun haben:
                    if(data.from == instanz && data.message.includes(msg)) wobei msg als Konstante mit 'Get device status failed' deklariert ist. Zu welchem Zeitpunkt haben wir denn die Meldung 'Get device status failed' irgendwo anstehen damit das in diesem Skript verarbeitet werden kann?

                    Und muss in ein separates Skript eingefügt werden?

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

                      @blacktigga sagte: Zu welchem Zeitpunkt haben wir denn die Meldung 'Get device status failed' irgendwo anstehen

                      So steht es im ersten Beitrag.

                      @blacktigga sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:

                      Und muss in ein separates Skript eingefügt werden?

                      Ja, es sollte ein separates Skript sein.

                      @blacktigga sagte in Warema WMS >> Adapter Neustart nach bestimmten Log Einträgen:

                      wodurch genau dein Skript jetzt angetriggert wird.

                      Der Trigger ist onLog('error'), der bei jedem Error-Log triggert. Die Prüfung filtert die zugehörige Meldung heraus.

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

                        @paul53
                        Besten Dank, ist verstanden! Ich werde berichten. 👍

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        928
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        4
                        27
                        984
                        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