DWD-Unwetterwarnscript v1.31.r00

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Tharanis
Beiträge: 119
Registriert: 15.04.2015, 11:39
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: DWD-Unwetterwarnscript v1.31.r00

Beitrag von Tharanis » 29.12.2020, 22:14

Gerät wird glaub ich nicht benötigt, Titel aber schon.

In der neuesten Pushover-zPNP-Version (zPNS-Po443.hsc) ist noch immer die Rede von Titel und Gerät.

EDIT: Falls Du Regionen mit Warnungen brauchst, habe ich zum testen in der Variable "Wetterwarnung_kreis" noch so Regionen wie: 903452002 Aurich;108315000 Freiburg;109180000 Garmisch;915085002 Harz;108317000 Ortenau;109187000 Rosenheim

Da ist meist eine Region dabei, die eine Warnung hat. Einfach die Kreisvariable umstellen auf den gewünschten Kreis. Dies mache ich z.B. mit meiner App im Mobiltelefon.
DWD-Unwetterwarnscript v1.32.b03 (RaspberryMatic) - Lüftungswarnung auf Temperatur-Basis

RaspberryMatic (3.65.11.20221005) - Längste Laufzeit bislang: 48 Tage (RaspberryMatic), 72 Tage (CCU2), >100 Tage (CCU1)

SteamyWonder
Beiträge: 18
Registriert: 27.12.2020, 13:38
System: CCU
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: DWD-Unwetterwarnscript v1.31.r00

Beitrag von SteamyWonder » 30.12.2020, 12:24

So es läuft endlich. Es war so wie fast immer, ein dämlicher Syntax Fehler in den neuen Variablen. Den hab ich bestimmt 100x überlesen. Asche über mein Haupt :lol:

Benutzeravatar
Schuki91
Beiträge: 18
Registriert: 05.12.2021, 20:01
System: CCU
Wohnort: Baden-Württemberg
Hat sich bedankt: 14 Mal

Re: DWD-Unwetterwarnscript v1.31.r00

Beitrag von Schuki91 » 19.07.2022, 11:46

Hallo,

tolles Skript, dass auch funktioniert bei mir. Ich würde mir wünschen, dass es noch ein Skript gibt mit dem ich ein Push per Telegram machen kann. Leider bin ich zu schlecht beim programmieren um sowas zu schaffen.
RaspberryMatic in umgebauter CCU3 (externe Antenne + 32GB Speicherkarte + 64GB USB Stick)

Tyfys
Beiträge: 551
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: DWD-Unwetterwarnscript v1.31.r00

Beitrag von Tyfys » 19.07.2022, 12:22

Schuki91 hat geschrieben:
19.07.2022, 11:46
dass es noch ein Skript gibt mit dem ich ein Push per Telegram machen kann

Hast es doch schon mal hinbekommen :

viewtopic.php?f=19&t=73197&p=710505&hil ... ge#p710505

Einfach auf die gewünschte Variable ändern.
Gruß
Harry

Benutzeravatar
Schuki91
Beiträge: 18
Registriert: 05.12.2021, 20:01
System: CCU
Wohnort: Baden-Württemberg
Hat sich bedankt: 14 Mal

Re: DWD-Unwetterwarnscript v1.31.r00

Beitrag von Schuki91 » 19.07.2022, 13:44

Tyfys hat geschrieben:
19.07.2022, 12:22
Schuki91 hat geschrieben:
19.07.2022, 11:46
dass es noch ein Skript gibt mit dem ich ein Push per Telegram machen kann

Hast es doch schon mal hinbekommen :

viewtopic.php?f=19&t=73197&p=710505&hil ... ge#p710505

Einfach auf die gewünschte Variable ändern.
Ja das stimmt. Gut recherchiert! Ich dachte das Skript Nummer 3 verarbeitet die Daten nochmals. Wenn das nicht so ist dann hab ich das wohl falsch verstanden.

Welche Variable kann ich mir denn schicken "Wetterwarnung_pushref"? Da steht in der Beschreibung "Text der alten Push-Unwetterwarnung zPNP", ich bin mir unsicher ob diese Variable dazu gedacht ist.
RaspberryMatic in umgebauter CCU3 (externe Antenne + 32GB Speicherkarte + 64GB USB Stick)

Tyfys
Beiträge: 551
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: DWD-Unwetterwarnscript v1.31.r00

Beitrag von Tyfys » 19.07.2022, 21:01

Ich verwende dieses Programm-/Scriptpaket nicht.

Aber mir scheint, du brauchst noch das zPNP-Pushnachrichten Telegram-Skript davon:
Tharanis hat geschrieben:
17.02.2018, 13:51
Ich habe das Script so aufgebaut, dass es mit zPNP-Pushnachrichten, speziell Pushover läuft.
Das Skript Nummer 3 füllt nur die entsprechenden Variablen und ruft dann
am Ende das eigentliche Programm mit dem Skript zum Versenden der Nachricht auf mit diesen Statements

Code: Alles auswählen

dom.GetObject(wwPushprg).ProgramExecute();
Ansonsten würde ich mich an den Variablen orientieren, die dort am Ende gesetzt werden.
Gruß
Harry

Tharanis
Beiträge: 119
Registriert: 15.04.2015, 11:39
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: DWD-Unwetterwarnscript v1.32.Beta 03

Beitrag von Tharanis » 25.07.2022, 20:29

Schon wieder ist eine Menge Zeit vergangen... Ich wurde per PN von Schuki91 darauf aufmerksam gemacht, dass State und Stateshort nicht mehr richtig ausgelesen wurden. Dafür vielen Dank!

Ich veröffentliche nun hier die bei mir bereits getestete Beta-Version 1.32.b03. Die Änderungen sind in allen drei Programmteilen nur kleiner Natur, weshalb es wieder nur einen kleinen Versionsschritt gibt. Allerdings funktioniert das Script bei mir auch mit Telegram zusammen (zPNS-Tg445.hsc), die Title-Zeile von Pushover gibt es dort zwar nicht, aber dafür sind im Pushscript nun Hervorhebungen vorgenommen für eine leichtere Lesbarkeit.

Features sind:
DWD-Unwetterwarnscript v1.32.b03 vom 25.07.2022:
-es können nun Warnmeldungen 4-6 aktiviert/deaktiviert werden, dies sollte in allen drei Scripten gleich eingestellt werden!
-State und Stateshort werden nun wieder korrekt erkannt. Durch eine Json-Umstellung beim DWD war dies noetig
DWD-Unwetterpushscript v1.32.b03 vom 25.07.2022:
-Durch die Aufteilung von frueher zu langen Nachrichten auf mehrere Push-Nachrichten in zPNP gibt es zwei Neuerungen:
--die automatische Instructionen-Grenze ist wieder rausgeflogen (aus Version 1.21), manuell kann es aber weiterhin deaktiviert werden es können nun Warnmeldungen 4-6 aktiviert werden, dies sollte in allen drei Scripten gleich eingestellt werden!
-Grundsaetzlich ist das Pushscript nun auch mit Telegram getestet (zPNS-Tg445.hsc), auch wenn ich es selber nicht (dauerhaft) einsetze. Auch deshalb:
-Die Variable Push.Dienst ist im Push-Script hinzugekommen, dies kann eine Rolle bei mehreren eingesetzten Pushdiensten spielen:
--steht die Variable ausserhalb dieses Scripts auf alle Pushdienste und hier soll es anders sein, kann dies bei svPushService anders eingestellt werden. Der Wert wird sich gemerkt und später zurückgesetzt
DWD-Variablenscript v1.32.b03 vom 25.07.2022:
-Warnmeldung 4 bis 6 laessen sich nun ein- und ausschalten

Hier nun die Betaversionen:
Hier nur als Code, die Zeilen der Anleitung auf der ersten Seite müssten alle noch gelten.

DWD-Variablenscript v1.32.b03:

Code: Alles auswählen

