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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Bei Störung E-Mail versenden ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators last edited by

      @paul53:

      @Elektroman:

      Ist das auch in Blockly realisierbar? Bei Blockly bin ich raus :( Vielleicht kann es Dir jemand nach Blockly übersetzen ?

      Regxp im blockly leider nein.

      Man könnte aber das Script benutzen und dessen Ausgabe in blockly weiter verarbeiten

      –-----------------------

      Send from mobile device

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

        Klingt gut [emoji108]

        Aber wie[emoji4]

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

          @Dutchman:

          Man könnte aber das Script benutzen und dessen Ausgabe in blockly weiter verarbeiten `
          Dann mit vereinfachtem Skript und Mailtext-Übergabe an Blockly über einen Datenpunkt.

          // Datenpnkt-ID für Mailtext-Übergabe
          const idMailtext = 'javascript.0.mailtext';  // oder so ähnlich
          
          // 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) setState(idMailtext, 'Störung: ' + dp.common.name, true);
          });
          

          Einfach das Skript kopieren und die ID für den Mailtext-Datenpunkt anpassen.

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

            ? [emoji52] sorry aber das ist mir schon zu hoch

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

              @Elektroman:

              ? [emoji52] sorry aber das ist mir schon zu hoch `

              bin gerade back home vom "Sinterklaas Fest" hier in holland moment ich bau dir das ma in blockly um 🙂

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

                Oh super danke

                Ist bestimmt für Andere auch interessant

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

                  @Elektroman:

                  Oh super danke

                  Ist bestimmt für Andere auch interessant `

                  So das haette wir dan, im blockly habe ich eigentlich nur das verschiken der mail geloest, das script von Paul53 sorgt eigentlich fuer die logic.

                  Vorraussetzung ist das du den e-mail adapter installiert und konfiguriert hast !

                  Also paul sein script ueberwacht alle zustaender "Alive" und schreibt einen fehler aus sollte sich alive = false aender und der adapter den status enabled hat.

                  Dafuer gibts keine andere loesung, dies script musst du also anlegen (pass auf, nicht in global !)

                  // Datenpnkt-ID für Mailtext-Übergabe
                  const idMailtext = 'javascript.0.mailtext';  // oder so ähnlich
                  
                  // 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) setState(idMailtext, 'Störung: ' + dp.common.name, true);
                  });
                  
                  

                  Dan machen wir dieses blockly, welche das object ueberwacht was Paul sein script fuellt und dan eine mail schickt mit dem tekst der meldung.

                  In diesem blockly erstelle ich auch das object "javascript.0.mailtext" das ist der erste block :

                  979_send_mail.jpg

                  Das ergebnis:

                  979_send_mail_2.jpg

                  Und hier das blockly zum importieren:

                  ! ````
                  <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="ZqI#6E2{oZZs:=pGFB+q" x="38" y="-137"><field name="COMMENT">Object mailtext erstellen</field>
                  <next><block type="create" id=")H=3W%nvyGQ.4C{SP0T("><field name="NAME">mailtext</field>
                  <next><block type="comment" id="}:mK[r~GVP/.UGSk9=[h"><field name="COMMENT">Triggeren wen eine meldung vorliegt</field>
                  <next><block type="on_ext" id="KYD(k!5})eo}(-?77a(("><mutation items="1"></mutation>
                  <field name="CONDITION">ne</field>

                              <value name="OID0"><shadow type="field_oid" id="rJYJwbQ1{f]a{Yj*x8?*"><field name="oid">javascript.0.mailtext</field></shadow></value> 
                              <statement name="STATEMENT"><block type="comment" id="Ps|GT%z~M5(;1sK2HK7W"><field name="COMMENT">E-Mail schicken mit wert aus dem object + zusaetlichen tekst</field>
                                  <next><block type="email" id="s,f352j%6ynj]CgL[9}m"><field name="IS_HTML">FALSE</field>
                  
                                      <value name="TO"><shadow type="text" id="|lM%B_T2xd1W)89K1=(9"><field name="TEXT">deinemailadresse@gmail.com</field></shadow></value> 
                                      <value name="TEXT"><shadow type="text" id="dlEg%]]f6zh|[HN_;lSJ"></shadow> 
                                        <block type="variables_get" id="3ZHp92{6WYFpp9eYkUBM"><field name="VAR">value</field></block></value> 
                                      <value name="SUBJECT"><shadow type="text" id="T0XVW~DiIGOj2%Hu{da="><field name="TEXT">iObroker Fehlermeldungen</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></xml> 
                  

                  ! ````

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

                    @Dutchman:

                    und der adapter den status enabled hat. `
                    Das

                       if(instance.common.enabled) ...
                    

                    hast Du weggelassen. Hat das einen Grund ?

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

                      @paul53:

                      @Dutchman:

                      und der adapter den status enabled hat. `
                      Das

                         if(instance.common.enabled) ...
                      

                      hast Du weggelassen. Hat das einen Grund ? `

                      Ups sorry ergänzt ich hatte das zum Probieren weck gelassen

                      –-----------------------

                      Send from mobile device

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

                        @Dutchman: Du triggerst auf "was changed", was voraussetzt, dass sich der Text ändert. Allerdings kann es sein, dass immer wieder die gleiche Instanz mal läuft und dann irgendwann nicht mehr läuft. In diesem Fall würde nur einmal getriggert.

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

                          @paul53:

                          @Dutchman: Du triggerst auf "was changed", was voraussetzt, dass sich der Text ändert. Allerdings kann es sein, dass immer wieder die gleiche Instanz mal läuft und dann irgendwann nicht mehr läuft. In diesem Fall würde nur einmal getriggert. `

                          Stimmt, zur Erklärung: Ich wollte damit eine mail Wiederholung vermeiden wen man aber den effect haben möchte wie du beschreibst muss man de Trigger auf "wurde aktualisiert" ändern.

                          –-----------------------

                          Send from mobile device

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

                            Erst mal vielen Dank

                            Funktioniert auch

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

                              Habe es jetzt getestet, funktioniert gut [emoji4] Habe mir eine neue E-Mail Adresse dafür angelegt

                              Geht das auch mit anstehenden Updates? Oder sogar mit neuen verfügbaren Adaptern ?

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

                                @Elektroman:

                                Geht das auch mit anstehenden Updates? `
                                Dafür gibt es den(die) Datenpunkt(e) mit der ID "admin.N.info.updatesList" (N = 0,1, …).

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

                                  Danke [emoji106][emoji106][emoji106] das kann ich ja sofort weiterverarbeiten

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

                                    @Elektroman:

                                    Danke [emoji106][emoji106][emoji106] das kann ich ja sofort weiterverarbeiten `

                                    Beachte aber das Updates erst nach einem Befehl

                                     iobroker update
                                    

                                    Sichtbar sind

                                    Dafür könntest du das Kommando auch mit blockly ausführen

                                    –-----------------------

                                    Send from mobile device

                                    1 Reply Last reply Reply Quote 0
                                    • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            587
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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