Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

    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

    [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

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

      @ticaki OK.

      Werde ich updaten.

      Danke!

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

        Hallo zusammen!
        Ich versuche gerade das echt coole Skript zum laufen zu bekommen, habe aber da meine Probleme und finde den Fehler nicht...

        DWD, UWZ und NINA bekommen Meldungen, das Skript triggert zwar, aber es werden keine Warnungen abgelegt:
        skript config_ marked.jpg

        Hier zum Beispiel:

        2021-07-24 09:00:01.241 - info: javascript.0 (662) script.js.common.dwd.dwd_warnings_overview: Amtliche WARNUNG vor STARKEM GEWITTER: 24.7.2021 - 8:59 Uhr bis 24.7.2021 - 10:00 Uhr
        2021-07-24 09:00:01.242 - info: javascript.0 (662) script.js.common.dwd.dwd_warnings_overview: javascript.0.dwd.html.0 exists -> set to : Amtliche WARNUNG vor STARKEM GEWITTER: 24.7.2021 - 8:59 Uhr bis 24.7.2021 - 10:00 Uhr
        2021-07-24 09:00:01.242 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: onchange DWD id:dwd.0.warning.object
        2021-07-24 09:00:01.242 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:dwd.0.warning.object - nope
        

        Mein "dwd_warnings_skript" setzt eine Warnung -> DWD_UWZ_NINA triggert mit "nope"

        Hier noch die Config aus dem Skript:

        /* Konfiguration der zu nutzenden Ausgabe um //uPushdienst+= PUSHOVER; zu aktivieren, bitte die // enfernen, also uPushdienst+= PUSHOVER; */
        //uPushdienst+= TELEGRAM;          // Auskommentieren zum aktivieren
        uPushdienst+= PUSHOVER;          // Auskommentieren zum aktivieren
        //uPushdienst+= EMAIL;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
        //uPushdienst+= SAYIT;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
        //uPushdienst+= HOMETWO;           // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
        //uPushdienst+= ALEXA;             // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
        uPushdienst+= STATE;             // Auskommentieren zum aktivieren. State befindet sich unter mainStatePath.message
        //uPushdienst+= IOGO;              // Auskommentieren zum aktivieren. Einstellungen nicht vergessen
        uPushdienst+= STATE_HTML;        // Auskommentieren zum aktivieren. State_html befindet sich unter mainStatePath.messageHtml als Tabelle
        
        /* ************************************************************************* */
        /*                 Beispiele zur weiteren Konfiguration                      */
        /* ************************************************************************* */
        /*
        /* kein oder einen Eintrag möglich:
        /* var senderEmailID = ["max@mustermann.de"];
        /*
        /* kein oder mehrfach nach gleichem Muster [1, 2, 3] bzw. ['1', '2', '3'] Einträge
        /* '' ist das selbe wie "", jedoch nicht mischen.
        /*
        /* var empfaengerEmailID = ["max@musterman.de","max2@musterman.de"];
        /* var telegramUser = []; // leer
        /* var telegramUser = ['']; // leer
        /* var telegramUser = ['Hans']; // User mit Namen Hans
        /* var telegramUser = ['Hans', 'Gretel']; // User mit Namen Hans und User mit Namen Gretel
        /* var idSayIt = ["sayit.0.tts.text"];
        /* var sayItVolumen = [60]; // Zahl ohne ''
        /* var idSayIt = ["sayit.0.tts.text","sayit.1.tts.text"];
        /* var sayItVolumen = [60, 30]; // mehrfach Zahl ohne ''
        /* var ioGoUser = ['max@musterman.de'];
        /* var idAlexaSerial =['G090RV32984110Y', 'G090RZ3345643XR'];
        /* var alexaVolumen = [40, 30]; // Lautstärke die gleiche Anzahl an Einträgen wie bei idAlexaSerial
        /*
        /* ************************************************************************* */
        /*                          weitere Konfiguration                            */
        /* ************************************************************************* */
        
        /* für UWZ Regionnamen eingeben "Warnung der Unwetterzentrale für XXXX" */
        /* Textbeispiel anstatt Entenhausen: 'Stadt / Dorfname' 'Berlin' 'den Regionsbezeichnung' 'den Schwarzwald' ''*/
        /* var regionName = ['UWZDE13245', 'Entenhausen'] */
        var regionName          = ['UWZDE89278','Nersingen'];
        
        // für Nina wird die Gemeinde und der Landkreis benötigt. Am besten von hier kopieren: https://warnung.bund.de/assets/json/suche_channel.json
        // ohne die kryptischen Zeichen. Das ersetzt nicht den NINA-Adapter
        var uGemeinde = 'Nersingen'; // hier steht zum Beispiel, Hamburg, Unterdorf
        var uLandkreis = 'Kreis Neu-Ulm'; // hier Kreis Bitburg, Landkreis Fürth
        
        /* Einstellungen zur Emailbenachrichtigung*/
        var senderEmailID       = [""]; // mit Sender Emailadresse füllen. email Adapter muß installiert sein. 1 Eintrag erlaubt [] oder ["email1"]
        var empfaengerEmailID   = [""]; // mit Empfänger Emailadresse füllen. Mehrere Empfänger möglich. [] oder ["email1"] oder ["email1","email2"]
        
        /* Konfiguration Sprachausgabe über Home24 - Mediaplayer */
        //var idMediaplayer = ["192.168.178.x:Port"];
        var idMediaplayer       = [""]; // Eingabe IP-Adresse incl. Port für Home24-Mediaplayer mehrere Möglich - ungetestet
        
        /* Konfiguration Telegram */
        var telegramUser                = ['']; // Einzelnutzer ['Hans']; Multinutzer ['Hans, Gretel']; Nutzer vom Adapter übernehmen [];
        var telegramChatId              = ['']; // Mehrfach Einträge möglich ['Gruppe1','Gruppe2']
        var uTelegramReplyMarkup        = null; // Falls ihr ein Telegrammmenü verwendet, könnt ihr hier einen Weg zurück definieren z.B.: {keyboard: [['Zurück']], resize_keyboard: true};
        var uTelegramAllowNotification  = true; // Erlaube Telegramnotification (Benachrichtigungston/Hinweise auf dem Empfangsgerät)
        var uTelegramUseStdUser         = false; // Verwende immer auch die im Adapter gespeicherten Benutzer.
        
        /* Konfiguration Pushover */
        var uPushoverDeviceName     = ''; // ein bestimmtes Gerät z.B: ['droid4'];
        var uPushoverSound          = ''; // Sounds siehe: https://pushover.net/api#sounds
        
        //Konfiguration von ioGo
        var ioGoUser = ['']; // // Einzelnutzer ['Hans']; Multinutzer ['Hans', 'Gretel']; Nutzer vom Adapter übernehmen [];
        
        /* Konfiguration Sprachausgabe über SayIt */
        var idSayIt             = ["sayit.0.tts.text"]; // mehrfach Einträge möglich
        var sayItVolumen        = [30]; // gleiche Anzahl wie idSayIt
        
        /* Konfiguration Sprachausgabe über Alexa
        /* mehrere Einträge möglich, bei mir ging nur der Echo, 2 dots 2.Gen reagieren nicht auf announcement. */
        var idAlexaSerial       = ['']; // die reine Seriennummer des Echos z.B.: var idAlexaSerial =['G090RV32984110Y', 'G090RV32984110Y']
        var alexaVolumen        = [30]; // Lautstärke die gleiche Anzahl an Einträgen wie bei idAlexaSerial
        
        // Filtereinstellungen
        const minlevel                      =    1 // Warnungen unterhalb dieses Levels nicht senden;
        const attentionWarningLevel         =    4 // Warnung gleich oder oberhalb dieses Levels mit zusätzlichen Hinweisen versehen
        const minhoehe                      =    0 // Warnung für eine Höhe unterhalb dieses Wertes nicht senden
        const maxhoehe                      =    465 // Warnung für eine Höhe oberhalb dieses Wertes nicht senden
        
        //Formatierungsstring für Datum / Zeit Alternative "TT.MM.YYYY SS:mm" KEINE Anpassung nötig
        const formatierungString =  "TT.MM.YY SS:mm";
        
        // Sprachausgabe Zeiten
        // Für durchgehende Sprachausgabe die Einstellung der Zeiten auf '' setzen. z.B. var startTimeSpeak = '';
        var startTimeSpeak =        '6:45';// Zeiten mo - fr ab der Sprachausgaben ok sind. Nicht unter 6 Uhr gehen oder den Schedule ändern
        var startTimeSpeakWeekend = '9:00';// sa + so Bemerkung siehe oben
        var endTimeSpeak =          '22:30'; // ab diesem Zeitpunkt gibt es keine Sprachausgabe
        
        // Ein manuellen Auslösen von Sprachnachrichten, löscht alle noch nicht ausgegebenen Sprachnachrichten aus der Liste.
        var uManuellClickClearSpeakMessageList = true;
        //Auslösen der Pushnachricht über States ignoriert Sprachausgabezeiten
        var forcedSpeak             = true;
        // keine Ansage über m/s Knoten und Windstärke. Die Angabe mit Kilometer pro Stunde wird angesagt
        var windForceDetailsSpeak   = false;
        
        /* ************************************************************************* */
        /*                       Nur Anpassen wenn nötig                             */
        /* ************************************************************************* */
        // Die Geschwindigkeit gibt an wie lange das Skript wartet bevor es eine neue Nachricht an die Sprachausgabe sendet.
        konstanten[3].delay /*SayIt*/       = 86; // Vorlese Geschwindigkeit pro Zeichen in ms
        konstanten[4].delay /*Home24*/      = 90; // Vorlese Geschwindigkeit pro Zeichen in ms
        konstanten[5].delay /*Alexa*/       = 86; // Vorlese Geschwindigkeit pro Zeichen in ms
        
        // Mit diesen Optionen verringert man die Nachrichtenlänge in dem Beschreibung oder Handlungsanweisungen
        // nicht der Nachricht hinzugefügt werden.
        var uHtmlMitBeschreibung            = true; // gilt für Email
        var uHtmlMitAnweisungen             = true; // uHtmlMitBeschreibung muß evenfalls true sein um Anweisungen zu erhalten
        var uTextMitBeschreibung            = true; // gilt nicht für Email, aber für alle anderen Textnachrichten
        var uTextMitAnweisungen             = true; // uTextMitBeschreibung muß evenfalls true sein um Anweisungen zu erhalten
        var uSpracheMitBeschreibung         = true; // gilt für alle Sprachnachrichten
        var uSpracheMitAnweisungen          = true; // uSpracheMitBeschreibung muß evenfalls true sein um Anweisungen zu erhalten
        
        // Obergrenze an Zeichen die über Sprachausgabe ausgegeben werden, bei überschreitung wird nur die Schlagzeile ausgegebenen
        var uMaxCharToSpeak = 0; // 0 = aus - Zahl größer als 0 = maximal Zeichenanzahl (1000 sind rund 86 Sekunden bla bla)
        
        // Automodus Filter um Warnungen unterhalb attentionWarningLevel von DWD, UWZ oder NINA zu unterdrücken
        // Sprachausgabe bei auto und manuell unterdrückt.
        // Diese Warnungen sind vorhanden, sie werden nur in den benannten Fällen ausgeblendet.
        // Ist eine feste Vorgabe überschreibt alles andere
        var uFilterList               = 0;   // generelles Filter für den AutoModus ( = DWD + UWZ; oder = NINA; oder = 0;), außer Warnungslevel ist gleich/über attentionWarningLevel
        var uAutoNinaFilterList       = ['CAP@hochwasserzentralen.de']; //Nina only. Filter diesen Sender raus s.o. - mehrere ['abc','cde'];
        
        var uwzPath=            'javascript.0.UWZ';
        var dwdPath=            'dwd.0';
        var ninaPath=           'nina.0'
        
        var telegramInstanz=    'telegram.0';
        var pushoverInstanz=    'pushover.0';
        var ioGoInstanz=        'iogo.0';
        var alexaInstanz=       'alexa2.0';
        var emailInstanz=       'email.0';
        
        var uLogAusgabe=        true; // auf false gibt es überhaupt keine Ausgabe beim normalen Betrieb.
        
        /* ************************************************************************* */
        /* ************************************************************************* */
        /* ************************************************************************* */
        /*                       Konfiguration Ende                                  */
        /* ************************************************************************* */
        /*        Keine Anpassungen ab hier, außer du weißt was du tuest             */
        /* ************************************************************************* */
        /* ************************************************************************* */
        /* ************************************************************************* */
        

        Ich seh wahrscheinlich mal wieder den Wald vor lauter Bäumen nicht...

        Schon mal Danke für die Hilfe!

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

          @boronsbruder
          Hallo,

          was ist:

          javascript.0.dwd.html.0
          
          Boronsbruder 1 Reply Last reply Reply Quote 0
          • Boronsbruder
            Boronsbruder @ticaki last edited by Boronsbruder

            @ticaki

            Ist nur ein DP aus meinem Skript in dem die Warnung gespeichert wird.
            Den Auszug aus dem Log hab ich nur mit drin, dass man sieht, dass eine DWD-Warnung reinkam, aber dein Skript mit "nope" quittierte
            Ich hab leider die Warnung aus dem DWD- Adapter nicht ausschneiden können...

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

              @boronsbruder
              was steht in:

              dwd.0.warning.description
              

              und

              dwd.0.warning.headline
              
              Boronsbruder 1 Reply Last reply Reply Quote 0
              • Boronsbruder
                Boronsbruder @ticaki last edited by Boronsbruder

                @ticaki
                Ich hab leider die DWD-Adapterdaten nicht mit geschnitten.
                in dwd.0.warning.headline muss "Amtliche WARNUNG vor STARKEM GEWITTER" gestanden haben (zieht mein Skript da raus).

                Aktuell ist aber aber auch eine UWZ-Warnung drin:
                UWZ.jpg

                Auch die wird nicht angezeigt.

                2021-07-24 12:13:26.031 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID + JSON:javascript.0.UWZ.UWZDE89278.warning.0.object - "{\"center\":\"UWZ\",\"areaID\":\"UWZDE87675\",\"dtgEnd\":1627185600,\"areaType\":\"UWZCODE\",\"dtgStart\":1627138800,\"payload\":{\"translationsLongText\":{\"DE\":\"Mit einer Konvergenzlinie von Tief DIRK wird die Atmosphäre zunehmennd instabil und somit steigt Samstagnachmittag und -abend das Risiko für kräftige Gewitter mit Starkregen, Hagel und Sturmböen deutlich an. Es besteht die Gefahr von Starkregen, Hagel und Sturmböen. Sonntagmorgen lassen die Gewitter nach.\"},\"id\":\"16270656115316.1\",\"creation\":1627066920000,\"uwzLevel\":8,\"translationsShortText\":{\"DE\":\"Ab Samstagabend kräftige Gewitter mit Starkregen Hagel und Sturmböen möglich.\"},\"fileName\":\"meteogroup_warn_16270656115316_20210723190202_1627185600_1627066995.xml\",\"levelName\":\"alert_forewarn_red\",\"shortText\":\"\",\"longText\":\"From Saturday afternoon and evening the risk of thunderstorms with heavy rain, hail and violent gusts rises significantly. The risk of heavy rain, hail and violent gusts arises, thereby. Sunday morning thunderstorms decrease.\",\"altMin\":-10,\"altMax\":9000},\"severity\":8,\"type\":7}"
                2021-07-24 12:13:26.032 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID + JSON:javascript.0.UWZ.UWZDE89278.warning.1.object - "{\"center\":\"UWZ\",\"areaID\":\"UWZDE48455\",\"dtgEnd\":1627164000,\"areaType\":\"UWZCODE\",\"dtgStart\":1627128000,\"payload\":{\"translationsLongText\":{\"DE\":\"Ab Samstagnachmittag ist das Risiko für Gewitter mit Starkregen erhöht, dabei ziehen von Südwest her die Gewitter auf. Samstagnacht lässt die Schauer- und Gewitterneigung wieder nach.\"},\"id\":\"16270344986489.4\",\"creation\":1627034655000,\"uwzLevel\":7,\"translationsShortText\":{\"DE\":\"Ab Samstagnachmittag erhöhtes Risiko für Gewitter mit Starkregen von Südwesten her.\"},\"fileName\":\"meteogroup_warn_16270344986489_20210723100336_1627164000_1627034655.xml\",\"levelName\":\"alert_forewarn_orange\",\"shortText\":\"\",\"longText\":\"From Saturday afternoon the risk of thunderstorms with heavy rain rises significantly. A thunderstorm from southwest approaches. Saturday night the risk of thunderstorms decreases.\",\"altMin\":-10,\"altMax\":9000},\"severity\":7,\"type\":7}"
                2021-07-24 12:13:26.032 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:javascript.0.UWZ.UWZDE89278.warning.2.object - nope
                2021-07-24 12:13:26.032 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:javascript.0.UWZ.UWZDE89278.warning.3.object - nope
                2021-07-24 12:13:26.032 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:javascript.0.UWZ.UWZDE89278.warning.4.object - nope
                2021-07-24 12:13:26.032 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:javascript.0.UWZ.UWZDE89278.warning.5.object - nope
                2021-07-24 12:13:26.032 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:javascript.0.UWZ.UWZDE89278.warning.6.object - nope
                

                EDIT:
                UWZ hab ich jetzt verstanden... Das UWZ-Skript hat 2 Meldungen rausgesucht, die gar nicht für "UWZDE89278" sind....

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

                  @boronsbruder
                  Nach dem ich deinen Text im Detail gelesen habe, natürlich hab ich vorher verzweifelt im Skript nach einer Begründung gesucht ist mir eine mögliche Fehlerquelle aufgefallen.

                  Mein "dwd_warnings_skript" setzt eine Warnung -> DWD_UWZ_NINA triggert mit "nope"
                  

                  setzte folgende Warnung in:

                  dwd.0.warning.object
                  
                  {
                      "regionName": "Test",
                      "start": 1584050400000,
                      "end": 1984090000000,
                      "type": 5,
                      "state": "Rheinland-Pfalz",
                      "level": 2,
                      "stateShort": "RP",
                      "description": "Es tritt oberhalb 100 m leichter Schüttelfrost um +1 °C auf.",
                      "event": "FROST",
                      "headline": "Amtliche nicht WARNUNG vor SCHÜTTELFROST",
                      "instruction": "",
                      "altitudeStart": 100,
                      "altitudeEnd": null
                  }
                  
                  Boronsbruder 1 Reply Last reply Reply Quote 0
                  • Boronsbruder
                    Boronsbruder @ticaki last edited by

                    @ticaki

                    2021-07-24 13:13:41.775 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: onchange DWD id:dwd.0.warning.object
                    2021-07-24 13:13:41.776 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID:dwd.0.warning.object - nope
                    

                    und mein Skript gibt die Warnung aus:

                    2021-07-24 13:13:41.774 - info: javascript.0 (662) script.js.common.dwd.dwd_warnings_overview: javascript.0.dwd.html.0 exists -> set to : Amtliche nicht WARNUNG vor SCHÜTTELFROST: 12.3.2020 - 23:00 Uhr bis 15.11.2032 - 1:06 Uhr
                    
                    T 1 Reply Last reply Reply Quote 0
                    • T
                      ticaki Developer @Boronsbruder last edited by

                      @boronsbruder

                      Zeig mir mal das Skript das die Daten setzt.

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

                        @ticaki
                        Also falls du meinst, dass das Skript irgendwo reinpfuscht, wenn ich mein Skript deaktiviere passiert auch nichts nur "nope"

                        Aber gerne:

                        function addZero(i) {
                        console.log('i_alt: ' + i);  
                          
                          if (i < 10) {
                            i = "0" + i.toString();
                          }
                          console.log('i_neu: ' + i);
                          return i;
                        }
                        
                        $('state[state.id=dwd.0.*][role=weather.json]').on(function (obj) {
                            console.log ('ID =' + obj.id);
                            
                            if (! obj.state.val) return;
                            
                            var data =JSON.parse(obj.state.val);
                        
                            if(data.headline)
                            {
                                var html;
                                var Start = new Array();
                        
                                Start[0] = new Date(parseInt(data.start));
                                console.log ('Monat: ' + Start[0].getMonth());
                                Start[1] = Start[0].getDate()+ '.' + (Start[0].getMonth()+1) + '.'+ Start[0].getFullYear();
                                Start[2] = Start[0].getHours() + ':' + addZero(Start[0].getMinutes()) + " Uhr";
                            
                                var End = new Array();
                                End[0] = new Date(parseInt(data.end));
                                End[1] = End[0].getDate()+ '.' + (End[0].getMonth()+1) + '.'+ End[0].getFullYear();
                                End[2] = End[0].getHours() + ':' + addZero(End[0].getMinutes()) + " Uhr";
                        
                                html = '<span class="dwd_warn_' + (data.level-1) + '">' + data.headline + ':</span> ' + Start[1] + ' - ' + Start[2] +  ' bis ' + End[1] + ' - ' + End[2];
                                console.log(html);
                            }
                         
                           else html='';
                        
                            var MsgNumber = obj.id.substr(13,1);
                        
                            if (MsgNumber == ".") MsgNumber ="0";
                        
                            
                            if(!$('javascript.0.dwd.html.'+MsgNumber).length){
                           
                                createState('javascript.0.dwd.html.'+ MsgNumber, {name: 'Html Text Dwd Warnung', }, function () {
                                    
                                    setState('javascript.0.dwd.html.'+ MsgNumber, html)   ;
                                    log('javascript.0.dwd.html.' + MsgNumber + ' created and set to : ' + html);
                                    
                                });
                            
                            }
                            
                            else
                            {
                                setState('javascript.0.dwd.html.'+ MsgNumber, html);
                                log('javascript.0.dwd.html.' + MsgNumber + ' exists -> set to : ' + html);
                            }
                        
                            if (getState('javascript.0.dwd.merge_active').val == false) 
                            {
                                setState('javascript.0.dwd.merge_active',true);
                            }
                        });
                        
                        T 1 Reply Last reply Reply Quote 0
                        • T
                          ticaki Developer @Boronsbruder last edited by

                          @boronsbruder
                          Das hab ich nicht gemeint, versuche mal folgendes Skript aus:

                          var test = '{ "regionName": "Test", "start": 1584050400000, "end": 1984090000000,"type": 5,"state": "Rheinland-Pfalz", "level": 2,"stateShort": "RP", "description": "Es tritt oberhalb 100 m leichter Schüttelfrost um +1 °C auf.","event": "FROST","headline": "Amtliche nicht WARNUNG vor SCHÜTTELFROST","instruction": "","altitudeStart": 100,"altitudeEnd": null}';
                          test = JSON.parse(test);
                          setState('dwd.0.warning.object', test, true);
                          
                          Boronsbruder 1 Reply Last reply Reply Quote 0
                          • Boronsbruder
                            Boronsbruder @ticaki last edited by Boronsbruder

                            @ticaki
                            Achso, hab es einfach direkt im Iobroker gesetzt 🤦‍♂️

                            2021-07-24 13:35:51.292 - info: javascript.0 (662) script.js.common.test_warnung: registered 0 subscriptions and 0 schedules
                            2021-07-24 13:35:51.336 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: onchange DWD id:dwd.0.warning.object
                            2021-07-24 13:35:51.336 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID + JSON:dwd.0.warning.object - {"regionName":"Test","start":1584050400000,"end":1984090000000,"type":5,"state":"Rheinland-Pfalz","level":2,"stateShort":"RP","description":"Es tritt oberhalb 100 m leichter Schüttelfrost um +1 °C auf.","event":"FROST","headline":"Amtliche nicht WARNUNG vor SCHÜTTELFROST","instruction":"","altitudeStart":100,"altitudeEnd":null}
                            2021-07-24 13:35:51.337 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: result: {"mode":1,"description":"Es tritt oberhalb 100 m leichter Schüttelfrost um +1 °C auf.","headline":"Amtliche nicht WARNUNG vor SCHÜTTELFROST","start":1584050400000,"end":1984090000000,"instruction":"","type":5,"level":2,"areaID":"Test","web":"","webname":"","picture":"🌡","color":"#d7d700","id":"","pending":0,"hash":0,"repeatCounter":0}
                            2021-07-24 13:35:51.337 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: Add DWD warning to database. headline: Amtliche nicht WARNUNG vor SCHÜTTELFROST
                            2021-07-24 13:35:51.359 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: Datenbank wurde geändert - checkWarningsMain():true id:dwd.0.warning.object Mode:1
                            2021-07-24 13:35:51.359 - info: javascript.0 (662) script.js.common.dwd.dwd_warnings_overview: ID =dwd.0.warning.object
                            2021-07-24 13:35:51.360 - error: javascript.0 (662) Error in callback: SyntaxError: Unexpected token o in JSON at position 1
                            2021-07-24 13:35:51.362 - error: javascript.0 (662) at JSON.parse ()
                            2021-07-24 13:35:51.362 - error: javascript.0 (662) at Object. (script.js.common.dwd.dwd_warnings_overview:16:20)
                            2021-07-24 13:35:51.362 - error: javascript.0 (662) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1075:38)
                            2021-07-24 13:35:51.362 - error: javascript.0 (662) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:502:29)
                            2021-07-24 13:35:51.362 - error: javascript.0 (662) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5555:41)
                            2021-07-24 13:35:51.363 - error: javascript.0 (662) at processImmediate (internal/timers.js:461:21)
                            

                            Das funktioniert...

                            Da bekomme ich auch die Pushnachricht

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

                              @ticaki
                              Also...
                              Ich hab jetzt mal im DWD-Adapter umgestellt auf "Tuttlingen", da da aktuelle Gewitterwarnungen sind.
                              Resultat
                              in dem DP "object" ist kein object gespeichert sondern nur der JSON

                              {"regionName":"Kreis Tuttlingen","end":1627128000000,"start":1627123800000,"type":0,"state":"Baden-Württemberg","level":3,"description":"Es treten Gewitter auf. Dabei gibt es Sturmböen mit Geschwindigkeiten bis 70 km/h (20m/s, 38kn, Bft 8) sowie Starkregen mit Niederschlagsmengen um 25 l/m² pro Stunde und Hagel.","event":"STARKES GEWITTER","headline":"Amtliche WARNUNG vor STARKEM GEWITTER","instruction":"ACHTUNG! Hinweis auf mögliche Gefahren: Örtlich kann es Blitzschlag geben. Bei Blitzschlag besteht Lebensgefahr! Vereinzelt können beispielsweise Bäume entwurzelt und Dächer beschädigt werden. Achten Sie besonders auf herabstürzende Äste, Dachziegel oder Gegenstände. Während des Platzregens sind kurzzeitig Verkehrsbehinderungen möglich.","stateShort":"BW","altitudeStart":null,"altitudeEnd":null}
                              

                              object.jpg

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

                                @boronsbruder
                                Und wenn du das Object abfragst ist es ein Json-Objekt. Wenn du hingegen als Experte einen String da rein schreibst, bleibt es ein String. 🙂

                                Wenn du auf Datenpunkt bearbeitet gehst, steht dort auch das es ein Objekt-Datenpunkt ist.

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

                                  @ticaki
                                  jo, aber der DWD-Adapter schreibt auch kein Object, sondern einen String. siehe Screenshot!
                                  object2.jpg
                                  Der hier ist nach Setzen mit deinem Skript!

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

                                    @boronsbruder
                                    ? Wie soll ein Objekt als Datenpunkt dargestellt werden. Ich würde ein Json für die Darstellung in einer Weboberfläche als String anzeigen.

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

                                      @ticaki
                                      So setzt der DWD-Adapter: -> "NOPE"
                                      object.jpg
                                      So setzt dein Skript:
                                      object2.jpg
                                      Also das Test-Skript von dir...

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

                                        @boronsbruder
                                        Wenn man das über die Adminoberfläche setzt mit JSON als Objekttyp wird es auch so angezeigt wie der DWD Adapter es setzt. Ist doch nicht wichtig. Es geht und wenn die fertig sind mir ihren ganzen Adapteranpassungen schaue ich mir das nochmal an.

                                        Oder geht es noch immer nicht? Mit echten Warnungen.

                                        Boronsbruder 2 Replies Last reply Reply Quote 0
                                        • Boronsbruder
                                          Boronsbruder @ticaki last edited by

                                          @ticaki
                                          ne, geht mit echten nicht

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

                                            @ticaki

                                            2021-07-24 15:18:22.787 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: onchange NINA nina.0.09775.warnung02.rawJson
                                            2021-07-24 15:18:22.787 - info: javascript.0 (662) script.js.common.Warnung.Warn_DWD_UWZ_NINA: addDatabaseData() ID + JSON:nina.0.09775.warnung02.rawJson - "{\"identifier\":\"41e17e9ca1620dea9e3ba91ed2e7966ae5953439da2179d5ef0a55356b1ec7de\",\"sender\":\"opendata@dwd.de\",\"sent\":\"2021-07-24T15:15:05+02:00\",\"status\":\"Actual\",\"msgType\":\"Alert\",\"source\":\"PVW\",\"scope\":\"Public\",\"code\":[\"1.0\"],\"info\":[{\"language\":\"de-DE\",\"category\":[\"Met\"],\"event\":\"STARKES GEWITTER\",\"responseType\":[\"Prepare\"],\"urgency\":\"Immediate\",\"severity\":\"Moderate\",\"certainty\":\"Observed\",\"eventCode\":[{\"valueName\":\"PROFILE_VERSION\",\"value\":\"2.1\"},{\"valueName\":\"LICENSE\",\"value\":\"Geobasisdaten: Copyright Bundesamt für Kartographie und Geodäsie, Frankfurt am Main, 2017\"},{\"valueName\":\"II\",\"value\":\"36\"},{\"valueName\":\"GROUP\",\"value\":\"THUNDERSTORM\"},{\"valueName\":\"GROUP\",\"value\":\"WIND\"},{\"valueName\":\"GROUP\",\"value\":\"RAIN\"},{\"valueName\":\"AREA_COLOR\",\"value\":\"251 140 0\"}],\"effective\":\"2021-07-24T14:55:00+02:00\",\"onset\":\"2021-07-24T14:55:00+02:00\",\"expires\":\"2021-07-24T16:00:00+02:00\",\"senderName\":\"Deutscher Wetterdienst\",\"headline\":\"Amtliche WARNUNG vor STARKEM GEWITTER\",\"description\":\"Von Südwesten ziehen Gewitter auf. Dabei gibt es Sturmböen mit Geschwindigkeiten bis 70 km/h (20m/s, 38kn, Bft 8) sowie Starkregen mit Niederschlagsmengen bis 20 l/m² pro Stunde.\",\"instruction\":\"ACHTUNG! Hinweis auf mögliche Gefahren: Örtlich kann es Blitzschlag geben. Bei Blitzschlag besteht Lebensgefahr! Vereinzelt können beispielsweise Bäume entwurzelt und Dächer beschädigt werden. Achten Sie besonders auf herabstürzende Äste, Dachziegel oder Gegenstände. Während des Platzregens sind kurzzeitig Verkehrsbehinderungen möglich.\",\"web\":\"https://www.wettergefahren.de\",\"contact\":\"Deutscher Wetterdienst\",\"parameter\":[{\"valueName\":\"Böen\",\"value\":\"<70 [km/h]\"},{\"valueName\":\"Niederschlag\",\"value\":\"<20 [l/m² in 1h]\"},{\"valueName\":\"Gewitteraufzugsrichtung\",\"value\":\"south-west\"}],\"area\":[{\"areaDesc\":\"Kreis Dillingen a.d. Donau\",\"geocode\":[{\"valueName\":\"Dillingen a.d. Donau\",\"value\":\"097730000000\"}],\"altitude\":0,\"ceiling\":9842.5197},{\"areaDesc\":\"Kreis Neu-Ulm\",\"geocode\":[{\"valueName\":\"Neu-Ulm\",\"value\":\"097750000000\"}],\"altitude\":0,\"ceiling\":9842.5197},{\"areaDesc\":\"Kreis Günzburg\",\"geocode\":[{\"valueName\":\"Günzburg\",\"value\":\"097740000000\"}],\"altitude\":0,\"ceiling\":9842.5197}]}]}"
                                            

                                            Auch NINA macht nicht mit... (Meldung ist für Neu-Ulm und Kreis Neu-Ulm)

                                            var uGemeinde = 'Neu-Ulm'; // hier steht zum Beispiel, Hamburg, Unterdorf
                                            var uLandkreis = 'Kreis Neu-Ulm'; // hier Kreis Bitburg, Landkreis Fürth
                                            

                                            Ich hab jetzt schon

                                            • das Skript gelöscht und von GitHub neureinkopiert und ohne Copy und Paste neu-konfiguriert...
                                            • den DWD-Adapter neuinstalliert...
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            891
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            53
                                            1521
                                            486267
                                            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