Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. E-mail Script für Statusmeldungen

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

E-mail Script für Statusmeldungen

Scheduled Pinned Locked Moved Skripten / Logik
26 Posts 7 Posters 6.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Sven2013
    wrote on last edited by
    #8

    Hallo Jürgen, Hallo Homoran

    danke dafür. Leider bekomme ich den Schnipsel nicht eingebaut.

    Ich habe dafür ein extra Script gemacht und bei der Auslösung erhalte ich immer:

    23:01:05.473	[info]	javascript.1 Stop script script.js.Pollen.Pollen-Zusatz
    23:03:28.543	[info]	javascript.1 Start javascript script.js.Pollen.Pollen-Zusatz
    23:03:28.544	[info]	javascript.1 script.js.Pollen.Pollen-Zusatz: Homematic-Servicemeldungen: hm-rpc.0.LEQ1002192.0.CONFIG_PENDING,
    23:03:28.544	[info]	javascript.1 script.js.Pollen.Pollen-Zusatz: Anzahl Homematic-Servicemeldungen: 1
    23:03:28.544	[error]	javascript.1 script.js.Pollen.Pollen-Zusatz: TypeError: Cannot read property 'val' of null at viewPollenwetter (script.js.Pollen.Pollen-Zusatz:125:39) at script.js.Pollen.Pollen-Zusatz:113:1
    

    Kannst mir einer von euch kurz erklären wie ich den einbaue?

    Gruß Sven

    1 Reply Last reply
    0
    • derAugeD Offline
      derAugeD Offline
      derAuge
      wrote on last edited by
      #9

      ja

      du musst die Datenpunkte erst anlegen lassen.

      soll heißen:

      den "schnipsel" als eigenen Script laufen lassen

      in deinem Mail-Script wertest du dann die neuen Datenpunkte aus

      Gruß

      Jürgen

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Sven2013
        wrote on last edited by
        #10

        Hallo Jürgen,

        danke für deine Antwort. Allerdings habe ich das versucht, das ruft den Fehler aus meinem Letzten Post hervor.

        Der Fehler schein in Zeile 36. Kannst du da vielleicht mal schauen?

        Gruß Sven

        1 Reply Last reply
        0
        • C Offline
          C Offline
          crepp
          wrote on last edited by
          #11

          @Phantomio:

          Hallo,

          ich habe das bei mir so eingebaut (Die e-Mail Funktion in einem Globalen Script):

          function fgEMail (strTo, strBetreff, strText){
              sendTo("email", {
              from:    "absender@e-mail.de",
              to:      strTo,
              subject: strBetreff,
              //text:    strText
              //HTML body
                  html: '```
          **Temperaturen & Luftfeuchte:** 
          ' +
                    'Garten     ' + getState("hm-rpc.0.12345.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.0.12345.1.HUMIDITY").val + '%
          ' +
                    'Wohnzimmer ' + getState("hm-rpc.0.12345.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.12345.1.HUMIDITY").val + '%
          ' + 
                    '
          ' +  
                    '**Offen / Laufzeiten:** 
          '+
                    'Poolpumpe    ' + getState("javascript.0.PoolpumpeAn.Tag").val +'Min | ' + getState("javascript.0.PoolpumpeZaehler.Tag").val + '
          ' +
                    'Terrassentür ' + getState("javascript.0.WohnzimmerTerrassentuerOffen.Tag").val +'Min | ' + 
                    '
          ' +
                    '**Automatik:** 
          ' +
                    '
          ```'
              });
          }
          
          

          diese Funktion rufe ich dann wie folgt auf (Entweder über Schedule oder on):

          cb(fgEMail("empfaenger@e-mail.de", 'Poolpumpe spülen', "")); 
          
          

          Ich hoffe Du meinst das :P

          Den Text in der e-Mail kannst Du dann ja beliebig erweitern z.B. mit den Daten vom Pollenadapter.

          Jede e-Mail die ich mit dem Adapter versende enthält dann halt immer alle Daten.

          Gruß

          Phantomio `

          Hallo Phantomio,

          Ich habe in deinem Script etwas von einem Laufzeitzähler Poolpumpe gelesen. Könntest Du den Code hier zu Verfügung stellen. Wäre auch sehr an so etwas interessiert-bin jedoch nicht so begabt im coden.

          Habe mir schon einige Scripte hier im Forum abekupfert u. angepasst und denke ich würde das mit dem Zähler auch hinbekommen.

          Gruß

          crepp

          Gruß

          crepp

          –-

          CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

          Kodi auf W10pro und OSMC

          DVBViewer MediaServer auf W10

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Phantomio
            wrote on last edited by
            #12

            Hi crepp,

            ich habe das bei mir so gelöst:

            createState('PoolpumpeZaehler.Tag',                     0,     {read: true, write: true, type: 'number',  name: "Poolpumpe"});
            createState('PoolpumpeAn.Tag',                          0,     {read: true, write: true, type: 'number',  name: "Poolpumpe An"});
            
            var Poolpumpe                       = "hm-rpc.0.KEQxxxxxxx.1.STATE";                    // Poolpumpe Aktor:1.STATE
            var PoolpumpeAn                     = "javascript.0.PoolpumpeAn.Tag";                   // Poolpumpe An
            
            on ({id: Poolpumpe,                     change:  "gt"},     fPoolpumpe);
            on ({id: PoolpumpeAn,                   change:  "any"},    fPoolpumpeAn);
            
            function fPoolpumpe (){
                setState("javascript.0.PoolpumpeZaehler.Tag", ++getState("javascript.0.PoolpumpeZaehler.Tag").val); 
                newvalue = Number(getState(PoolpumpeAn).val);
                newvalue = newvalue + 0.01; 
                newvalue = newvalue.toFixed(2);
                setState(PoolpumpeAn, newvalue); 
            }
            
            function fPoolpumpeAn(){
                if (getState(Poolpumpe).val === true){
                    newvalue = Number(getState(PoolpumpeAn).val);
                    newvalue = newvalue + 0.10; 
                    newvalue = newvalue.toFixed(2);
                    setStateDelayed (PoolpumpeAn, newvalue, 6000);
                    if (newvalue >= 300 && newvalue <= 300.09){cb(fgEMail("test@test.de", "Die Poolpumpe läuft bereits über 5 Stunden!", ""));}
                }
            }
            
            

            hier gibt es dazu auch noch einen Eintrag im Forum:

            http://forum.iobroker.net/viewtopic.php?f=21&t=2233

            Gruß

            Phantomio

            Geräte: CCU2, RaspberryPi2,

            Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

            1 Reply Last reply
            1
            • C Offline
              C Offline
              crepp
              wrote on last edited by
              #13

              Vielen Dank, werde ich auf jeden Fall mal probieren einzurichten. Reicht es wenn ich nur den Namen des Gerätes anpasse?

              Gruß

              crepp

              –-

              CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

              Kodi auf W10pro und OSMC

              DVBViewer MediaServer auf W10

              1 Reply Last reply
              0
              • P Offline
                P Offline
                Phantomio
                wrote on last edited by
                #14

                Hi,

                das sollte reichen (Wenn Du die Funktion fgEMail eingebaut hast… Sonst die Zeile löschen).

                Gruß

                Phantomio

                Geräte: CCU2, RaspberryPi2,

                Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  crepp
                  wrote on last edited by
                  #15

                  Hallo,

                  Habs jetzt eingerichtet, hat auf Anhieb funktioniert. Im Log kam beim ersten Start diese Meldung:
                  686_error.png
                  Ist das ein Problem ?

                  Ausserdem wurden zwei Datenpunkte angelegt:
                  686_error2.png

                  Diese ändern sich aber trotz Pumpenlaufs nicht. Sollten die sich nicht selbstständig aktualisieren ?

                  Gruß

                  crepp

                  Gruß

                  crepp

                  –-

                  CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

                  Kodi auf W10pro und OSMC

                  DVBViewer MediaServer auf W10

                  1 Reply Last reply
                  0
                  • C Offline
                    C Offline
                    crepp
                    wrote on last edited by
                    #16

                    Kommando zurück, Die Anzeige ist in KW- deshalb die Änderung erst nach längerer Zeit (Meine Pumpe hat ca. 650W)

                    Jetzt funktioniert alles Super !

                    Gruß

                    crepp

                    Gruß

                    crepp

                    –-

                    CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

                    Kodi auf W10pro und OSMC

                    DVBViewer MediaServer auf W10

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      crepp
                      wrote on last edited by
                      #17

                      Hab hier noch etwas im Logfile stehen:

                      javascript-0 2016-07-01 16:02:07.174 warn Wrong type of javascript.0.PoolpumpeAn.Tag: "string". Please fix, while deprecated and will not work in next versions.

                      Kann mir jemand weiterhelfen ?

                      Gruß

                      crepp

                      Gruß

                      crepp

                      –-

                      CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

                      Kodi auf W10pro und OSMC

                      DVBViewer MediaServer auf W10

                      1 Reply Last reply
                      0
                      • P Offline
                        P Offline
                        Phantomio
                        wrote on last edited by
                        #18

                        Hallo crepp,

                        ich glaube ich stehe auf dem Schlauch 8-)

                        Warum ist die Anzeige KW für die Pumpe in dem Fall wichtig?

                        Ist doch ein Zeitzähler (in Minuten). Der sollte wenn alles funktioniert "Live" alle paar Sekunden aktualisiert werden.

                        Entweder unter Objekte javascript … oder den Datenpunkt im vis einbinden um die Laufzeit abzulesen.

                        Zu dem Log Eintrag:

                        Welche Java Version hast du?

                        In der Readme steht etwas:

                        Siehe Changelog 2.1.2 / 2.1.3 // (bluefox) fix warning with wrong types

                        https://github.com/iobroker/ioBroker.ja … /README.md

                        Gruß

                        Phantomio

                        Geräte: CCU2, RaspberryPi2,

                        Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          Phantomio
                          wrote on last edited by
                          #19

                          update von 18:38 Uhr

                          Ich habe gerade alles auf den neuesten Stand gebracht (Die Versionen die im Admin GUI angeboten werden).

                          Jetzt habe ich auch diese Meldungen im Log 8-)

                          javascript.0	2016-07-01 18:39:59.726	warn	javascript.0 Wrong type of javascript.0.WohnzimmerTerrassentuerOffen.Tag: "string". Please fix, while deprecated and will not work in next versions.
                          javascript.0	2016-07-01 18:39:53.709	warn	javascript.0 Wrong type of javascript.0.WohnzimmerTerrassentuerOffen.Tag: "string". Please fix, while deprecated and will not work in next versions.
                          javascript-0	2016-07-01 18:39:47.690	warn	Wrong type of javascript.0.WohnzimmerTerrassentuerOffen.Tag: "string". Please fix, while deprecated and will not work in next versions.
                          javascript-0	2016-07-01 18:39:41.643	warn	Wrong type of javascript.0.WohnzimmerTerrassentuerOffen.Tag: "string". Please fix, while deprecated and will not work in next versions.
                          javascript-0	2016-07-01 18:39:35.632	warn	Wrong type of javascript.0.WohnzimmerTerrassentuerOffen.Tag: "string". Please fix, while deprecated and will not work in next versions.
                          

                          Das Müllt einem bei der Vorgehensweise mit den Zählern schon ganz schon das Log zu (Ich zähle Fenster / Türen / Poolpumpe usw. 11 Stück).

                          Deswegen habe ich erst einmal in den Instanzen die Log Stufe vom javascript Adapter auf error gestellt.

                          Gruß

                          Phantomio

                          Geräte: CCU2, RaspberryPi2,

                          Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                          1 Reply Last reply
                          0
                          • C Offline
                            C Offline
                            crepp
                            wrote on last edited by
                            #20

                            Das werde ich auch tun bis es vielleicht mal eine Lösung gibt, ich habe aber noch ein ganz anderes Problem:

                            Mein Zähler (Poolpumpe nullt sich nicht um 24:00. Er zählt also fröhlich weiter die kW. Muss ich da etwas manuell tun.

                            Gruß

                            crepp

                            Gruß

                            crepp

                            –-

                            CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

                            Kodi auf W10pro und OSMC

                            DVBViewer MediaServer auf W10

                            1 Reply Last reply
                            0
                            • P Offline
                              P Offline
                              Phantomio
                              wrote on last edited by
                              #21

                              Hey,

                              Ich verstehe immer noch nicht was du mit KW meinst.

                              In dem Script steht ja "hm-rpc.0.KEQxxxxxxx.1.STATE"; … .STATE sagt ja nur ob die Pumpe an oder aus ist.

                              Also wird die Laufzeit der Pumpe gezählt. Nicht der Verbrauch.

                              mit dem Script wird um 00:00 Uhr die Laufzeit in den Datenpunkt PoolpumpeAn.Gestern geschrieben.

                              Der Datenpunkt für den Tag wird auf 0 gesetzt.

                              createState('PoolpumpeAn.Gestern',                      0,     {read: true, write: true, type: 'number',  name: "Poolpumpe An Gestern"});
                              
                              schedule("0 0 * * *", function () {
                                  setState("javascript.0.PoolpumpeAn.Gestern",                    getState("javascript.0.PoolpumpeAn.Tag"));
                                  setState("javascript.0.PoolpumpeAn.Tag",                        0); 
                              });
                              
                              

                              Gruß

                              Phantomio

                              Geräte: CCU2, RaspberryPi2,

                              Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                              1 Reply Last reply
                              1
                              • P Offline
                                P Offline
                                pix
                                wrote on last edited by
                                #22

                                @Phantomio:

                                ich habe das bei mir so gelöst:

                                createState('PoolpumpeZaehler.Tag',                     0,     {read: true, write: true, type: 'number',  name: "Poolpumpe"});
                                createState('PoolpumpeAn.Tag',                          0,     {read: true, write: true, type: 'number',  name: "Poolpumpe An"});
                                
                                var Poolpumpe                       = "hm-rpc.0.KEQxxxxxxx.1.STATE";                    // Poolpumpe Aktor:1.STATE
                                var PoolpumpeAn                     = "javascript.0.PoolpumpeAn.Tag";                   // Poolpumpe An
                                
                                on ({id: Poolpumpe,                     change:  "gt"},     fPoolpumpe);
                                on ({id: PoolpumpeAn,                   change:  "any"},    fPoolpumpeAn);
                                
                                function fPoolpumpe (){
                                    setState("javascript.0.PoolpumpeZaehler.Tag", ++getState("javascript.0.PoolpumpeZaehler.Tag").val); 
                                    newvalue = Number(getState(PoolpumpeAn).val);
                                    newvalue = newvalue + 0.01; 
                                    newvalue = newvalue.toFixed(2);
                                    setState(PoolpumpeAn, newvalue); 
                                }
                                
                                function fPoolpumpeAn(){
                                    if (getState(Poolpumpe).val === true){
                                        newvalue = Number(getState(PoolpumpeAn).val);
                                        newvalue = newvalue + 0.10; 
                                        newvalue = newvalue.toFixed(2);
                                        setStateDelayed (PoolpumpeAn, newvalue, 6000);
                                        if (newvalue >= 300 && newvalue <= 300.09){cb(fgEMail("test@test.de", "Die Poolpumpe läuft bereits über 5 Stunden!", ""));}
                                    }
                                }
                                
                                ```` `  
                                

                                Der Fehler im Log kommt daher, weil ein String in einen Number-State geschrieben werden soll:

                                    newvalue = newvalue.toFixed(2);
                                    setState(PoolpumpeAn, newvalue); 
                                
                                

                                toFixed() erzeugt einen String. Der String muss dann wieder in eine Zahl gewandelt werden:

                                Entweder

                                    newvalue = parseFloat(newvalue.toFixed(2));
                                    setState(PoolpumpeAn, newvalue); 
                                
                                ````oder````
                                    newvalue = newvalue.toFixed(2);
                                    setState(PoolpumpeAn, parseFloat(newvalue)); 
                                
                                

                                Und in diesem Skript fehlt ein .val
                                @Phantomio:

                                Hey,

                                Ich verstehe immer noch nicht was du mit KW meinst.

                                In dem Script steht ja "hm-rpc.0.KEQxxxxxxx.1.STATE"; … .STATE sagt ja nur ob die Pumpe an oder aus ist.

                                Also wird die Laufzeit der Pumpe gezählt. Nicht der Verbrauch.

                                mit dem Script wird um 00:00 Uhr die Laufzeit in den Datenpunkt PoolpumpeAn.Gestern geschrieben.

                                Der Datenpunkt für den Tag wird auf 0 gesetzt.

                                createState('PoolpumpeAn.Gestern',                      0,     {read: true, write: true, type: 'number',  name: "Poolpumpe An Gestern"});
                                
                                schedule("0 0 * * *", function () {
                                    setState("javascript.0.PoolpumpeAn.Gestern",                    getState("javascript.0.PoolpumpeAn.Tag"));
                                    setState("javascript.0.PoolpumpeAn.Tag",                        0); 
                                });
                                
                                ```` `  
                                

                                lieber so:

                                ! createState('PoolpumpeAn.Gestern', 0, {read: true, write: true, type: 'number', name: 'Poolpumpe An Gestern'}); ! schedule("0 0 * * *", function () { setState("javascript.0.PoolpumpeAn.Gestern", getState("javascript.0.PoolpumpeAn.Tag").val); setState("javascript.0.PoolpumpeAn.Tag", 0); }); !

                                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 Reply Last reply
                                0
                                • P Offline
                                  P Offline
                                  Phantomio
                                  wrote on last edited by
                                  #23

                                  Hallo pix,

                                  funktioniert beides.

                                  das hier:````
                                  setState("javascript.0.PoolpumpeAn.Gestern", getState("javascript.0.PoolpumpeAn.Tag").val);

                                  habe ich auch noch abgeändert in:
                                  

                                  setState("javascript.0.PoolpumpeAn.Gestern", parseFloat(getState("javascript.0.PoolpumpeAn.Tag").val));

                                  Hatte nach dem Umstellen der java Instanz zurück auf info wieder eine error Meldung im Log:
                                  
                                  javascript-0 2016-07-02 12:38:29.081 warn Wrong type of javascript.0.PoolpumpeAn.Gestern: "string". Please fix, while deprecated and will not work in next versions.
                                  
                                  Mit dem parseFloat ist sie weg
                                  
                                  Danke :D
                                  
                                  Gruß
                                  
                                  Phantomio

                                  Geräte: CCU2, RaspberryPi2,

                                  Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                                  1 Reply Last reply
                                  0
                                  • C Offline
                                    C Offline
                                    crepp
                                    wrote on last edited by
                                    #24

                                    Hallo phantomio, du hast natürlich recht. Ich weiss gar nicht wie ich darauf komme das das Kilowattstunden sind. Also gut, Laufzeit.

                                    Das Problem mit dem Nullen der Betriebsstunden lag wahrscheinlich daran, dass ich das Script für das Rücksetzen des Zählers noch gar nicht am Laufen hatte. Habs jetzt erst mal eingerichtet und sehe morgen früh ob es funktioniert.

                                    Gruß crepp

                                    Gruß

                                    crepp

                                    –-

                                    CCU2 / 2x RaspberryPi / 2x Amazon Echo Dot / Milight LED / Philips Hue (z.Z. 16 Homematic-Geräte)

                                    Kodi auf W10pro und OSMC

                                    DVBViewer MediaServer auf W10

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Sven2013
                                      wrote on last edited by
                                      #25

                                      @Sven2013:

                                      Hallo Leute,

                                      ich bin nun schonmal einen Schritt weiter:

                                      Hier der aktuelle Code für meine Mails, nicht schön, funktioniert aber bisher:

                                       sendTo("email", {
                                            from:    "Haus@tengeler.net",
                                             to:      "Haus@tengeler.net",
                                             subject: "Statusinformationen Haus Tengeler",
                                              //text:    strText
                                          //HTML body
                                              html:
                                                '
                                      
                                      <u>So wird das Wetter heute:</u>
                                      
                                      ' +
                                                'Guten Morgen Sven, die aktuelle Temperatur beträgt ' + getState("hm-rpc.0.KEQ1057664.1.TEMPERATURE").val +'°C '+ 
                                                'und es wird heute voraussichtlich bis zu ' + getState("yr.0.forecast.day0.temperature_max").val +'°C warm.' + '
                                      ' + '
                                      ' +
                                                 getState("yr.0.forecast.html").val + '
                                      ' +
                                                 getState("yr.0.forecast.diagram").val + '
                                      ' +
                                                 
                                                 '
                                      
                                      <u>Mülltermine:</u>
                                      
                                      ' +
                                                 getState("ical.1.data.html").val + '
                                      ' +
                                                 
                                                 '
                                      
                                      <u>Terminübersicht für die nächsten Tage:</u>
                                      
                                      ' +
                                                 getState("ical.0.data.html").val + '
                                      ' +
                                                 
                                                 '
                                      
                                      <u>Geburtstage für die nächsten Tage:</u>
                                      
                                      ' +
                                                 getState("ical.2.data.html").val + '
                                      ' +
                                                 
                                                '
                                      
                                      <u>Pollenflug für Heute:</u>
                                      
                                      ' +
                                                'Ambrosia     ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.ambrosia").val + '
                                      ' +
                                                'Ampfer       ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.ampfer").val + '
                                      ' +
                                                'Beifuß       ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.beifuß").val + '
                                      ' +
                                                'Birke        ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.birke").val + '
                                      ' +
                                                'Buche        ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.buche").val + '
                                      ' +
                                                'Eiche        ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.eiche").val + '
                                      ' +
                                                'Erle         ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.erle").val + '
                                      ' +
                                                'Gräser       ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.gräser").val + '
                                      ' +
                                                'Hasel        ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.hasel").val + '
                                      ' +
                                                'Pappel       ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.pappel").val + '
                                      ' +
                                                'Roggen       ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.roggen").val + '
                                      ' +
                                                'Ulme         ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.ulme").val + '
                                      ' +
                                                'Wegerich     ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.wegerich").val + '
                                      ' +
                                                'Weide        ' + getState("javascript.1.WetterOnline.pollenvorhersage.heute.weide").val + '
                                      ' +
                                                
                                                '
                                      
                                      <u>Günstigste Tankstelle Heute:</u>
                                      
                                      ' +
                                                'Name:             ' + getState("tankerkoenig.0.stations.cheapest.e5.name").val + '
                                      ' +
                                                'Preis für Super:  ' +getState("tankerkoenig.0.stations.cheapest.e5.combined").val + '
                                      ' +
                                                'Ladenzeit:        ' +getState("tankerkoenig.0.stations.cheapest.e5.status").val + '
                                      ' +
                                                
                                                '
                                      
                                      <u>Temperaturen & Luftfeuchte:</u>
                                      
                                      ' +
                                                'Garten       ' + getState("hm-rpc.0.KEQ1057664.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.0.KEQ1057664.1.HUMIDITY").val + '%
                                      ' +
                                                'Wohnzimmer   ' + getState("hm-rpc.0.LEQ0228650.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.0.LEQ0228650.1.HUMIDITY").val + '%
                                      ' +
                                                'Moritz       ' + getState("hm-rpc.0.NEQ0122832.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.0.NEQ0122832.1.HUMIDITY").val + '%
                                      ' +
                                                'Nele         ' + getState("hm-rpc.0.NEQ0122927.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.0.NEQ0122927.1.HUMIDITY").val + '%
                                      ' +
                                                'Schlafzimmer ' + getState("hm-rpc.0.NEQ0122846.1.TEMPERATURE").val +'°C | ' + getState("hm-rpc.0.NEQ0122846.1.HUMIDITY").val + '%
                                      ' +
                                                '
                                      ' + 
                                                
                                                '
                                      
                                      <u>Statistik der Pooldaten:</u>
                                      
                                      ' +
                                                'Poolpumpe    ' + getState("javascript.1.Betriebsstundenzaehler.Counter.Poolpumpe.DAY").val +'(HEUTE) ' + '
                                      ' +
                                                'Poolpumpe    ' + getState("javascript.1.Betriebsstundenzaehler.Counter.Poolpumpe.MONTH").val +'(Monat) ' + '
                                      ' +
                                                'Poolpumpe    ' + getState("javascript.1.Betriebsstundenzaehler.Counter.Poolpumpe.YEAR").val +'(Jahr) ' + '
                                      ' +
                                                '
                                      ' +
                                                
                                                'Solarlaufzeit ' + getState("javascript.1.Betriebsstundenzaehler.Counter.Solaranlage.DAY").val +'(HEUTE) ' + '
                                      ' +
                                                'Solarlaufzeit ' + getState("javascript.1.Betriebsstundenzaehler.Counter.Solaranlage.MONTH").val +'(Monat) ' + '
                                      ' +
                                                'Solarlaufzeit ' + getState("javascript.1.Betriebsstundenzaehler.Counter.Solaranlage.YEAR").val +'(Jahr) ' + '
                                      ' +
                                                '
                                      ' +
                                                
                                                '
                                      ```' });`
                                      
                                      Hierzu habe ich noch Fragen:
                                      
                                      1\. Wie bekomme ich statt dem Link das Bild angezeigt?
                                      
                                      2\. Die Kalender enthalten Daten von mehreren Tagen, ich möchte aber nur den heutigen Tag in der E-mail angezeigt bekommen.
                                      
                                      3\. Wie kann ich die Pollen nur anzeigen lassen, wenn es einen Pollenflug gibt?
                                      
                                      4\. Wie bekomme ich die "Antworten" sauber in eine Linie untereinader sortiert? (Temperaturen und Luftfeuchte da sollen die Striche untereinander) Oder bei Günstigste Tankstelle soll es so aussehen:
                                      
                                      Name: Esso
                                      
                                      Preis für Super: 1,99€
                                      
                                      Ladenzeit: offen
                                      
                                       filename="Email.png" index="1">~~
                                       filename="Email2.png" index="0">~~
                                      
                                      Danke für eure Mühe… `  
                                      

                                      Ist da nochmal jemand so nett und schaut auf meine Fragen?

                                      Gruß Sven

                                      1 Reply Last reply
                                      0
                                      • P Offline
                                        P Offline
                                        Phantomio
                                        wrote on last edited by
                                        #26

                                        Halo Sven,

                                        die Antworten untereinander bekommst Du so:

                                         var txtPoolpumpe     = "";
                                            var txtGaragentor    = "";
                                            var txtTerrassentuer = "";
                                            var txtBadRechts     = "";
                                            var txtBadLinks      = "";
                                            var txtKind2         = "";
                                            var txtKind1         = "";
                                            var txtSchlafen      = "";
                                            var txtArbeit        = "";
                                            if (getState("hm-rpc.0.KEQxxxxxxx.1.STATE").val)      {txtPoolpumpe     = "An"}  else{txtPoolpumpe  = "Aus"}
                                            if (getState("hm-rpc.0.MEQxxxxxxx.1.STATE").val)      {txtGaragentor    = "Auf"} else{txtGaragentor = "Zu"}
                                            if (getState("hm-rpc.0.KEQxxxxxxx.1.STATE").val === 0){txtTerrassentuer = "Zu"}
                                            if (getState("hm-rpc.0.KEQxxxxxxx.1.STATE").val === 1){txtTerrassentuer = "gekippt"}
                                            if (getState("hm-rpc.0.KEQxxxxxxx.1.STATE").val === 2){txtTerrassentuer = "ganz auf"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 0){txtBadRechts     = "Zu"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 1){txtBadRechts     = "gekippt"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 2){txtBadRechts     = "ganz auf"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 0){txtBadLinks      = "Zu"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 1){txtBadLinks      = "gekippt"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 2){txtBadLinks      = "ganz auf"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 0){txtKind2         = "Zu"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 1){txtKind2         = "gekippt"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 2){txtKind2         = "ganz auf"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 0){txtKind1         = "Zu"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 1){txtKind1         = "gekippt"}
                                            if (getState("hm-rpc.0.LEQxxxxxxx.1.STATE").val === 2){txtKind1         = "ganz auf"}
                                            if (getState("hm-rpc.0.MEQxxxxxxx.1.STATE").val)      {txtSchlafen      = "Auf"} else{txtSchlafen = "Zu"}
                                            if (getState("hm-rpc.0.MEQxxxxxxx.1.STATE").val)      {txtArbeit        = "Auf"} else{txtArbeit = "Zu"}
                                            sendTo("email", {
                                            from:    "iobroker@edv-team.de",
                                            to:      strTo,
                                            subject: strBetreff,
                                            //text:    strText
                                            //HTML body
                                         html:   '```
                                        ' +
                                                    '**Termine:**' + '
                                        ' +
                                                    getState("ical.0.data.html").val + '
                                        ' +
                                                    '
                                        ' +
                                                    '**Temperaturen & Luftfeuchte:**' + '
                                        ' +
                                                    'es wird heute voraussichtlich bis zu ' + getState("yr.0.forecast.day0.temperature_max").val +'°C warm.' + '
                                        ' + '
                                        ' +
                                                    getState("yr.0.forecast.html").val + '
                                        ' +
                                                    'Pool       ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C' + '
                                        ' +
                                                    'Garten     ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C | ' + getState("hm-rpc.0.LEQxxxxxxx.1.HUMIDITY").val + '%
                                        ' +
                                                    'Wohnzimmer ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C | ' + getState("hm-rpc.0.LEQxxxxxxx.1.HUMIDITY").val + '%
                                        ' + 
                                                    'Bad        ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C | ' + getState("hm-rpc.0.LEQxxxxxxx.1.HUMIDITY").val + '%
                                        ' +
                                                    'Kind2      ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C | ' + getState("hm-rpc.0.LEQxxxxxxx.1.HUMIDITY").val + '%
                                        ' +
                                                    'Kind1      ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C | ' + getState("hm-rpc.0.LEQxxxxxxx.1.HUMIDITY").val + '%
                                        ' +
                                                    'Schlafen   ' + (getState("hm-rpc.0.LEQxxxxxxx.1.TEMPERATURE").val).toFixed(1) +'°C | ' + getState("hm-rpc.0.LEQxxxxxxx.1.HUMIDITY").val + '%
                                        ' +
                                                    'Arbeit     ' + (getState("hm-rpc.0.LEQxxxxxxx.4.ACTUAL_TEMPERATURE").val).toFixed(1) +'°C' + '
                                        ' +
                                                    '
                                        ' +
                                                    '**Offen / Laufzeiten:** 
                                        '+
                                                    '' +
                                                    '' +
                                                    '' +
                                                    '' +
                                                    '' + 
                                                    '' + 
                                                    '' + 
                                                    '' + 
                                                    '' + 
                                                    '
                                        
                                        | Poolpumpe    | ' + getState("javascript.0.PoolpumpeAn.Tag").val                  + ' Min | | | ' + getState("javascript.0.PoolpumpeZaehler.Tag").val               + ' | | | ' + txtPoolpumpe     + ' |
                                        | Garagentor   | ' + getState("javascript.0.GaragentorOffen.Tag").val              + ' Min | | | ' + getState("javascript.0.GaragentorZaehler.Tag").val              + ' | | | ' + txtGaragentor    + ' |
                                        | Terrassentür | ' + getState("javascript.0.WohnzimmerTerrassentuerOffen.Tag").val + ' Min | | | ' + getState("javascript.0.WohnzimmerTerrassentuerZaehler.Tag").val + ' | | | ' + txtTerrassentuer + ' |
                                        | Bad Rechts   | ' + getState("javascript.0.BadFensterRechtsOffen.Tag").val        + ' Min | | | ' + getState("javascript.0.BadFensterRechtsZaehler.Tag").val        + ' | | | ' + txtBadRechts     + ' |
                                        | Bad Links    | ' + getState("javascript.0.BadFensterLinksOffen.Tag").val         + ' Min | | | ' + getState("javascript.0.BadFensterLinksZaehler.Tag").val         + ' | | | ' + txtBadLinks      + ' |
                                        | Kind2         | '+ getState("javascript.0.Kind2FensterOffen.Tag").val            + ' Min | | | ' + getState("javascript.0.Kind2FensterZaehler.Tag").val            + ' | | | ' + txtKind2         + ' |
                                        | Kind1        | ' + getState("javascript.0.Kind1FensterOffen.Tag").val            + ' Min | | | ' + getState("javascript.0.Kind1FensterZaehler.Tag").val            + ' | | | ' + txtKind1         + ' |
                                        | Schlafen     | ' + getState("javascript.0.SchlafenFensterOffen.Tag").val         + ' Min | | | ' + getState("javascript.0.SchlafenFensterZaehler.Tag").val         + ' | | | ' + txtSchlafen      + ' |
                                        | Arbeit       | ' + getState("javascript.0.ArbeitFensterOffen.Tag").val           + ' Min | | | ' + getState("javascript.0.ArbeitFensterZaehler.Tag").val           + ' | | | ' + txtArbeit        + ' |
                                        
                                        ' + 
                                                    '
                                        ' +
                                                    '**Automatik:** 
                                        ' +
                                                    '' +
                                                    '
                                        ```'
                                        
                                        

                                        entweder Leerzeichen setzten: 'Pool ________' glaube das funktioniert nur mit …. in deinem Script ist nur das Ende ohne start```

                                        oder im HTML mit einer Tabelle arbeiten:

                                        fängt die Tabelle an

                                        fängt eine Zeile an

                                        | füllt eine Zelle ... usw.

                                        Die If Abfragen ganz oben benutze ich um nicht 0, 1 oder 2 (Für einen Drehgriffkontakt) in der e-Mail angezeigt zu bekommen,

                                        sonder: zu, gekippt bzw. ganz auf.

                                        Vielleicht hilft dir das ja bei den Benzinpreisen weiter

                                        Gruß

                                        Phantomio |

                                        Geräte: CCU2, RaspberryPi2,

                                        Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        829

                                        Online

                                        32.6k

                                        Users

                                        82.2k

                                        Topics

                                        1.3m

                                        Posts
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                        ioBroker Community 2014-2025
                                        logo
                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Home
                                        • Recent
                                        • Tags
                                        • Unread 0
                                        • Categories
                                        • Unreplied
                                        • Popular
                                        • GitHub
                                        • Docu
                                        • Hilfe