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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. SayIt - Ausgabe bei Wetterwarnung (DWD)

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

SayIt - Ausgabe bei Wetterwarnung (DWD)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
40 Beiträge 10 Kommentatoren 6.1k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Stefnas
    schrieb am zuletzt editiert von
    #1

    Guten Morgen,

    ich würde gerne über den SayIt Adapter eine Sprachausgabe haben sobald sich der Status des DWD Adapters ändert und eine Wetterwarnung besteht. Die Sprachausgabe sollte sich dabei wie folgt zusammensetzen:

    Achtung + dwd.0.warning.headline + von + dwd.0.warning.begin + bis + dwd.0.warning.end

    Aktuell bräuchte ich erst einmal einen Ansatz wie ich die Variable des DWD Adapters auf Änderung abfrage. Könnte es bei der Ansage von Datum und Uhrzeit über dwd.0.warning.begin zu Problemen kommen die ich beachten müsste?

    Ich hoffe es hat schon jemand etwas ähnlich es umgesetzt. Aktuell habe ich über den SayIt Adapter nur eine Sprachausgabe beim Klingeln an der Haustür umgesetzt und greife hier auf ein Ereignis zu welches beim Tastendruck ausgelöst wird deshalb bin ich mir nicht ganz sicher wie ich die Änderung eines Stati abfrage.

    Danke und Gruß

    Stefnas

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      Stefnas
      schrieb am zuletzt editiert von
      #2

      Guten Abend,

      ich benötige Eure Hilfe für die Umsetzung. Ich komme aktuell nicht weiter da mir nicht wirklich klar ist wie ich den aktuellen Status korrekt abfragen soll. Bisher hab ich folgendes umgesetzt:

      var idSayIt = "sayit.0.tts.text";

      var Begin = "dwd.0.warning.begin"/Warning begin/

      var End = "dwd.0.warning.end"/Warning end/

      var Headline = "dwd.0.warning.headline"/Warning headline/

      var Severity = "dwd.0.warning.severity"/Warning severity/

      subscribe(Severity, function (obj) {

      if (obj.newState.val) {

      setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;

      }

      });

      Über die Variable "Severity" möchte ich gerne die Aussprache steuern, da mir diese hierfür am besten erscheint (0=Keine Warnung, >0=Warnung). Allerdings hänge ich genau hier seit Stunden fest. Wie frage ich den neuen Wert auf den Inhalt genau ab? Kann mir hier jemand einen Tipp geben? Ich habe hier schon etliches versucht aber nichts hat wirklich funktioniert.

      Über Eure Hilfe wäre ich echt danbkar. Gibt es irgendwo eine Übersicht der Befehle bzw. ein Dokumentation?

      Vielen lieben Dank vorab.

      Gruß

      Stefnas

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

        Hallo Stefnas,

        @Stefnas:

        Guten Abend,

        ich benötige Eure Hilfe für die Umsetzung. Ich komme aktuell nicht weiter da mir nicht wirklich klar ist wie ich den aktuellen Status korrekt abfragen soll. Bisher hab ich folgendes umgesetzt:

        var idSayIt = "sayit.0.tts.text";

        var Begin = "dwd.0.warning.begin"/Warning begin/

        var End = "dwd.0.warning.end"/Warning end/

        var Headline = "dwd.0.warning.headline"/Warning headline/

        var Severity = "dwd.0.warning.severity"/Warning severity/

        subscribe(Severity, function (obj) {

        if (obj.newState.val) {

        setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;

        }

        }); `

        im Code fehlen einige abschließende Semikolons, vielleicht ist das der Grund.

        var idSayIt = "sayit.0.tts.text";
        var Begin = "dwd.0.warning.begin"/*Warning begin*/;
        var End = "dwd.0.warning.end"/*Warning end*/;
        var Headline = "dwd.0.warning.headline"/*Warning headline*/;
        var Severity = "dwd.0.warning.severity"/*Warning severity*/;
        
        subscribe(Severity, function (obj) {
            if (obj.newState.val) {
                setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;
            }
        });
        

        Alternativ kann man var auch sparen durch

        var idSayIt = "sayit.0.tts.text",
            Begin = "dwd.0.warning.begin"/*Warning begin*/,
            End = "dwd.0.warning.end"/*Warning end*/,
            Headline = "dwd.0.warning.headline"/*Warning headline*/,
            Severity = "dwd.0.warning.severity"/*Warning severity*/;
        
        subscribe(Severity, function (obj) {
            if (obj.newState.val) {
                setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;
            }
        });
        

        Bitte beim Posten von Sourcecode immer die Code-Tags verwenden.

        Gruß,

        Pix

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

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          Stefnas
          schrieb am zuletzt editiert von
          #4

          @pix:

          im Code fehlen einige abschließende Semikolons, vielleicht ist das der Grund. `

          huch…da merkt man mal wieder das man nach einigen Stunden den Wald vor lauter Bäumen nicht mehr sieht. Vielen Dank für Deine Rückmeldung. Größeres Problem für mich ist wie ich den Status der neuen Variablen aber abfrage, hier müsste ich im Detail entweder gleich "0" oder aber ungleich "0" haben geht das so:

          if (obj.newState.val) !==0
          

          Gruß

          Stefnas

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

            Die schließende Klammer hinter die 0, die Bedingung kommt also komplett in die Klammer.

            Gesendet von meinem iPhone mit Tapatalk

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

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Stefnas
              schrieb am zuletzt editiert von
              #6

              Super Danke Pix ;-)

              Ich habe nun folgenden Code:

              var idSayIt = "sayit.0.tts.text";
              var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
              var End = getState("dwd.0.warning.end"/*Warning end*/).val;
              var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
              var Severity = "dwd.0.warning.severity"/*Warning severity*/;
              
              subscribe(Severity, function (obj) {
                  if (obj.newState.val !==0) {
                      setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;
                  }
              });
              

              Die Variable sayit.0.tts.text enthält im Anschluss auch den korrekten Wert: Achtung Amtliche WARNUNG vor STARKREGEN Gültig vom 01.09.2015 09:56 bis 01.09.2015 15:50

              Allerdings erfolgt keine Sprachausgabe wobei bei einem Klingeln an der Haustür zum Beispiel dieses erfolgt. Jemand eine Idee?

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

                Hallo Stefnas,
                @Stefnas:

                var idSayIt = "sayit.0.tts.text";
                var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                
                subscribe(Severity, function (obj) {
                    if (obj.newState.val !==0) {
                        setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;
                    }
                });
                

                Die Variable sayit.0.tts.text enthält im Anschluss auch den korrekten Wert: Achtung Amtliche WARNUNG vor STARKREGEN Gültig vom 01.09.2015 09:56 bis 01.09.2015 15:50

                Allerdings erfolgt keine Sprachausgabe wobei bei einem Klingeln an der Haustür zum Beispiel dieses erfolgt. Jemand eine Idee? `
                Der Code hat noch einen logischen Fehler:

                Bei jetzigem Stand werden die Variablen bei Scriptstart eingelesen und es wird Severity überwacht. Wenn Severity sich ändert (ungleich 0), dann werden die Inhalte der Variablen zum Zeitpunkt des Scriptstarts, nicht zum Zeitpunkt der Änderung ausgegeben.

                Deshalb besser so:

                var idSayIt = "sayit.0.tts.text";
                var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                
                subscribe(Severity, function (obj) {
                    if (obj.newState.val !==0) {
                        var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                        var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                        var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                        // zur Kontrolle, was in den Variablen drin ist, hier mal eine Logausgabe einfügen ...
                        setState (idSayIt, "Achtung " + Headline + " Gültig vom " + Begin + " bis " + End) ;
                    }
                });
                
                Grüße,
                Pix
                
                

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

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Stefnas
                  schrieb am zuletzt editiert von
                  #8

                  @pix:

                  Der Code hat noch einen logischen Fehler:

                  Bei jetzigem Stand werden die Variablen bei Scriptstart eingelesen und es wird Severity überwacht. Wenn Severity sich ändert (ungleich 0), dann werden die Inhalte der Variablen zum Zeitpunkt des Scriptstarts, nicht zum Zeitpunkt der Änderung ausgegeben.

                  Deshalb besser so: `

                  nochmals vielen Dank für den Hinweis. Habe das Script nun wie folgt abgeändert. Aktuell funktioniert auch alles nur leider wird die Variable "Headline" nicht übergeben obwohl gefüllt. Verstehe nicht wirklich warum?! Ausgabe erfolgt allerdings nur wie folgt:

                  Achtung gültig vom 01.09.2015 11:50 bis 01.09.2015 17:10

                  Die Variable sayit.0.tts.text enthält auch nur diesen Wert?

                  var idSayIt = "sayit.0.tts.text";
                  var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                  
                  subscribe(Severity, function (obj) {
                      if (obj.newState.val !==0) {
                          var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                          var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                          var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                          setState (idSayIt, "Achtung " + Headline + " gültig vom " + Begin + " bis " + End) ;
                      }
                      if (obj.newState.val ===0) {
                          setState (idSayIt, "Es sind ab sofort keine Wetterwarnungen mehr aktiv") ;
                      }
                  });
                  
                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Stefnas
                    schrieb am zuletzt editiert von
                    #9

                    hmm ich bin etwas verwirrt. sofern ich folgenden Code nutze funktioniert alles wie gewollt:

                    var idSayIt = "sayit.0.tts.text";
                    var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                    var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                    var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                    var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                    
                    subscribe(Severity, function (obj) {
                        if (obj.newState.val !==0) {
                            //var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                            //var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                            //var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                            setState (idSayIt, "Achtung " + Headline + " gültig vom " + Begin + " bis " + End) ;
                        }
                        if (obj.newState.val ===0) {
                            setState (idSayIt, "Alle Wetterwarnungen wurden aufgehoben") ;
                        }
                    });
                    

                    Eventuell test ich aber auch falsch. Mein Funktionstest erfolgt so:

                    1. Code angepasst

                    2. DWD Adapter wird auf einen warnfreien bereich eingestellt sodass die Variable "Severity" den Wert "0" hat. Im direkten Anschluss wird auch direkt vom SayIt die Meldung "Alle Wetterwarnungen wurden aufgehoben" ausgegeben

                    3. Im Anschluss setze ich den DWD Adapter auf einen Bereich für den eine Warnung besteht und es erfolgt sofort die korrekte Ausgabe "Achtung Amtliche WARNUNG vor STARKREGEN gültig vom 01.09.2015 11:50 bis 01.09.2015 17:10" da der Wert "Severity" den Wert "2" hat.

                    Man könnte ja meinen soweit alles in Ordnung und wie gewollt nur macht mich die Aussage von pix an dieser Stelle stutzig:

                    Bei jetzigem Stand werden die Variablen bei Scriptstart eingelesen und es wird Severity überwacht. Wenn Severity sich ändert (ungleich 0), dann werden die Inhalte der Variablen zum Zeitpunkt des Scriptstarts, nicht zum Zeitpunkt der Änderung ausgegeben.

                    Aber nach meinem Funktionstest ist dem nicht so oder? Ich bin mir aktuell nicht ganz sicher ob ich etwas übersehen habe und habe aus diesem Grund nochmals anders getestet:

                    1. Script deaktiviert

                    2. Bereich auf einen Warnfeien Bereich gesetzt sodass alle Variablen den DWD Adpaters leer sind und Severity den Wert "0" hat

                    3. Aktivieren des Adapters

                    4. Ändern des DWD Adapters auf einen Bereich mit Warnung

                    5. Ausgabe wie von pix geschrieben falsch da alle Variablen leer sind

                    Nun stellt sich die Frage warum werden nur 2/3 Variablen bei folgendem Code korrekt ausgegeben (Begin und End)? By the way wie füge ich die LOG Funktion der Variablen ein?

                    var idSayIt = "sayit.0.tts.text";
                    var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                    //var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                    //var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                    //var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                    
                    subscribe(Severity, function (obj) {
                        if (obj.newState.val !==0) {
                            var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                            var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                            var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                            setState (idSayIt, "Achtung " + Headline + " gültig vom " + Begin + " bis " + End) ;
                        }
                        if (obj.newState.val ===0) {
                            setState (idSayIt, "Alle Wetterwarnungen wurden aufgehoben") ;
                        }
                    });
                    

                    Gruß

                    Stefnas

                    1 Antwort Letzte Antwort
                    0
                    • derAugeD Offline
                      derAugeD Offline
                      derAuge
                      schrieb am zuletzt editiert von
                      #10

                      Super Sache

                      heute wurde das Gewitter angesagt.

                      Gruß

                      Jürgen
                      2678_ical.png

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Stefnas
                        schrieb am zuletzt editiert von
                        #11

                        @derAuge:

                        Super Sache

                        heute wurde das Gewitter angesagt.

                        Gruß

                        Jürgen `

                        Guten Abend Jürgen,

                        wie sieht den Dein Script aus? Meins funktioniert leider nicht da die Ausgabe der Headline nicht funktioniert, und das ist ja mit eines der wichtigen Informationen die ausgegeben werden sollen ;-) Freut mich aber das es bei Dir funktioniert.

                        Gruß

                        Stefnas

                        1 Antwort Letzte Antwort
                        0
                        • derAugeD Offline
                          derAugeD Offline
                          derAuge
                          schrieb am zuletzt editiert von
                          #12

                          da muss ich doch noch mal besser hin hören.

                          Die erste Ausgabe: Gong kam, dann text….. ich war erschrocken :roll: wo kommt das her .... nicht genau zugehört.

                          Also weiß ich nicht was gespochen wurde

                          Die zweite Aussage: Alles ist gut :)

                          Der Script:

                          var idSayIt = "sayit.0.tts.text";
                          var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                          var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                          var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                          var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                          
                              subscribe(Severity, function (obj) {
                                  if (obj.newState.val !==0) {
                                      //var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                                      //var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                                      //var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                                      setState (idSayIt, "Achtung Wetterwarnungen Achtung " + Headline + " gültig vom " + Begin + " bis " + End) ;
                                  }
                                  if (obj.newState.val ===0) {
                                      setState (idSayIt, "Alle Wetterwarnungen des Deutschen Wetterdienst wurden aufgehoben") ;
                                  }
                              });
                          
                          

                          Gruß

                          Jürgen

                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            baluderbär
                            schrieb am zuletzt editiert von
                            #13

                            Hallo zusammen,

                            ich beschäftige mich erst seit kurzem mit iobroker und konnte schon einiges von hier umsetzen. Momentan bin ich dran, den Sayit-Adapter umzusetzen.

                            Momentan nutze ich das Skript von oben (ein Post vor meinem).

                            Leider werden die Werte der Variablen nicht vorgelesen. Momentan höre ich folgendes:

                            "Achtung Wetterwarnungen Achtung gültig vom bis"

                            D.h. Die Headline, Beginn und Ende wird nicht ausgegeben. Woran kann das liegen?

                            Zur Info: Der Text "Alle Wetterwarnungen wurden aufgehoben" wird auch vorgelesen.

                            Schon mal Danke für Eure Antworten

                            Viele Grüße

                            Balu

                            ioBroker auf VM Proxmox (Intel NUC-Kit i3-7100U 2.4GHz HD620 NUC7I3BNH)

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

                              Hallo Balu,

                              __die Daten des Adapters werden vom Skript nicht eingelesen. Kann es sein,d ass du den DWD-Adapter noch nicht aktiviert hast und daher die Datenpunkte leer bleiben?

                              Im Reiter Instanzen hinter dwd.0 auf den roten Knopf drücken, damit er grün wird und der Adapter staret.__

                              :o Das war mein erster Gedanke, dann habe ich mir das Skript angesehen.

                              Du musst natürlich in der ersten if-Abfrage im subscribe in drei Zeilen jeweils die Kommentarbefehle "//" löschen, sonst wird diese Zeile nicht ausgeführt.

                              Ausserdem dann ganz oben die ….

                              .. ich kürze mal ab:

                              var idSayIt = "sayit.0.tts.text";
                              var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                              
                                  on(Severity, function (obj) {
                                      if (obj.newState.val !==0) {
                                          var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                                          var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                                          var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                                          setState (idSayIt, "Achtung Wetterwarnungen Achtung " + Headline + " gültig vom " + Begin + " bis " + End) ;
                                      }
                                      if (obj.newState.val === 0) {
                                          setState(idSayIt, "Alle Wetterwarnungen des Deutschen Wetterdienst wurden aufgehoben") ;
                                      }
                                  });
                              
                              

                              Gruß

                              Pix

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

                              1 Antwort Letzte Antwort
                              0
                              • B Offline
                                B Offline
                                baluderbär
                                schrieb am zuletzt editiert von
                                #15

                                Hallo Pix,

                                die Antwort kam ja schneller als ich zu Abend essen konnte. Danke.

                                Im Grunde genommen funktioniert es. Jetzt hätte ich noch zwei Fragen:

                                1. Wieso wird beim Datum 10. April 2016 und 10. Mai 2016 vorgelesen? Anstelle von 4. und 5. Oktober. Im Sayit-Adapter habe ich "Google Deutsch" ausgewählt.

                                2. Was muss ich ändern, damit auch die "description" vorgelesen wird? Einfach analog zu den anderen Werten eine Variable anlegen? Habe folgendes probiert:

                                var Description = getState("dwd.0.warning.description"/*Warning description*/).val;
                                setState (idSayIt, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + Description);
                                

                                –> geht jedoch nicht. Was mache ich hier falsch?

                                Viele Grüße

                                Balu

                                ioBroker auf VM Proxmox (Intel NUC-Kit i3-7100U 2.4GHz HD620 NUC7I3BNH)

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

                                  Hallo Balu,

                                  schön, dass es geht.
                                  @baluderbär:

                                  1. Wieso wird beim Datum 10. April 2016 und 10. Mai 2016 vorgelesen? Anstelle von 4. und 5. Oktober. Im Sayit-Adapter habe ich "Google Deutsch" ausgewählt. `
                                  Vermutlich sind die Daten im Datenpunkt des Adapters vom April. Kann sein, dass der Adapter seitdem nicht mehr korrekt gestartet wurde. Prüfe mal dessen Einstellungen. Du kannst den Wert des Datenpunktes ja im Reiter Objekte in Admin sehen. Einfach mal "dwd.0.warning.begin" eingeben.

                                  @baluderbär:

                                  Was muss ich ändern, damit auch die "description" vorgelesen wird? Einfach analog zu den anderen Werten eine Variable anlegen? Habe folgendes probiert:

                                  Code:

                                  var Description = getState("dwd.0.warning.description"/Warning description/).val;

                                  setState (idSayIt, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + Description);

                                  –> geht jedoch nicht. Was mache ich hier falsch? `
                                  Der Code ist theoretisch korrekt. Man würde zwischen End und Description noch ein Leerzeichen oder zB einen Doppelpunkt setzen

                                  setState (idSayIt, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);
                                  

                                  Was meinst du mit geht nicht? Keine Ansage? Wird im Log die korrekte Sayit-Abarbeitung angezeigt?

                                  Füge mal eine Logausgabe zur Kontrolle ein:````
                                  Log ("Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);

                                  
                                  Gruß
                                  
                                  Pix

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • B Offline
                                    B Offline
                                    baluderbär
                                    schrieb am zuletzt editiert von
                                    #17

                                    Hallo Pix,

                                    das Problem mit dem Datum ist, dass er wohl ein "englisches" Format nimmt. Auch heute ließt er wieder den Monat als Tag und den Tag als Monat vor.

                                    Anstatt von 5. Oktober (05.10.) liest er 10. Mai vor. Sayit-Adapter ist auch korrekt.

                                    Hab deine letzte Teile für die LOG-Auswertung angefügt. So richtig oder an der falschen Stelle?

                                    var idSayIt = "sayit.0.tts.text";
                                    var Severity = "dwd.0.warning.severity"/*Warning severity*/;
                                    
                                        on(Severity, function (obj) {
                                            if (obj.newState.val !==0) {
                                                var Begin = getState("dwd.0.warning.begin"/*Warning begin*/).val;
                                                var End = getState("dwd.0.warning.end"/*Warning end*/).val;
                                                var Headline = getState("dwd.0.warning.headline"/*Warning headline*/).val;
                                                var Description = getState("dwd.0.warning.description"/*Warning description*/).val;
                                                setState (idSayIt, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);
                                            }
                                            if (obj.newState.val === 0) {
                                                setState(idSayIt, "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ;
                                            }
                                        });
                                        Log ("Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);
                                    

                                    Mit "keine Ansage" meinte ich, dass er nur die Headline mit Anfang und Ende vorliest - aber keine Description.

                                    Gruß Balu
                                    1525_anzeige.jpg
                                    1525_objekte.jpg

                                    ioBroker auf VM Proxmox (Intel NUC-Kit i3-7100U 2.4GHz HD620 NUC7I3BNH)

                                    1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      baluderbär
                                      schrieb am zuletzt editiert von
                                      #18

                                      Hallo Pix,

                                      hab es nun abgeändert in:
                                      ` > var idSayIt = "sayit.0.tts.text";

                                      var Severity = "dwd.0.warning.severity"/Warning severity/;

                                      on(Severity, function (obj) {

                                      if (obj.newState.val !==0) {

                                      var Begin = getState("dwd.0.warning.begin"/Warning begin/).val;

                                      var End = getState("dwd.0.warning.end"/Warning end/).val;

                                      var Headline = getState("dwd.0.warning.headline"/Warning headline/).val;

                                      var Description = getState("dwd.0.warning.description"/Warning description/).val;

                                      setState (idSayIt, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);

                                      }

                                      if (obj.newState.val === 0) {

                                      setState(idSayIt, "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ;

                                      }

                                      Log ("Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);

                                      }); `
                                      Jetzt erhalte ich im Log folgendes:

                                      19:17:18.192 [info] javascript.0 Stop script script.js.common.DWD_sayit

                                      19:17:18.213 [info] javascript.0 Start javascript script.js.common.DWD_sayit

                                      19:17:18.214 [info] javascript.0 script.js.common.DWD_sayit: registered 1 subscription and 0 schedules

                                      19:17:55.558 [error] host. ReferenceError: Log is not defined at Object. (script.js.common.DWD_sayit:15:5) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1251:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:571:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3018:17) at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3037:28) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:567:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:245:17) at that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2120:37) at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:88:25) at emitThree (events.js:97:13) at RedisClient.emit (events.js:175:7)

                                      ioBroker auf VM Proxmox (Intel NUC-Kit i3-7100U 2.4GHz HD620 NUC7I3BNH)

                                      1 Antwort Letzte Antwort
                                      0
                                      • BluefoxB Offline
                                        BluefoxB Offline
                                        Bluefox
                                        schrieb am zuletzt editiert von
                                        #19

                                        @baluderbär:

                                        Hallo Pix,

                                        hab es nun abgeändert in:
                                        ` > var idSayIt = "sayit.0.tts.text";

                                        var Severity = "dwd.0.warning.severity"/Warning severity/;

                                        on(Severity, function (obj) {

                                        if (obj.newState.val !==0) {

                                        var Begin = getState("dwd.0.warning.begin"/Warning begin/).val;

                                        var End = getState("dwd.0.warning.end"/Warning end/).val;

                                        var Headline = getState("dwd.0.warning.headline"/Warning headline/).val;

                                        var Description = getState("dwd.0.warning.description"/Warning description/).val;

                                        setState (idSayIt, "Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);

                                        }

                                        if (obj.newState.val === 0) {

                                        setState(idSayIt, "Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben") ;

                                        }

                                        Log ("Achtung Wetterwarnungen " + Headline + " gültig vom " + Begin + " bis " + End + ': ' + Description);

                                        }); `
                                        Jetzt erhalte ich im Log folgendes:

                                        19:17:18.192 [info] javascript.0 Stop script script.js.common.DWD_sayit

                                        19:17:18.213 [info] javascript.0 Start javascript script.js.common.DWD_sayit

                                        19:17:18.214 [info] javascript.0 script.js.common.DWD_sayit: registered 1 subscription and 0 schedules

                                        19:17:55.558 [error] host. ReferenceError: Log is not defined at Object. (script.js.common.DWD_sayit:15:5) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1251:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:571:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3018:17) at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3037:28) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:567:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:245:17) at that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2120:37) at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:88:25) at emitThree (events.js:97:13) at RedisClient.emit (events.js:175:7) `
                                        log muss man klein schreiben

                                        1 Antwort Letzte Antwort
                                        0
                                        • B Offline
                                          B Offline
                                          baluderbär
                                          schrieb am zuletzt editiert von
                                          #20

                                          Hallo bluefox, danke.

                                          Zwar funktioniert nun die LOG-Ausgabe, jedoch höre ich immer noch nicht alles.

                                          sayit-0 2016-10-05 20:06:33.149 info saying: Achtung Wetterwarnungen gültig vom 05.10.2016 20:00 bis 06.10.2016 20:00:

                                          Datum wird immer noch falsch vorgelesen. Headline und Description fehlen.

                                          Sobald die Meldung verschwindet erscheint folgendes im LOG:

                                          __sayit-0 2016-10-05 20:09:57.632 info saying: Alle Wetterwarnungen des Deutschen Wetterdienstes wurden aufgehoben

                                          host-ioBroker-Pi 2016-10-05 20:09:55.132 info instance system.adapter.dwd.0 terminated with code 0 (OK)

                                          sayit-0 2016-10-05 20:09:54.627 info saying: /opt/iobroker/node_modules/iobroker.sayit/gong.mp3

                                          javascript-0 2016-10-05 20:09:54.621 info script.js.common.DWD_sayit: Achtung Wetterwarnungen undefined gültig vom undefined bis undefined: undefined

                                          dwd-0 2016-10-05 20:09:54.352 info starting. Version 2.1.1 in /opt/iobroker/node_modules/iobroker.dwd__

                                          Gruß Balu

                                          ioBroker auf VM Proxmox (Intel NUC-Kit i3-7100U 2.4GHz HD620 NUC7I3BNH)

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          784

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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