Code: Alles auswählen
string out;
system.Exec("curl 'http://127.0.0.1:8082/query/text.gy?dp=HmIP-RF.00185BE9A153CE:1.RAIN_COUNTER&b=-10m&ag=counter'", &out);
if (out.ToFloat() > 8) {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("msg_reciver").State(3); ! Alle
dom.GetObject(ID_SYSTEM_VARIABLES).Get("msg_priority").State(4); ! Prio 2 (Emergency)
dom.GetObject(ID_SYSTEM_VARIABLES).Get("msg_text").State("STARKREGEN erkannt! Regenmenge "#out.ToFloat().ToString(1)#" mm / 10 Minuten");
} else {
dom.GetObject(ID_SYSTEM_VARIABLES).Get("msg_priority").State(2); ! Prio -1
dom.GetObject(ID_SYSTEM_VARIABLES).Get("msg_text").State("Es regnet! Regenmenge "#out.ToFloat().ToString(1)#" mm / 10 Minuten");
}
das Programm wird jedes mal ausgeführt wenn die Wetterstation neue Werte meldet. Haben sich im CCU-Historian in den letzten 10 Minuten mehr als 8mm angesammelt gibt es einen Alarm. Der Else-Zweig dient nur dem testen der Funktion und wird (nach dem nächsten Regen) wieder entfernt.
Wer kennt eine Lösung die per Schwellwertüberschreitung auf dem richtigen Kanal funktioniert? Diese Meldung würde dann auch direkt und nicht erst mit der nächsten "Gieskannenmeldung" übertragen werden...
Grüße,
Steffen