Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Bei Regen eine Nachricht per Telegram

    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

    [gelöst] Bei Regen eine Nachricht per Telegram

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hagst @paul53 last edited by

      @paul53 sagte in Bei Regen eine Nachricht per Telegram:

      Versuch es mal so:

      So, ich habe es nochmal getestet und die 10 Minuten auf 2 Minuten runter gesetzt.

      Folgendes passiert, wenn Regen erkannt wird, bekomme ich eine Nachricht "Es regnet" und der Sensor wird ausgeschaltet. 2 Minuten später schaltet der Sensor sich wieder ein, stellt fest, dass es noch immer regnet, schickt mir wieder eine Nachricht "Es regnet" und schaltet dann den Sensor wieder aus. Wenn der Wert vom Regensensor über 900 liegt, bleibt der Sensor eingeschaltet und ich bekomme keine weitere Nachricht, wie es sein sollte).
      jghjhggjhgjhgjhgjhg.png

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

        @hagst
        Ist dies nicht die gewünschte Funktion?

        H 1 Reply Last reply Reply Quote 0
        • H
          hagst @paul53 last edited by

          @paul53 sagte in Bei Regen eine Nachricht per Telegram:

          Ist dies nicht die gewünschte Funktion?

          Nein, ich hätte ganz gerne nur einmalig eine Nachricht, wenn es regnet und eine weitere, wenn es nicht mehr regnet, mit dem Inhalt, dass es nicht mehr regnet. Wenn alle paar Minuten Telegram hier bimmelt, werde ich wahnsinnig.
          Genauso wahnsinnig werde ich, weil ich alle paar Minuten rausrenne um den Regensensor nass zu machen 🙂

          paul53 Homoran 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @hagst last edited by paul53

            @hagst sagte: nur einmalig eine Nachricht, wenn es regnet und eine weitere, wenn es nicht mehr regnet

            Dann ändere den unteren Teil:

            var lastMsg = '';
            
            on(idAnalog, function(dp) {
                if(freigabe) {
                    freigabe = false;
                    let msg = 'Es regnet nicht mehr';
                    if(dp.state.val <= 900) {             // Sensordaten: Kleiner als 900 = Regen und sofort wieder aus
                        setState(idSwitch, false);        // Wenn Regen wird Sensor hier ausgeschaltet
                        msg = 'Es regnet';
                    }
                    if(msg != lastMsg) {
                        lastMsg = msg;
                        sendTo("telegram", "send", {         // Nachricht per Telegram
                            text: msg 
                        });
                    }
                }
            });
            
            H 1 Reply Last reply Reply Quote 0
            • H
              hagst @paul53 last edited by

              @paul53 sagte in Bei Regen eine Nachricht per Telegram:

              Dann ändere den unteren Teil:

              const idSwitch = 'sonoff.0.Radar.POWER1';    // Schalter ein und aus vom Regensensor
              const idAnalog = 'sonoff.0.Radar.ANALOG_A0'; // Regensensor  
               
              var freigabe = false;
               
              schedule('*/2 * * * *', function() {         // alle 10 Minuten läuft das Script und schaut nach Sensordaten
                  if(!getState(idSwitch).val) {            // Abfragen on Schalter vom Regensensor ein oder aus ist
                      setState(idSwitch, true);            // Regensensor einschalten
                      setTimeout(function() {
                          freigabe = true;
                      }, 30000);                           // Wartezeit bis Sensor (A0) Daten liefert 30 s
                  }
              });
              
              var lastMsg = '';
               
              on(idAnalog, function(dp) {
                  if(freigabe) {
                      freigabe = false;
                      let msg = 'Es regnet nicht mehr';
                      if(dp.state.val <= 900) {             // Sensordaten: Kleiner als 900 = Regen und sofort wieder aus
                          setState(idSwitch, false);        // Wenn Regen wird Sensor hier ausgeschaltet
                          msg = 'Es regnet';
                      }
                      if(msg != lastMsg) {
                          lastMsg = msg;
                          sendTo("telegram", "send", {       // Nachricht per Telegram
                              text: msg 
                          });
                      }
                  }
              });
              

              So sieht es jetzt komplett aus, allerdings schaltet weder der Sensor bei Regen aus, noch bekomme ich eine Nachricht per Telegram 😞

              paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @hagst last edited by Homoran

                @hagst sagte in Bei Regen eine Nachricht per Telegram:

                @paul53 sagte in Bei Regen eine Nachricht per Telegram:

                Ist dies nicht die gewünschte Funktion?

                Nein, ich hätte ganz gerne nur einmalig eine Nachricht, wenn es regnet und eine weitere, wenn es nicht mehr regnet, mit dem Inhalt, dass es nicht mehr regnet. Wenn alle paar Minuten Telegram hier bimmelt, werde ich wahnsinnig.
                Genauso wahnsinnig werde ich, weil ich alle paar Minuten rausrenne um den Regensensor nass zu machen 🙂

                Formuliere doch bitte erst einmal für dich was du wirklich willst.
                Dabei nicht irgendetwas als bekannt voraussetzen.

                Dann hinterfragst du das, ob es wirklich ist was du erwartest.

                was ich nicht verstehe ist warum du den Sensor überhaupt abschalten musst. Ein Regensensor, der keinen Regen aushält?

                H 1 Reply Last reply Reply Quote 0
                • H
                  hagst @Homoran last edited by

                  @homoran sagte in Bei Regen eine Nachricht per Telegram:

                  Formuliere doch bitte erst einmal für dich was du wirklich willst.
                  Dabei nicht irgendetwas als bekannt voraussetzen.

                  Ich schrieb: "Jetzt möchte ich, dass Telegram mir eine Nachricht schickt, wenn es regnet und wenn der Regenwert wieder >900 ist, möchte ich eine Nachricht bekommen, dass es nicht mehr regnet."
                  Der Regenwert ist in dem Code meines OP, damit man sieht was ich meine.

                  Ein Regensensor, der keinen Regen aushält?

                  Jepp genau so sieht es aus. Der Sensor verträgt auf Dauer kein Wasser und durch das Ausschalten verlängert sich die Lebenszeit des Sensors.

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

                    @hagst sagte: schaltet weder der Sensor bei Regen aus, noch bekomme ich eine Nachricht per Telegram

                    Bau mal Log-Ausgaben ein, um zu sehen, was wann passiert.

                    EDIT: Ergänze in Zeile 12:

                        } else freigabe = true;
                    
                    H 1 Reply Last reply Reply Quote 0
                    • H
                      hagst @paul53 last edited by

                      @paul53 sagte in Bei Regen eine Nachricht per Telegram:

                      Bau mal Log-Ausgaben ein, um zu sehen, was wann passiert.

                      Meinst du sowas? Ich habe (mal wieder) Wasser auf den Sensor geschüttet, danach kam diese Ausgabe.

                      javascript.0 (452693) Start javascript script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten
                      12:57:51.233	info	javascript.0 (452693) script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten: schedule(cron=*/2 * * * *)
                      12:57:51.233	info	javascript.0 (452693) script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten: subscribe: {"pattern":{"id":"sonoff.0.Radar.ANALOG_A0","change":"ne","q":0},"name":"script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten"}
                      12:57:51.233	info	javascript.0 (452693) script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten: registered 1 subscription and 1 schedule
                      12:58:00.004	info	javascript.0 (452693) script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten: getState(id=sonoff.0.Radar.POWER1, timerId=undefined) => {"val":true,"ack":true,"ts":1660820274432,"q":0,"from":"system.adapter.sonoff.0","user":"system.user.admin","lc":1660813920006}
                      13:00:00.012	info	javascript.0 (452693) script.js.Regensensor_bei_Regen_aus-_und_einschalten.Regensensor_bei_Regen_ausschalten: getState(id=sonoff.0.Radar.POWER1, timerId=undefined) => {"val":true,"ack":true,"ts":1660820394450,"q":0,"from":"system.adapter.sonoff.0","user":"system.user.admin","lc":1660813920006}
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @hagst last edited by

                        @hagst
                        Ändere Zeile 12:

                        const idSwitch = 'sonoff.0.Radar.POWER1';    // Schalter ein und aus vom Regensensor
                        const idAnalog = 'sonoff.0.Radar.ANALOG_A0'; // Regensensor  
                         
                        var freigabe = false;
                         
                        schedule('*/2 * * * *', function() {         // alle 10 Minuten läuft das Script und schaut nach Sensordaten
                            if(!getState(idSwitch).val) {            // Abfragen on Schalter vom Regensensor ein oder aus ist
                                setState(idSwitch, true);            // Regensensor einschalten
                                setTimeout(function() {
                                    freigabe = true;
                                }, 30000);                           // Wartezeit bis Sensor (A0) Daten liefert 30 s
                            } else freigabe = true;
                        });
                         
                        var lastMsg = '';
                         
                        on(idAnalog, function(dp) {
                            if(freigabe) {
                                freigabe = false;
                                let msg = 'Es regnet nicht mehr';
                                if(dp.state.val <= 900) {             // Sensordaten: Kleiner als 900 = Regen und sofort wieder aus
                                    setState(idSwitch, false);        // Wenn Regen wird Sensor hier ausgeschaltet
                                    msg = 'Es regnet';
                                }
                                if(msg != lastMsg) {
                                    lastMsg = msg;
                                    sendTo("telegram", "send", {       // Nachricht per Telegram
                                        text: msg 
                                    });
                                }
                            }
                        });
                        
                        H 1 Reply Last reply Reply Quote 0
                        • H
                          hagst @paul53 last edited by hagst

                          @paul53 sagte in Bei Regen eine Nachricht per Telegram:

                          Ändere Zeile 12:

                          Du bist der Hammer Paul, es klappt wie gewünscht! Genau so wollte ich es haben! Einfach klasse, vielen vielen Dank Paul!
                          regegegegegege.png

                          Wenn es jetzt regnet und der Regensensor einen Wert von < 900 ausgibt, wird er ausgeschaltet und ich bekomme eine Nachricht bei Telegram mit dem Hinweis, dass es regnet.
                          Wenn es aufgehört hat zu regnen, schaltet sich der Regensensor wieder dauerhaft ein und ich bekomme eine Nachricht, dass es nicht mehr regnet.

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

                            @hagst sagte: es klappt wie gewünscht!

                            Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            727
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            3
                            15
                            427
                            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