Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Usertreffen - Wetter E-Mail

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Usertreffen - Wetter E-Mail

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

      Hallo zusammen,

      beim Ufertreffen wurde heute erklärt, dass man morgens eine E-Mail mit den Wetterdaten versenden kann.

      Kann mir einer erklären wie?

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        Das war ein Beispiel, dass mit ioBroker kaum Grenzen gesetzt sind. Das Beispiel kannst Du mit Javascript realisieren.

        Du benötigst funktionsfähig eingerichtet:

        • javascript-Adapter

        • einen Wetter Adapter (DWD, yr, …)

        • den Email-Adapter (oder Telegram, Pushover, usw.)

        Die Schritte dafür:

        Um 7:00 Uhr morgens ausführen:

        // wird um 07:00 ausgeführt
        schedule({hour: 7, minute: 0}, function (){
        	// was soll passieren
        });
        

        DIe Werte für die Vorhersage, z.B. aus yr:

        var tempMax	= getState("yr.0.forecast.day0.temperature_max").val;
        
        

        Und die Anweisung eine Email zu versenden:

        (Funktionsfähig eingerichteter Email Adapter)

        sendTo("email", {
        	from:    "mein.iobroker@gmail.com",
            to:      "meine.frau@web.de",
            subject: "So wird das Wetter heute",
            text:    "Es wird heute bis zu " + tempMax + "°C warm"
        });
        

        (das ist die lange Version für eine Email. Bei den Standard-Empfaänger/ Sender, kann man es auch kürzer schreiben).

        In der Email kannst Du noch alles mögliche an anderen Informationen reinschreiben (Werte eigener Sensoren, Unwetterwarnung, …).

        Der ganze Code sieht dann so aus (ungetestet):

        // wird um 07:00 ausgeführt
        schedule({hour: 7, minute: 0}, function (){
        	var tempMax	= getState("yr.0.forecast.day0.temperature_max").val;
        
        	sendTo("email", {
        		from:    "mein.iobroker@gmail.com",
            	to:      "meine.frau@web.de",
            	subject: "So wird das Wetter heute",
            	text:    "Es wird heute bis zu " + tempMax + "°C warm"
        	});
        });
        
        

        Wenn man z.B. auch zu Telegram (oder nur zu Telegram) was senden möchte, verwendet man statt sentTo("email" … :

        sendTo('telegram.1' ,"mein Text: " + tempMax);
        
        1 Reply Last reply Reply Quote 0
        • D
          DiJaexxl last edited by

          Hallo ruhr70,

          ich habe den E-Mail Adapter installiert. Testmail geht auch raus 🙂

          Wetter Adapter waren installiert.

          Ich habe sicherheitshalber die ID über ID einfügen auch einmal ersetzt.

          Cronjob habe ich auf minütlich gesetzt, aber es geht nix raus.

          Die Frage ist, muss ich beim Java Script Adapter noch ein NPM Modul mit bei der Instanz angeben?

          Gruss Dirk

          ! "* * * * *";
          ! schedule({hour: 22, minute: 10}, function (){
          ! var tempMax = getState("yr.0.forecast.day0.temperature_max").val;
          ! sendTo("email", {
          ! from: "wohnung@jaeschke-online.net",
          ! to: "Dirk@Dirk-Jaeschke.com",
          ! subject: "So wird das Wetter heute",
          ! text: "Es wird heute bis zu " + tempMax + "°C warm"
          ! });
          ! });

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

            Hallo Dirk,
            @DiJaexxl:

            "* * * * *";
            schedule({hour: 22, minute: 10}, function (){
               var tempMax   = getState("yr.0.forecast.day0.temperature_max").val;
            
               sendTo("email", {
                  from:    "wohnung@jaeschke-online.net",
                   to:      "Dirk@Dirk-Jaeschke.com",
                   subject: "So wird das Wetter heute",
                   text:    "Es wird heute bis zu " + tempMax + "°C warm"
               });
            });
            ```` `  
            

            Die erste Zeile brauchst du nicht.

            "* * * * *";
            ````Minütlich ginge so:
            

            schedule("* * * * *", function (){
            var tempMax = getState("yr.0.forecast.day0.temperature_max").val;

            sendTo("email", {
            from: "wohnung@jaeschke-online.net",
            to: "Dirk@Dirk-Jaeschke.com",
            subject: "So wird das Wetter heute",
            text: "Es wird heute bis zu " + tempMax + "°C warm"
            });
            });

            Ist der Email Adapter aktiviert (Reiter Instanzen auf das rote Dreieck geklickt)?
            
            Gruß
            
            Pix
            1 Reply Last reply Reply Quote 0
            • D
              DiJaexxl last edited by

              Hallo und guten Morgen Pix,

              ja der E-Mail Adapter läuft.

              Ich hatte via dem Cron Job Button die Sterne erzeugt. Gedankengang war, dass das Script minütlich aufgerufen wird, und im Script dann steht, du sendest um 22:10 die Mail.

              Ich habe die Zeit nun noch einmal auf 7:15 gestellt, aber es geht noch keine Mail raus.

              Das ist mein erstes Script, kann es sich um prinzipelle Probleme handeln?

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                lass zum testen das schedule weg. Dann geht beim Skriptstart direkt die Email raus

                Gesendet von iPhone mit Tapatalk

                1 Reply Last reply Reply Quote 0
                • D
                  DiJaexxl last edited by

                  Man man, das muss doch zu schaffen sein.

                  Das ist das aktuelle Script:

                  // wird um 07:30 ausgeführt
                     var tempMax   = getState("yr.0.forecast.day0.temperature_max").val;
                  
                     sendTo("email", {
                        from:    "wohnung@jaeschke-online.net",
                         to:      "Dirk@Dirk-Jaeschke.com",
                         subject: "So wird das Wetter heute",
                         text:    "Es wird heute bis zu " + tempMax + "°C warm"
                  });
                  

                  Das zeigt das Log Script bei ausführen an:

                  jjavascript.0	26 09:16:21.585	info	javascript.0 received all objects
                  javascript-0	26 09:16:20.315	info	received all states
                  javascript-0	26 09:16:18.595	info	requesting all objects
                  javascript-0	26 09:16:18.592	info	requesting all states
                  javascript-0	26 09:16:18.572	info	starting. Version 2.1.3 in /opt/iobroker/node_modules/iobroker.javascript
                  host-ioBroker	26 09:16:16.371	info	instance system.adapter.javascript.0 started with pid 16296
                  host-ioBroker	26 09:16:13.913	info	instance system.adapter.javascript.0 terminated with code 0 (OK)
                  host-ioBroker	26 09:16:13.840	info	stopInstance system.adapter.javascript.0 killing pid 14721
                  host-ioBroker	26 09:16:13.838	info	stopInstance system.adapter.javascript.0
                  
                  

                  Die E-Mail-Adresse habe ich aus dem Adapter kopiert, da kann nix falsch sein.

                  Der Datapunkt ist auch richtig. Der Scripteditor zeigt keinen Fehler an.

                  Das einzige was ich haben könnte, dass hab ich aber schon einmal gefragt.

                  Bei der Java Script Instanz ist das Feld "Zusätzliche NPM-Module" leer. Benötige ich nicht doch etwas?

                  1 Reply Last reply Reply Quote 0
                  • ruhr70
                    ruhr70 last edited by

                    ist das Skript aktiv?

                    grün?

                    [EDIT}

                    Das Skript sollte jedes Mal, wenn Du es startest eine Email versenden.

                    Erweitere das Skript bitte mal um ein log() in der zweiten Zeile:

                    var tempMax   = getState("yr.0.forecast.day0.temperature_max").val;
                    log("max. Temperatur heute: " + tempMax);
                    
                    

                    Wurde das Skript gestartet, wird der Logeintrag geschrieben und Du weisst, dass

                    a) dass yr funktioniert und einen Wert liefert

                    b) das Skript auch wirklich aktiv ist 😉

                    Ich vermute fast, dass Du es nicht auf grün geschaltet hast.

                    Jedes mal, wenn Du nun zwischen "rot" und "grün" wechselst, sollte ein Log geschrieben werden und eine Email rausgehen.

                    327_skript_aktiv.jpg

                    Und die beiden Email Adressen in "from" und "to" sind nicht vertauscht?

                    Hinter "from" gehört die Email-Adresse rein, von der Du senden willst und die im Adapter in der Instanz konfiguriert ist.

                    Das Log sollte dann so aussehen:

                    email-0	26 13:16:48.325	info	sent to Dirk@Dirk-Jaeschke.com
                    email-0	26 13:16:46.950	info	Send email: {"from":"wohnung@jaeschke-online.net","to":"Dirk@Dirk-Jaeschke.com","subject":"So wird das Wetter heute","text":"Es wird heute bis zu 22°C warm"}
                    javascript-2	26 13:16:46.945	info	script.js.Test.Test_temp: registered 0 subscriptions and 0 schedules
                    javascript-2	26 13:16:46.944	info	script.js.Test.Test_temp: max. Temperatur heute: 22
                    javascript-2	26 13:16:46.942	info	Start javascript script.js.Test.Test_temp
                    

                    Das "Start javascript script.js. …" vermisse ich bei Dir.

                    Daher wirklich die Vermutung, dass Du das Skript nicht aktiviert hast.

                    Da ich mit Deinen Email-Adressen getestet habe, hätte ich eigentlich eine Fehlermeldung erwartet, da die Absender-Adresse eine ungültige ist. Du dürftest jetzt 2-3 Testemails von mir erhalten haben 😉

                    Aus meiner Sicht ist das ein Fehler im Email-Adapter, wenn ich mit einem ungültigen Absender eine Email verschicken kann. In der verschickten Email steht wieder die Email-Adresse aus dem Email-Adapter drin.

                    1 Reply Last reply Reply Quote 0
                    • D
                      DiJaexxl last edited by

                      Hallo,

                      deine Hardkopie hat geholfen!!!

                      Mein Fehler war, es war mein erstes Script und ich habe es unter global einsortiert.

                      Habe die Logzeile einkopiert und einen Test Zweig aufgemacht.

                      Nun geht es 🙂

                      DANKE, DANKE, DANKE

                      1 Reply Last reply Reply Quote 0
                      • ruhr70
                        ruhr70 last edited by

                        @DiJaexxl:

                        Mein Fehler war, es war mein erstes Script und ich habe es unter global einsortiert.

                        Habe die Logzeile einkopiert und einen Test Zweig aufgemacht. `

                        Da wäre ich jetzt nicht drauf gekommen…

                        Du kannst Dein Skript einordnen, wo Du möchtest, nur nicht unter global 😉

                        Alle Skripte im Ordner global werden vor allen anderen Skripten kopiert.

                        @Bluefox: vielleicht kann man den Order in der Ansicht speziell markieren (abgesetzt, farbig, …) oder anderweitig auf die besondere Funktion hinweisen (PopUp beim Speichern eines Skripts, Infotext, ...).

                        Viel Spaß beim experimentieren. mit sendTo() kannst Du noch einiges mehr machen (Pushover, Telegram, ...).

                        1 Reply Last reply Reply Quote 0
                        • D
                          DiJaexxl last edited by

                          Hallo zusammen,

                          ich habe nun dieses Script am laufen:

                          // wird um 06:30 ausgeführt
                          schedule("30 6 * * *", function (){
                             var tempDay0Max   = getState("yr.0.forecast.day0.temperature_max").val;
                             var tempDay0Text  = getState("yr.0.forecast.day0.text").val;
                              log("max. Temperatur heute: " + tempDay0Max); 
                              sendTo("email", {
                                from:    "wohnung@jaeschke-online.net",
                                 to:      "Dirk@Dirk-Jaeschke.com",
                                 subject: "So wird das Wetter heute - " + tempDay0Text,
                                 text:    "Hallo und guten Morgen Dirk, es wird heute in Bensberg bis zu " + tempDay0Max + "°C warm."
                             }); 
                             });
                          

                          Wie binde ich diesen HTML Link

                          http://www.yr.no/place/Germany/Nordrhein-Westfalen/Bensberg/avansert_meteogram.png
                          

                          In den Text ein, so dass das Bild dargestellt wird in der E-Email?

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

                            Steht in der Doku von iobroker.email

                            https://github.com/ioBroker/ioBroker.em … /README.md

                            Email im HTML Format

                            Gruß

                            Pix

                            Gesendet mit Tapatalk

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            909
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            1766
                            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