Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Bei Störung E-Mail versenden ?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Bei Störung E-Mail versenden ?

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

      1. Befehl IOBroker Update bewirkt nur das prüfen nach Updates oder werden die dann sofort installiert?

      2. wie kann ich den Befehl absetzen? Unter Funktionen JavaScript-Funktion

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        @Elektroman:

        1. Befehl IOBroker Update bewirkt nur das prüfen nach Updates oder werden die dann sofort installiert? `

        update kommando sorgt nur dafuer das geprueft wird ob es updates gibt, update selber macht man mit

        Alle adapter

        iobroker upgrade
        

        Nur den gewuenschten adapter

        iobroker upgrade >adaptername<
        

        @Elektroman:

        2. wie kann ich den Befehl absetzen? Unter Funktionen JavaScript-Funktion `

        mit blockly, in diesem beispiel haben ich ein cron drangehaengt damit er es jeden tag um 15Uhr mach kan man beliebig anpasssen:

        979_update.jpg

        hier noch der code zum importieren:

         <xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="G)SIufc?c]cK@sSp.*jw" x="87" y="63"><field name="SCHEDULE">* 15 * * *</field>
            <statement name="STATEMENT"><block type="exec" id="bKofe~Zg@2yFu|2CsnRC"><mutation with_statement="false"></mutation>
                <field name="WITH_STATEMENT">FALSE</field>
                <field name="LOG">debug</field>
                <value name="COMMAND"><shadow type="text" id="?bD]P7ESC9u@OcnOH,:%"><field name="TEXT">cd /opt/iobroker/ && iobroker update</field></shadow></value></block></statement></block></xml> 
        
        

        oder als javascript:

        // Jeden tag um 15 Uhr
        schedule("* 15 * * *", function () {
          //ausfuehren des consolen befehls
          exec('cd /opt/iobroker/ && iobroker update');
        
        });
        
        

        PS: ich habe gerade bemerkt das der wert "admin.0.info.updatesList" nach einen upgrade commando auf der konsole nicht eneuert wird. dafuer mus man nochmal das kommand update geben dan ist der wert richtig

        1 Reply Last reply Reply Quote 0
        • E
          Elektroman last edited by

          Super vielen Dank

          Werde ich noch ausprobieren.

          1 Reply Last reply Reply Quote 0
          • smartboart
            smartboart last edited by

            Hallo, danke für das super kleine script…macht was es soll...

            habe leider noch nicht raus wie ich den Emailtext alarmMail(txt) in die email packe...Mache das im Moment so wie unten...Aber denke mit der function alarmMail(txt) geht das auch schöner als mit dem eigenen Text.. sendTo("email", "ein System Adapter oder mehrere System Adapter inaktiv");

            function alarmMail(txt) {
            sendTo("email", "ein System Adapter oder mehrere System Adapter inaktiv");
            }
            
            // Instanz wird inaktiv
            on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) {
               var id = dp.id.split('.');
               id = 'system.adapter.' + id[2] + '.' + id[3];
               var instance = getObject(id);
               if(instance.common.enabled) alarmMail(dp.common.name);
            });
            
            1 Reply Last reply Reply Quote 0
            • smartboart
              smartboart last edited by

              Hat sich erledigt, habs hinbekommen danke…

              1 Reply Last reply Reply Quote 0
              • eric2905
                eric2905 last edited by

                Postest Du noch, wie Du es geschafft hast?

                Dann haben alle was davon.

                Gruß,

                Eric

                Von unterwegs getippert

                1 Reply Last reply Reply Quote 0
                • smartboart
                  smartboart last edited by

                  ` > Postest Du noch, wie Du es geschafft hast?

                  Dann haben alle was davon. `

                  function alarmMail(txt) {
                  sendTo('email', 'System Adapter meldet Probleme  '+(txt));
                  }
                  
                  // Instanz wird inaktiv
                  on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) {
                     var id = dp.id.split('.');
                     id = 'system.adapter.' + id[2] + '.' + id[3];
                     var instance = getObject(id);
                     if(instance.common.enabled) alarmMail(dp.common.name);
                  });
                  

                  zu dem script muss eigentlich nur noch der emailadapter eingerichtet werden… Funktioniert wunderbar, habe es mit mehreren Adaptern probiert...Der Script Ersteller hat ganze Arbeit geleistet..danke schön..

                  1 Reply Last reply Reply Quote 0
                  • smartboart
                    smartboart last edited by

                    Hi, hätte gerne noch eine Statusanzeige in Vis, ganz simple eine objekt id auf true setzen wenn eine email bei störung versand wurde..

                    Bei Status true soll das Widget aufpoppen und bei Betätigung des Widget den Status wieder auf false setzen und verschwinden…

                    Kann man das so machen ? Funktioniert aufjedenfall schonmal wie ich es möchte.

                     createState('Adapterüberwachung.Störung', {
                        read: true, 
                        write: false, 
                        type: "boolean"
                    });
                    
                    function alarmMail(txt) {
                    sendTo('email', 'System Adapter meldet Probleme  '+(txt));
                    setState('javascript.0.Adapterüberwachung.Störung', true );
                    }
                    
                    // Instanz wird inaktiv
                    on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) {
                       var id = dp.id.split('.');
                       id = 'system.adapter.' + id[2] + '.' + id[3];
                       var instance = getObject(id);
                       if(instance.common.enabled) alarmMail(dp.common.name);
                    });
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • smartboart
                      smartboart last edited by

                      on({id: /^system\.adapter\..+\.alive$/, change: 'ne',val: true}, function(dp) {
                      	sendTo('telegram.0', 'iobroker - System Adapter laufen fehlerfrei');
                      setState('javascript.0.Adapterüberwachung.iobroker.Störung', false );
                      setState('javascript.0.Adapterüberwachung.iobroker.Text', 'ioBroker - System Adapter laufen fehlerfrei ');
                      });
                      

                      Hi, mit oben gezeigtem Auszug wollte ich meine vis anzeige nach einem gemeldeten Fehler noch zurück setzen und ne Rückmeldung and telegram schicken..Funktioniert auch, nur bekomme ich die Rückmeldung, dass die Adapter nun fehlerfrei laufen öfters…Jemand ne idee was an dem Script auszug falsch sein könnte oder wie ich das unterbinden kann...eine Rückmeldung bis zum nächsten Statuswechsel reicht mir eigentlich...

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

                        @smartboart:

                        'ioBroker - System Adapter laufen fehlerfrei '
                        ```` `  
                        

                        Mit dieser Aussage würde ich vermuten, dass sie Auskunft geben soll, dass <u>alle</u> Instanzen laufen. Für diese Aussage braucht es aber eine UND-Verknüpfung des "alive" aller aktivierten Instanzen. Der Trigger liefert allerdings nur die Information, dass eine zuvor nicht laufende Instanz nun wieder läuft.

                        1 Reply Last reply Reply Quote 0
                        • smartboart
                          smartboart last edited by

                          Hallo paul 53 danke für die Rückmeldung…Ja du hast recht, ich möchte natürlich die Störmeldung in Vis zurücksetzen, wenn alle aktiven Adapter wieder alive also fehlerfrei - grün sind...Habe schon ein paar Varianten durchgespielt, bekomme das aber nicht so zum laufen wie ich es mir vorstelle...

                          Kann ich das irgendwie mit ner else Verknüpfung unter function alarmMail(txt) { lösen?

                          Komme mit try and error nicht so recht weiter...und mit dem Scripten haperts noch etwas...

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

                            @smartboart:

                            Habe schon ein paar Varianten durchgespielt, bekomme das aber nicht so zum laufen wie ich es mir vorstelle… `
                            Wie wäre es mit einem Alarm-Zähler ?

                            var cnt = 0;
                            
                            // Instanz wird inaktiv
                            on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) {
                               var id = dp.id.split('.');
                               id = 'system.adapter.' + id[2] + '.' + id[3];
                               var instance = getObject(id);
                               if(instance.common.enabled) {
                                  alarmMail(dp.common.name);
                                  cnt++;
                               }   
                            });
                            
                            on({id: /^system\.adapter\..+\.alive$/, change: 'ne',val: true}, function(dp) {
                               cnt--;
                               if(cnt <= 0) {
                                  sendTo('telegram.0', 'iobroker - System Adapter laufen fehlerfrei');
                                  setState('javascript.0.Adapterüberwachung.iobroker.Störung', false );
                                  setState('javascript.0.Adapterüberwachung.iobroker.Text', 'ioBroker - System Adapter laufen fehlerfrei ');
                                  cnt = 0; // falls cnt < 0 (verzählt)
                               }   
                            });
                            
                            1 Reply Last reply Reply Quote 0
                            • smartboart
                              smartboart last edited by

                              super Lösungsansatz, danke….habe das jetzt komplett so übernommen..also dein komplettes Script mit Fehlermeldung und Gutmeldung...

                              Im ersten Versuch macht es was es soll...

                              Mal gespannt ob jetzt die Gutmeldungen nicht wieder ständig aufpoppen...Vielen Lieben Dank dafür..

                              createState('Adapterüberwachung.iobroker.Störung', {"name": "iobroker Servicemeldungen Störung" });
                              createState('Adapterüberwachung.iobroker.Text', {"name": "iobroker Servicemeldungen Text"});
                              
                              function alarmMail(txt) {
                              sendTo('telegram.0', 'iobroker - System Adapter meldet Probleme  '+(txt));
                              setState('javascript.0.Adapterüberwachung.iobroker.Störung', true );
                              setState('javascript.0.Adapterüberwachung.iobroker.Text', 'System Adapter meldet Probleme '+(txt));
                              }
                              
                              var cnt = 0;
                              
                              // Instanz wird inaktiv
                              on({id: /^system\.adapter\..+\.alive$/, change: 'ne', val: false}, function(dp) {
                                 var id = dp.id.split('.');
                                 id = 'system.adapter.' + id[2] + '.' + id[3];
                                 var instance = getObject(id);
                                 if(instance.common.enabled) {
                                    alarmMail(dp.common.name);
                                    cnt++;
                                 }   
                              });
                              
                              on({id: /^system\.adapter\..+\.alive$/, change: 'ne',val: true}, function(dp) {
                                 cnt--;
                                 if(cnt <= 0) {
                                    sendTo('telegram.0', 'iobroker - System Adapter laufen fehlerfrei');
                                    setState('javascript.0.Adapterüberwachung.iobroker.Störung', false );
                                    setState('javascript.0.Adapterüberwachung.iobroker.Text', 'ioBroker - System Adapter laufen fehlerfrei ');
                                    cnt = 0; // falls verzählt und cnt < 0
                                 }   
                              });
                              
                              
                              1 Reply Last reply Reply Quote 0
                              • S
                                stephan61 last edited by

                                Danke für das Script funktioniert soweit

                                wie kann ich die Meldungen von DWD oder Tankerkönig heraus nehmen ?

                                Da die Adapter immernur kurz starten und wieder bendet werden kommen regelmässig die Meldung

                                Gruß Stephan

                                1 Reply Last reply Reply Quote 0
                                • smartboart
                                  smartboart last edited by

                                  vlt. kann paul das beantworten…bei mir meldet sich allerdings immernoch in unregelmäsigen Abständen die Gutmeldung ohne ersichtlichen Grund..Im Log ist zu diesen Zeiten nichts zusehen....Noch ne Idee woran das liegen könnte?

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

                                    createState('Adapterüberwachung.iobroker.Störung', {"name": "iobroker Servicemeldungen Störung" });
                                    createState('Adapterüberwachung.iobroker.Text', {"name": "iobroker Servicemeldungen Text"});
                                    
                                    function alarmMail(txt) {
                                       txt = 'System Adapter ' + txt;
                                       sendTo('telegram.0', 'iobroker - ' + txt);
                                       setState('javascript.0.Adapterüberwachung.iobroker.Text', txt);
                                    }
                                    
                                    var cnt = 0;
                                    
                                    on(/^system\.adapter\..+\.alive$/, function(dp) {
                                       var id = dp.id.split('.');
                                       var common = getObject('system.adapter.' + id[2] + '.' + id[3]).common;
                                       if(common.mode == 'daemon' && common.enabled) {  // Instanzen mit cronjob und gesperrte Instanzen ausblenden
                                          if(dp.state.val && dp.oldState.val === false) {
                                             cnt--;
                                             if(cnt <= 0) {
                                                alarmMail('laufen fehlerfrei');
                                                setState('javascript.0.Adapterüberwachung.iobroker.Störung', false );
                                                cnt = 0; // falls verzählt und cnt < 0
                                             }    
                                          } else if(dp.state.val === false && dp.oldState.val) {
                                             alarmMail('meldet Probleme ' + dp.common.name);
                                             setState('javascript.0.Adapterüberwachung.iobroker.Störung', true);
                                             cnt++;
                                          }
                                       }   
                                    });
                                    

                                    EDIT: Abfrage um Prüfung auf dp.state.val === false und common.mode == 'daemon' ergänzt

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

                                      @smartboart:

                                      bei mir meldet sich allerdings immernoch in unregelmäsigen Abständen die Gutmeldung ohne ersichtlichen Grund. `
                                      Dann nimm mal das cnt++ aus der enabled-Abfrage raus.

                                         if(instance.common.enabled) alarmMail(dp.common.name);
                                         cnt++;
                                      
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • smartboart
                                        smartboart last edited by

                                        @paul53:

                                        @smartboart:

                                        bei mir meldet sich allerdings immernoch in unregelmäsigen Abständen die Gutmeldung ohne ersichtlichen Grund. `
                                        Dann nimm mal das cnt++ aus der enabled-Abfrage raus.

                                           if(instance.common.enabled) alarmMail(dp.common.name);
                                           cnt++;
                                        
                                        ```` `  
                                        

                                        Hallo Paul,

                                        das funktioniert auch nicht…Ich bekomme immer wieder Gutmeldungen...In der obigen Variante mit allen countern aktiv laufen sogar die Fehlermeldungen von jedem Adapter durch und bringen dann wieder die Gutmeldung. Der fährt quasi alle aktiven Adapter ab...

                                        Ich möchte dich damit nicht noch weiter beschäftigen, wollte nur noch wenigstens eine Rückmeldung geben...

                                        Ich verwende das Script jetzt in der letzten Variante ohne die Zähler und lasse mir auch keine Gutmeldungen mehr schicken. Also Fehlermedlungen werden zuverlässig verschickt und zum Zurücksetzen der Anzeige in Vis kann ich es auch so nehmen...

                                        Danke für die Mühe...

                                        Sollte ich dein Ergeiz geweckt haben, teste ich gerne weiter...aber ich habs aufgegeben an dem Script zu basteln...

                                        1 Reply Last reply Reply Quote 0
                                        • smartboart
                                          smartboart last edited by

                                          Hallo Paul weißt du warum ich bei unterem Script folgenden Logmeldungen bekomme?

                                          javascript.0 2018-09-05 21:03:42.861 error at Object. <anonymous>(script.js.common.Mail_Status_Adapter.Adapterüberwachung:31:22)

                                          javascript.0 2018-09-05 21:03:42.860 error Error in callback: TypeError: Cannot read property 'common' of null

                                          javascript.0 2018-09-05 21:03:42.857 warn Object "system,adapter,text2command,0,alive" does not exist

                                          createState('Adapterüberwachung.iobroker.Störung', {"name": "iobroker Servicemeldungen Störung" });
                                          createState('Adapterüberwachung.iobroker.Text', {"name": "iobroker Servicemeldungen Text"});
                                          
                                          function alarmMail(txt) {
                                          txt = 'System Adapter ' + txt;
                                          sendTo('telegram.0', 'iobroker - ' + txt);
                                          setState('javascript.0.Adapterüberwachung.iobroker.Text', txt);
                                          log('iobroker - System Adapter '+(txt));
                                          }
                                          
                                          var cnt = 0;
                                          
                                          on(/^system\.adapter\..+\.alive$/, function(dp) {
                                              if (dp.state.val===true)
                                              log('trigger für Adapterüberwachung aktiv');
                                             var id = (dp.id.split('.'));
                                             if(id[2] != 'tvspielfilm'  && id[2] != 'tankerkoenig') {
                                                if(dp.state.val) {
                                                   cnt--;
                                                   if(cnt <= 0) {
                                                     // alarmMail('laufen fehlerfrei');
                                                      setState('javascript.0.Adapterüberwachung.iobroker.Störung', false );
                                                      setState('javascript.0.Adapterüberwachung.iobroker.Text', ' iobroker - Systemadapter laufen fehlerfrei');
                                                      log('iobroker - System Adapter laufen fehlerfrei' );
                                                      cnt = 0; // falls verzählt und cnt < 0
                                                   }    
                                                } else {
                                                    if (dp.state.val === false)
                                                   id = ('system.adapter.' + id[2] + '.' + id[3]);
                                                   var instance = getObject(id);
                                                   if(instance.common.enabled) {
                                                      alarmMail('meldet Probleme ' + dp.common.name);
                                                      setState('javascript.0.Adapterüberwachung.iobroker.Störung', true);
                                                   }
                                                   cnt++;
                                                }
                                             }   
                                          });
                                          
                                          ````</anonymous>
                                          1 Reply Last reply Reply Quote 0
                                          • Webranger
                                            Webranger last edited by

                                            Durch zufall diesen Beitrag gefunden.

                                            Werde ich mal testen.

                                            Danke dafür

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            527
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            61
                                            8036
                                            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