Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. E-mail Script für Statusmeldungen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E-mail Script für Statusmeldungen

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

      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
      
       ![576_email.png](/assets/uploads/files/576_email.png) 
       ![576_email2.png](/assets/uploads/files/576_email2.png) 
      
      Danke für eure Mühe…
      1 Reply Last reply Reply Quote 0
      • derAuge
        derAuge last edited by

        @Sven2013:

        3. Wie kann ich die Pollen nur anzeigen lassen, wenn es einen Pollenflug gibt? `

        ich hatte mal so ein Script-schnipsel für Humoran entwickelt:

        Kannst du vielleicht noch mit einbauen.

        Vielleicht hilft das ja weiter.

        ! var logging = true;
        ! var instanz = 'javascript.0'; instanz = instanz + '.';
        ! var pfad = 'wetter.pollenvorhersage.'; // Pfad innerhalb der Instanz
        ! Pollenarten = ['Hasel','Pappel','Weide','Ulme','Birke','Buche','Ampfer','Roggen','Gräser','Eiche','Wegerich','Beifuß','Ambrosia'];
        ! PollWarn0 = "";
        ! PollWarn1 = "";
        ! PollWarn2 = "";
        ! PollWarn3 = "";
        ! var code = {'kein':0, 'schwach':1, 'mäßig':2, 'stark':3};
        ! viewPollenwetter();
        ! function viewPollenwetter(){
        ! PollWarn0 = "";
        ! PollWarn1 = "";
        ! PollWarn2 = "";
        ! PollWarn3 = "";
        ! for(var i=0;i <pollenarten.length;i++) {<br="">// Objekt in Variable packen
        ! var varPoll = Pollenarten__;
        ! var varPollArt = pfad+Pollenarten__.toLowerCase();
        ! // Wert des Objektes auslesen und in neuer Variable speichern
        ! var varPollWert = getState(varPollArt).val;
        ! // weiterverwerten …
        ! log(varPollArt + " -> " + varPollWert);
        ! if (varPollWert == 3) {
        ! PollWarn3 = PollWarn3 + varPoll + " , ";
        ! }
        ! if (varPollWert == 2) {
        ! PollWarn2 = PollWarn2 + varPoll + " , ";
        ! }
        ! if (varPollWert == 1) {
        ! PollWarn1 = PollWarn1 + varPoll + " , ";
        ! }
        ! if (varPollWert == 0) {
        ! PollWarn0 = PollWarn0 + varPoll + " , ";
        ! }
        ! }
        ! log("Pollen stark : " +PollWarn3);
        ! log("Pollen mäßig : " +PollWarn2);
        ! log("Pollen schwach: " +PollWarn1);
        ! log("Pollen kein : " +PollWarn0);
        ! createState(pfad + "PollWarn.3.",0);
        ! createState(pfad + "PollWarn.2.",0);
        ! createState(pfad + "PollWarn.1.",0);
        ! createState(pfad + "PollWarn.0.",0);
        ! setState(pfad+"PollWarn.3.",PollWarn3);
        ! setState(pfad+"PollWarn.2.",PollWarn2);
        ! setState(pfad+"PollWarn.1.",PollWarn1);
        ! setState(pfad+"PollWarn.0.",PollWarn0);
        ! }
        ! schedule("5 0 * * *", viewPollenwetter);____</pollenarten.length;i++)> ____Gruß

        Jürgen____

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators last edited by

          Hallo Jürgen,

          Schön wäre es, wenn da noch wie die Summe aller pollenwarnstufen integriert wäre.

          Wenn die dann auf 0 geht, kann man damit weiterarbeiten.

          Gruß

          Rainer

          1 Reply Last reply Reply Quote 0
          • S
            Sven2013 last edited by

            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 Reply Quote 0
            • derAuge
              derAuge last edited by

              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 Reply Quote 0
              • S
                Sven2013 last edited by

                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 Reply Quote 0
                • C
                  crepp last edited by

                  @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 😛

                  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

                  1 Reply Last reply Reply Quote 0
                  • P
                    Phantomio last edited by

                    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

                    1 Reply Last reply Reply Quote 1
                    • C
                      crepp last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • P
                        Phantomio last edited by

                        Hi,

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

                        Gruß

                        Phantomio

                        1 Reply Last reply Reply Quote 0
                        • C
                          crepp last edited by

                          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

                          1 Reply Last reply Reply Quote 0
                          • C
                            crepp last edited by

                            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

                            1 Reply Last reply Reply Quote 0
                            • C
                              crepp last edited by

                              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

                              1 Reply Last reply Reply Quote 0
                              • P
                                Phantomio last edited by

                                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

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Phantomio last edited by

                                  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

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    crepp last edited by

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      Phantomio last edited by

                                      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

                                      1 Reply Last reply Reply Quote 1
                                      • P
                                        pix last edited by

                                        @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

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          Phantomio last edited by

                                          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
                                          1 Reply Last reply Reply Quote 0
                                          • C
                                            crepp last edited by

                                            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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            26
                                            5204
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo