Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Frage] Sende Email bei Wert Unterschreitung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    927

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Frage] Sende Email bei Wert Unterschreitung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
17 Beiträge 6 Kommentatoren 1.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • htreckslerH Offline
    htreckslerH Offline
    htrecksler
    Forum Testing
    schrieb am zuletzt editiert von
    #2

    das wird auch funktionieren.

    Allerdings bräuchtest du dafür ein Script welches auf eine Änderung des Datenpunktes reagiert und dann eine Email versendet.

    Und, bei dieser Variante müsste man dann noch bedenken und berücksichtigen, dass die Mail nur einmal versendet wird und nicht jedesmal wenn sich die Temperatur unterhalb des Schwellwertes ändert.

    Gruss Hermann

    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

    1 Antwort Letzte Antwort
    0
    • BBTownB Offline
      BBTownB Offline
      BBTown
      schrieb am zuletzt editiert von
      #3

      @TOBO:

      ich hätte gerne, dass der Email Adapter mir eine Mail sendet, wenn die Temperatur von einem Homematic Thermostat <15°C beträgt.

      hm-rpc.0.MEQ1571251.1.TEMPERATURE < 15 –> Sende eine Mail ` das abzubilden ist gar kein Problem

      Aber zeige uns doch zunächst einmal einen Screenshot was Du bisher versucht hast?!

      • blockly?

      • javascript?

      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        tempestas
        schrieb am zuletzt editiert von
        #4

        kann bestätigen, das geht!

        <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          mlapp
          schrieb am zuletzt editiert von
          #5

          @BBTown:

          Aber zeige uns doch zunächst einmal einen Screenshot was Du bisher versucht hast?! `

          Ist ja schon ein wenig gemein :-)

          1 Antwort Letzte Antwort
          0
          • htreckslerH Offline
            htreckslerH Offline
            htrecksler
            Forum Testing
            schrieb am zuletzt editiert von
            #6

            @mlapp:

            Ist ja schon ein wenig gemein :-) `

            Ja, allerdings ist der Eröffnungsthread ja auch etwas, sagen wir mal… dreist. :D

            Gruss Hermann

            ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

            1 Antwort Letzte Antwort
            0
            • BBTownB Offline
              BBTownB Offline
              BBTown
              schrieb am zuletzt editiert von
              #7

              @mlapp:

              @BBTown:

              Aber zeige uns doch zunächst einmal einen Screenshot was Du bisher versucht hast?! Ist ja schon ein wenig gemein :-) wir unterstützen im Forum allesamt immer sehr gerne, dabei geht es ja im Grunde um Hilfe zur Selbsthilfe.

              Daher ist ja die Frage relevant was denn schon für Ideen oder Basis-Know-How vorhanden sind.

              Und Du hast zugleich recht … für ein "Kann das mal jemand für mich machen, ich habe keine Lust mich damit zu beschäftigen" wäre mir meine Zeit zu schade,

              jedoch unterstelle ich das hier gar nicht ;)

              [Edit] im übrigen könnte ich wenn, nur in Blockly unterstützen 8-)

              ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                TOBO
                schrieb am zuletzt editiert von
                #8

                Lieber Herr BBTown,

                wie Du sehen kannst, bin ich nicht ganz neu hier und habe beide Threads eben schnell mal im vorbeigehen geschrieben.

                Meine Empfehlung. Behalte Deine Belehrungen für Dich und wenn Du keine Lust / Zeit hast, antworte einfach nicht auf einen Post

                Bis dahin noch einen schönen Tag.

                Gruß.

                ToBo

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  pix
                  schrieb am zuletzt editiert von
                  #9

                  Hoho,

                  locker bleiben und PN für private Konversation nutzen.

                  Ich schlage diesen Weg zur Lösung (in Javascript, Blockly kann ich nicht) vor:

                  Objekt/Variable Alarm anlegen, welche bei Unterschreitung des Grenzwertes auf true gesetzt wird. Bei Überschreitung auf false. Zur Entprellung (falls Temperatur um den Grenzwert pendelt), sollten die Grenzwerte für Auslösen und Nichtauslösen etwas auseinanderliegen (Delta).

                  Danach wird auf Variable reagiert.

                  const idTemp = "hm-rpc.0.MEQ1571251.1.TEMPERATURE";
                  const grenzwert = 15;
                  const delta = 2;
                  
                  const idTempAlarm = "javascript." + instance + ".Alarm.Temperatur";
                  createState(idTempAlarm, false, false, {
                      name: "Temperaturalarm",
                      desc: "Ist ein Grenzwert unterschritten, wird Wert gesetzt",
                      role: "indicator",
                      type: "boolean"
                  });
                  
                  // Tempüberwacchung, kann man auch in eine Funktion packen, hier aber zur Veranschaulichung in jeweils eine für Überschreitung und Unterschreitung
                  on(
                      {id: idTemp,
                      valLt: grenzwert
                  }, function (data) {
                      setState(idTempAlarm, true);
                  });
                  
                  on(
                      {id: idTemp,
                      valGt: grenzwert+delta // größer als Grenzwert +Delta zB 15 + 2
                  }, function (data) {
                      setState(idTempAlarm, false);
                  });
                  
                  on(idTemp, function (obj) {
                      if (obj.state.val) {
                          // mach was bei Alarm
                  
                      } else log("Alarmzustand Temperaturunterschreitung aufgehoben"); // einmaliger Logeintrag
                  });
                  
                  

                  Achtung: Hier im Forum-Editor geschrieben und nicht getestet. Sollte aber gehen. Jetzt habe ichs doch komplett vorgekaut, naja, das hält fit :-D

                  Gruß

                  Pix

                  ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    TOBO
                    schrieb am zuletzt editiert von
                    #10

                    Muss mir Dein Script mal ansehen.

                    ich habe dies hier, aber es geht nicht. Wir immer nur die Else Bedingung ausgeführt.

                    //var idTemp = "hm-rpc.0.MEQ1571251.1.TEMPERATURE";
                    var idTemp = "s7.0.DBs.DB1.Dimmer_Ailin"
                    var idFlag = "javascript.0.Flag_Mail_TempWerkstatt";
                    var msg = "Temperatur <= 14 Grad";
                    
                    on(idTemp, function(dp) { 
                    
                       if ((getState(idFlag) === false) && (getState(idTemp).val) < 18)
                    {
                      setState(idFlag, true); 
                      adapter.sendTo('email', msg);
                      log(getState(idTemp).val);
                    
                      } else {
                      setState(idFlag, false);
                      log("else");
                      log(getState(idTemp).val);
                        }
                    });
                    
                    // Script start
                    setState(idFlag, false); 
                    
                    

                    Ich denke mal es liegt hier dran. Aber keine Ahnung warum.

                    if ((getState(idFlag) === false) && (getState(idTemp).val) < 18)
                    
                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #11

                      Ich glaube, dein Skript ist nicht ganz komplett:

                      //var idTemp = "hm-rpc.0.MEQ1571251.1.TEMPERATURE";
                      var idTemp = "s7.0.DBs.DB1.Dimmer_Ailin"         // Semikolon am Ende fehlt
                      var idFlag = "javascript.0.Flag_Mail_TempWerkstatt";
                      var msg = "Temperatur <= 14 Grad";
                      
                      on(idTemp, function(dp) { 
                      
                         if ((getState(idFlag) === false) && (getState(idTemp).val) < 18)     // getState(idFlag).val --> .val fehlt, würde es ganz umschreiben in if (!getState(idFlag).val && dp.state.val < 18)
                      {
                        setState(idFlag, true); 
                        adapter.sendTo('email', msg);
                        log(getState(idTemp).val); // idTemp wird doch hier überwacht, daher reicht log(dp.state.val);
                      
                        } else {
                        setState(idFlag, false);
                        log("else");
                        log(getState(idTemp).val); // idTemp wird doch hier überwacht, daher reicht log(dp.state.val);
                          }
                      });
                      
                      // Script start
                      setState(idFlag, false); 
                      
                      

                      Gruß

                      Pix

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        TOBO
                        schrieb am zuletzt editiert von
                        #12

                        OK, die Abfrage geht nun, aber eine Mail wird nicht gesendet.

                        Es kommt im Log der Fehler "Error in callback: ReferenceError: adapter is not defined"

                        PS: Die Log's lösche ich eh wieder, wenn das Script läuft. Sind nur zum testen.

                        Gruss.

                        ToBo

                        Habs gefunden.

                        sendTo('email.0', msg);
                        
                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          TOBO
                          schrieb am zuletzt editiert von
                          #13

                          Muss leider noch mal nerven.

                          Ich hätte gern in der Mail msg die aktuelle Temperatur.

                          setState(msg, "Temperatur Werkstatt =" & getState(idTemp).val & " °C");
                          
                          

                          Das ist wohl nicht so ganz richtig :-)

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            pix
                            schrieb am zuletzt editiert von
                            #14

                            Hallo,

                            msg kannst du nicht mit setState befüllen, da es kein Objekt ist, sondern nur eine lokale Variable.

                            Ersetz mal oben Zeile 4 in

                            var msg = "Temperatur Werkstatt = ";
                            

                            Dazu verwendest dann unten statt

                            setState(msg, "Temperatur Werkstatt =" & getState(idTemp).val & " °C");
                            

                            lieber

                            msg = msg + getState(idTemp).val + "°C";
                            

                            oder

                            msg = msg + dp.state.val + "°C";
                            

                            Strings werden nicht mit dem Ampersand verbunden, sondern mit Plus (+ statt &).

                            Gruß

                            Pix

                            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                            1 Antwort Letzte Antwort
                            0
                            • P Offline
                              P Offline
                              pix
                              schrieb am zuletzt editiert von
                              #15

                              @TOBO:

                              Ich hätte gern in der Mail msg die aktuelle Temperatur. `

                              Dir ist klar, dass das Senden der Mail ja nur beim Unterschreiten des Grenzwertes (hier 14°C) passiert. Das heißt, die Temperatur ist ziemlich wahrscheinlich bei 13,xxx Grad, wenn es keinen Temperatursturz gab.

                              Gruß

                              Pix

                              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                              1 Antwort Letzte Antwort
                              0
                              • T Offline
                                T Offline
                                TOBO
                                schrieb am zuletzt editiert von
                                #16

                                @pix:

                                Dir ist klar, dass das Senden der Mail ja nur beim Unterschreiten des Grenzwertes (hier 14°C) passiert. Das heißt, die Temperatur ist ziemlich wahrscheinlich bei 13,xxx Grad, wenn es keinen Temperatursturz gab. `

                                Da hast Du wohl recht und es macht wenig Sinn ;-)

                                Nun weiss ich aber wie man das machen könnte und das kommt in mein schlaues Codeschnipselbuch.

                                Dankeschön.

                                1 Antwort Letzte Antwort
                                0
                                • T Offline
                                  T Offline
                                  TOBO
                                  schrieb am zuletzt editiert von
                                  #17

                                  Habe das noch mal geändert. In der ersten Version habe ich bei jeder zweiten Temp Änderung eine Mail bekommen,

                                  weil das Flag dann wieder durch die Else Bedingung auf false gesetzt wurde.

                                  Jetzt bekomme ich eine Mail, wenn die Temperatur <=14 °C ist und wenn sie wieder über 14 °C gestiegen ist.

                                  var idTemp = "hm-rpc.0.MEQ1571251.1.TEMPERATURE";
                                  // var idTemp = "s7.0.DBs.DB1.Dimmer_Ailin"; Zum Testen
                                  var idFlag = "javascript.0.Flag_Mail_TempWerkstatt";
                                  var msg ="Temperatur Werkstatt <14°C"
                                  
                                  on(idTemp, function(dp) { 
                                  
                                     if ((getState(idFlag).val === false) && (getState(idTemp).val) <= 14)
                                  {
                                    setState(idFlag, true); 
                                    msg = " Temperatur Werkstatt <= 14 °C"
                                      sendTo('email.0', msg);
                                      }
                                  
                                     if ((getState(idFlag).val === true) && (getState(idTemp).val) > 14)
                                  {
                                    setState(idFlag, false); 
                                     msg = " Temperatur Werkstatt = 14 °C"
                                      sendTo('email.0', msg);
                                  
                                    }      
                                  });
                                  
                                  // Script start
                                  setState(idFlag, false); 
                                  
                                  
                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  517

                                  Online

                                  32.6k

                                  Benutzer

                                  82.2k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe