Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Fehler im script nach Update Adapter

    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

    Fehler im script nach Update Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki Developer @wendy2702 last edited by

      @wendy2702
      Jo, heute abend ändere ich das. 🙂

      1 Reply Last reply Reply Quote 1
      • wendy2702
        wendy2702 last edited by

        Danke!

        👍

        1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @wendy2702 last edited by

          @wendy2702 nachdem ich im sayit die Sprache auf AWS Polly gestellt habe, kam nun auch eine Ansage

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

            OK.

            Das habe ich schon aktiv seitdem es diese Möglichkeit gibt.

            1 Reply Last reply Reply Quote 0
            • T
              ticaki Developer last edited by ticaki

              Bestellte Änderungen eingefügt. 🙂

              Hab die Pushdiensteinstellung geändert sollte selbst erklärend sein.
              Die Formatierung von Datum/Zeit ist oben im Script und kann angepasst werden.

              EDIT: die Pusheinstellungen hab ich geändert, weil mir die Fehlermeldungen wegen fehlendem SayIt auf den Keks gingen 🙂

              /* ************************************************************************* */
              /*             Script zum Übertragen der DWD-Wetterwarnungen über            */
              /*             Telegram, Pushover, Home24-Mediaplayer oder SayIt             */
              /*     mit freundlicher Unterstützung von Paul53 (Tausend Dank nochmals)     */
              /*                    Stand: 130022017    PrinzEisenherz1                    */
              /*                                                                           */
              /*                                                                           */
              /*     - Fehlerbehebung z.B. 5 gültig bis 5                                  */
              /*                                                                           */
              /*                                                                           */
              /*                                                                           */
              /*                                                                           */
              /*                          Variante für 5-warnings                          */
              /*                                                                           */
              /* ************************************************************************* */
              var request = require('request');
              
              /* Nachrichten-Dienst festlegen */
              /* Konstanten nicht verändern */
              const TELEGRAM = 1; 
              const PUSHOVER = 2;
              const EMAIL = 4;
              const SAYIT = 8;
              var pushdienst=0; 
              //pushdienst+= TELEGRAM;          // Auskommentieren zum aktivieren
              //pushdienst+= PUSHOVER;          // Auskommentieren zum aktivieren
              //pushdienst+= EMAIL;             // Auskommentieren zum aktivieren
              //pushdienst+= SAYIT;             // Auskommentieren zum aktivieren
              
              
              var senderEmailID = ""; // mit Sender Emailadresse füllen. email Adapter muß installiert sein
              var empfaengerEmailID = "";// mit Empfänger Emailadresse füllen.
              
              // Filter einstellungen
              const minlevel = 0 // Warnungen gleich oder unterhalb dieses Levels nicht senden;
              const maxhoehe = 1000 // Warnung für eine Höhe oberhalb dieses Wertes nicht senden
              
              //Formatierungsstring für Datum/Zeit Alternative "TT.MM.YYYY SS:mm"
              const formatierungString = "TT.MM.YY SS:mm";
              
              
              /* Konfiguration Sprachausgabe über Home24-Mediaplayer */
              var idSprachausgabe = false;   // Wenn zusätzlich eine Sprachausgabe erfolgen soll dann auf true
              var idMediaplayer = "192.168.178.68:50000"; // Eingabe IP-Adresse incl. Port für Home24-Mediaplayer
              
              /* Konfiguration Sprachausgabe über SayIt */
              var idSprachausgabeSayIt = true;   // Wenn zusätzlich eine Sprachausgabe über SayIt erfolgen soll dann auf true
              var idSayIt = "sayit.0.tts.text";
              var lautstaerke = 60;
              
              /* Trigger für Wetterwarnungen */
              var idDescription0 = "dwd.0.warning.object";
              var idDescription1 = "dwd.0.warning1.object";
              var idDescription2 = "dwd.0.warning2.object";
              var idDescription3 = "dwd.0.warning3.object";
              var idDescription4 = "dwd.0.warning4.object";
              
              /* Arrays festlegen */
              var newDescriptions = [5];
              var oldDescriptions = [5];
              var newHeadlines = [5];
              var oldHeadlines = [5];
              var newBegins = [5];
              var oldBegins = [5];
              var newEnds = [5];
              var oldEnds = [5];
              var timer = null;
              /* aktivieren bzw erstmaliges Befüllen der arrays */
              newDescriptions[0] = '';
              newDescriptions[1] = '';
              newDescriptions[2] = '';
              newDescriptions[3] = '';
              newDescriptions[4] = '';
              oldDescriptions[0] = '';
              oldDescriptions[1] = '';
              oldDescriptions[2] = '';
              oldDescriptions[3] = '';
              oldDescriptions[4] = '';
              
              newHeadlines[0] = '';
              newHeadlines[1] = '';
              newHeadlines[2] = '';
              newHeadlines[3] = '';
              newHeadlines[4] = '';
              oldHeadlines[0] = '';
              oldHeadlines[1] = '';
              oldHeadlines[2] = '';
              oldHeadlines[3] = '';
              oldHeadlines[4] = '';
              
              newBegins[0] = '';
              newBegins[1] = '';
              newBegins[2] = '';
              newBegins[3] = '';
              newBegins[4] = '';
              oldBegins[0] = '';
              oldBegins[1] = '';
              oldBegins[2] = '';
              oldBegins[3] = '';
              oldBegins[4] = '';
              
              newEnds[0] = '';
              newEnds[1] = '';
              newEnds[2] = '';
              newEnds[3] = '';
              newEnds[4] = '';
              oldEnds[0] = '';
              oldEnds[1] = '';
              oldEnds[2] = '';
              oldEnds[3] = '';
              oldEnds[4] = '';
              
              function check() {
                /* Bereich für 'Alle Wetterwarnungen wurden aufgehoben' */
                if(newDescriptions[0] === "") {
                  MeldungSpracheDWD = 'Achtung' + '  .  ' + 'Alle Warnmeldungen des DWD wurden aufgehoben';
                  /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                  if((pushdienst & SAYIT)!=0 && idSprachausgabe === true){
                    var Url = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                    request(Url);
                  }
              
                  /* Bereich für Sprachausgabe SayIt im Zeitraum */
                  var ENDE= '22:30';                     // Ende immer 22:30h
                  var START;
              
              
                  schedule("0 6 * * *", function (){                                  //ausgelöst jeden Tag um 6h morgens; prüft, ob Wochenende ist
                    var date = new Date();
                    var n = date.getDay();
                    var weekend = 0;
                    weekend = (n === 0 || n == 6) ? 1 : 0;
              
                    if(weekend == 1){                     // wenn Wochenende, dann setze Start auf 9h, sonst 6:45h
                      START = '9:00';
                    }
                    else{
                      START = '6:45';
                    }
              
                  });
              
              
                  /* Bereich für Sprachausgabe über SayIt */
                  if((pushdienst & SAYIT)!=0 && idSprachausgabeSayIt === true && compareTime(START, ENDE, 'between')){                  // Ansage über Sayit nur im definierten Zeitbereich
                    setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                  }
                  if ((pushdienst & TELEGRAM)!=0 ) {
                    setTimeout(()=>(sendTo ("telegram.0", 'Alle Warnmeldungen des DWD wurden aufgehoben')), 3 * 1000);
                  }
                  if ((pushdienst & PUSHOVER)!=0 ) {
                    sendTo("pushover.0", 'Alle Warnmeldungen des DWD wurden aufgehoben');
                  }
                  if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID !='') {
                    sendEmail('Wetterentwarnung des DWD(iobroker)','Alle Warnmeldungen des DWD wurden aufgehoben');
                  }
              
                  /* alle Sicherungen Wetterwarnung löschen */
                  oldHeadlines = newHeadlines.slice();
                  oldDescriptions = newDescriptions.slice();
                  oldBegins = newBegins.slice();
                  oldEnds = newEnds.slice();
                  return;
                }
              
                /* Variablen für Meldungen Text */
                var MeldungOld = '';
                var MeldungNew = '';
                /* Variablen für Meldungen Sprache */
                var MeldungSpracheDWD = '';
                var MeldungNewSprache = '';
                var MeldungOldSprache = '';
                var AllEmailMsg = '';
              
                var headline;
                var description;
                var begin;
                var end;
                var i;
                var warn;
              
                /* Bereich für 'Wetterwarnung gültig bis wurde aufgehoben' */
                for(i = 0; i < 5; i++) {
                  warn = 'dwd.0.warning';
                  if(i) warn = warn + i;
                  headline = oldHeadlines[i];
                  description = oldDescriptions[i];
                  begin = oldBegins[i];
                  end = oldEnds[i];
                  if(newDescriptions.indexOf(description) == -1 && description !== '' && description !== undefined) {
                    MeldungOld = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben';
                    MeldungOldSprache = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben' + '  .  ';
                    if ((pushdienst & TELEGRAM)!=0) {
                      setTimeout(()=>(sendTo ("telegram.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben")), 3 * 1000);
                    }
                    if ((pushdienst & PUSHOVER)!=0) {
                      sendTo("pushover.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben");
                    }
                    if ((pushdienst & EMAiL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                      AllEmailMsg+="Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben"+'\n';
                    }
                    /* Verknüpfen aller aufgehobenen Wetterwarnungen */
                    if(MeldungOldSprache !== "" && MeldungOldSprache !== undefined){
                      MeldungSpracheDWD = MeldungSpracheDWD + MeldungOldSprache;
                    }
                  }
                }
              
                /* Bereich für 'Neue Amtliche Wetterwarnung' */
                for(i = 0; i < 5; i++) {
                  warn = 'dwd.0.warning';
                  if(i) warn = warn + i;
                  headline = newHeadlines[i];
                  description = newDescriptions[i];
                  begin = newBegins[i];
                  end = newEnds[i];
                  if(oldDescriptions.indexOf(description) == -1 && description !== "" && description !== undefined) {
                    MeldungNew = headline + "\ngültig vom " + begin + " Uhr bis " + end + " Uhr\n" + description;
                    /* Entfernen °C für Sprachausgabe */
                    var replaceDescription0 = entferneDatenpunkt(description);
                    MeldungNewSprache = headline + " gültig vom " + begin + " Uhr, bis " + end + " Uhr. " + replaceDescription0 + '  .  ';
                    if ((pushdienst & TELEGRAM)!=0) {
                      setTimeout(()=>(sendTo ("telegram.0", MeldungNew)), 3 * 1000);
                    }
                    if ((pushdienst & PUSHOVER)!=0) {
                      sendTo("pushover.0", MeldungNew);
                    }
                    if ((pushdienst & EMAIL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                      AllEmailMsg+=MeldungNew+'\n';
                    }
                    /* Verknüpfen aller neuen Warnmeldungen */
                    if(MeldungNewSprache !== "" && MeldungNewSprache !== undefined){
                      MeldungSpracheDWD = MeldungSpracheDWD + MeldungNewSprache;
                    }
                  }
                }
                /* Verknüpfen aller neuen und abgelaufenen Warnmeldungen */
                MeldungSpracheDWD = 'Achtung   .  ' + MeldungSpracheDWD;
              
                /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                if((pushdienst & SAYIT)!=0 && (idSprachausgabe === true) && (MeldungSpracheDWD !== "")){
                  var Url2 = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                  log('Url2 :' + Url2);
                  request(Url2);
                }
                /* Bereich für Sprachausgabe über SayIt */
                if((pushdienst & SAYIT)!=0 && (idSprachausgabeSayIt === true) && (MeldungSpracheDWD !== "")){
                  setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                }
                if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID != '' && AllEmailMsg != '') {
                  sendEmail("Wetterwarnungen des DWD(iobroker)",AllEmailMsg);
                }
              
                /* Neue Werte sichern */
                oldHeadlines = newHeadlines.slice();
                oldDescriptions = newDescriptions.slice();
                oldBegins = newBegins.slice();
                oldEnds = newEnds.slice();
              }
              
              /* Entfernt "°C" aus Sprachmeldung und ersetzt es durch "Grad" */
              function entferneDatenpunkt(beschreibung) {
                var rueckgabe;
                rueckgabe = beschreibung;
                try {
                  rueckgabe = rueckgabe.replace(/\°C/g, "Grad");
                  rueckgabe = rueckgabe.replace(/\km\/h/g, "Kilometer pro Stunde");
                }
                catch(e) {}
                return rueckgabe;
              }
              on(idDescription0, function(dp) {
                var warn = null;
                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                warn = (!warn ? {} : warn);
                if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                newDescriptions[0] = warn.description === undefined ? '' : warn.description;
                newHeadlines[0] = warn.headline === undefined ? '' : warn.headline;
                newBegins[0] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                newEnds[0] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                if(timer) clearTimeout(timer);
                timer = setTimeout(check, 7000);
              });
              
              on(idDescription1, function(dp) {
                var warn = null;
                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                warn = (!warn ? {} : warn);
                if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                newDescriptions[1] = warn.description === undefined ? '' : warn.description;
                newHeadlines[1] = warn.headline === undefined ? '' : warn.headline;
                newBegins[1] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                newEnds[1] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                if(timer) clearTimeout(timer);
                timer = setTimeout(check, 7000);
              });
              
              on(idDescription2, function(dp) {
                var warn = null;
                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                warn = (!warn ? {} : warn);
                if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                newDescriptions[2] = warn.description === undefined ? '' : warn.description;
                newHeadlines[2] = warn.headline === undefined ? '' : warn.headline;
                newBegins[2] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                newEnds[2] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                if(timer) clearTimeout(timer);
                timer = setTimeout(check, 7000);
              });
              on(idDescription3, function(dp) {
                var warn = null;
                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                warn = (!warn ? {} : warn);
                if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                newDescriptions[3] = warn.description === undefined ? '' : warn.description;
                newHeadlines[3] = warn.headline === undefined ? '' : warn.headline;
                newBegins[3] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                newEnds[3] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                if(timer) clearTimeout(timer);
                timer = setTimeout(check, 7000);
              });
              on(idDescription4, function(dp) {
                var warn = null;
                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                warn = (!warn ? {} : warn);
                if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                newDescriptions[4] = warn.description === undefined ? '' : warn.description;
                newHeadlines[4] = warn.headline === undefined ? '' : warn.headline;
                newBegins[4] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                newEnds[4] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                if(timer) clearTimeout(timer);
                timer = setTimeout(check, 7000);
              });
              
              function getFormatDate(a) {
                if (!a) return '';
                return formatDate(a.getTime(), formatierungString);
              }
              
              function sendEmail(topic, msg) {
                if (senderEmailID=='') {
                  log('senderEmailID ist nicht definiert!','warn');
                  return;
                }
                if (empfaengerEmailID=='') {
                  log('empfaengerEmailID ist nicht definiert!','warn');
                  return;
                }
                sendTo("email", {
                  from:    senderEmailID,
                  to:      empfaengerEmailID,
                  subject: topic,
                  text:    msg
                });
              }
              
              
              

              1 Reply Last reply Reply Quote 1
              • wendy2702
                wendy2702 last edited by

                Das liest und hört sich sehr gut an.

                Danke!

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @wendy2702 last edited by ticaki

                  @wendy2702
                  Ich sehe gerade das ich Home24 und SayIt in einen Topf geworfen habe. Man kann nur beides aktivieren oder deaktivieren. Macht das was?

                  //Version 5
                  /* ************************************************************************* */
                  /*             Script zum Übertragen der DWD-Wetterwarnungen über            */
                  /*             Telegram, Pushover, Home24-Mediaplayer oder SayIt             */
                  /*     mit freundlicher Unterstützung von Paul53 (Tausend Dank nochmals)     */
                  /*                    Stand: 130022017    PrinzEisenherz1                    */
                  /*                                                                           */
                  /*                                                                           */
                  /*     - Fehlerbehebung z.B. 5 gültig bis 5                                  */
                  /*                                                                           */
                  /*                                                                           */
                  /*                                                                           */
                  /*                                                                           */
                  /*                          Variante für 5-warnings                          */
                  /*                                                                           */
                  /* ************************************************************************* */
                  var request = require('request');
                  
                  /* Nachrichten-Dienst festlegen */
                  /* Konstanten nicht verändern */
                  const TELEGRAM = 1; 
                  const PUSHOVER = 2;
                  const EMAIL = 4;
                  const SAYIT = 8;
                  const HOMETWO = 16;
                  var pushdienst=0; 
                  //pushdienst+= TELEGRAM;          // Auskommentieren zum aktivieren
                  //pushdienst+= PUSHOVER;          // Auskommentieren zum aktivieren
                  //pushdienst+= EMAIL;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                  //pushdienst+= SAYIT;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                  //pushdienst+= HOMETWO;           // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                  
                  // Filtereinstellungen
                  const minlevel = 0 // Warnungen gleich oder unterhalb dieses Levels nicht senden;
                  const maxhoehe = 1000 // Warnung für eine Höhe oberhalb dieses Wertes nicht senden
                  
                  //Formatierungsstring für Datum/Zeit Alternative "TT.MM.YYYY SS:mm"
                  const formatierungString = "TT.MM.YY SS:mm";
                  
                  /* Einstellungen zur Emailbenachrichtigung*/
                  var senderEmailID = ""; // mit Sender Emailadresse füllen. email Adapter muß installiert sein
                  var empfaengerEmailID = "";// mit Empfänger Emailadresse füllen.
                  
                  /* Konfiguration Sprachausgabe über Home24-Mediaplayer */
                  var idMediaplayer = "192.168.178.68:50000"; // Eingabe IP-Adresse incl. Port für Home24-Mediaplayer
                  
                  /* Konfiguration Sprachausgabe über SayIt */
                  var idSayIt = "sayit.0.tts.text";
                  var lautstaerke = 60;
                  
                  /* Keine Anpassungen ab hier, außer du weißt was du tuest */
                  var idSprachausgabe = ((pushdienst & HOMETWO) !=0);   
                  var idSprachausgabeSayIt = ((pushdienst & SAYIT) !=0);  
                  
                  /* Trigger für Wetterwarnungen */
                  var idDescription0 = "dwd.0.warning.object";
                  var idDescription1 = "dwd.0.warning1.object";
                  var idDescription2 = "dwd.0.warning2.object";
                  var idDescription3 = "dwd.0.warning3.object";
                  var idDescription4 = "dwd.0.warning4.object";
                  
                  /* Arrays festlegen */
                  var newDescriptions = [5];
                  var oldDescriptions = [5];
                  var newHeadlines = [5];
                  var oldHeadlines = [5];
                  var newBegins = [5];
                  var oldBegins = [5];
                  var newEnds = [5];
                  var oldEnds = [5];
                  var timer = null;
                  /* aktivieren bzw erstmaliges Befüllen der arrays */
                  newDescriptions[0] = '';
                  newDescriptions[1] = '';
                  newDescriptions[2] = '';
                  newDescriptions[3] = '';
                  newDescriptions[4] = '';
                  oldDescriptions[0] = '';
                  oldDescriptions[1] = '';
                  oldDescriptions[2] = '';
                  oldDescriptions[3] = '';
                  oldDescriptions[4] = '';
                  
                  newHeadlines[0] = '';
                  newHeadlines[1] = '';
                  newHeadlines[2] = '';
                  newHeadlines[3] = '';
                  newHeadlines[4] = '';
                  oldHeadlines[0] = '';
                  oldHeadlines[1] = '';
                  oldHeadlines[2] = '';
                  oldHeadlines[3] = '';
                  oldHeadlines[4] = '';
                  
                  newBegins[0] = '';
                  newBegins[1] = '';
                  newBegins[2] = '';
                  newBegins[3] = '';
                  newBegins[4] = '';
                  oldBegins[0] = '';
                  oldBegins[1] = '';
                  oldBegins[2] = '';
                  oldBegins[3] = '';
                  oldBegins[4] = '';
                  
                  newEnds[0] = '';
                  newEnds[1] = '';
                  newEnds[2] = '';
                  newEnds[3] = '';
                  newEnds[4] = '';
                  oldEnds[0] = '';
                  oldEnds[1] = '';
                  oldEnds[2] = '';
                  oldEnds[3] = '';
                  oldEnds[4] = '';
                  
                  function check() {
                    /* Bereich für 'Alle Wetterwarnungen wurden aufgehoben' */
                    if(newDescriptions[0] === "") {
                      MeldungSpracheDWD = 'Achtung' + '  .  ' + 'Alle Warnmeldungen des DWD wurden aufgehoben';
                      /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                      if((pushdienst & HOMETWO)!=0 && idSprachausgabe === true){
                        var Url = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                        request(Url);
                      }
                      
                      /* Bereich für Sprachausgabe SayIt im Zeitraum */
                      var ENDE= '22:30';                     // Ende immer 22:30h
                      var START;
                      
                      
                      schedule("0 6 * * *", function (){                                  //ausgelöst jeden Tag um 6h morgens; prüft, ob Wochenende ist
                        var date = new Date();
                        var n = date.getDay();
                        var weekend = 0;
                        weekend = (n === 0 || n == 6) ? 1 : 0;
                        
                        if(weekend == 1){                     // wenn Wochenende, dann setze Start auf 9h, sonst 6:45h
                          START = '9:00';
                        }
                        else{
                          START = '6:45';
                        }
                        
                      });
                      
                      
                      /* Bereich für Sprachausgabe über SayIt */
                      if((pushdienst & SAYIT)!=0 && idSprachausgabeSayIt === true && compareTime(START, ENDE, 'between')){                  // Ansage über Sayit nur im definierten Zeitbereich
                        setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                      }
                      if ((pushdienst & TELEGRAM)!=0 ) {
                        setTimeout(()=>(sendTo ("telegram.0", 'Alle Warnmeldungen des DWD wurden aufgehoben')), 3 * 1000);
                      }
                      if ((pushdienst & PUSHOVER)!=0 ) {
                        sendTo("pushover.0", 'Alle Warnmeldungen des DWD wurden aufgehoben');
                      }
                      if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID !='') {
                        sendEmail('Wetterentwarnung des DWD(iobroker)','Alle Warnmeldungen des DWD wurden aufgehoben');
                      }
                      
                      /* alle Sicherungen Wetterwarnung löschen */
                      oldHeadlines = newHeadlines.slice();
                      oldDescriptions = newDescriptions.slice();
                      oldBegins = newBegins.slice();
                      oldEnds = newEnds.slice();
                      return;
                    }
                    
                    /* Variablen für Meldungen Text */
                    var MeldungOld = '';
                    var MeldungNew = '';
                    /* Variablen für Meldungen Sprache */
                    var MeldungSpracheDWD = '';
                    var MeldungNewSprache = '';
                    var MeldungOldSprache = '';
                    var AllEmailMsg = '';
                    
                    var headline;
                    var description;
                    var begin;
                    var end;
                    var i;
                    var warn;
                    
                    /* Bereich für 'Wetterwarnung gültig bis wurde aufgehoben' */
                    for(i = 0; i < 5; i++) {
                      warn = 'dwd.0.warning';
                      if(i) warn = warn + i;
                      headline = oldHeadlines[i];
                      description = oldDescriptions[i];
                      begin = oldBegins[i];
                      end = oldEnds[i];
                      if(newDescriptions.indexOf(description) == -1 && description !== '' && description !== undefined) {
                        MeldungOld = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben';
                        MeldungOldSprache = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben' + '  .  ';
                        if ((pushdienst & TELEGRAM)!=0) {
                          setTimeout(()=>(sendTo ("telegram.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben")), 3 * 1000);
                        }
                        if ((pushdienst & PUSHOVER)!=0) {
                          sendTo("pushover.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben");
                        }
                        if ((pushdienst & EMAiL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                          AllEmailMsg+="Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben"+'\n';
                        }
                        /* Verknüpfen aller aufgehobenen Wetterwarnungen */
                        if(MeldungOldSprache !== "" && MeldungOldSprache !== undefined){
                          MeldungSpracheDWD = MeldungSpracheDWD + MeldungOldSprache;
                        }
                      }
                    }
                    
                    /* Bereich für 'Neue Amtliche Wetterwarnung' */
                    for(i = 0; i < 5; i++) {
                      warn = 'dwd.0.warning';
                      if(i) warn = warn + i;
                      headline = newHeadlines[i];
                      description = newDescriptions[i];
                      begin = newBegins[i];
                      end = newEnds[i];
                      if(oldDescriptions.indexOf(description) == -1 && description !== "" && description !== undefined) {
                        MeldungNew = headline + "\ngültig vom " + begin + " Uhr bis " + end + " Uhr\n" + description;
                        /* Entfernen °C für Sprachausgabe */
                        var replaceDescription0 = entferneDatenpunkt(description);
                        MeldungNewSprache = headline + " gültig vom " + begin + " Uhr, bis " + end + " Uhr. " + replaceDescription0 + '  .  ';
                        if ((pushdienst & TELEGRAM)!=0) {
                          setTimeout(()=>(sendTo ("telegram.0", MeldungNew)), 3 * 1000);
                        }
                        if ((pushdienst & PUSHOVER)!=0) {
                          sendTo("pushover.0", MeldungNew);
                        }
                        if ((pushdienst & EMAIL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                          AllEmailMsg+=MeldungNew+'\n';
                        }
                        /* Verknüpfen aller neuen Warnmeldungen */
                        if(MeldungNewSprache !== "" && MeldungNewSprache !== undefined){
                          MeldungSpracheDWD = MeldungSpracheDWD + MeldungNewSprache;
                        }
                      }
                    }
                    /* Verknüpfen aller neuen und abgelaufenen Warnmeldungen */
                    MeldungSpracheDWD = 'Achtung   .  ' + MeldungSpracheDWD;
                    
                    /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                    if((pushdienst & HOMETWO)!=0 && (idSprachausgabe === true) && (MeldungSpracheDWD !== "")){
                      var Url2 = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                      log('Url2 :' + Url2);
                      request(Url2);
                    }
                    /* Bereich für Sprachausgabe über SayIt */
                    if((pushdienst & SAYIT)!=0 && (idSprachausgabeSayIt === true) && (MeldungSpracheDWD !== "")){
                      setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                    }
                    if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID != '' && AllEmailMsg != '') {
                      sendEmail("Wetterwarnungen des DWD(iobroker)",AllEmailMsg);
                    }
                    
                    /* Neue Werte sichern */
                    oldHeadlines = newHeadlines.slice();
                    oldDescriptions = newDescriptions.slice();
                    oldBegins = newBegins.slice();
                    oldEnds = newEnds.slice();
                  }
                  
                  /* Entfernt "°C" aus Sprachmeldung und ersetzt es durch "Grad" */
                  function entferneDatenpunkt(beschreibung) {
                    var rueckgabe;
                    rueckgabe = beschreibung;
                    try {
                      rueckgabe = rueckgabe.replace(/\°C/g, "Grad");
                      rueckgabe = rueckgabe.replace(/\km\/h/g, "Kilometer pro Stunde");
                    }
                    catch(e) {}
                    return rueckgabe;
                  }
                  on(idDescription0, function(dp) {
                    var warn = null;
                    if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                    warn = (!warn ? {} : warn);
                    if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                    newDescriptions[0] = warn.description === undefined ? '' : warn.description;
                    newHeadlines[0] = warn.headline === undefined ? '' : warn.headline;
                    newBegins[0] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                    newEnds[0] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                    if(timer) clearTimeout(timer);
                    timer = setTimeout(check, 7000);
                  });
                  
                  on(idDescription1, function(dp) {
                    var warn = null;
                    if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                    warn = (!warn ? {} : warn);
                    if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                    newDescriptions[1] = warn.description === undefined ? '' : warn.description;
                    newHeadlines[1] = warn.headline === undefined ? '' : warn.headline;
                    newBegins[1] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                    newEnds[1] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                    if(timer) clearTimeout(timer);
                    timer = setTimeout(check, 7000);
                  });
                  
                  on(idDescription2, function(dp) {
                    var warn = null;
                    if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                    warn = (!warn ? {} : warn);
                    if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                    newDescriptions[2] = warn.description === undefined ? '' : warn.description;
                    newHeadlines[2] = warn.headline === undefined ? '' : warn.headline;
                    newBegins[2] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                    newEnds[2] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                    if(timer) clearTimeout(timer);
                    timer = setTimeout(check, 7000);
                  });
                  on(idDescription3, function(dp) {
                    var warn = null;
                    if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                    warn = (!warn ? {} : warn);
                    if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                    newDescriptions[3] = warn.description === undefined ? '' : warn.description;
                    newHeadlines[3] = warn.headline === undefined ? '' : warn.headline;
                    newBegins[3] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                    newEnds[3] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                    if(timer) clearTimeout(timer);
                    timer = setTimeout(check, 7000);
                  });
                  on(idDescription4, function(dp) {
                    var warn = null;
                    if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                    warn = (!warn ? {} : warn);
                    if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                    newDescriptions[4] = warn.description === undefined ? '' : warn.description;
                    newHeadlines[4] = warn.headline === undefined ? '' : warn.headline;
                    newBegins[4] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                    newEnds[4] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                    if(timer) clearTimeout(timer);
                    timer = setTimeout(check, 7000);
                  });
                  
                  function getFormatDate(a) {
                    if (!a) return '';
                    return formatDate(a.getTime(), formatierungString);
                  }
                  
                  function sendEmail(topic, msg) {
                    if (senderEmailID=='') {
                      log('senderEmailID ist nicht definiert!','warn');
                      return;
                    }
                    if (empfaengerEmailID=='') {
                      log('empfaengerEmailID ist nicht definiert!','warn');
                      return;
                    }
                    sendTo("email", {
                      from:    senderEmailID,
                      to:      empfaengerEmailID,
                      subject: topic,
                      text:    msg
                    });
                  }
                  
                  
                  
                  

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

                    Für mich kein Problem

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

                      Ich bekomme keine Ansage wenn die Warnungen aufgehoben werden.

                      Klappt das bei euch?

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @wendy2702 last edited by ticaki

                        @wendy2702
                        Meinst du damit generell keine Ansage oder nur wenn alle Aufgehoben wurden? Ich erweitere das um Alexa und teste es/benutze es.

                        1 Reply Last reply Reply Quote 1
                        • wendy2702
                          wendy2702 last edited by

                          Wenn ich das mal mit meine Telegramm Nachrichten vergleiche ist es etwas merkwürdig:

                          Gestern diese Warnungen bekommen und eine das Aufgehoben wurde:

                          3e76152e-9098-439f-b8d6-bbb5d1f578bd-image.png

                          Heute dann das:

                          9ea3768c-983f-4a26-a5b5-a821c02b864c-image.png

                          181fb152-8a98-456c-991e-1a0933fde5b2-image.png

                          ba00bcd9-70a7-4fd0-8159-41a1771f49cb-image.png

                          Die Meldung Aufgehoben ist immer gleich, ohne Ansage und ohne das dazwischen eine neue Meldung kam.

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            ticaki Developer @wendy2702 last edited by ticaki

                            @wendy2702
                            Das ist sehr merkwürdig. Ich sehe im Script keinen Grund für dieses Verhalten. Ich aktivere das mal bei mir und beobachte es. Wobei mein Neustart morgens um 5 sich aktuell nicht mit dem Skript verträgt.

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

                              Ich habe aber auch um 18:20Uhr eine Warnmeldung bekommen, allerdings keine Ansage und keine Telegram Nachricht.

                              0a1ac88d-8622-4171-9f76-14b99a34cb4f-image.png

                              Machen Vielleicht die Zeitstempel ein Problem?

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer @wendy2702 last edited by

                                @wendy2702
                                Ne, ich hole die Information jetzt aus .object. Hab aber nichts an der Verwaltung dieser Daten geändert. Ich schaue später mal richtig rein.

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

                                  Gerade kommt eine Änderung der Warnungen: Sieht in den Objekten jetzt so aus:

                                  92a9e19c-b125-4e0b-8464-b45e7bd82cc5-image.png

                                  In Telegram so:

                                  15924645-2ed9-44ab-9ce7-f67568131d29-image.png

                                  Im Log das:

                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) at Timer.processTimers (timers.js:223:10)
                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) at listOnTimeout (timers.js:263:5)
                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) at tryOnTimeout (timers.js:300:5)
                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) at ontimeout (timers.js:438:13)
                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2076:34)
                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) at Object.check (script.js.common.Ansagen.Ansage_Telegramm_DWD_5_Warnungen:199:25)
                                  javascript.0	2020-02-26 20:00:09.030	error	(25370) Error in callback: ReferenceError: EMAiL is not defined
                                  

                                  Vielleicht liegt es der nicht definierten Mail ?

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    ticaki Developer @wendy2702 last edited by ticaki

                                    @wendy2702
                                    Rechtschreibfehler. Korrigiert!

                                    //Version 6
                                    /* ************************************************************************* */
                                    /*             Script zum Übertragen der DWD-Wetterwarnungen über            */
                                    /*             Telegram, Pushover, Home24-Mediaplayer oder SayIt             */
                                    /*     mit freundlicher Unterstützung von Paul53 (Tausend Dank nochmals)     */
                                    /*                    Stand: 130022017    PrinzEisenherz1                    */
                                    /*                                                                           */
                                    /*                                                                           */
                                    /*     - Fehlerbehebung z.B. 5 gültig bis 5                                  */
                                    /*                                                                           */
                                    /*                                                                           */
                                    /*                                                                           */
                                    /*                                                                           */
                                    /*                          Variante für 5-warnings                          */
                                    /*                                                                           */
                                    /* ************************************************************************* */
                                    var request = require('request');
                                     
                                    /* Nachrichten-Dienst festlegen */
                                    /* Konstanten nicht verändern */
                                    const TELEGRAM = 1; 
                                    const PUSHOVER = 2;
                                    const EMAIL = 4;
                                    const SAYIT = 8;
                                    const HOMETWO = 16;
                                    var pushdienst=0; 
                                    //pushdienst+= TELEGRAM;          // Auskommentieren zum aktivieren
                                    //pushdienst+= PUSHOVER;          // Auskommentieren zum aktivieren
                                    //pushdienst+= EMAIL;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                    //pushdienst+= SAYIT;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                    //pushdienst+= HOMETWO;           // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                     
                                    // Filtereinstellungen
                                    const minlevel = 0 // Warnungen gleich oder unterhalb dieses Levels nicht senden;
                                    const maxhoehe = 1000 // Warnung für eine Höhe oberhalb dieses Wertes nicht senden
                                     
                                    //Formatierungsstring für Datum/Zeit Alternative "TT.MM.YYYY SS:mm"
                                    const formatierungString = "TT.MM.YY SS:mm";
                                     
                                    /* Einstellungen zur Emailbenachrichtigung*/
                                    var senderEmailID = ""; // mit Sender Emailadresse füllen. email Adapter muß installiert sein
                                    var empfaengerEmailID = "";// mit Empfänger Emailadresse füllen.
                                     
                                    /* Konfiguration Sprachausgabe über Home24-Mediaplayer */
                                    var idMediaplayer = "192.168.178.68:50000"; // Eingabe IP-Adresse incl. Port für Home24-Mediaplayer
                                     
                                    /* Konfiguration Sprachausgabe über SayIt */
                                    var idSayIt = "sayit.0.tts.text";
                                    var lautstaerke = 60;
                                     
                                    /* Keine Anpassungen ab hier, außer du weißt was du tuest */
                                    var idSprachausgabe = ((pushdienst & HOMETWO) !=0);   
                                    var idSprachausgabeSayIt = ((pushdienst & SAYIT) !=0);  
                                     
                                    /* Trigger für Wetterwarnungen */
                                    var idDescription0 = "dwd.0.warning.object";
                                    var idDescription1 = "dwd.0.warning1.object";
                                    var idDescription2 = "dwd.0.warning2.object";
                                    var idDescription3 = "dwd.0.warning3.object";
                                    var idDescription4 = "dwd.0.warning4.object";
                                     
                                    /* Arrays festlegen */
                                    var newDescriptions = [5];
                                    var oldDescriptions = [5];
                                    var newHeadlines = [5];
                                    var oldHeadlines = [5];
                                    var newBegins = [5];
                                    var oldBegins = [5];
                                    var newEnds = [5];
                                    var oldEnds = [5];
                                    var timer = null;
                                    /* aktivieren bzw erstmaliges Befüllen der arrays */
                                    newDescriptions[0] = '';
                                    newDescriptions[1] = '';
                                    newDescriptions[2] = '';
                                    newDescriptions[3] = '';
                                    newDescriptions[4] = '';
                                    oldDescriptions[0] = '';
                                    oldDescriptions[1] = '';
                                    oldDescriptions[2] = '';
                                    oldDescriptions[3] = '';
                                    oldDescriptions[4] = '';
                                     
                                    newHeadlines[0] = '';
                                    newHeadlines[1] = '';
                                    newHeadlines[2] = '';
                                    newHeadlines[3] = '';
                                    newHeadlines[4] = '';
                                    oldHeadlines[0] = '';
                                    oldHeadlines[1] = '';
                                    oldHeadlines[2] = '';
                                    oldHeadlines[3] = '';
                                    oldHeadlines[4] = '';
                                     
                                    newBegins[0] = '';
                                    newBegins[1] = '';
                                    newBegins[2] = '';
                                    newBegins[3] = '';
                                    newBegins[4] = '';
                                    oldBegins[0] = '';
                                    oldBegins[1] = '';
                                    oldBegins[2] = '';
                                    oldBegins[3] = '';
                                    oldBegins[4] = '';
                                     
                                    newEnds[0] = '';
                                    newEnds[1] = '';
                                    newEnds[2] = '';
                                    newEnds[3] = '';
                                    newEnds[4] = '';
                                    oldEnds[0] = '';
                                    oldEnds[1] = '';
                                    oldEnds[2] = '';
                                    oldEnds[3] = '';
                                    oldEnds[4] = '';
                                     
                                    function check() {
                                      /* Bereich für 'Alle Wetterwarnungen wurden aufgehoben' */
                                      if(newDescriptions[0] === "") {
                                        MeldungSpracheDWD = 'Achtung' + '  .  ' + 'Alle Warnmeldungen des DWD wurden aufgehoben';
                                        /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                                        if((pushdienst & HOMETWO)!=0 && idSprachausgabe === true){
                                          var Url = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                                          request(Url);
                                        }
                                        
                                        /* Bereich für Sprachausgabe SayIt im Zeitraum */
                                        var ENDE= '22:30';                     // Ende immer 22:30h
                                        var START;
                                        
                                        
                                        schedule("0 6 * * *", function (){                                  //ausgelöst jeden Tag um 6h morgens; prüft, ob Wochenende ist
                                          var date = new Date();
                                          var n = date.getDay();
                                          var weekend = 0;
                                          weekend = (n === 0 || n == 6) ? 1 : 0;
                                          
                                          if(weekend == 1){                     // wenn Wochenende, dann setze Start auf 9h, sonst 6:45h
                                            START = '9:00';
                                          }
                                          else{
                                            START = '6:45';
                                          }
                                          
                                        });
                                        
                                        
                                        /* Bereich für Sprachausgabe über SayIt */
                                        if((pushdienst & SAYIT)!=0 && idSprachausgabeSayIt === true && compareTime(START, ENDE, 'between')){                  // Ansage über Sayit nur im definierten Zeitbereich
                                          setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                                        }
                                        if ((pushdienst & TELEGRAM)!=0 ) {
                                          setTimeout(()=>(sendTo ("telegram.0", 'Alle Warnmeldungen des DWD wurden aufgehoben')), 3 * 1000);
                                        }
                                        if ((pushdienst & PUSHOVER)!=0 ) {
                                          sendTo("pushover.0", 'Alle Warnmeldungen des DWD wurden aufgehoben');
                                        }
                                        if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID !='') {
                                          sendEmail('Wetterentwarnung des DWD(iobroker)','Alle Warnmeldungen des DWD wurden aufgehoben');
                                        }
                                        
                                        /* alle Sicherungen Wetterwarnung löschen */
                                        oldHeadlines = newHeadlines.slice();
                                        oldDescriptions = newDescriptions.slice();
                                        oldBegins = newBegins.slice();
                                        oldEnds = newEnds.slice();
                                        return;
                                      }
                                      
                                      /* Variablen für Meldungen Text */
                                      var MeldungOld = '';
                                      var MeldungNew = '';
                                      /* Variablen für Meldungen Sprache */
                                      var MeldungSpracheDWD = '';
                                      var MeldungNewSprache = '';
                                      var MeldungOldSprache = '';
                                      var AllEmailMsg = '';
                                      
                                      var headline;
                                      var description;
                                      var begin;
                                      var end;
                                      var i;
                                      var warn;
                                      
                                      /* Bereich für 'Wetterwarnung gültig bis wurde aufgehoben' */
                                      for(i = 0; i < 5; i++) {
                                        warn = 'dwd.0.warning';
                                        if(i) warn = warn + i;
                                        headline = oldHeadlines[i];
                                        description = oldDescriptions[i];
                                        begin = oldBegins[i];
                                        end = oldEnds[i];
                                        if(newDescriptions.indexOf(description) == -1 && description !== '' && description !== undefined) {
                                          MeldungOld = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben';
                                          MeldungOldSprache = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben' + '  .  ';
                                          if ((pushdienst & TELEGRAM)!=0) {
                                            setTimeout(()=>(sendTo ("telegram.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben")), 3 * 1000);
                                          }
                                          if ((pushdienst & PUSHOVER)!=0) {
                                            sendTo("pushover.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben");
                                          }
                                          if ((pushdienst & EMAIL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                                            AllEmailMsg+="Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben"+'\n';
                                          }
                                          /* Verknüpfen aller aufgehobenen Wetterwarnungen */
                                          if(MeldungOldSprache !== "" && MeldungOldSprache !== undefined){
                                            MeldungSpracheDWD = MeldungSpracheDWD + MeldungOldSprache;
                                          }
                                        }
                                      }
                                      
                                      /* Bereich für 'Neue Amtliche Wetterwarnung' */
                                      for(i = 0; i < 5; i++) {
                                        warn = 'dwd.0.warning';
                                        if(i) warn = warn + i;
                                        headline = newHeadlines[i];
                                        description = newDescriptions[i];
                                        begin = newBegins[i];
                                        end = newEnds[i];
                                        if(oldDescriptions.indexOf(description) == -1 && description !== "" && description !== undefined) {
                                          MeldungNew = headline + "\ngültig vom " + begin + " Uhr bis " + end + " Uhr\n" + description;
                                          /* Entfernen °C für Sprachausgabe */
                                          var replaceDescription0 = entferneDatenpunkt(description);
                                          MeldungNewSprache = headline + " gültig vom " + begin + " Uhr, bis " + end + " Uhr. " + replaceDescription0 + '  .  ';
                                          if ((pushdienst & TELEGRAM)!=0) {
                                            setTimeout(()=>(sendTo ("telegram.0", MeldungNew)), 3 * 1000);
                                          }
                                          if ((pushdienst & PUSHOVER)!=0) {
                                            sendTo("pushover.0", MeldungNew);
                                          }
                                          if ((pushdienst & EMAIL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                                            AllEmailMsg+=MeldungNew+'\n';
                                          }
                                          /* Verknüpfen aller neuen Warnmeldungen */
                                          if(MeldungNewSprache !== "" && MeldungNewSprache !== undefined){
                                            MeldungSpracheDWD = MeldungSpracheDWD + MeldungNewSprache;
                                          }
                                        }
                                      }
                                      /* Verknüpfen aller neuen und abgelaufenen Warnmeldungen */
                                      MeldungSpracheDWD = 'Achtung   .  ' + MeldungSpracheDWD;
                                      
                                      /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                                      if((pushdienst & HOMETWO)!=0 && (idSprachausgabe === true) && (MeldungSpracheDWD !== "")){
                                        var Url2 = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                                        log('Url2 :' + Url2);
                                        request(Url2);
                                      }
                                      /* Bereich für Sprachausgabe über SayIt */
                                      if((pushdienst & SAYIT)!=0 && (idSprachausgabeSayIt === true) && (MeldungSpracheDWD !== "")){
                                        setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                                      }
                                      if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID != '' && AllEmailMsg != '') {
                                        sendEmail("Wetterwarnungen des DWD(iobroker)",AllEmailMsg);
                                      }
                                      
                                      /* Neue Werte sichern */
                                      oldHeadlines = newHeadlines.slice();
                                      oldDescriptions = newDescriptions.slice();
                                      oldBegins = newBegins.slice();
                                      oldEnds = newEnds.slice();
                                    }
                                     
                                    /* Entfernt "°C" aus Sprachmeldung und ersetzt es durch "Grad" */
                                    function entferneDatenpunkt(beschreibung) {
                                      var rueckgabe;
                                      rueckgabe = beschreibung;
                                      try {
                                        rueckgabe = rueckgabe.replace(/\°C/g, "Grad");
                                        rueckgabe = rueckgabe.replace(/\km\/h/g, "Kilometer pro Stunde");
                                      }
                                      catch(e) {}
                                      return rueckgabe;
                                    }
                                    on(idDescription0, function(dp) {
                                      var warn = null;
                                      if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                      warn = (!warn ? {} : warn);
                                      if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                                      newDescriptions[0] = warn.description === undefined ? '' : warn.description;
                                      newHeadlines[0] = warn.headline === undefined ? '' : warn.headline;
                                      newBegins[0] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                                      newEnds[0] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                                      if(timer) clearTimeout(timer);
                                      timer = setTimeout(check, 7000);
                                    });
                                     
                                    on(idDescription1, function(dp) {
                                      var warn = null;
                                      if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                      warn = (!warn ? {} : warn);
                                      if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                                      newDescriptions[1] = warn.description === undefined ? '' : warn.description;
                                      newHeadlines[1] = warn.headline === undefined ? '' : warn.headline;
                                      newBegins[1] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                                      newEnds[1] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                                      if(timer) clearTimeout(timer);
                                      timer = setTimeout(check, 7000);
                                    });
                                     
                                    on(idDescription2, function(dp) {
                                      var warn = null;
                                      if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                      warn = (!warn ? {} : warn);
                                      if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                                      newDescriptions[2] = warn.description === undefined ? '' : warn.description;
                                      newHeadlines[2] = warn.headline === undefined ? '' : warn.headline;
                                      newBegins[2] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                                      newEnds[2] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                                      if(timer) clearTimeout(timer);
                                      timer = setTimeout(check, 7000);
                                    });
                                    on(idDescription3, function(dp) {
                                      var warn = null;
                                      if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                      warn = (!warn ? {} : warn);
                                      if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                                      newDescriptions[3] = warn.description === undefined ? '' : warn.description;
                                      newHeadlines[3] = warn.headline === undefined ? '' : warn.headline;
                                      newBegins[3] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                                      newEnds[3] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                                      if(timer) clearTimeout(timer);
                                      timer = setTimeout(check, 7000);
                                    });
                                    on(idDescription4, function(dp) {
                                      var warn = null;
                                      if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                      warn = (!warn ? {} : warn);
                                      if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                                      newDescriptions[4] = warn.description === undefined ? '' : warn.description;
                                      newHeadlines[4] = warn.headline === undefined ? '' : warn.headline;
                                      newBegins[4] = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                                      newEnds[4] = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                                      if(timer) clearTimeout(timer);
                                      timer = setTimeout(check, 7000);
                                    });
                                     
                                    function getFormatDate(a) {
                                      if (!a) return '';
                                      return formatDate(a.getTime(), formatierungString);
                                    }
                                     
                                    function sendEmail(topic, msg) {
                                      if (senderEmailID=='') {
                                        log('senderEmailID ist nicht definiert!','warn');
                                        return;
                                      }
                                      if (empfaengerEmailID=='') {
                                        log('empfaengerEmailID ist nicht definiert!','warn');
                                        return;
                                      }
                                      sendTo("email", {
                                        from:    senderEmailID,
                                        to:      empfaengerEmailID,
                                        subject: topic,
                                        text:    msg
                                      });
                                    }
                                     
                                    

                                    Ich glaube nicht, dass es daran liegt. Kann sein 🙂

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

                                      Danke.

                                      Werde Testen und mich melden.

                                      T 2 Replies Last reply Reply Quote 0
                                      • T
                                        ticaki Developer @wendy2702 last edited by

                                        @wendy2702
                                        Ich hab bei mir noch eine neustart sichere Version laufen, die stelle ich, wenn sie bis morgen abend sauber läuft, online.

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          ticaki Developer @wendy2702 last edited by

                                          @wendy2702
                                          Hatte heute morgen noch einen Fehler, aber seit dem läufts.

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            ticaki Developer @ticaki last edited by ticaki

                                            Denke jetzt ist alles ok:
                                            EDIT: nö war noch was V9 ist aktuell

                                            Änderungen ab dem ersten Posting:

                                            • Alexa hinzugefügt
                                            • Email hinzugefügt
                                            • Sprachausgabe Datum geändert auf Tag, Monatsname, Stunde, Minute
                                            • Filter für maximale Höhe
                                            • Filter für minimales Gefahrenlevel
                                            • Konfigurationsumgestaltung
                                            • Daten werden aus Json (.object) gewonnen und nicht über die einzelnen States
                                            • Startzeit für Sprachausgabe Normal + Wochenende in den Konfigurationsabschnitt verlegt.

                                            Fehlerbehebung:

                                            • Ausgelassene Nachrichten (telegram)
                                            • undefinied in Zeitanzeigen (telegram)
                                            • alle unnützen Timeouts rausgeworfen
                                            • der Fehler der im ersten Post genannt wurde
                                            • nach einem Restart wird erkannt ob Warnungen aufgehoben wurden.
                                            • V8 request definition ist nicht mehr nötig
                                            • V8 nach einem Restart wurden aufgehoben Nachrichten für gefilterte Warnungen ausgegeben
                                            • V8 Zeileneinsprung korrigiert (kosmetisch Code)
                                            • V9 Alle Warnungen aufgehoben wurde versendet, wenn der erste Eintrag gefiltert wurde.
                                            • V9 von/bis Zeiten für Sprachausgabe so gestaltet, dass ich es nachvollziehen kann.

                                            Bekannte Fehler:

                                            • wenn während einem Restart neue Warnungen veröffentlicht werden, werden diese mal ausgegeben und mal nicht. Oder Präziser: Wenn der DWD nach einem Neustart aktualisiert bevor das Script initialisiert wurde, werden die Warnungen als "alte" Warnungen erkannt und ignoriert.

                                            ToDo:

                                            • Handlungsanweisungen ausgeben, wenn verfügbar.
                                            • States auf Existenz überprüfen

                                            Das war das Hinzufügen von ()0=> hätte besser function(){} empfohlen. Aber jetzt hab ich ein nettes Skript das auch ich nützlich finde 🙂

                                            //Version 9
                                            /* ************************************************************************* */
                                            /*             Script zum Übertragen der DWD-Wetterwarnungen über            */
                                            /*             Telegram, Pushover, Home24-Mediaplayer oder SayIt             */
                                            /*     mit freundlicher Unterstützung von Paul53 (Tausend Dank nochmals)     */
                                            /*                    Stand: 130022017    PrinzEisenherz1                    */
                                            /*                                                                           */
                                            /*                                                                           */
                                            /*     - Fehlerbehebung z.B. 5 gültig bis 5                                  */
                                            /*                                                                           */
                                            /*                                                                           */
                                            /*                                                                           */
                                            /*                                                                           */
                                            /*                          Variante für 5-warnings                          */
                                            /*                                                                           */
                                            /* ************************************************************************* */
                                            
                                            /* Nachrichten-Dienst festlegen */
                                            /* Konstanten nicht verändern */
                                            const TELEGRAM = 1; 
                                            const PUSHOVER = 2;
                                            const EMAIL = 4;
                                            const SAYIT = 8;
                                            const HOMETWO = 16;
                                            const ALEXA = 32;
                                            var pushdienst=0; 
                                            //pushdienst+= TELEGRAM;          // Auskommentieren zum aktivieren
                                            //pushdienst+= PUSHOVER;          // Auskommentieren zum aktivieren
                                            //pushdienst+= EMAIL;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                            //pushdienst+= SAYIT;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                            //pushdienst+= HOMETWO;           // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                            //pushdienst+= ALEXA;           // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
                                            
                                            // Filtereinstellungen
                                            const minlevel = 0 // Warnungen gleich oder unterhalb dieses Levels nicht senden;
                                            const maxhoehe = 1000 // Warnung für eine Höhe oberhalb dieses Wertes nicht senden
                                            
                                            //Formatierungsstring für Datum/Zeit Alternative "TT.MM.YYYY SS:mm"
                                            const formatierungString = "TT.MM.YYYY SS:mm";
                                            
                                            /* Einstellungen zur Emailbenachrichtigung*/
                                            var senderEmailID = ""; // mit Sender Emailadresse füllen. email Adapter muß installiert sein
                                            var empfaengerEmailID = "";// mit Empfänger Emailadresse füllen.
                                            
                                            /* Konfiguration Sprachausgabe über Home24-Mediaplayer */
                                            var idMediaplayer = "192.168.178.68:50000"; // Eingabe IP-Adresse incl. Port für Home24-Mediaplayer
                                            
                                            /* Konfiguration Sprachausgabe über SayIt */
                                            var idSayIt = "sayit.0.tts.text";
                                            var lautstaerke = 60;
                                            
                                            //Konfiguration Sprachausgabe über Alexa
                                            var idAlexaSerial ='';
                                            var idAlexa = 'alexa2.0.Echo-Devices.'+idAlexaSerial+'.Commands.announcement';
                                            
                                            const startTimeSpeak = '6:45';
                                            const startTimeSpeakWeekend = '9:00';
                                            
                                            
                                            /* Keine Anpassungen ab hier, außer du weißt was du tuest */ 
                                            
                                            /* Trigger für Wetterwarnungen */
                                            var idDescription0 = "dwd.0.warning.object";
                                            var idDescription1 = "dwd.0.warning1.object";
                                            var idDescription2 = "dwd.0.warning2.object";
                                            var idDescription3 = "dwd.0.warning3.object";
                                            var idDescription4 = "dwd.0.warning4.object";
                                            
                                            /* Arrays festlegen */
                                            var newDescriptions = [5];
                                            var oldDescriptions = [5];
                                            var newHeadlines = [5];
                                            var oldHeadlines = [5];
                                            var newBegins = [5];
                                            var oldBegins = [5];
                                            var newEnds = [5];
                                            var oldEnds = [5];
                                            var timer = null;
                                            /* aktivieren bzw erstmaliges Befüllen der arrays */
                                            newDescriptions[0] = '';
                                            newDescriptions[1] = '';
                                            newDescriptions[2] = '';
                                            newDescriptions[3] = '';
                                            newDescriptions[4] = '';
                                            oldDescriptions[0] = convertJsonDWD(getState(idDescription0).val).description;
                                            oldDescriptions[1] = convertJsonDWD(getState(idDescription1).val).description;
                                            oldDescriptions[2] = convertJsonDWD(getState(idDescription2).val).description;
                                            oldDescriptions[3] = convertJsonDWD(getState(idDescription3).val).description;
                                            oldDescriptions[4] = convertJsonDWD(getState(idDescription4).val).description;
                                            
                                            newHeadlines[0] = '';
                                            newHeadlines[1] = '';
                                            newHeadlines[2] = '';
                                            newHeadlines[3] = '';
                                            newHeadlines[4] = '';
                                            oldHeadlines[0] = convertJsonDWD(getState(idDescription0).val).headline;
                                            oldHeadlines[1] = convertJsonDWD(getState(idDescription1).val).headline;
                                            oldHeadlines[2] = convertJsonDWD(getState(idDescription2).val).headline;
                                            oldHeadlines[3] = convertJsonDWD(getState(idDescription3).val).headline;
                                            oldHeadlines[4] = convertJsonDWD(getState(idDescription4).val).headline;
                                            
                                            newBegins[0] = '';
                                            newBegins[1] = '';
                                            newBegins[2] = '';
                                            newBegins[3] = '';
                                            newBegins[4] = '';
                                            oldBegins[0] = convertJsonDWD(getState(idDescription0).val).start;
                                            oldBegins[1] = convertJsonDWD(getState(idDescription1).val).start;
                                            oldBegins[2] = convertJsonDWD(getState(idDescription2).val).start;
                                            oldBegins[3] = convertJsonDWD(getState(idDescription3).val).start;
                                            oldBegins[4] = convertJsonDWD(getState(idDescription4).val).start;
                                            
                                            newEnds[0] = '';
                                            newEnds[1] = '';
                                            newEnds[2] = '';
                                            newEnds[3] = '';
                                            newEnds[4] = '';
                                            oldEnds[0] = convertJsonDWD(getState(idDescription0).val).end;
                                            oldEnds[1] = convertJsonDWD(getState(idDescription1).val).end;
                                            oldEnds[2] = convertJsonDWD(getState(idDescription2).val).end;
                                            oldEnds[3] = convertJsonDWD(getState(idDescription3).val).end;
                                            oldEnds[4] = convertJsonDWD(getState(idDescription4).val).end;
                                            
                                            // Zeitsteuerung für SayIt & Alexa
                                            var START = '9:00';
                                            setWeekend()
                                            schedule("0 6 * * *", setWeekend);                                  //ausgelöst jeden Tag um 6h morgens; prüft, ob Wochenende ist
                                            
                                            function setWeekend()
                                            {
                                                let date = new Date();
                                                let n = date.getDay();
                                                let weekend = 0;
                                                weekend = (n === 0 || n == 6) ? 1 : 0;
                                                
                                                if(weekend == 1){                     // wenn Wochenende, dann setze Start auf 9h, sonst 6:45h
                                                    START = startTimeSpeakWeekend;
                                                }
                                                else{
                                                    START = startTimeSpeak;
                                                }
                                            }
                                            
                                            function check() {
                                                /* Bereich für 'Alle Wetterwarnungen wurden aufgehoben' */
                                                if(newDescriptions.findIndex(function(a){return a != '';})==-1) {
                                                    MeldungSpracheDWD = 'Achtung' + '  .  ' + 'Alle Warnmeldungen des DWD wurden aufgehoben';
                                                    /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                                                    if((pushdienst & HOMETWO)!=0 ){
                                                        var Url = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                                                        request(Url);
                                                    }
                                                    
                                                    /* Bereich für Sprachausgabe SayIt & ALexa im Zeitraum */
                                                    var ENDE= '22:30';                     // Ende immer 22:30h          
                                                    
                                                    /* Bereich für Sprachausgabe über SayIt & Alexa */
                                                    if (compareTime(START, ENDE, 'between')){                  // Ansage über Sayit nur im definierten Zeitbereich
                                                        if ((pushdienst & SAYIT)!=0) setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                                                        if ((pushdienst & ALEXA)!=0) setState(idAlexa, MeldungSpracheDWD);
                                                    }
                                                    if ((pushdienst & TELEGRAM)!=0 ) {
                                                        sendTo ("telegram.0", 'Alle Warnmeldungen des DWD wurden aufgehoben');
                                                    }
                                                    if ((pushdienst & PUSHOVER)!=0 ) {
                                                        sendTo("pushover.0", 'Alle Warnmeldungen des DWD wurden aufgehoben');
                                                    }
                                                    if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID !='') {
                                                        sendEmail('Wetterentwarnung des DWD(iobroker)','Alle Warnmeldungen des DWD wurden aufgehoben');
                                                    }
                                                    
                                                    /* alle Sicherungen Wetterwarnung löschen */
                                                    oldHeadlines = newHeadlines.slice();
                                                    oldDescriptions = newDescriptions.slice();
                                                    oldBegins = newBegins.slice();
                                                    oldEnds = newEnds.slice();
                                                    return;
                                                }
                                                
                                                /* Variablen für Meldungen Text */
                                                var MeldungOld = '';
                                                var MeldungNew = '';
                                                /* Variablen für Meldungen Sprache */
                                                var MeldungSpracheDWD = '';
                                                var MeldungNewSprache = '';
                                                var MeldungOldSprache = '';
                                                var AllEmailMsg = '';
                                                
                                                var headline;
                                                var description;
                                                var begin;
                                                var end;
                                                var i;
                                                var warn;
                                                
                                                /* Bereich für 'Wetterwarnung gültig bis wurde aufgehoben' */
                                                for(i = 0; i < 5; i++) {
                                                    warn = 'dwd.0.warning';
                                                    if(i) warn = warn + i;
                                                    headline = oldHeadlines[i];
                                                    description = oldDescriptions[i];
                                                    begin = oldBegins[i];
                                                    end = oldEnds[i];
                                                    if(newDescriptions.indexOf(description) == -1 && description !== '' && description !== undefined) {
                                                        MeldungOld = oldHeadlines[i] + ' gültig bis ' + oldEnds[i] + ' Uhr wurde aufgehoben';
                                                        MeldungOldSprache = oldHeadlines[i] + ' gültig bis ' + getFormatDateSpeak(oldEnds[i]) + ' Uhr wurde aufgehoben' + '  .  ';
                                                        if ((pushdienst & TELEGRAM)!=0) {
                                                            sendTo ("telegram.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben");
                                                        }
                                                        if ((pushdienst & PUSHOVER)!=0) {
                                                            sendTo("pushover.0", "Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben");
                                                        }
                                                        if ((pushdienst & EMAIL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                                                            AllEmailMsg+="Die Wetterwarnung " +"'"+ oldHeadlines[i] + " gültig bis " + oldEnds[i] + "'" + " des DWD wurde aufgehoben"+'\n';
                                                        }
                                                        /* Verknüpfen aller aufgehobenen Wetterwarnungen */
                                                        if(MeldungOldSprache !== "" && MeldungOldSprache !== undefined){
                                                            MeldungSpracheDWD = MeldungSpracheDWD + MeldungOldSprache;
                                                        }
                                                    }
                                                }
                                                
                                                /* Bereich für 'Neue Amtliche Wetterwarnung' */
                                                for(i = 0; i < 5; i++) {
                                                    warn = 'dwd.0.warning';
                                                    if(i) warn = warn + i;
                                                    headline = newHeadlines[i];
                                                    description = newDescriptions[i];
                                                    begin = newBegins[i];
                                                    end = newEnds[i];
                                                    if(oldDescriptions.indexOf(description) == -1 && description !== "" && description !== undefined) {
                                                        MeldungNew = headline + "\ngültig vom " + begin + " Uhr bis " + end + " Uhr\n" + description;
                                                        /* Entfernen °C für Sprachausgabe */
                                                        var replaceDescription0 = entferneDatenpunkt(description);
                                                        MeldungNewSprache = headline + " gültig vom " + getFormatDateSpeak(begin) + " Uhr, bis " + getFormatDateSpeak(end) + " Uhr. " + replaceDescription0 + '  .  ';
                                                        if ((pushdienst & TELEGRAM)!=0) {
                                                            sendTo ("telegram.0", MeldungNew);
                                                        }
                                                        if ((pushdienst & PUSHOVER)!=0) {
                                                            sendTo("pushover.0", MeldungNew);
                                                        }
                                                        if ((pushdienst & EMAIL)!=0 && senderEmailID!= '' && empfaengerEmailID!='') {
                                                            AllEmailMsg+=MeldungNew+'\n\n';
                                                        }
                                                        /* Verknüpfen aller neuen Warnmeldungen */
                                                        if(MeldungNewSprache !== "" && MeldungNewSprache !== undefined){
                                                            MeldungSpracheDWD = MeldungSpracheDWD + MeldungNewSprache;
                                                        }
                                                    }
                                                }
                                                /* Verknüpfen aller neuen und abgelaufenen Warnmeldungen */
                                                MeldungSpracheDWD = 'Achtung   .  ' + MeldungSpracheDWD;
                                                
                                                /* Bereich für Sprachausgabe über Home24-Mediaplayer */
                                                if((pushdienst & HOMETWO)!=0 && (MeldungSpracheDWD !== "")){
                                                    var Url2 = "http://" + idMediaplayer + "/track=4fachgong.mp3|tts=" + MeldungSpracheDWD;
                                                    log('Url2 :' + Url2);
                                                    request(Url2);
                                                }
                                                /* Bereich für Sprachausgabe über SayIt */
                                                if ((MeldungSpracheDWD !== "")){
                                                    if ((pushdienst & SAYIT)!=0) setState(idSayIt, lautstaerke + ";" + MeldungSpracheDWD);
                                                    if ((pushdienst & ALEXA)!=0) setState(idAlexa, MeldungSpracheDWD);
                                                    
                                                }
                                                if ((pushdienst & EMAIL)!=0 && senderEmailID != '' && empfaengerEmailID != '' && AllEmailMsg != '') {
                                                    sendEmail("Wetterwarnungen des DWD(iobroker)",AllEmailMsg);
                                                }
                                                
                                                /* Neue Werte sichern */
                                                oldHeadlines = newHeadlines.slice();
                                                oldDescriptions = newDescriptions.slice();
                                                oldBegins = newBegins.slice();
                                                oldEnds = newEnds.slice();
                                            }
                                            
                                            /* Entfernt "°C" aus Sprachmeldung und ersetzt es durch "Grad" */
                                            function entferneDatenpunkt(beschreibung) {
                                                var rueckgabe;
                                                rueckgabe = beschreibung;
                                                try {
                                                    rueckgabe = rueckgabe.replace(/\°C/g, "Grad");
                                                    rueckgabe = rueckgabe.replace(/\km\/h/g, "Kilometer pro Stunde");
                                                }
                                                catch(e) {}
                                                return rueckgabe;
                                            }
                                            on(idDescription0, function(dp) {
                                                var warn = null;
                                                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                                warn = convertJsonDWD(warn);
                                                newDescriptions[0] = warn.description ;
                                                newHeadlines[0] = warn.headline;
                                                newBegins[0] = warn.start;
                                                newEnds[0] = warn.end;
                                                if(timer) clearTimeout(timer);
                                                timer = setTimeout(check, 7000);
                                            });
                                            
                                            on(idDescription1, function(dp) {
                                                var warn = null;
                                                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                                warn = convertJsonDWD(warn);
                                                newDescriptions[1] = warn.description ;
                                                newHeadlines[1] = warn.headline;
                                                newBegins[1] = warn.start;
                                                newEnds[1] = warn.end;
                                                if(timer) clearTimeout(timer);
                                                timer = setTimeout(check, 7000);
                                            });
                                            
                                            on(idDescription2, function(dp) {
                                                var warn = null;
                                                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                                warn = convertJsonDWD(warn);
                                                newDescriptions[2] = warn.description ;
                                                newHeadlines[2] = warn.headline;
                                                newBegins[2] = warn.start;
                                                newEnds[2] = warn.end;
                                                if(timer) clearTimeout(timer);
                                                timer = setTimeout(check, 7000);
                                            });
                                            on(idDescription3, function(dp) {
                                                var warn = null;
                                                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                                warn = convertJsonDWD(warn);
                                                newDescriptions[3] = warn.description ;
                                                newHeadlines[3] = warn.headline;
                                                newBegins[3] = warn.start;
                                                newEnds[3] = warn.end;
                                                if(timer) clearTimeout(timer);
                                                timer = setTimeout(check, 7000);
                                            });
                                            on(idDescription4, function(dp) {
                                                var warn = null;
                                                if (dp.state.val != '') warn = JSON.parse(dp.state.val);
                                                warn = convertJsonDWD(warn);
                                                newDescriptions[4] = warn.description ;
                                                newHeadlines[4] = warn.headline;
                                                newBegins[4] = warn.start;
                                                newEnds[4] = warn.end;
                                                if(timer) clearTimeout(timer);
                                                timer = setTimeout(check, 7000);
                                            });
                                            
                                            function convertJsonDWD(warn) {
                                                warn = (!warn || warn === ''? {} : warn);
                                                if (warn != {} && (warn.altitudeStart>maxhoehe || warn.level <= minlevel)) warn = {};
                                                var a = warn.description === undefined ? '' : warn.description;
                                                var b = warn.headline === undefined ? '' : warn.headline;
                                                var c = warn.start === undefined ? '' : getFormatDate(new Date(warn.start));
                                                var d = warn.end === undefined ? '' : getFormatDate(new Date(warn.end));
                                                return {"description":a,"headline":b,"start":c,"end":d};
                                            }
                                            
                                            function getFormatDate(a) {
                                                if (!a || a === '') return '';
                                                return formatDate(a.getTime(), formatierungString);
                                            }
                                            // @PARAM Rückgabe von getFormatDate
                                            function getFormatDateSpeak(a) {
                                                if (!a || a === '') return '';
                                                var b = a.split('.');
                                                var m = '';
                                                switch (b[1]) {
                                                    case '01': m='Januar';break;
                                                    case '02': m='Februar';break;
                                                    case '03': m='März';break;
                                                    case '04': m='April';break;
                                                    case '05': m='Mai';break;
                                                    case '06': m='Juni';break;
                                                    case '07': m='Juli';break;
                                                    case '08': m='August';break;
                                                    case '09': m='September';break;
                                                    case '10': m='Oktober';break;
                                                    case '11': m='November';break;
                                                    case '12': m='Dezember';break;
                                                    default: m='';
                                                }
                                                b[1]=m; // setze Monatsname
                                                // entferne Jahr
                                                var c = b[2].split(' ');
                                                c[0]='';
                                                b[2] = c.join(' ');
                                                return b.join(' ');
                                            }
                                            
                                            function sendEmail(topic, msg) {
                                                if (senderEmailID=='') {
                                                    log('senderEmailID ist nicht definiert!','warn');
                                                    return;
                                                }
                                                if (empfaengerEmailID=='') {
                                                    log('empfaengerEmailID ist nicht definiert!','warn');
                                                    return;
                                                }
                                                sendTo("email", {
                                                    from:    senderEmailID,
                                                    to:      empfaengerEmailID,
                                                    subject: topic,
                                                    text:    msg
                                                });
                                            }
                                            

                                            Kann aber noch immer Fehler enthalten, hab vorhin gesehen das mein DWD Adapter spinnt Adapter neuinstalliert

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            821
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            62
                                            2445
                                            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