Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Push-Benachrichtigungen bei Adapter-Updates

    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

    Push-Benachrichtigungen bei Adapter-Updates

    This topic has been deleted. Only users with topic management privileges can see it.
    • 4
      4-Real last edited by

      @Dutchman:

      Mal schnell geschaut siehe Screenshot, es gibt die Zahl und welche Adapter ein Update haben können.

      Du könntest also auf Änderung dieser Werte triggeren und dem entsprechende actionende auslösen.

      ~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201805 ... 7fac7a.jpg">https://uploads.tapatalk-cdn.com/20180508/a6f6a8c1ff5af678b86c3bcbef7fac7a.jpg</link_text>" />

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

      Send from mobile device

      Das schöne ios hat Auto Korrektur zum k****

      Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community~~ ` ~~Heisst die 15 jetzt, du hast 15 Updates, die du noch machen musst?! :shock:

      Habe aus Jux auch gerade mal geschaut und bei mir steht 1. Aktualisier ich jetzt die Adapterliste wird aber kein Adapter zum aktualisieren angezeigt.

      Also passt dein Datenpunkt wohl noch nicht richtig oder irre ich mich?..~~

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

        @flacus:

        mal auf ein Codebeispiel verweisen ? Wie ich da ne E-Mail verschicke `

        on('admin.0.info.updatesList', function(dp) {
           sendTo("email", {
              subject: "Adapter-Updates",
              text:   dp.state.val
           });
        });
        
        1 Reply Last reply Reply Quote 0
        • Dutchman
          Dutchman Developer Most Active Administrators last edited by

          @4-Real:

          Heisst die 15 jetzt, du hast 15 Updates, die du noch machen musst?! :shock:

          Habe aus Jux auch gerade mal geschaut und bei mir steht 1. Aktualisier ich jetzt die Adapterliste wird aber kein Adapter zum aktualisieren angezeigt.

          Also passt dein Datenpunkt wohl noch nicht richtig oder irre ich mich?.. `

          Doch der past schon nur nachdem man einen Adapter geupdated hat muss man erneut

           iobroker update 
          

          Ausführen damit der Zähler sich wieder resetet.

          Ja 15… Ist mein Test System für ein paar Sachen was seit 2 Monaten nicht gepflegt ist (schäm)


          Send from mobile device

          Das schöne ios hat Auto Korrektur zum k****

          Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

          1 Reply Last reply Reply Quote 0
          • F
            flacus last edited by

            Genau auf das Codebeispiel bekomme ich folgende Fehlermeldung und keine Mail

            Error {"code":"ESTREAM","command":"API"}

            aller Anfang ist schwer

            1 Reply Last reply Reply Quote 0
            • U
              Ulfhednir last edited by

              Ich möchte das Thema erneut aufgreifen, da ich mir ebenfalls eine Benachrichtigung wünsche. Zusätzlich würde ich allerdings gerne das Update automatisch durchführen.
              Mein Skript ist bisher nicht von Erfolg gekrönt. Ich hatte bereits eine Benachrichtigung erhalten, welche allerdings leer (Adapter wurden nicht genannt) war. Zum Zeitpunkt des Versands ist die Liste zu updatenden Adapter leer - daher dachte ich, dass es sinnig wäre das Versenden verzögern. Funktioniert nur leider nicht.

              Bild Text

              Wenn die Benachrichtigung funktioniert, würde ich gerne die Modulupdates durchführen.
              Gemäß https://forum.iobroker.net/topic/19830/alle-adapter-gleich-aktualisieren/13
              interpretiere ich, dass iobroker upgrade hier funktionieren sollte. EXEC ist im JavaScript-Adapter aktiviert.

              Es wäre schön, wenn hier jemand weiterhelfen könnte.

              L paul53 2 Replies Last reply Reply Quote 0
              • L
                Leviathan09 @Ulfhednir last edited by Leviathan09

                @Ulfhednir Also um das update durhczuführen rufe ich bei mir ein script auf das unter /opt/iobroker liegt und "adapter_update.sh" heißt:

                cd /opt/iobroker
                sleep 5
                
                iobroker upgrade
                sleep 5
                

                Mein Skript für die Benachrichtigung sieht so aus:

                var timeout,Letzter_Absender,Letzter_Text,Letzter_Text_klein;
                
                //Wenn ein Update für einen Adapter vorhanden schicke Info per Telegram
                on({id: 'admin.0.info.newUpdates', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  if (getState("admin.0.info.newUpdates").val == true) {
                    sendTo("telegram", "send", {
                        text: (['Es gibt Updates für: ',getState("admin.0.info.updatesNumber").val,' Adapter'].join(''))
                    });
                    timeout = setTimeout(function () {
                      sendTo("telegram", "send", {
                          text: ('Adapter: ' + String(getState("admin.0.info.updatesList").val))
                      });
                      console.log('+++' + ' Update für ' + getState("admin.0.info.updatesList").val);
                      //Auswahlmenü Telegram ob Adapter aktualisiert werden soll
                      sendTo('telegram',
                                    { text: 'Bitte wähle ein Button',
                                    reply_markup: {
                                        keyboard: [
                                            ['Aktualisieren', 'Nichts ändern'],
                                            ],
                                        resize_keyboard: true,
                                    one_time_keyboard: true }
                                    });
                    }, 100);
                  }
                });
                
                
                //Verwertung Telegram Antwort
                
                on({id: 'telegram.0.communicate.request', change: "any"}, function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    Letzter_Absender = (obj.state ? obj.state.val : "").slice(1, ((obj.state ? obj.state.val : "").indexOf(']') + 1) - 1);
                    Letzter_Text = subsequenceFromStartLast((obj.state ? obj.state.val : ""), (((obj.state ? obj.state.val : "").indexOf(']') + 1 + 1) - 1));
                    Letzter_Text_klein = subsequenceFromStartLast((obj.state ? obj.state.val : ""), (((obj.state ? obj.state.val : "").indexOf(']') + 1 + 1) - 1)).toLowerCase();
                  
                    if (Letzter_Absender == 'Tobi' && (Letzter_Text == 'Aktualisieren')) {
                        setState("javascript.0.Adapter_Update", true);
                        //Funktionsaufruf
                        Start_Update_Adapter();
                    } else if (Letzter_Absender == 'Tobi' && (Letzter_Text == 'Nichts ändern')) {
                        sendTo("telegram", "send", {
                            text: ('Es wird keine aktualsisierung durchgeführt')
                        });
                        }
                });
                
                
                //Adapter update durchführen
                function Start_Update_Adapter(){
                    on({id: 'javascript.0.Adapter_Update', val: true}, function (obj) {
                        exec("/opt/iobroker/adapter_update.sh")
                        setState("javascript.0.Adapter_Update", false, true);
                    });
                }
                
                function subsequenceFromStartLast(sequence, at1) {
                  var start = at1;
                  var end = sequence.length - 1 + 1;
                  return sequence.slice(start, end);
                }
                

                Ich selbst prüfe das Object "NewUpdates" auf den Wert "true"
                Leider ist es bei mir kein Blockly, sehe aber so spontan keinen Fehler.
                Vllt fällt einem anderen da noch was auf.

                F 1 Reply Last reply Reply Quote 2
                • paul53
                  paul53 @Ulfhednir last edited by

                  @Ulfhednir sagte:

                  das Versenden verzögern. Funktioniert nur leider nicht.

                  Kann auch nicht, da die Verzögerung sofort gestoppt wird, also die Verzögerungszeit nie abläuft.

                  1 Reply Last reply Reply Quote 0
                  • F
                    fir3drag0n @Leviathan09 last edited by

                    @leviathan09

                    hi, ich hab das skript benutzt. Ich erhalte auch eine Nachricht und kann auf "aktualisieren" klicken, allerdings passiert dann nichts - woran kann das liegen?

                    Zudem, wo füge ich die Empfänger an, die die Nachricht per Telegram erhalten sollen?

                    Danke vorab!

                    1 Reply Last reply Reply Quote 0
                    • S
                      Schlumpf last edited by

                      Hallo an alle,

                      hab mir hierzu auch ein kleines Blockly-Skript gebastelt.

                      Ich frage hierbei auch den Wert zu "newUpdates" unter Admin/Info ab und lasse mir per Nachricht die Anzahl und die Namen der Adapter schicken. Funktioniert "eigentlich" auch ganz gut, nur funktioniert es nur dann, wenn ich im Admin selbst (Fernzugriff oder direkt am Netzwerk) den Punkt "Info" anklicke bzw. aktuallisiere.

                      Das macht aber irgendwie keinen Sinn, wenn ich eh manuell anwählen muss, brauche ich keine Benachrichtigung die genau in dem Moment gesendet wird wenn ich es eh auf meinem Bildschirm sehe.

                      Ist das bei euch auch so? Gibt es da eine Lösung?

                      Gruß
                      Jan

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fir3drag0n @Schlumpf last edited by

                        @schlumpf bist du hier weiterkommen? Magst du dein Skript mal teilen!

                        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

                        880
                        Online

                        31.9k
                        Users

                        80.3k
                        Topics

                        1.3m
                        Posts

                        9
                        15
                        2024
                        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