Das heißt, du hast bei dir auf der CCU eine Systemvariable "Windstaerke" angelegt, die die mit der Netatmo gemessene Windgeschwindigkeit in km/h enthält, oder?
Falls dem so ist, versuche es doch mal mit dem nachfolgenden Skript:
Code: Alles auswählen
! Meldung Sturm
! Version 2.5.3na, Autor: dtp
! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svWindSpeed = "Windstaerke"; ! per Netatmo gemessene Windgeschwindigkeit, obligatorisch
string svWindSpeedDayMax = "Haus SV Sturm Tag"; ! Tageswindhöchstgeschwindigkeit, obligatorisch
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
! Bargraph der Windstärken
real range = 12.0; ! Maximalwert des darzustellenden Bereichs
real bars = 12.0; ! Anzahl Bars innerhalb range
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
! +++++ Deklaration weiterer Variablen +++++
string bargraph = ""; string message; string windSpeed; string windSpeedDayMax; string windIndex;
string windForceTable = "1\t6\t12\t20\t29\t39\t50\t62\t75\t89\t103\t118";
integer windForce = 0;
real barIndex = 0.0;
! +++++ Systemvariable für die Tageswindhöchstgeschwindigkeit auslesen +++++
windSpeedDayMax = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svWindSpeedDayMax)).Value();
! +++++ Sound für Pushover-Nachricht +++++
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("siren");}
! +++++ Aktuelle Windgeschwindigkeit +++++
windSpeed = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svWindSpeed)).Value();
! +++++ Nachricht senden, wenn Windgeschwindigkeit zugenommen hat +++++
if(windSpeed > windSpeedDayMax){
! ----- Setzen der Tageswindhöchstgeschwindigkeit -----
windSpeedDayMax = (dom.GetObject(ID_SYSTEM_VARIABLES).Get("Haus SV Sturm Tag")).State(windSpeed);
! ----- Umwandlung in Windstärken -----
foreach(windIndex, windForceTable){if(windSpeed >= windIndex){windForce = windForce+1;}}
! ----- Berechnung des Bargraphs -----
while((barIndex < windForce) && (barIndex <= (range - range/bars))){
bargraph = bargraph#"|";
barIndex = barIndex + range/bars;
}
if(windForce >= 7){
! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("1");
! +++++ Erzeugen der Nachricht +++++
message = "<font color=red>Achtung, Sturm!</font>\n"#bargraph#" Windstärke "#windForce#" ("#windSpeed.ToString(2)#" km/h)";
}
else{
! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("0");
! +++++ Erzeugen der Nachricht +++++
message = "<font color=orange>Achtung, Starkwind!</font>\n"#bargraph#" Windstärke "#windForce#" ("#windSpeed.ToString(2)#" km/h)";
}
! +++++ Programm "CCU PRG Push-Nachrichten" ausführen ++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
}
Falls es Probleme gibt, zeig doch bitte mal einen Screenshot des Inhalts der Systemvariablen "Windstaerke" (WebUI -> Status und Bedienung -> Systemvariable).