Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Flow für Auslösung auf Änderung, nicht auf Aktualisierung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Flow für Auslösung auf Änderung, nicht auf Aktualisierung

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

      Hallo zusammen,

      Leider habe ich was JS Programmierung angeht nicht viel Ahnung (habe bis jetzt nur unter Bascom / Basic IC's Programmiert), deswegen bitte ich um Hilfe aus der Runde 🙂

      folgendes Beispiel Szenario habe ich:

      Ich möchte die Außentemperatur auslesen und bei Unterschreitung von +4°c eine Benachrichtigung (Frostwarnung) via Pushover bekommen.

      Soweit habe ich das auch umsetzen können.

      638_node-red_auswertung.jpg

      Mein Problem ist folgendes:

      Alle x Minuten wird der Status durch ioBroker Aktualisiert.

      Deswegen bekomme ich auch alle x Minuten eine Benachrichtigung via Pushover.

      Beholfen habe ich mir bis jetzt mit dem http://flows.nodered.org/flow/9410e4cebcc4b68fae73.

      Dort habe ich nur die Zeit eingegeben wie lange er alle eingehenden Meldungen ignorieren soll, toll ist diese Umsetzung mangels Kenntnisse leider nicht 😞

      Was ich umsetzen möchte ist, dass etwas nur bei Änderung (True auf False etc.) ausgelöst wird, nicht auf Aktualisierung.

      1 Reply Last reply Reply Quote 0
      • H
        HKF8770 last edited by

        Hallo Nippy,

        Ich bin auch Änfänger sehe es aber so (nicht verbindlich 😄 da ebenfalls Anfänger)

        ich habe das über eine Java Skript gelöst. Aber in Function bei Node Red schreibst du ja auch ein Java Skript. Du kann ja mein Skript aber Basisgerüst nehmen und das in der Funktion verwenden.

        Sonst poste doch bitte den Flow mit Menu (3 horizontale Balken oben rechts) / Export / Clipboard. Dann kan man sich den runterkopieren und berichtigen und dir wieder zurücksenden.

        createState('javascript.0.Temperatur.Temperatur_Ostseite');
        createState('javascript.0.Temperatur.Temperatur_Ostseite_Frost');
        
        function Temp_Ostseite(obj) {          // oder ist das hier dann (obj)anstatt(level)? 
            var Temperatur = getState("hm-rpc.0.KEQ0121727.1.TEMPERATURE").val;
            if (Temperatur > 0) {
                setState('javascript.0.Temperatur.Temperatur_Ostseite', Temperatur); 
                setState('javascript.0.Temperatur.Temperatur_Ostseite_Frost', true); 
                log("---> Ostseite hat es keinen Frost bei: " + Temperatur +" °C", "info");
            } else { 
                setState('javascript.0.Temperatur.Temperatur_Ostseite', Temperatur); 
                setState('javascript.0.Temperatur.Temperatur_Ostseite_Frost', false); 
                log("---> Ostseite hat es Frost bei: " + Temperatur +" °C", "info");   
                sendTo("email", {
                 from:    "test@test.com",
                 to:      "friedhelm.kuehnle@hoerauf.com",
                 subject: "Eisgefahr",
                 text:    ("Gefahr von Eis bei " + Temperatur +" °C")
        });
        
            }    
        }
        on("hm-rpc.0.KEQ0121727.1.TEMPERATURE"/*Aussensensor Ost.TEMPERATURE*/, function() {             //oder!! soll entweder ausgelöst werden beihm-rpc.0.KEQ0040908.1.TEMPERATURE
           log("===>Ausgelöst durch Temperaturänderung!");
           Temp_Ostseite();
        });
        schedule("*/10 * * * *", function () {                                                    //oder!! soll entweder ausgelöst werden alle 10 Minuten
           log("===>Will be triggered every 10 minutes!"); 
           Temp_Ostseite();
        });
        
        1 Reply Last reply Reply Quote 0
        • N
          Nippy last edited by

          Hallo Freddy,

          vielen Dank für deinen Codeschnipsel.

          Ich werde die nächsten Tage versuchen deinen Code umzubasteln.

          Halte Dich auf dem laufenden..

          Danke nochmals, stehe jetzt wenigstens nicht mehr ganz im Dunkeln 🙂

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

            Hey All,

            ich schaue mir auch gerade die Skriptingmöglichkeiten an.

            Ich komme aktuell von ScriptGUI von ccu.io und würde jetzt bei node-red de ganzen Trigger-Möglichkeiten sehr vermissen … und "Auslösen auf Änderung" ist da der natürlich interessanteste ... EIgentlich sollte man das als Feature in die "iobroker"-Input-Node einbauen ... Oder ?!

            1 Reply Last reply Reply Quote 0
            • N
              nobody last edited by

              Hi,

              Die einfachste Lösung ist die Verwendung des rbe Nodes.

              Diesen kann man so konfigurieren, dass er nur dann auslöst, wenn der Wert sich geändert hat oder eine Mindestabweichung hat.

              http://flows.nodered.org/node/node-red-node-rbe

              Wenn man auf eine Mindestabweichung testen will muss msg.payload aber zuerst von string in einen numerischen Wert konvertiert werden, da der ioBroker in Node immer strings liefert (z.b. in einem Function Node).

              Gruß

              Markus

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

                cool … das würde schonmal viel helfen. Danke!!

                Ich teste das mal heute Abend ...

                Ich hatte vorhin im Github vom node-red Adapter mal ein Issue aufgemacht das als "Standardfeature" vllt so einzubauen das es den Triggermöglichkeiten von CCUio entspricht - also auch größer, kleiner, größer-gleich, kleiner-gleich, gleich, ungleich ... Das wäre halt echt super weil man sich dann Nodes im Prozess spart.

                Oder kennst Du vllt andere Nodes die das könnten?

                Gibts eigentlich "Typ-Konvertier"-Nodes? Hatte mal gesucht aber nix gefunden ...

                Wäre auch interessant für so einige "true"/"false" State Werte ...

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

                  @apollon77:

                  Gibts eigentlich "Typ-Konvertier"-Nodes? Hatte mal gesucht aber nix gefunden …

                  Wäre auch interessant für so einige "true"/"false" State Werte ... `
                  Du muss nicht die Typen zu konvertieren, die sind alle "string" in node-red

                  1 Reply Last reply Reply Quote 0
                  • N
                    Nippy last edited by

                    Super!

                    ich war schon langsam am verzweifeln..

                    Danke nobody 8-)

                    Das node-rbe war genau das, was ich gesucht habe.

                    Vielen Dank nochmals 🙂

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

                      @Bluefox:

                      Du muss nicht die Typen zu konvertieren, die sind alle "string" in node-red `

                      Das dachte ich mir. Die Idee war eher die in Zahlen konvertieren zu können um mit diesen Datentypen dann weiterarbeiten zu können … oder ist das dann nur sinnvoll in eigenem Functions möglich und das Ergebnis ist dann wieder ein String?

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

                        Ich hab grad das folgende erfahren: In node-red 0.13 wird die Switch-Node wohl auch Vergleiche auf Basis des letzten Wertes erlauben

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        1.1k
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        5
                        10
                        5967
                        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