cerberus hat geschrieben: ↑18.10.2019, 16:58
Leider bin ich in der Skriptprogrammieren nicht bewandert und brauche eure Hilfe.
Ich auch nicht so wirklich. Aber ich habe mir aus diversen Quellen und Beispielen folgendes funktionierend zusammen gestellt:
Code: Alles auswählen
!Vergleich interner und externer absoluter Luftfeuchtigkeit
!Testbereich
!var dpv = dom.GetObject("CUx-Humidity Schornstein:1").DPByHssDP("ABS_HUMIDITY").Value();
!WriteLine (dpv);
!var dpv = dom.GetObject("CUx-Humidity Garage:1").DPByHssDP("ABS_HUMIDITY").Value();
!WriteLine (dpv);
!var rfname = (dom.GetObject(ID_CHANNELS)).Get("SD Garage vorn Luefter:3").DPByHssDP("STATE").Value();
!WriteLine(rfname);
!WriteLine (dom.GetObject(ID_CHANNELS).Get("SD Garage vorn Luefter:3").DPByHssDP("STATE").State(0));
if ((dom.GetObject(ID_CHANNELS)).Get("SD Garage vorn Luefter:3").DPByHssDP("STATE").Value())
{
if (dom.GetObject("CUx-Humidity Schornstein:1").DPByHssDP("ABS_HUMIDITY").Value() >= dom.GetObject("CUx-Humidity Garage:1").DPByHssDP("ABS_HUMIDITY").Value())
{
dom.GetObject(ID_CHANNELS).Get("SD Garage vorn Luefter:3").DPByHssDP("STATE").State(0);
}
}
else
{
if (dom.GetObject("CUx-Humidity Schornstein:1").DPByHssDP("ABS_HUMIDITY").Value() < dom.GetObject("CUx-Humidity Garage:1").DPByHssDP("ABS_HUMIDITY").Value())
{
dom.GetObject(ID_CHANNELS).Get("SD Garage vorn Luefter:3").DPByHssDP("STATE").State(1);
}
}
!WriteLine("Ende");
Darin wird, ausgehend von den über 2 CuxD gelieferten absoluten Feuchtewerten einfach nur eine Steckdose an- und ausgeschaltet.
Im Prinzip
Ich habe darin bewußt alles so weit gekürzt, dass ich die Werte direkt in der Vergleichszeile auslese, und nicht zuvor in Variablen schreibe. Dies erfolgt nur in den (hier aktuell auskommentierten) Testzeilen.
Und nicht wundern: Da die Script-Variablen von der CCU (mit Ausnahme von 'Script testen' !!!) allen meinen Tests nach immer global gehalten werden, werden diese bei mir auch bereits außerhalb dieses Scriptes in einem beim CCU-Start ausgeführten zentralen Script definiert. Wird hier zwar immer anders empfohlen, ermöglicht mir aber aus meiner Sicht eine bessere Übersicht über deren Verwendung, da ich dies im Init-Script entsprechend zentral dokumentiere.