! ---  DWD-Variablenscript v1.32.b03 vom 25.07.2022 ---------------------------------------------------------------------------------------
! Variablenscript von Tharanis, aufbauend auf dem Variablenscript von Klana
! legt/loescht die benoetigten Variablen fuer das DWD-Unwetterwarnscript an
! Nutzung auf eigene Gefahr!
!------------------------------------------------------------------------------------------------------------------------------------------
!
! Ausfuehrung : einmalig! unter Script testen auf der Raspberrymatic/CCU3
!
! neue Features in v1.32.b03 (25.07.2022):
! Warnmeldung 4 bis 6 laessen sich nun ein- und ausschalten
!
! Folgende Variablen werden angelegt oder geloescht je nach dem Wert der Variable SV_Loeschen weiter unten:
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_aktiv           Boolean
! Wetterwarnung_text            Zeichenkette (fuer Ausgabe)				
! Wetterwarnung_text2			Zeichenkette (fuer Ausgabe)
! Wetterwarnung_text3			Zeichenkette (fuer Ausgabe)				
! Wetterwarnung_text4			Zeichenkette (fuer Ausgabe)	(optional per Variable "warn4" weiter unten schaltbar)
! Wetterwarnung_text5			Zeichenkette (fuer Ausgabe)	(optional per Variable "warn5" weiter unten schaltbar)
! Wetterwarnung_text6			Zeichenkette (fuer Ausgabe)	(optional per Variable "warn6" weiter unten schaltbar)		
! Wetterwarnung_anzahl			Zahl
! Wetterwarnung_new				Boolean (neue Meldung /alte Meldung)	
! Wetterwarnung_kreis			Werteliste mit verschiedenen Kreisnummern und Kreisbezeichnungen
! Wetterwarnung_start_backup	Vergleich fuer Start der ersten Warnung
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_city            Zeichenkette (Nummer zum Suchen)		
! Wetterwarnung_regionName      Zeichenkette
! Wetterwarnung_start           Zeichenkette							
! Wetterwarnung_end             Zeichenkette
! Wetterwarnung_typ             Werteliste mit: unbekannt;Gewitter;Wind/Sturm/Orkan;Stark- und Dauerregen;Schneefall/Schneeverwehungen;Nebel;Frost;Glaette/Glatteis;Tauwetter;Hitzewarnungen;UV-Warnungen;Kuestenwarnungen;Binnenseewarnungen
! Wetterwarnung_headline        Zeichenkette
! Wetterwarnung_state           Zeichenkette							
! Wetterwarnung_stateShort      Zeichenkette
! Wetterwarnung_level           Zahl									
! Wetterwarnung_event           Zeichenkette
! Wetterwarnung_description     Zeichenkette							
! Wetterwarnung_instruction     Zeichenkette
! Wetterwarnung_altitudeStart   Zeichenkette							
! Wetterwarnung_altitudeEnd     Zeichenkette
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_start2          Zeichenkette							
! Wetterwarnung_end2            Zeichenkette
! Wetterwarnung_typ2            Werteliste mit: unbekannt;Gewitter;Wind/Sturm/Orkan;Stark- und Dauerregen;Schneefall/Schneeverwehungen;Nebel;Frost;Glaette/Glatteis;Tauwetter;Hitzewarnungen;UV-Warnungen;Kuestenwarnungen;Binnenseewarnungen
! Wetterwarnung_headline2       Zeichenkette
! Wetterwarnung_level2          Zahl									
! Wetterwarnung_event2          Zeichenkette
! Wetterwarnung_description2    Zeichenkette							
! Wetterwarnung_instruction2    Zeichenkette
! Wetterwarnung_altitudeStart2  Zeichenkette							
! Wetterwarnung_altitudeEnd2    Zeichenkette
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_event3          Zeichenkette
!-------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_pushref			Zeichenkette
!-------------------------------------------------------------------------------------------------------------------------------------------
! Warnmeldungen 4-6 (Variable Wetterwarnung_text4,Wetterwarnung_text5,Wetterwarnung_text6) mit anlegen = true oder ignorieren = false
! ------------------------------------------------------------------------------------------------------------------------------------------
boolean warn4 = true;
boolean warn5 = false;
boolean warn6 = false;
!-------------------------------------------------------------------------------------------------------------------------------------------
! Wenn SV_Loeschen = false, dann werden die Systemvariablen angelegt
! Wenn SV_loeschen = true, dann werden die Systemvariablen geloescht!!
!-------------------------------------------------------------------------------------------------------------------------------------------
boolean SV_Loeschen = false;
!-------------------------------------------------------------------------------------------------------------------------------------------
! wenn debug = true, dann werden Meldungen per WriteLine ausgegeben
! dies ist Standardmaessig auf true
!-------------------------------------------------------------------------------------------------------------------------------------------
boolean debug = true;
!-------------------------------------------------------------------------------------------------------------------------------------------
if(debug)
	{
      if(SV_Loeschen) {WriteLine("Varibalen werden gelöscht!");}
      else {WriteLine("Variablen werden angelegt...:");}
    }

    if(!SV_Loeschen)
    {
        ! ---------------------------------------
        ! Boolean - Wetterwarnung_aktiv
        ! ---------------------------------------
        string  svName = "Wetterwarnung_aktiv";
        object  svObj  = dom.GetObject(svName);
         
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtBinary);
            svObj.ValueSubType(istBool);
            svObj.ValueName0("Nein");
            svObj.ValueName1("Ja");   
            svObj.State(false);
            svObj.DPInfo("Zeigt an ob es eine aktive DWD-Meldung gibt.");
            svObj.ValueUnit("");
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_aktiv wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Variable steht auf: "#svObj.State().ToString());}
			if(debug) {WriteLine("-Variable-Status Name: "#svObj.ValueName());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_aktiv existiert schon.");}}

	    ! ---------------------------------------
        ! Boolean - Wetterwarnung_new
        ! ---------------------------------------
        string  svName = "Wetterwarnung_new";
        object  svObj  = dom.GetObject(svName);
         
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtBinary);
            svObj.ValueSubType(istBool);
            svObj.ValueName0("Alte Meldung");
            svObj.ValueName1("Neue Meldung");   
            svObj.State(false);
            svObj.DPInfo("Zeigt an ob es eine neue DWD-Meldung gibt.");
            svObj.ValueUnit("");
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_new wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Variable steht auf: "#svObj.State().ToString());}
			if(debug) {WriteLine("-Variable-Status Name: "#svObj.ValueName());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_new existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_text
        ! ---------------------------------------
        string  svName = "Wetterwarnung_text";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("selbst zusammengesetzter Ausgabetext");
            svObj.ValueUnit("");
            svObj.State("Keine Warnungen");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_text wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_text existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_city
        ! (Nummer der Region von DWD)
        ! ---------------------------------------
        string  svName = "Wetterwarnung_city";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Nummer der Region als String");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_city wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_city existiert schon.");}}
     
        ! ---------------------------------------
        ! Werteliste - Wetterwarnung_kreis
        ! ---------------------------------------
        string  svName = "Wetterwarnung_kreis";
        object  svObj  = dom.GetObject(svName);
         
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtInteger);
            svObj.ValueSubType(istEnum);
            svObj.ValueList("903452002 Aurich;111000000 Berlin;915085002 Harz;109180000 Garmisch");
            svObj.State(1);
            svObj.DPInfo("Auswahlmoeglichkeit Kreis der Wetterwarnung");
         
            dom.RTUpdate(false);
		    if(debug) {WriteLine("Variable Wetterwarnung_kreis wurde angelegt: Name: "#svObj);}
			if(debug) {var valList = svObj.ValueList();}
			if(debug) {var val = valList .StrValueByIndex(";",svObj.Value());}
			if(debug) {WriteLine("-Eintrag: "#val);}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_typ existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_regionName
        ! ---------------------------------------
        string  svName = "Wetterwarnung_regionName";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Regionname im Klartext");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_regionName wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_regionName existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_start
        ! ---------------------------------------
        string  svName = "Wetterwarnung_start";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Start der Warnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_start wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_start existiert schon.");}}
		
		! ---------------------------------------
        ! STRING - Wetterwarnung_start_backup
        ! ---------------------------------------
        string  svName = "Wetterwarnung_start_backup";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Backup fuer Startvergleich");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_start_backup wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_start_backup existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_end
        ! ---------------------------------------
        string  svName = "Wetterwarnung_end";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Ende der Warnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_end wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_end existiert schon.");}}

        ! ---------------------------------------
        ! Zahl - Wetterwarnung_level
        ! ---------------------------------------
        string  svName = "Wetterwarnung_level";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtFloat);
            svObj.ValueSubType(istGeneric);
            svObj.DPInfo("Level der Warnung");
            svObj.ValueUnit("");
            svObj.ValueMin(0);
            svObj.ValueMax(100);
            svObj.State(0);
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_level wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_level existiert schon.");}}
       
        ! ---------------------------------------
        ! Werteliste - Wetterwarnung_typ
        ! ---------------------------------------
        string  svName = "Wetterwarnung_typ";
        object  svObj  = dom.GetObject(svName);
         
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtInteger);
            svObj.ValueSubType(istEnum);
            svObj.ValueList("unbekannt;Gewitter;Wind/Sturm/Orkan;Stark- und Dauerregen;Schneefall/Schneeverwehungen;Nebel;Frost;Glaette/Glatteis;Tauwetter;Hitzewarnungen;UV-Warnungen;Kuestenwarnungen;Binnenseewarnungen");
            svObj.State(1);
            svObj.DPInfo("Typ der Warnung");
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_typ wurde angelegt: Name: "#svObj);}
			if(debug) {var valList = svObj.ValueList();}
			if(debug) {var val = valList .StrValueByIndex(";",svObj.Value());}
			if(debug) {WriteLine("-Eintrag: "#val);}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_typ existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_state
        ! ---------------------------------------
        string  svName = "Wetterwarnung_state";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Bundesland im Langtext.");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_state wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_state existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_description
        ! ---------------------------------------
        string  svName = "Wetterwarnung_description";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("genauere Beschreibung der Warnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_description wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_description existiert schon.");}}
       
        ! ---------------------------------------
        ! STRING - Wetterwarnung_event
        ! ---------------------------------------
        string  svName = "Wetterwarnung_event";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Event der Wetterwarnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_event wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_event existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_headline
        ! ---------------------------------------
        string  svName = "Wetterwarnung_headline";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Schlagzeile der Warnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_headline wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_headline existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_instruction
        ! ---------------------------------------
        string  svName = "Wetterwarnung_instruction";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Was ist im Warnungsfall zu tun?");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_instruction wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_instruction existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_stateShort
        ! ---------------------------------------
        string  svName = "Wetterwarnung_stateShort";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Bundesland in Kurzform z.B.NRW");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_stateShort wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_stateShort existiert schon.");}}
       
        ! ---------------------------------------
        ! STRING - Wetterwarnung_altitudeStart
        ! ---------------------------------------
        string  svName = "Wetterwarnung_altitudeStart";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Hoehe Start");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_altitudeStart wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_altitudeStart existiert schon.");}}

        ! ---------------------------------------
        ! STRING - Wetterwarnung_altitudeEnd
        ! ---------------------------------------
        string  svName = "Wetterwarnung_altitudeEnd";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Hoehe Ende");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_altitudeEnd wurde angelegt: Name: "#svObj);}
	        if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_altitudeEnd existiert schon.");}}

		! ---------------------------------------
        ! STRING - Wetterwarnung_text2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_text2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("selbst zusammengesetzter Ausgabetext2");
            svObj.ValueUnit("");
            svObj.State("Keine Warnungen");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_text2 wurde angelegt: Name: "#svObj);}
	        if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_text2 existiert schon.");}}

		! ---------------------------------------
        ! STRING - Wetterwarnung_text3
        ! ---------------------------------------
        string  svName = "Wetterwarnung_text3";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("selbst zusammengesetzter Ausgabetext3");
            svObj.ValueUnit("");
            svObj.State("Keine Warnungen");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_text3 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_text3 existiert schon.");}}

		if(warn4){
	   	! ---------------------------------------
        ! STRING - Wetterwarnung_text4
        ! ---------------------------------------
        string  svName = "Wetterwarnung_text4";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("selbst zusammengesetzter Ausgabetext4");
            svObj.ValueUnit("");
            svObj.State("Keine Warnungen");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_text4 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_text4 existiert schon.");}}}
		
		if(warn5){
		! ---------------------------------------
        ! STRING - Wetterwarnung_text5
        ! ---------------------------------------
        string  svName = "Wetterwarnung_text5";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("selbst zusammengesetzter Ausgabetext5");
            svObj.ValueUnit("");
            svObj.State("Keine Warnungen");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_text5 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_text5 existiert schon.");}}}

		if(warn6){
		! ---------------------------------------
        ! STRING - Wetterwarnung_text6
        ! ---------------------------------------
        string  svName = "Wetterwarnung_text6";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("selbst zusammengesetzter Ausgabetext6");
            svObj.ValueUnit("");
            svObj.State("Keine Warnungen");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_text6 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
			{if(debug) {WriteLine("Variable Wetterwarnung_text6 existiert schon.");}}}
		
		! ---------------------------------------
        ! STRING - Wetterwarnung_pushref
        ! ---------------------------------------
        string  svName = "Wetterwarnung_pushref";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Text der alten Push-Unwetterwarnung zPNP");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_pushref wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_pushref existiert schon.");}
        }

        ! ---------------------------------------
        ! Zahl - Wetterwarnung_anzahl
        ! ---------------------------------------
        string  svName = "Wetterwarnung_anzahl";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtFloat);
            svObj.ValueSubType(istGeneric);
            svObj.DPInfo("Anzahl der Warnungen");
            svObj.ValueUnit("");
            svObj.ValueMin(0);
            svObj.ValueMax(100);
            svObj.State(0);
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_anzahl wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_anzahl existiert schon.");}
        }

		! ---------------------------------------
        ! STRING - Wetterwarnung_start2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_start2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Start der 2.Warnung in Sekunden");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_start2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_start2 existiert schon.");}
        }
      
        ! ---------------------------------------
        ! STRING - Wetterwarnung_end2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_end2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Ende der 2.Warnung in Sekunden");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_end2 wurde angelegt: Name: "#svObj);}
			if (debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_end2 existiert schon.");}
        }
  
        ! ---------------------------------------
        ! Zahl - Wetterwarnung_level2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_level2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtFloat);
            svObj.ValueSubType(istGeneric);
            svObj.DPInfo("Level der 2.Warnung");
            svObj.ValueUnit("");
            svObj.ValueMin(0);
            svObj.ValueMax(100);
            svObj.State(0);
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_level2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_level2 existiert schon.");}
        }
       
        ! ---------------------------------------
        ! Werteliste - Wetterwarnung_typ2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_typ2";
        object  svObj  = dom.GetObject(svName);
         
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtInteger);
            svObj.ValueSubType(istEnum);
            svObj.ValueList("unbekannt;Gewitter;Wind/Sturm/Orkan;Stark- und Dauerregen;Schneefall/Schneeverwehungen;Nebel;Frost;Glaette/Glatteis;Tauwetter;Hitzewarnungen;UV-Warnungen;Kuestenwarnungen;Binnenseewarnungen");
            svObj.State(1);
            svObj.DPInfo("Typ der 2.Warnung");
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_typ2 wurde angelegt: Name: "#svObj);}
			if(debug) {var valList = svObj.ValueList();}
			if(debug) {var val = valList .StrValueByIndex(";",svObj.Value());}
			if(debug) {WriteLine("-Eintrag: "#val);}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_typ2 existiert schon.");}
        }

        ! ---------------------------------------
        ! STRING - Wetterwarnung_description2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_description2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("genauere Beschreibung der 2.Warnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_description2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_description2 existiert schon.");}
        }

        ! ---------------------------------------
        ! STRING - Wetterwarnung_event2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_event2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Event der 2.Wetterwarnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_event2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_event2 existiert schon.");}
        }
		
        ! ---------------------------------------
        ! STRING - Wetterwarnung_headline2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_headline2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Schlagzeile der 2.Warnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_headline2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_headline2 existiert schon.");}
        }

        ! ---------------------------------------
        ! STRING - Wetterwarnung_instruction2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_instruction2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Was ist im 2.Warnungsfall zu tun?");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_instruction2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_instruction2 existiert schon.");}
        }
		
        ! ---------------------------------------
        ! STRING - Wetterwarnung_altitudeStart2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_altitudeStart2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Hoehe 2.Start");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_altitudeStart2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_altitudeStart2 existiert schon.");}
        }

        ! ---------------------------------------
        ! STRING - Wetterwarnung_altitudeEnd2
        ! ---------------------------------------
        string  svName = "Wetterwarnung_altitudeEnd2";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Hoehe 2.Ende");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_altitudeEnd2 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_altitudeEnd2 existiert schon.");}
        }

        ! ---------------------------------------
        ! STRING - Wetterwarnung_event3
        ! ---------------------------------------
        string  svName = "Wetterwarnung_event3";
        object  svObj  = dom.GetObject(svName);
        if (!svObj){   
            object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
            svObj = dom.CreateObject(OT_VARDP);
            svObjects.Add(svObj.ID());
            svObj.Name(svName);   
            svObj.ValueType(ivtString);
            svObj.ValueSubType(istChar8859);
            svObj.DPInfo("Event der 3.Wetterwarnung");
            svObj.ValueUnit("");
            svObj.State("---");
            svObj.Internal(false);
            svObj.Visible(true);
         
            dom.RTUpdate(false);
			if(debug) {WriteLine("Variable Wetterwarnung_event3 wurde angelegt: Name: "#svObj);}
			if(debug) {WriteLine("-Eintrag: "#svObj.Value().ToString());}
        }
        else
        {
          if(debug) {WriteLine("Variable Wetterwarnung_event3 existiert schon.");}
        }
		
    }
    else
    {
        ! ------------------------------------------------
        ! Loeschen Systemvariablen wenn SV_Loeschen == true
        ! ------------------------------------------------
        object  svObj  = dom.GetObject("Wetterwarnung_aktiv");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_aktiv geloescht");}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_new");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_new geloescht");}}
		
        object  svObj  = dom.GetObject("Wetterwarnung_text");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_text geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_city");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_city geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_regionName");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_regionName geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_start");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_start geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_end");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_end geloescht");}}

        object  svObj  = dom.GetObject("Wetterwarnung_level");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_level geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_typ");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_typ geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_state");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_state geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_description");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_description geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_event");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_event geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_headline");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_headline geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_instruction");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_instruction geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_stateShort");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_stateShort geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_altitudeStart");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_altitudeStart geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_altitudeEnd");
        if(svObj) { dom.DeleteObject(svObj.ID()); if(debug) {WriteLine("Wetterwarnung_altitudeEnd geloescht");}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_text2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_text2 geloescht");}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_text3");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_text3 geloescht");}}
		
		if(warn4){
		object  svObj  = dom.GetObject("Wetterwarnung_text4");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_text4 geloescht");}}}
		
		if(warn5){
		object  svObj  = dom.GetObject("Wetterwarnung_text5");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_text5 geloescht");}}}
		
		if(warn6){
		object  svObj  = dom.GetObject("Wetterwarnung_text6");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_text6 geloescht");}}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_pushref");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_pushref geloescht");}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_anzahl");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_anzahl geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_start2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_start2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_end2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_end2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_level2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_level2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_typ2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_typ2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_description2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_description2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_event2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_event2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_headline2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_headline2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_instruction2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_instruction2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_altitudeStart2");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_altitudeStart2 geloescht");}}
       
        object  svObj  = dom.GetObject("Wetterwarnung_altitudeEnd2");
        if(svObj) { dom.DeleteObject(svObj.ID()); if(debug) {WriteLine("Wetterwarnung_altitudeEnd2 geloescht");}}
		
        object  svObj  = dom.GetObject("Wetterwarnung_event3");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_event3 geloescht");}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_kreis");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_kreis geloescht");}}
		
		object  svObj  = dom.GetObject("Wetterwarnung_start_backup");
        if(svObj) { dom.DeleteObject(svObj.ID());if(debug) {WriteLine("Wetterwarnung_start_backup geloescht");}}
    }
