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. JavaScript
  5. Javascript zur Temperaturüberwachung [gelöst]

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Javascript zur Temperaturüberwachung [gelöst]

Geplant Angeheftet Gesperrt Verschoben JavaScript
18 Beiträge 3 Kommentatoren 904 Aufrufe 1 Watching
  • Ä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.
  • T Offline
    T Offline
    tomily
    schrieb am zuletzt editiert von
    #3

    Danke für die schnelle Rückmeldung.

    Sehr cool. Das scheint schonmal zu funktionieren. Mails kommen nun wann sie sollen :-) Werde das mal weiter beobachten.

    Jetzt würde mich noch brennend interessieren, wie ich das Ganze sinnvoller weiße mit mehreren Werten machen kann, die auf gleiche Weiße überprüft werden sollen.

    Viele Grüße

    paul53P 1 Antwort Letzte Antwort
    0
    • T tomily

      Danke für die schnelle Rückmeldung.

      Sehr cool. Das scheint schonmal zu funktionieren. Mails kommen nun wann sie sollen :-) Werde das mal weiter beobachten.

      Jetzt würde mich noch brennend interessieren, wie ich das Ganze sinnvoller weiße mit mehreren Werten machen kann, die auf gleiche Weiße überprüft werden sollen.

      Viele Grüße

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @tomily sagte:

      mit mehreren Werten machen kann, die auf gleiche Weiße überprüft werden sollen.

      Mit dem gleichen Grenzwert ?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        tomily
        schrieb am zuletzt editiert von
        #5

        Ja, das wäre vollkommen ausreichend.

        Am elegantesten wäre es natürlich, wenn man oben die Datenpunkte in Variabeln schreiben könnte, die überwacht werden sollen. Ich habe aber keine Ahnung, wie ich diese dann weiter verarbeiten kann/soll.

        Sorry für die plumpe Fragen, bin wirklich ein Scripting-Anfänger!

        Beispiel:

        var idTemp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
        var idTemp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
        var idTemp3 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
        
        paul53P 1 Antwort Letzte Antwort
        0
        • T tomily

          Ja, das wäre vollkommen ausreichend.

          Am elegantesten wäre es natürlich, wenn man oben die Datenpunkte in Variabeln schreiben könnte, die überwacht werden sollen. Ich habe aber keine Ahnung, wie ich diese dann weiter verarbeiten kann/soll.

          Sorry für die plumpe Fragen, bin wirklich ein Scripting-Anfänger!

          Beispiel:

          var idTemp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
          var idTemp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
          var idTemp3 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #6

          @tomily
          Das geht mit einem Array im on().

          on([idTemp1, idTemp2, idTemp3], function(dp) {
          

          Wenn Du die ID an die Mail übergeben willst, dann verwende anstelle von idTemp dp.id oder den Namen dp.common.name. Den Wert enthält dp.state.val.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tomily
            schrieb am zuletzt editiert von
            #7

            Geil! Danke! Bin begeistert von der schnellen und kompetenten Hilfe.
            Klappt super. Bin trotzdem frech und frage auch noch nach meiner dritten Frage:

            Hast du noch eine Idee, wie ich den Emailinhalt mehrzeilig und mit Betreff gestalten kann?

            Beim ausprobieren ist mir noch folgendes eingefallen:

            Von dp.id kommt nun natürlich "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature" zurück.
            Ich kann das lesen, da ich weiß was es bedeutet. Schöner wäre aber eine Beschriftung. Könnte ich der Variable auch einen Namen mit geben, der dann in die Email übergeben wird?
            Bespiel:

            var temp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
            var temp1-label = "HDD1"
            var temp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
            var temp2-label = "HDD2"
            
            // Beispiel "dp.id.label" .... stimmt natürlich nicht :=()
            msg = "Temperatur (" + dp.id.label + ") über Treshold (" + treshold + " °C)! Aktueller Wert: " + (dp.state.val) + " °C";
            
            
            paul53P AlCalzoneA 2 Antworten Letzte Antwort
            0
            • T tomily

              Geil! Danke! Bin begeistert von der schnellen und kompetenten Hilfe.
              Klappt super. Bin trotzdem frech und frage auch noch nach meiner dritten Frage:

              Hast du noch eine Idee, wie ich den Emailinhalt mehrzeilig und mit Betreff gestalten kann?

              Beim ausprobieren ist mir noch folgendes eingefallen:

              Von dp.id kommt nun natürlich "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature" zurück.
              Ich kann das lesen, da ich weiß was es bedeutet. Schöner wäre aber eine Beschriftung. Könnte ich der Variable auch einen Namen mit geben, der dann in die Email übergeben wird?
              Bespiel:

              var temp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
              var temp1-label = "HDD1"
              var temp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
              var temp2-label = "HDD2"
              
              // Beispiel "dp.id.label" .... stimmt natürlich nicht :=()
              msg = "Temperatur (" + dp.id.label + ") über Treshold (" + treshold + " °C)! Aktueller Wert: " + (dp.state.val) + " °C";
              
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #8

              @tomily sagte:

              mehrzeilig

              Zeilenschaltung macht man gewöhnlich mit "\n".

              @tomily sagte in Javascript zur Temperaturüberwachung:

              mit Betreff

              sendTo('email.0', {
                  subject: 'mein Betreff',
                  text:    msg
              });
              

              @tomily sagte in Javascript zur Temperaturüberwachung:

              Könnte ich der Variable auch einen Namen mit geben, der dann in die Email übergeben wird?

              Der Name des Datenpunktes "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature" kann im Tab "Objekte" beliebig geändert werden, z.B. in "Temperatur HDD1".

              msg = dp.common.name + " über Treshold (" + treshold + " °C)!\nAktueller Wert: " + dp.state.val + " °C";
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              T 1 Antwort Letzte Antwort
              0
              • T tomily

                Geil! Danke! Bin begeistert von der schnellen und kompetenten Hilfe.
                Klappt super. Bin trotzdem frech und frage auch noch nach meiner dritten Frage:

                Hast du noch eine Idee, wie ich den Emailinhalt mehrzeilig und mit Betreff gestalten kann?

                Beim ausprobieren ist mir noch folgendes eingefallen:

                Von dp.id kommt nun natürlich "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature" zurück.
                Ich kann das lesen, da ich weiß was es bedeutet. Schöner wäre aber eine Beschriftung. Könnte ich der Variable auch einen Namen mit geben, der dann in die Email übergeben wird?
                Bespiel:

                var temp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
                var temp1-label = "HDD1"
                var temp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
                var temp2-label = "HDD2"
                
                // Beispiel "dp.id.label" .... stimmt natürlich nicht :=()
                msg = "Temperatur (" + dp.id.label + ") über Treshold (" + treshold + " °C)! Aktueller Wert: " + (dp.state.val) + " °C";
                
                
                AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                schrieb am zuletzt editiert von
                #9

                @tomily sagte in Javascript zur Temperaturüberwachung:

                mehrzeilig

                z.B. mit Backticks, die können auch wunderbar Variablen enthalten:

                const wert = 25;
                const foo = `Dies
                ist
                ein mehrzeiliger
                String!
                Der Wert ist ${wert}.`;
                

                foo enthält den folgenden Text:

                Dies
                ist
                ein mehrzeiliger
                String!
                Der Wert ist 25.
                

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @tomily sagte:

                  mehrzeilig

                  Zeilenschaltung macht man gewöhnlich mit "\n".

                  @tomily sagte in Javascript zur Temperaturüberwachung:

                  mit Betreff

                  sendTo('email.0', {
                      subject: 'mein Betreff',
                      text:    msg
                  });
                  

                  @tomily sagte in Javascript zur Temperaturüberwachung:

                  Könnte ich der Variable auch einen Namen mit geben, der dann in die Email übergeben wird?

                  Der Name des Datenpunktes "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature" kann im Tab "Objekte" beliebig geändert werden, z.B. in "Temperatur HDD1".

                  msg = dp.common.name + " über Treshold (" + treshold + " °C)!\nAktueller Wert: " + dp.state.val + " °C";
                  
                  T Offline
                  T Offline
                  tomily
                  schrieb am zuletzt editiert von
                  #10

                  @paul53

                  Da hätte ich auch selbst drauf kommen können. Das funktioniert und wäre eine gute Lösund.
                  Leider wird das Feld vom ioBroker-Adapter nach dem neu Laden wieder überschreiben mit einem default.
                  Die Anpassung der Namensfelder und das verwenden von dp.common.name wäre super. Bekomme ich den Adapter dazu, das Feld nicht wieder zu überschreiben?

                  Dafür ist "\n" perfekt für den Zeilenumbruch.

                  @AlCalzone
                  Danke auch für deinen Hinweis. Das wirkt als Skripting-Anfänger für mich recht mächtig, werde es aber auch ausprobieren :-)

                  Mercie

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • T tomily

                    @paul53

                    Da hätte ich auch selbst drauf kommen können. Das funktioniert und wäre eine gute Lösund.
                    Leider wird das Feld vom ioBroker-Adapter nach dem neu Laden wieder überschreiben mit einem default.
                    Die Anpassung der Namensfelder und das verwenden von dp.common.name wäre super. Bekomme ich den Adapter dazu, das Feld nicht wieder zu überschreiben?

                    Dafür ist "\n" perfekt für den Zeilenumbruch.

                    @AlCalzone
                    Danke auch für deinen Hinweis. Das wirkt als Skripting-Anfänger für mich recht mächtig, werde es aber auch ausprobieren :-)

                    Mercie

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #11

                    @tomily sagte:

                    Leider wird das Feld vom ioBroker-Adapter nach dem neu Laden wieder überschreiben

                    Vom Adapter ioBroker.synology ?
                    Dann verwende common.desc (Beschreibung). Oder wird das auch überschrieben ?

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

                      So ein Mist. Leider wird das Feld genau so auf Default zurück gesetzt wie der Name :-/

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • T tomily

                        So ein Mist. Leider wird das Feld genau so auf Default zurück gesetzt wie der Name :-/

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #13

                        @tomily sagte:

                        Leider wird das Feld genau so auf Default zurück gesetzt wie der Name

                        Dann probiere mal native.name.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          tomily
                          schrieb am zuletzt editiert von tomily
                          #14

                          DANKE! Ich danke euch vielmals. Habe viel dazu gelernt und nun funktioniert es genau so wie ich es wollte.
                          Den native.name kannte ich noch nicht. Mir war nicht bewusst, dass man dort noch Felder hinzufügen kann. Diese werden nicht überschrieben und können verwendet werden.

                          Hier mein Ergebnis:

                          var temp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
                          var temp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
                          var temp3 = "synology.1.DiskStationManager.hdd_info.laufwerk_1.temperature";
                          var temp4 = "synology.1.DiskStationManager.hdd_info.laufwerk_2.temperature";
                          var temp5 = "synology.1.DiskStationManager.hdd_info.laufwerk_3.temperature";
                          var temp6 = "synology.1.DiskStationManager.hdd_info.laufwerk_4.temperature";
                          
                          var threshold = 33;
                          
                          on([temp1, temp2, temp3, temp4, temp5, temp6], function(dp) {
                               if (dp.state.val >= threshold && dp.oldState.val < threshold) {
                                      //Email Temperatur ÜBER Threshold
                                      sendTo("email", {
                                              subject: ("Temperatur " + dp.native.name + " " + dp.state.val + " °C"),
                                              text: dp.native.name + " ÜBER Threshold!\nThreshold: " + threshold + " °C\nAktueller Wert: " + (dp.state.val) + " °C"
                                              })
                                  } else if ( dp.state.val <= threshold - 0.5 && dp.oldState.val > threshold - 0.5) {
                                      //Email Temperatur UNTER Threshold
                                      sendTo("email", {
                                              subject: ("Temperatur " + dp.native.name + " " + dp.state.val + " °C"),
                                              text: dp.native.name + " UNTER Threshold!\nThreshold: " + threshold + " °C\nAktueller Wert: " + (dp.state.val) + " °C"
                                              })
                                  }   
                              });
                          
                          paul53P 1 Antwort Letzte Antwort
                          0
                          • T tomily

                            DANKE! Ich danke euch vielmals. Habe viel dazu gelernt und nun funktioniert es genau so wie ich es wollte.
                            Den native.name kannte ich noch nicht. Mir war nicht bewusst, dass man dort noch Felder hinzufügen kann. Diese werden nicht überschrieben und können verwendet werden.

                            Hier mein Ergebnis:

                            var temp1 = "synology.0.DiskStationManager.hdd_info.laufwerk_1.temperature";
                            var temp2 = "synology.0.DiskStationManager.hdd_info.laufwerk_2.temperature";
                            var temp3 = "synology.1.DiskStationManager.hdd_info.laufwerk_1.temperature";
                            var temp4 = "synology.1.DiskStationManager.hdd_info.laufwerk_2.temperature";
                            var temp5 = "synology.1.DiskStationManager.hdd_info.laufwerk_3.temperature";
                            var temp6 = "synology.1.DiskStationManager.hdd_info.laufwerk_4.temperature";
                            
                            var threshold = 33;
                            
                            on([temp1, temp2, temp3, temp4, temp5, temp6], function(dp) {
                                 if (dp.state.val >= threshold && dp.oldState.val < threshold) {
                                        //Email Temperatur ÜBER Threshold
                                        sendTo("email", {
                                                subject: ("Temperatur " + dp.native.name + " " + dp.state.val + " °C"),
                                                text: dp.native.name + " ÜBER Threshold!\nThreshold: " + threshold + " °C\nAktueller Wert: " + (dp.state.val) + " °C"
                                                })
                                    } else if ( dp.state.val <= threshold - 0.5 && dp.oldState.val > threshold - 0.5) {
                                        //Email Temperatur UNTER Threshold
                                        sendTo("email", {
                                                subject: ("Temperatur " + dp.native.name + " " + dp.state.val + " °C"),
                                                text: dp.native.name + " UNTER Threshold!\nThreshold: " + threshold + " °C\nAktueller Wert: " + (dp.state.val) + " °C"
                                                })
                                    }   
                                });
                            
                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #15

                            @tomily sagte:

                            Den native.name kannte ich noch nicht.

                            Den gibt es normalerweise auch nicht. Wenn aber common immer wieder vollständig überschrieben wird, kann man dahin ausweichen.
                            Bitte das Thema in der Überschrift des ersten Beitrags als [gelöst] markieren.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

                              Besten Dank und vorab ein schönes Wochenende.

                              Kann den Betreff leider nicht mehr ändern. Wie macht Ihr das normal?

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • T tomily

                                Besten Dank und vorab ein schönes Wochenende.

                                Kann den Betreff leider nicht mehr ändern. Wie macht Ihr das normal?

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #17

                                @tomily sagte:

                                Kann den Betreff leider nicht mehr ändern.

                                Im ersten Beitrag auf die 3 Punkte rechts unten: Bearbeiten auswählen. Dann die Überschrift editieren.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Antwort Letzte Antwort
                                0
                                • T Offline
                                  T Offline
                                  tomily
                                  schrieb am zuletzt editiert von tomily
                                  #18

                                  Versteck gefunden :-)
                                  Mercie und schönes Wochenende!

                                  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

                                  805

                                  Online

                                  32.4k

                                  Benutzer

                                  81.5k

                                  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