Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Beispiel zu onLog() und Frage zu der Nutzung von on...(...)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    913

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Beispiel zu onLog() und Frage zu der Nutzung von on...(...)

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 1 Kommentatoren 169 Aufrufe 1 Watching
  • Ä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.
  • MartinPM Online
    MartinPM Online
    MartinP
    schrieb am zuletzt editiert von MartinP
    #1

    Ich nutze Radicale für unsere Familienkalender. Läuft in einem Docker Container wiederum in einem LXC-Container auf meinem Proxmox System.

    Manchmal stützt Radicale ab, und man muss etwas nachhelfen, dass der Container wieder gestartet wird. Da bin ich noch bei der Ursachenforschung ...

    In iobroker nutze ich den ical-Adapter, und der bietet über sein Logging einen Ansatzpunkt, den Docker-Container zu überwachen, und sich Mails bzgl des Zustandes schicken zu lassen ...
    Um da nicht im Poll-Intervall des Kalenders gespammt zu werden, natürlich nur eine Mail beim Betreten des Fehlerzustandes und eine Mail beim Verlassen....

    Trigger auf diese Log-Messages

    Radicale läuft nicht:

    ical.0
    	2024-01-22 02:30:04.404	warn	Error reading from URL "http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/"
    

    Radicale läuft wieder:

    cal.0
    	2024-01-22 02:30:06.373	info	processing URL: Martin_docker http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/
    

    Und hier der Code, um diese beiden Messages auszufiltern:

    var bWarnReceived = false;
    
    onLog('info', data => {
        // console.log('Following warn message: ' + data.message + "from: " + data.from);
        if((bWarnReceived == true) && (data.from == 'ical.0') && (data.message.includes('processing'))) {
          // Auswertung von data.message
          bWarnReceived = false;
          sendTo("email", "send", {
             text: (['ical Adapter funktioniert wieder ', data.message].join('')),
             to: 'xxxxxxxx@xxxxxxxxx.de',
             subject: 'Ical OK'
          });
        }
        else if((bWarnReceived == false) && (data.from == 'ical.0') && (data.severity != 'info')) {
          // Auswertung von data.message
          bWarnReceived = true;
          sendTo("email", "send", {
             text: (['ical Adapter meldet probleme ', data.message].join('')),
             to: 'xxx@xxx.de',
             subject: 'Ical-Alarm!'
          });
       }
    });
    
    

    Ist es sinnvoll, diese längliche Version EINES on(...) Blocks zu verwenden, oder ist es egal, wie viele on(...) Registrierungen man macht, und ich könnte den Fehlerfall, und den ok-Fall in separate on(...) Blöcke bearbeien lassen?

    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
    Linux pve 6.8.12-16-pve
    6 GByte RAM für den Container
    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
    Remote-Access über Wireguard der Fritzbox

    MartinPM 1 Antwort Letzte Antwort
    0
    • MartinPM MartinP

      Ich nutze Radicale für unsere Familienkalender. Läuft in einem Docker Container wiederum in einem LXC-Container auf meinem Proxmox System.

      Manchmal stützt Radicale ab, und man muss etwas nachhelfen, dass der Container wieder gestartet wird. Da bin ich noch bei der Ursachenforschung ...

      In iobroker nutze ich den ical-Adapter, und der bietet über sein Logging einen Ansatzpunkt, den Docker-Container zu überwachen, und sich Mails bzgl des Zustandes schicken zu lassen ...
      Um da nicht im Poll-Intervall des Kalenders gespammt zu werden, natürlich nur eine Mail beim Betreten des Fehlerzustandes und eine Mail beim Verlassen....

      Trigger auf diese Log-Messages

      Radicale läuft nicht:

      ical.0
      	2024-01-22 02:30:04.404	warn	Error reading from URL "http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/"
      

      Radicale läuft wieder:

      cal.0
      	2024-01-22 02:30:06.373	info	processing URL: Martin_docker http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/
      

      Und hier der Code, um diese beiden Messages auszufiltern:

      var bWarnReceived = false;
      
      onLog('info', data => {
          // console.log('Following warn message: ' + data.message + "from: " + data.from);
          if((bWarnReceived == true) && (data.from == 'ical.0') && (data.message.includes('processing'))) {
            // Auswertung von data.message
            bWarnReceived = false;
            sendTo("email", "send", {
               text: (['ical Adapter funktioniert wieder ', data.message].join('')),
               to: 'xxxxxxxx@xxxxxxxxx.de',
               subject: 'Ical OK'
            });
          }
          else if((bWarnReceived == false) && (data.from == 'ical.0') && (data.severity != 'info')) {
            // Auswertung von data.message
            bWarnReceived = true;
            sendTo("email", "send", {
               text: (['ical Adapter meldet probleme ', data.message].join('')),
               to: 'xxx@xxx.de',
               subject: 'Ical-Alarm!'
            });
         }
      });
      
      

      Ist es sinnvoll, diese längliche Version EINES on(...) Blocks zu verwenden, oder ist es egal, wie viele on(...) Registrierungen man macht, und ich könnte den Fehlerfall, und den ok-Fall in separate on(...) Blöcke bearbeien lassen?

      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von
      #2

      Nun funktioniert das doch nicht,

      Leider habe ich nicht genau genug geschaut ... Im Fehlerfall sieht das Logging so aus:

      ical.0
      	2024-01-22 10:00:04.532	warn	Error reading from URL "http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/"
      ical.0
      	2024-01-22 10:00:04.537	info	Use cached File content for "http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/" from Mon Jan 22 2024 09:00:04 GMT+0100 (Central European Standard Time)
      ical.0
      	2024-01-22 10:00:06.281	info	processing URL: Martin_docker http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/
      

      Also wird der Fehlerfall zwei Sekunden später wieder aufgehoben ... da muss ich ggfs. doch mit Timeouts o. Ä. arbeiten ...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      MartinPM 1 Antwort Letzte Antwort
      0
      • MartinPM MartinP

        Nun funktioniert das doch nicht,

        Leider habe ich nicht genau genug geschaut ... Im Fehlerfall sieht das Logging so aus:

        ical.0
        	2024-01-22 10:00:04.532	warn	Error reading from URL "http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/"
        ical.0
        	2024-01-22 10:00:04.537	info	Use cached File content for "http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/" from Mon Jan 22 2024 09:00:04 GMT+0100 (Central European Standard Time)
        ical.0
        	2024-01-22 10:00:06.281	info	processing URL: Martin_docker http://192.168.2.146:5232/martin/e4c584bc-2ea6-bae6-1d4e-debe6a702f21/
        

        Also wird der Fehlerfall zwei Sekunden später wieder aufgehoben ... da muss ich ggfs. doch mit Timeouts o. Ä. arbeiten ...

        MartinPM Online
        MartinPM Online
        MartinP
        schrieb am zuletzt editiert von MartinP
        #3

        So, das ist nun meine Lösung...

        var LastLogMessageReceived = (new Date().getTime());
        
        onLog('warn', data => {
            // console.log('Following warn message: ' + data.message + "from: " + data.from);
            if((data.from == 'ical.0') && (data.severity == 'warn')) {
              let myActTime = new Date().getTime();
              // Auswertung von data.message
              if ((myActTime - LastLogMessageReceived)> 2700000) {  // 2 700 000 ms = 45 min (check ical settings for fitting timeout limit, 30 min ical interval -> 45 min timeout)
                sendTo("email", "send", {
                  text: (['ical Adapter meldet Warnung ', data.message].join('')),
                  to: 'xxxxxxxxxxxxxxxxx,
                 subject: 'Ical-Alarm!'
                });
              }
              LastLogMessageReceived = myActTime;
              
           }
        });
        
        

        Schickt zwar keine OK-Mail, wenn wieder alles funktioniert, aber das ist erstmal nicht so wichtig denke ich ...

        Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
        Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
        Linux pve 6.8.12-16-pve
        6 GByte RAM für den Container
        Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
        Remote-Access über Wireguard der Fritzbox

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        573

        Online

        32.6k

        Benutzer

        82.2k

        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