NEWS
Poolsteuerung in Abhängigkeit von Stromertrag (Solar)
-
@g-hawk sagte: auseinander gezogen, wo ist der Unterschied?
Es gibt keinen Unterschied. Man darf nur nicht Trigger innerhalb von Triggern verwenden.
@g-hawk sagte in Poolsteuerung in Abhängigkeit von Stromertrag (Solar):
nicht das die ab 11 am nächsten Tag dann einfach angeht.
Doch das geht sie bei <-300 W und Freigabe durch "Poolstromautomatik".
@g-hawk sagte in Poolsteuerung in Abhängigkeit von Stromertrag (Solar):
Was macht den setzte "manuel aus" genau?
Wenn die Pumpe ausschaltet, wird geprüft, ob die Ursache dafür ein Skript ist oder eben nicht.
-
@paul53
Das darf sie aber nicht.
Ich könnte ja um 19 Uhr einen Ausbefehl senden und dann habe ich ja manuell ausgeschaltet und das Skript dürfte ja nicht anlaufen. -
@g-hawk sagte: habe ich ja manuell ausgeschaltet
Wenn vor 19:00 Uhr manuell ausgeschaltet wird, bleibt die Sperre
manuellAus
so lange erhalten, bis die Pumpe wieder eingeschaltet wird - oder bis zum nächsten Skriptstart. -
@paul53
Ok und nach 19:00 Uhr?
Es gibt zwei Sachen die ich nicht ganz verstehe das ist einmal manuell aus, was macht genau "nicht Wert" und Ursprung?
Und "sonst falls nicht Verzögerung Timeout" verstehe ich auch nicht ganz. -
@g-hawk sagte: nach 19:00 Uhr?
Wenn
manuellAus
Vorrang haben soll, dann setze die Variable bei Skriptstart und beim Ausschalten um 19:00 Uhr auf wahr.@g-hawk sagte in Poolsteuerung in Abhängigkeit von Stromertrag (Solar):
was macht genau "nicht Wert"
"nicht Wert" bedeutet: Pumpe hat gerade ausgeschaltet.
"Ursprung != system.adapter.javascript.0" bedeutet: Der Ausschaltbefehl kam nicht von einem Skript. -
@paul53
Aha. Das bedeutet wenn die Pumpe wahr ist, dann soll "manuell aus" auf falsch gestellt werden wenn die Änderung nicht von einem Script kommt.
" nicht wert" ist also immer das Gegenteil von dem was gerade anliegt, oder? -
@g-hawk sagte: " nicht wert" ist also immer das Gegenteil von dem was gerade anliegt, oder?
Ja, umgangssprachlich sagt man auch: Die Pumpe läuft nicht.
@g-hawk sagte in Poolsteuerung in Abhängigkeit von Stromertrag (Solar):
"sonst falls nicht Verzögerung Timeout" verstehe ich auch nicht ganz.
Diese Sperre verhindert, dass der Timeout mehrfach gestartet wird, denn dann kann er nicht mehr gestoppt werden.
-
@paul53
Zum Verständnis
Wäre das so richtig? Eben nur aufwändiger geschrieben? -
@g-hawk sagte: Wäre das so richtig? Eben nur aufwändiger geschrieben?
Ja.
-
@paul53
Um die Logik zuverstehen, habe ich es mal nachgebaut.
Wenn das so richtig ist, habe ich das "nicht" vielleicht verstanden: -
@g-hawk sagte in Poolsteuerung in Abhängigkeit von Stromertrag (Solar):
Änderung nicht von einem Script kommt.
" nicht wert" ist also immer das Gegenteil von dem was gerade anliegt, oder?in der Bool'schen Algebra dient das nicht zum invertieren eine Bedingung.
bei Werten vom Typ bool true/false noch relativ einfach, aber zb beispiel wärenicht schwarz
keinesfalls zwingend weiß.
Das ist zwar auch richtig, aber nur eine Möglichkeit. -
@g-hawk sagte: habe ich es mal nachgebaut.
Der Trigger ist falsch! Es wird nur getriggert, wenn der Grenzwert über- oder unterschritten wird. Damit kann man nicht mitbekommen, dass die Leistung unter -300 W sinkt, denn es wird nicht mehr getriggert. Verwende als Trigger-DP "Stromverbrauch_aktuell"!
Ein Vergleich mit wahr ist unnötig, da das Ergebnis eines Vergleichs immer falsch oder wahr ist.
Wenn der Wert der Poolpumpe schon in der VariablenPoolpumpe
vorliegt, sollte man auch diese Variable verwenden, denn das erneute Einlesen des Wertes ist Ressourcenverschwendung.Der Datenpunkt "Stromverbrauch_ueber_500W" ist überflüssig (kontraproduktiv).
-
@paul53
Ok habe es geändert.
Er aktualisiert den Datenpunkt "Stromverbrauch aktuell" aber ständig, ich wollte verhindern, dass das Script ständig startet, wenn der Datenpunkt sich ändert. -
@g-hawk sagte: aktualisiert den Datenpunkt "Stromverbrauch aktuell" aber ständig
Das ist auch erforderlich, da die Leistung (500 W / -300 W) geprüft wird. Für die CPU ist das "selten".
-
@paul53
OK, dann teste ich mal.
Vielen Dank. -
@g-hawk sagte: habe ich das "nicht" vielleicht verstanden
Ja, i.d.R. kann man anstelle von "nicht Wert" auch "Wert = falsch" verwenden.
Dadurch, dass die VariablemanuellAus
bei Skriptstart auf wahr initialisiert wird, klappt es auch damit. Würde die Variable bei Skriptstart nicht initialisiert (Skriptablauf hätte Vorrang), dann wäre sie erst einmal undefined und der Vergleich mit falsch würde nicht funktionieren - aber "nicht".