DWD-Unwetterwarnscript v1.32.b03:

Code: Alles auswählen

! --- DWD-Unwetterwarnscript v1.32.b03 vom 25.07.2022 ---------------------------------------------------------------------------------------
! Unwetterwarnscript von Tharanis, aufbauend auf dem DWD-Script von Grrzzz und Klana
! Vielen Dank an blackhole, Grrzzz, klana, kafetzke und viele ungezaehlte Helfer im Forum fuer die in anderen Unwetterscripten geleistete Arbeit
! -Fuer Funktion und/oder Richtigkeit der ausgelesenen Warnmeldungen des DWD kann keine Garantie/Gewaehr uebernommen werden-
! --Bitte im Zweifel immer die offiziellen DWD-Kanäle pruefen!!!--
!
! neue Features in v1.32.b03 (25.07.2022):
! -es können nun Warnmeldungen 4-6 aktiviert/deaktiviert werden, dies sollte in allen drei Scripten gleich eingestellt werden!
! -State und Stateshort werden nun wieder korrekt erkannt. Durch eine Json-Umstellung beim DWD war dies noetig
! 
!-------------------------------------------------------------------------------------------------------------------------------------------
!-------------------------------------------------------------------------------------------------------------------------------------------
! Konfiguration
!-------------------------------------------------------------------------------------------------------------------------------------------
! Anzulegen fuer das Script DWD-Unwetterwarnscript sind die folgenden Systemvariablen, welche am Besten über das Einmalsscript angelegt
! werden sollten. Das Einmalscript unter Script testen einfuegen und einmalig ausführen.
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_aktiv           Boolean
! Wetterwarnung_text            Zeichenkette (fuer Ausgabe)				
! Wetterwarnung_text2			Zeichenkette (fuer Ausgabe)
! Wetterwarnung_text3			Zeichenkette (fuer Ausgabe)				
! Wetterwarnung_text4			Zeichenkette (fuer Ausgabe) (optional per Variable "warn4" weiter unten an- oder abschaltbar)
! Wetterwarnung_text5			Zeichenkette (fuer Ausgabe) (optional per Variable "warn5" weiter unten an- oder abschaltbar)
! Wetterwarnung_text6			Zeichenkette (fuer Ausgabe)	(optional per Variable "warn6" weiter unten an- oder abschaltbar)		
! Wetterwarnung_anzahl			Zahl
! Wetterwarnung_new				Boolean (neue Meldung /alte Meldung)	
! Wetterwarnung_kreis			Werteliste mit verschiedenen Kreisnummern und Kreisbezeichnungen
! Wetterwarnung_start_backup	Vergleich fuer Start der ersten Warnung
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_city            Zeichenkette (Nummer zum Suchen)		
! Wetterwarnung_regionName      Zeichenkette
! Wetterwarnung_start           Zeichenkette							
! Wetterwarnung_end             Zeichenkette
! Wetterwarnung_typ             Werteliste mit: unbekannt;Gewitter;Wind/Sturm/Orkan;Stark- und Dauerregen;Schneefall/Schneeverwehungen;Nebel;Frost;Glaette/Glatteis;Tauwetter;Hitzewarnungen;UV-Warnungen;Kuestenwarnungen;Binnenseewarnungen
! Wetterwarnung_headline        Zeichenkette
! Wetterwarnung_state           Zeichenkette							
! Wetterwarnung_stateShort      Zeichenkette
! Wetterwarnung_level           Zahl									
! Wetterwarnung_event           Zeichenkette
! Wetterwarnung_description     Zeichenkette							
! Wetterwarnung_instruction     Zeichenkette
! Wetterwarnung_altitudeStart   Zeichenkette							
! Wetterwarnung_altitudeEnd     Zeichenkette
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_start2          Zeichenkette							
! Wetterwarnung_end2            Zeichenkette
! Wetterwarnung_typ2            Werteliste mit: unbekannt;Gewitter;Wind/Sturm/Orkan;Stark- und Dauerregen;Schneefall/Schneeverwehungen;Nebel;Frost;Glaette/Glatteis;Tauwetter;Hitzewarnungen;UV-Warnungen;Kuestenwarnungen;Binnenseewarnungen
! Wetterwarnung_headline2       Zeichenkette
! Wetterwarnung_level2          Zahl									
! Wetterwarnung_event2          Zeichenkette
! Wetterwarnung_description2    Zeichenkette							
! Wetterwarnung_instruction2    Zeichenkette
! Wetterwarnung_altitudeStart2  Zeichenkette							
! Wetterwarnung_altitudeEnd2    Zeichenkette
! ------------------------------------------------------------------------------------------------------------------------------------------
! Wetterwarnung_event3          Zeichenkette
!-------------------------------------------------------------------------------------------------------------------------------------------
!-------------------------------------------------------------------------------------------------------------------------------------------
! Debugging einschalten = true oder aussschalten = false
! z.B. zum Test unter "Script testen"
!-------------------------------------------------------------------------------------------------------------------------------------------
boolean debug = false;
! ------------------------------------------------------------------------------------------------------------------------------------------
! Virtuelles CUxD-Exec-Device hier angeben. CUXD und ein CUXD.exec (28) Gerät muss installiert sein. 
! ------------------------------------------------------------------------------------------------------------------------------------------
string execdevice = "CUxD.CUX2801001:1";
! ------------------------------------------------------------------------------------------------------------------------------------------
! Die Region-ID aus der JSON Datei raussuchen, dazu diese Adresse im Browser eingeben:
! https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json
! Für Berlin z.B.: 111000000, 903452002 Aurich-Kueste - 915085002 Oberharz
! ------------------------------------------------------------------------------------------------------------------------------------------
string city = "";   ! Wenn die Werteliste "Wetterwarnung_Kreis" gefuellt wird, so wird diese nur vom Script verwendet, wenn city leer bleibt
! ------------------------------------------------------------------------------------------------------------------------------------------
! Warnmeldungen aktivieren = true oder deaktivieren = false
! Achtung: wenn true muessen die Variablen "Wetterwarnung_text4","Wetterwarnung_text5","Wetterwarnung_text6" auf der CCU vorhanden sein
! ------------------------------------------------------------------------------------------------------------------------------------------
boolean warn4 = true;
boolean warn5 = false;
boolean warn6 = false;
! ------------------------------------------------------------------------------------------------------------------------------------------
! Noetige CCU-Systemvariablen zuweisen
! In der CCU anzulegende Systemvariablen stehen nachfolgend in Anfuehrungszeichen, 
! Am Besten mit dem "Einmalscript" automatisch anlegen lassen!
! -------------------------------------------------------------------------------------------------------------------------------------------
! DWD Felder
! -------------------------------------------------------------------------------------------------------------------------------------------
string wwCity = "Wetterwarnung_city";       
string wwRegionName = "Wetterwarnung_regionName";
string wwState = "Wetterwarnung_state"; 
string wwStateShort = "Wetterwarnung_stateShort";	
string wwStart = "Wetterwarnung_start";           
string wwEnd = "Wetterwarnung_end";             
string wwLevel = "Wetterwarnung_level";         
string wwTyp = "Wetterwarnung_typ";                
string wwDescription = "Wetterwarnung_description";     
string wwEvent = "Wetterwarnung_event";           
string wwHeadline = "Wetterwarnung_headline";       
string wwInstruction = "Wetterwarnung_instruction";     
string wwAltitudeStart = "Wetterwarnung_altitudeStart";
string wwAltitudeEnd = "Wetterwarnung_altitudeEnd";
! ------------------------------------------------------------------------------------------------------------------------------------------
! Eigene Felder
! ------------------------------------------------------------------------------------------------------------------------------------------
string wwText = "Wetterwarnung_text";
string wwText2 = "Wetterwarnung_text2";
string wwText3 = "Wetterwarnung_text3";
if(warn4){string wwText4 = "Wetterwarnung_text4";}
if(warn5){string wwText5 = "Wetterwarnung_text5";}
if(warn6){string wwText6 = "Wetterwarnung_text6";}
string wwAktiv = "Wetterwarnung_aktiv";
string wwAnzahl = "Wetterwarnung_anzahl";
string wwKreis = "Wetterwarnung_kreis";
string wwNew = "Wetterwarnung_new";
string wwStartbkp = "Wetterwarnung_start_backup";
string wwStart2 = "Wetterwarnung_start2";           
string wwEnd2 = "Wetterwarnung_end2";             
string wwLevel2 = "Wetterwarnung_level2";         
string wwTyp2 = "Wetterwarnung_typ2";                
string wwDescription2 = "Wetterwarnung_description2";     
string wwEvent2 = "Wetterwarnung_event2";           
string wwHeadline2 = "Wetterwarnung_headline2";       
string wwInstruction2 = "Wetterwarnung_instruction2";     
string wwAltitudeStart2 = "Wetterwarnung_altitudeStart2";
string wwAltitudeEnd2 = "Wetterwarnung_altitudeEnd2";
string wwEvent3 = "Wetterwarnung_event3";
!---------------------------------------------------------------------------------------------------------------------------------------------
! Wenn die Variable city weiter oben leer ist, wird der eingestellte Kreis von Wetterwarnung_Kreis als City definiert
!---------------------------------------------------------------------------------------------------------------------------------------------
if(!city)
	{var kreis = dom.GetObject(wwKreis);var kreisV = kreis.Value();var kreisS = "";if (kreisV == ""){kreisS = web.webGetValueFromList(kreis.ValueList(), 0);}else {kreisS = web.webGetValueFromList(kreis.ValueList(), kreisV);}city = kreisS.Substr(0, 9);if(debug) {WriteLine("Kreis-Variable steht auf: "#kreisS);}if(debug) {WriteLine("City = Kreis-Variable gekuerzt: "#city);}}
else{if(debug) {WriteLine("City-Variable: "#city);}}
!---------------------------------------------------------------------------------------------------------------------------------------------
! Das wars an Konfiguration
! DWD-Warntabelle in 25k(+25k)-Abschnitten laden bis die Region gefunden wurde
!---------------------------------------------------------------------------------------------------------------------------------------------
string url = "https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json";

string downloader = "LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl";
integer rangefrom = 0;
integer rangeto = 25000;
integer loopcounter = 1;
integer find1 = 0;
boolean found = false;
string stdout = "";
string stdout2 = "";
	
string cmd = downloader # " --range " # rangefrom # "-" # rangeto # " " # url;
string cut2 = "]";
var ret ;
string strRest = "";
!----------------------------------------------------------------------------------------------------------------------------------------------
! Los gehts...
!----------------------------------------------------------------------------------------------------------------------------------------------
if(debug){WriteLine("Befehlszeile - Inhalt von Variable cmd : "#cmd);}
if(debug){WriteLine("Erscheint unterhalb dieser Zeile keine Debug-Info mehr, so bitte CuXD-Einstellungen pruefen");}

ret= dom.GetObject(execdevice # ".CMD_SETS").State(cmd);
if(debug){WriteLine("ret cmd_sets: "#ret);}
ret = dom.GetObject(execdevice # ".CMD_QUERY_RET").State(1);
if(debug){WriteLine("ret cmd_query_ret: "#ret);}
stdout = dom.GetObject(execdevice # ".CMD_RETS").State();
if(debug) {WriteLine("stdout cmd_rets: " #stdout);}

if (debug){	var stdoutlength = stdout.Length();
			WriteLine("Laenge von stdout: " # stdoutlength);}

if (stdout)
    {
    find1 = stdout.Find(city);
if (debug){WriteLine("find1: " # find1);}
    if ((find1 >= 0) && (stdout.Length() >= 25000)) 
		{
        rangefrom = rangeto +1;
        rangeto = rangeto + 25000;
        cmd = downloader # " --range " # rangefrom # "-" # rangeto # " " # url;
        dom.GetObject(execdevice # ".CMD_SETS").State(cmd);
        dom.GetObject(execdevice # ".CMD_QUERY_RET").State(1);
        stdout = stdout + dom.GetObject(execdevice # ".CMD_RETS").State();
		}
    while ((find1 < 0) && (stdout.Length() >= 25000) && (loopcounter <= 30)) 
		{
        loopcounter = loopcounter + 1;
        rangefrom = rangeto +1;
		rangeto = rangeto + 25000;
		if (debug){	WriteLine("Range-Suchbeginn: " # rangefrom);
					WriteLine("Range-Suchende: " # rangeto);
					WriteLine("find1: " # find1);}
        cmd = downloader # " --range " # rangefrom # "-" # rangeto # " " # url;
        dom.GetObject(execdevice # ".CMD_SETS").State(cmd);
        dom.GetObject(execdevice # ".CMD_QUERY_RET").State(1);
        stdout = dom.GetObject(execdevice # ".CMD_RETS").State();
        find1 = stdout.Find(city);
        if ((find1 >= 0) && (stdout.Length() >= 25000)) 
			{
            rangefrom = rangefrom + 25000;
            rangeto = rangeto + 25000;
			if (debug){	WriteLine("Range-Suchbeginn: " # rangefrom);
						WriteLine("Range-Suchende: " # rangeto);}
            cmd = downloader # " --range " # rangefrom # "-" # rangeto # " " # url;
            dom.GetObject(execdevice # ".CMD_SETS").State(cmd);
            dom.GetObject(execdevice # ".CMD_QUERY_RET").State(1);
            stdout = stdout + dom.GetObject(execdevice # ".CMD_RETS").State();
			}
        }
	if (debug){	WriteLine("Anzahl Downloads: " # loopcounter);
				WriteLine("find1: " # find1);
				WriteLine("stdout cmd_rets: " #stdout);
				stdoutlength = stdout.Length();
				WriteLine("Laenge von cmd_rets: " #stdoutlength);}
    found = false;
    if(stdout.Find(city)>=0) {found = true;}
    }
	
    if(city) {dom.GetObject(wwCity).State(city);}
!-----------------------------------------------------------------------------------------------------------------------------------------------
! Relevanter Bereich ausschneiden und zuweisen
!-----------------------------------------------------------------------------------------------------------------------------------------------
if(found) {
	if(debug) {WriteLine("Suche nach City :"#city);}

    ! gesuchten Bereich komplett ausschneiden und mit ToLatin() umwandeln
    stdout = stdout.Substr(stdout.Find(city));
    stdout = stdout.Substr(0, stdout.Find(cut2)+1).ToLatin();
    if(debug) {WriteLine("stdout nach Find(City): " #stdout);}

	if (debug){ stdoutlength = stdout.Length();
				WriteLine("Laenge von stdout: " # stdoutlength);}

	var text = stdout;
		
	! regionName (Klartext der gesuchten Region z.B. Rhein-Erft-Kreis)
	stdout = stdout.Substr(stdout.Find("regionName")+13);
    var regionName = stdout.Substr(0, stdout.Find(",")-1).Trim();
    if(debug) {WriteLine("Name der Region: "#regionName);}
    if(regionName) {if(dom.GetObject(wwRegionName).Value() != regionName){dom.GetObject(wwRegionName).State(regionName);}}
	
	! state (Bundesland im Klartext z.B: Nordrhein-Westfalen)
	stdout = text; ! stdout wird neu befuellt
	stdout = stdout.Substr(stdout.Find("state")+8);
	var state = stdout.Substr(0, stdout.Find(",")-1);
	if(debug) {WriteLine("Bundesland: "#state);}
	if(state) {if(dom.GetObject(wwState).Value() != state){dom.GetObject(wwState).State(state);}}
	
	! stateShort (Abkuerzung Bundesland z.B: NRW)
	stdout = text; ! stdout wird neu befuellt
	stdout = stdout.Substr(stdout.Find("stateShort")+13);
	var stateShort = stdout.Substr(0, stdout.Find(",")-1);
	if(debug) {WriteLine("Abkuerzung Bundesland: "#stateShort);}
	if(stateShort) {if(dom.GetObject(wwStateShort).Value() != stateShort){dom.GetObject(wwStateShort).State(stateShort);}}
	}
!------------------------------------------------------------------------------------------------------------------------------------------------		
! Warnungsanzahl auslesen	
!------------------------------------------------------------------------------------------------------------------------------------------------	
if(found) 
	{string cut1;
	string find1;
	integer anzahl = 0;
	cut1 = "},{";
	find1 = 1;

	while (find1 > 0) 
		{
		find1 = stdout.Find(cut1);
		stdout = stdout.Substr(find1 + 6, 5000);	
		if(find1 > 0){anzahl = anzahl + 1;}
		}
	anzahl = anzahl + 1;}
else {anzahl = 0;}
if (anzahl != dom.GetObject(wwAnzahl).Value()){dom.GetObject(wwAnzahl).State(anzahl);}
!-------------------------------------------------------------------------------------------------------------------------------------------------		
! Meldungen splitten und in Listen packen	
!-------------------------------------------------------------------------------------------------------------------------------------------------   
string startL; string endL; string levelL; string typL; string descriptL; string headlineL; string eventL; string instructionL; string altitudeStartL; string altitudeEndL; string text8;
if(found) 
	{		   
	foreach(text8, text.Split("},{"))
		{
		
		! start (Uhrzeit ab der die DWD Meldung gültig ist in Sekunden)
		var start = text8.Substr(text8.Find("start")+7);
		if(start.Substr(0,4) == "null")
			{start = start.Substr(0, start.Find(",")-0).Trim();}
		else
			{start = start.Substr(0, start.Find(",")-3).Trim();}
		start = start # ";";
		startL = startL # start;
		if(debug) {WriteLine("Liste Start-Zeit: " #startL);}
		
		! end (Uhrzeit bis zu der die DWD Meldung gültig ist in Sekunden)
		var end = text8.Substr(text8.Find("end")+5);
		if(end.Substr(0,4) == "null")
			{end = end.Substr(0, end.Find(",")-0).Trim();}
		else
			{end = end.Substr(0, end.Find(",")-3).Trim();}
		end = end # ";";
		endL = endL # end;
		if(debug) {WriteLine("Liste Ende-Zeit: " #endL);}

		!In folgender Tabelle sind Warntypen mit ? markiert, die noch nicht in der Praxis getestet werden konnten!
		!0 = Gewitter
		!1 = Wind/Sturm/Orkan
		!2 = Stark- und Dauerregen
		!3 = Schneefall/Schneeverwehungen
		!4 = Nebel ?
		!5 = Frost
		!6 = Glätte/Glatteis
		!7 = Tauwetter (?)
		!8 = Hitzewarnungen
		!9 = UV-Warnungen (?)
		!10 = Küstenwarnungen (?)
		!11 = Binnenseewarnungen (?)

		! type (siehe Liste oben)
		var typ = text8.Substr(text8.Find("type")+6);
		typ = typ.Substr(0, typ.Find(","));
		typ = typ # ";";
		typL = typL # typ;
		if(debug) {WriteLine("Typ-Liste: "#typL);}	
		  
		!Level - Vermutung 0 = Vorabwarnung, 1..10(?) tatsaechliche Warnungen, bislang beobachtet:
		!2=Amtliche WARNUNG(gelb)
		!3=Amtliche WARNUNG vor STARKEN irgendwas(Orange)
		!4=Amtliche UNWETTERWARNUNG (rot)
		!10=Amtliche WARNUNG vor HITZE
		
		var level = text8.Substr(text8.Find("level")+7);
		level = level.Substr(0, 1);
		level = level # ";";
		levelL = levelL # level;
		if(debug) {WriteLine("Level-Liste: "#levelL);}
		
		! description (nähere Beschreibung der Meldung im Klartext)
		var descript = text8.Substr(text8.Find("description")+14);
		descript = descript.Substr(0, descript.Find("\""));
		descript = descript.UriEncode();
	    descript = descript.Replace("%5Cn", " ");
	    descript = descript.UriDecode();
		descript = descript # ";";
		descriptL = descriptL # descript;
		if(debug) {WriteLine("Beschreibungs-Liste: "#descriptL);}
		
		! instruction (Was sollte man tun im Klartext z.B. bleibt alle Zuhause ;-)
		var instruction = text8.Substr(text8.Find("instruction")+14);
		instruction = instruction.Substr(0, instruction.Find("\""));
		instruction = instruction # ";";
		instructionL = instructionL # instruction;
		if(debug) {WriteLine("Instruction-Liste: "#instructionL);}
		if(instruction) {dom.GetObject(wwInstruction).State(instruction);}
		
		! event (Kurzform der Meldungsart z.B. Winböen)
		var event = text8.Substr(text8.Find("event")+8);
		event = event.Substr(0, event.Find("\""));
		event = event # ";";
		eventL = eventL # event;
		if(debug) {WriteLine("Event-Liste: "#eventL);}
		
		! headline (Ueberschrift der Meldung z.B. Amtliche WARNUNG vor WINDBÖEN)
		var headline = text8.Substr(text8.Find("headline")+11);
		headline = headline.Substr(0, headline.Find("\""));
		headline = headline # ";";
		headlineL = headlineL # headline;
		if(debug) {WriteLine("Ueberschrift-Liste: "#headlineL);}
		
		! altitude Start
		var altitudeStart = text8.Substr(text8.Find("altitudeStart")+15);
		altitudeStart = altitudeStart.Substr(0, altitudeStart.Find(","));
		altitudeStart = altitudeStart # ";";
		altitudeStartL = altitudeStartL # altitudeStart;
		if(debug) {WriteLine("Hoehenstart-Liste: "#altitudeStartL);}
		if(altitudeStart) {dom.GetObject(wwAltitudeStart).State(altitudeStart);}
		
		! altitude End
		var altitudeEnd = text8.Substr(text8.Find("altitudeEnd")+13);
		altitudeEnd = altitudeEnd.Substr(0, altitudeEnd.Find(","));
		altitudeEnd = altitudeEnd # ";";
		altitudeEndL = altitudeEndL # altitudeEnd;
		if(debug) {WriteLine("Hoehenende-Liste: "#altitudeEndL);}
		if(altitudeEnd) {dom.GetObject(wwAltitudeEnd).State(altitudeEnd);}
		}
	}
!-------------------------------------------------------------------------------------------------------------------------------------------------		
! Listenteile in Variable schreiben
!------------------------------------------------------------------------------------------------------------------------------------------------- 		
if(found) 
	{
	var start1 = startL.StrValueByIndex(";", 0);
	start = start1.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
	if(dom.GetObject(wwStart).Value() != start){dom.GetObject(wwStart).State(start);}
	var end1 = endL.StrValueByIndex(";", 0);
	end = end1.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
	if(dom.GetObject(wwEnd).Value() != end){dom.GetObject(wwEnd).State(end);}
	level = levelL.StrValueByIndex(";", 0);
	if(dom.GetObject(wwLevel).Value() != level){dom.GetObject(wwLevel).State(level);}
	typ = (typL.StrValueByIndex(";", 0)).ToInteger()+1;
	if(dom.GetObject(wwTyp).Value() != typ){dom.GetObject(wwTyp).State(typ);}
	descript = descriptL.StrValueByIndex(";", 0);
	descript = descript.Trim("\ n");
	if(dom.GetObject(wwDescription).Value() != descript){dom.GetObject(wwDescription).State(descript);}
	headline = headlineL.StrValueByIndex(";", 0);
	if(dom.GetObject(wwHeadline).Value() != headline){dom.GetObject(wwHeadline).State(headline);}
	event = eventL.StrValueByIndex(";", 0);
	if(dom.GetObject(wwEvent).Value() != event){dom.GetObject(wwEvent).State(event);}
	instruction = instructionL.StrValueByIndex(";", 0);
	instruction = instruction.Trim("\ n");
	if(dom.GetObject(wwInstruction).Value() != instruction){dom.GetObject(wwInstruction).State(instruction);}
	altitudeStart = altitudeStartL.StrValueByIndex(";", 0);
	if(dom.GetObject(wwAltitudeStart).Value() != altitudeStart){dom.GetObject(wwAltitudeStart).State(altitudeStart);}
	altitudeEnd = altitudeEndL.StrValueByIndex(";", 0);
	if(dom.GetObject(wwAltitudeEnd).Value() != altitudeEnd){dom.GetObject(wwAltitudeEnd).State(altitudeEnd);}
	stdout = start # " bis " # end;
	if(dom.GetObject(wwText).Value() != stdout){dom.GetObject(wwText).State(stdout);}
	
	if (anzahl >= 2 )
		{
		start = startL.StrValueByIndex(";", 1);
		start = start.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		if(dom.GetObject(wwStart2).Value() != start){dom.GetObject(wwStart2).State(start);}
		end = endL.StrValueByIndex(";", 1);
		end = end.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		if(dom.GetObject(wwEnd2).Value() != end){dom.GetObject(wwEnd2).State(end);}
		level = levelL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwLevel2).Value() != level){dom.GetObject(wwLevel2).State(level);}	
		typ = (typL.StrValueByIndex(";", 1)).ToInteger()+1;
		if(dom.GetObject(wwTyp2).Value() != typ){dom.GetObject(wwTyp2).State(typ);}
		descript = descriptL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwDescription2).Value() != descript){dom.GetObject(wwDescription2).State(descript);}		
		headline = headlineL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwHeadline2).Value() != headline){dom.GetObject(wwHeadline2).State(headline);}
		event = eventL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwEvent2).Value() != event){dom.GetObject(wwEvent2).State(event);}		
		instruction = instructionL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwInstruction2).Value() != instruction){dom.GetObject(wwInstruction2).State(instruction);}
		altitudeStart = altitudeStartL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwAltitudeStart2).Value() != altitudeStart){dom.GetObject(wwAltitudeStart2).State(altitudeStart);}
		altitudeEnd = altitudeEndL.StrValueByIndex(";", 1);
		if(dom.GetObject(wwAltitudeEnd2).Value() != altitudeEnd){dom.GetObject(wwAltitudeEnd2).State(altitudeEnd);}
		stdout = start # " bis " # end;
		if(dom.GetObject(wwText2).Value() != stdout){dom.GetObject(wwText2).State(stdout);}
		}
	
	if (anzahl >= 3 )
		{	
		start = startL.StrValueByIndex(";", 2);
		start = start.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		end = endL.StrValueByIndex(";", 2);
		end = end.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		descript = descriptL.StrValueByIndex(";", 2);
		headline = headlineL.StrValueByIndex(";", 2);		
		event = eventL.StrValueByIndex(";", 2);
		if(dom.GetObject(wwEvent3).Value() != event){dom.GetObject(wwEvent3).State(event);}
		stdout = headline # " - " # descript # " - " # start # " bis " # end;
		if(dom.GetObject(wwText3).Value() != stdout){dom.GetObject(wwText3).State(stdout);}
		}
	
	if(warn4){if (anzahl >= 4 )
		{
		start = startL.StrValueByIndex(";", 3);
		start = start.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		end = endL.StrValueByIndex(";", 3);
		end = end.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		descript = descriptL.StrValueByIndex(";", 3);
		headline = headlineL.StrValueByIndex(";", 3);
		stdout = headline # " - " # descript # " - " # start # " bis " # end;
		if(dom.GetObject(wwText4).Value() != stdout){dom.GetObject(wwText4).State(stdout);}
		}}

	if(warn5){if (anzahl >= 5 )
		{
		start = startL.StrValueByIndex(";", 4);
		start = start.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		end = endL.StrValueByIndex(";", 4);
		end = end.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		descript = descriptL.StrValueByIndex(";", 4);
		headline = headlineL.StrValueByIndex(";", 4);
		stdout = headline # " - " # descript # " - " # start # " bis " # end;
		if(dom.GetObject(wwText5).Value() != stdout){dom.GetObject(wwText5).State(stdout);}
		}}
		
	if(warn6){if (anzahl >= 6 )
		{
		start = startL.StrValueByIndex(";", 5);
		start = start.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		end = endL.StrValueByIndex(";", 5);
		end = end.ToInteger().ToTime().ToString("%d.%m.%Y %H:%MUhr");
		descript = descriptL.StrValueByIndex(";", 5);
		headline = headlineL.StrValueByIndex(";", 5);
		stdout = headline # " - " # descript # " - " # start # " bis " # end;
		if(dom.GetObject(wwText6).Value() != stdout){dom.GetObject(wwText6).State(stdout);}
		}}
	}
!-------------------------------------------------------------------------------------------------------------------------------------------------
! Ausloeser (erste Warnmeldung dient als Ausloeser)
!-------------------------------------------------------------------------------------------------------------------------------------------------
if(found) 
	{
	integer time = system.Date("%F %X").ToTime().ToInteger();
	var diff1 = time - start1.ToInteger();
	var diff2 = time - end1.ToInteger();
               
	if(debug) {WriteLine("diff1 :"#diff1);}
	if(debug) {WriteLine("diff2 :"#diff2);}
       
	if(diff1 >= 0 && diff2 <= 0) 
		{
		if(debug) {WriteLine("Wetterwarnung auf true");}
		if (dom.GetObject(wwAktiv).Value() == false)
			{dom.GetObject(wwAktiv).State(true);}
		}
	else 
		{
		if(diff1 <= 0 && diff2 <= 0) 
			{
			if(debug) {WriteLine("baldige Wetterwarnung auf true");}
			if (dom.GetObject(wwNew).Value() == false)
				{dom.GetObject(wwNew).State(true);}
			}
		else
			{
			if(debug) {WriteLine("Wetterwarnung auf false");}
			if (dom.GetObject(wwAktiv).Value() == true)
				{dom.GetObject(wwAktiv).State(false);}
			}
		}
	}
!-------------------------------------------------------------------------------------------------------------------------------------------------
! Ausloeser Wetterwarnung_Start-Vergleich
!-------------------------------------------------------------------------------------------------------------------------------------------------	
if (dom.GetObject(wwStart).Value() > dom.GetObject(wwStartbkp).Value())
	{
	if (dom.GetObject(wwNew).Value() == false)
		{dom.GetObject(wwNew).State(true);}
	else
		{dom.GetObject(wwNew).State(false);
		dom.GetObject(wwNew).State(true);}
	dom.GetObject(wwStartbkp).State(dom.GetObject(wwStart).Value());
	}
else
	{
	if (dom.GetObject(wwNew).Value() == true)
		{
		if(diff1 <= 0 && diff2 <= 0) 
			{if(debug) {WriteLine("Wetterwarnung_New steht bereits auf True, ist aber Vorwarnung");}}
		else
			{dom.GetObject(wwNew).State(false);}
		}
	}
!-------------------------------------------------------------------------------------------------------------------------------------------------
! Allgemeiner Fallback
!-------------------------------------------------------------------------------------------------------------------------------------------------
    if((dom.GetObject(wwInstruction).State()) == ""){dom.GetObject(wwInstruction).State("---");}
	if((dom.GetObject(wwInstruction2).State()) == ""){dom.GetObject(wwInstruction2).State("---");}
	
	if(!found) 
		{
        if(debug) {WriteLine("Fallback: Keine Warnung gefunden - found :"#found);}
        if (dom.GetObject(wwAktiv).State() == true){dom.GetObject(wwAktiv).State(false);}
		if (dom.GetObject(wwNew).State() == true){dom.GetObject(wwNew).State(false);}
        if(dom.GetObject(wwText).Value() == "Keine Warnungen"){if(debug) {WriteLine("wwText enthaelt Warnungen");}}else{dom.GetObject(wwText).State("Keine Warnungen");}
        if(dom.GetObject(wwTyp).State() != dom.GetObject(wwTyp).State("0")){dom.GetObject(wwTyp).State(0);}
        if(dom.GetObject(wwCity).Value() == "---"){if(debug) {WriteLine("wwCity gefuellt");}}else{dom.GetObject(wwCity).State("---");}
        if(dom.GetObject(wwRegionName).Value() == "---"){if(debug) {WriteLine("wwRegionname gefuellt");}}else{dom.GetObject(wwRegionName).State("---");}
        if(dom.GetObject(wwStart).Value() == "---"){}else{dom.GetObject(wwStart).State("---");}
		if(dom.GetObject(wwStartbkp).Value() == "---"){}else{dom.GetObject(wwStartbkp).State("---");}
        if(dom.GetObject(wwEnd).Value() == "---"){}else{dom.GetObject(wwEnd).State("---");}
        if(dom.GetObject(wwLevel).State() != dom.GetObject(wwLevel).State("0")){dom.GetObject(wwLevel).State(0);}
        if(dom.GetObject(wwState).Value() == "---"){}else{dom.GetObject(wwState).State("---");}
        if(dom.GetObject(wwDescription).Value() == "---"){}else{dom.GetObject(wwDescription).State("---");}
        if(dom.GetObject(wwEvent).Value() == "---"){}else{dom.GetObject(wwEvent).State("---");}
        if(dom.GetObject(wwHeadline).Value() == "---"){}else{dom.GetObject(wwHeadline).State("---");}
        if(dom.GetObject(wwInstruction).Value() == "---"){}else{dom.GetObject(wwInstruction).State("---");}
        if(dom.GetObject(wwStateShort).Value() == "---"){}else{dom.GetObject(wwStateShort).State("---");}
        if(dom.GetObject(wwAltitudeStart).Value() == "---"){}else{dom.GetObject(wwAltitudeStart).State("---");}
        if(dom.GetObject(wwAltitudeEnd).Value() == "---"){}else{dom.GetObject(wwAltitudeEnd).State("---");}
		}
	
	if (anzahl <= 1 )
		{
		if(debug) {WriteLine("Fallback: Keine 2.Warnung gefunden - found :"#found);}
		if(dom.GetObject(wwText2).Value() == "Keine Warnungen"){}else{dom.GetObject(wwText2).State("Keine Warnungen");}
		if(dom.GetObject(wwTyp2).State() != dom.GetObject(wwTyp2).State("0")){dom.GetObject(wwTyp2).State(0);}
		if(dom.GetObject(wwStart2).Value() == "---"){}else{dom.GetObject(wwStart2).State("---");}
		if(dom.GetObject(wwEnd2).Value() == "---"){}else{dom.GetObject(wwEnd2).State("---");}
		if(dom.GetObject(wwLevel2).State() != dom.GetObject(wwLevel2).State("0")){dom.GetObject(wwLevel2).State(0);}
		if(dom.GetObject(wwDescription2).Value() == "---"){}else{dom.GetObject(wwDescription2).State("---");}
		if(dom.GetObject(wwEvent2).Value() == "---"){}else{dom.GetObject(wwEvent2).State("---");}
		if(dom.GetObject(wwHeadline2).Value() == "---"){}else{dom.GetObject(wwHeadline2).State("---");}
		if(dom.GetObject(wwInstruction2).Value() == "---"){}else{dom.GetObject(wwInstruction2).State("---");}
		if(dom.GetObject(wwAltitudeStart2).Value() == "---"){}else{dom.GetObject(wwAltitudeStart2).State("---");}
		if(dom.GetObject(wwAltitudeEnd2).Value() == "---"){}else{dom.GetObject(wwAltitudeEnd2).State("---");}
		}

	if (anzahl <= 2 )
		{
		if(debug) {WriteLine("Fallback: Keine 3.Warnung oder höher gefunden - found :"#found);}
		if(dom.GetObject(wwText3).Value() == "Keine Warnungen"){}else{dom.GetObject(wwText3).State("Keine Warnungen");}
		if(dom.GetObject(wwEvent3).Value() == "---"){}else{dom.GetObject(wwEvent3).State("---");}
		}
	
	if(warn4){if (anzahl <= 3 )
		{if(debug) {WriteLine("Fallback: Keine 4.Warnung oder höher gefunden - found :"#found);}
		if(dom.GetObject(wwText4).Value() == "Keine Warnungen"){}else{dom.GetObject(wwText4).State("Keine Warnungen");}}
		
	if(warn5){if (anzahl <= 4 )
		{if(debug) {WriteLine("Fallback: Keine 5.Warnung oder höher gefunden - found :"#found);}
		if(dom.GetObject(wwText5).Value() == "Keine Warnungen"){}else{dom.GetObject(wwText5).State("Keine Warnungen");}}
		
	if(warn6){if (anzahl <= 5 )
		{if(debug) {WriteLine("Fallback: Keine 6.Warnung oder höher gefunden - found :"#found);}
		if(dom.GetObject(wwText6).Value() == "Keine Warnungen"){}else{dom.GetObject(wwText6).State("Keine Warnungen");}}}}}
DWD-Unwetterpushscript v1.32.b05:
:arrow: Zurück in der Alpha-Phase, erst wenn es bei mir läuft gibt es hier wieder die Beta-Version oder höher.

Ich würde mich über Rückmeldungen und Tests freuen. Danke schonmal!

Noch ein kleiner Hinweis: Auch die letzte Release-Version funktioniert noch gut. Einziger erkennbarer Fehler der mir bekannt darin ist, ist das state und stateShort-Feld.

EDIT 31.07.2022: Das Pushscript hat nun eine größere Beta-Versionsnummer. Als Änderung ist nun eine Abfrage eingebaut, die prüft ob wwPushtitle existiert. Die Systemvariable muss also nicht mehr vorhanden sein, was bei alleiniger Telegram-Nutzung eine Variable spart.
EDIT 07.08.2022: Push-Dienst zurücksetzen korrigiert
EDIT 08.08.2022: Push-Script hier im Beta-Posting wieder entfernt, muss erst bei mir wieder fehlerfrei laufen...
DWD-Unwetterwarnscript v1.32.b03 (RaspberryMatic) - Lüftungswarnung auf Temperatur-Basis

RaspberryMatic (3.65.11.20221005) - Längste Laufzeit bislang: 48 Tage (RaspberryMatic), 72 Tage (CCU2), >100 Tage (CCU1)

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“