NEWS
Automatische Bewässerung mit Not-Aus-Taster
-
Moin,
ich steuere 5 Sektionen in meinem Garten mit 5 Ventilen, die über einen Homematic 8-fach Schaltaktor im Nebengebäude erfolgreich angesteuert werden.Im IoBroker habe ich dafür verschiedene Datenpunkte angelegt:
Ein script triggert jetzt auf den DP [AlleRegner15MinEin] und schaltet dann nacheinander die Regner für 15 Minuten ein (Hier im Script in der Testphase noch 10 bzw. 2 Sek.) Danach bekomme ich eine Nachricht. Funktioniert.
Ein weitere Datenpunkt mit der Bezeichnung "AlleRegnerAus" soll alle Beregnungsvorgänge sofort stoppen (Not-AusTaster). Dazu triggert ein Script mit der Bezeichnung [AlleRegnerAus] auf diesen Datenpunkt und setzt bei Veränderung die o.a. Datenpunkte, wenn diese auf "wahr"stehen, auf "falsch" um den Beregnungsvorgang sofort zu unterbinden.
Das Problem:
Wenn ich z. B. während der Laufzeit des Regners BeetVorne die Notaustaste drücke, stoppt dieser zwar sofort, jedoch kommen danach die anderen darauffolgenden Regner wieder in Betrieb. weil ja vermutl. das 15MinEin-Script weiterläuft.Das ganze wird mittels einer Visualisierung gesteuert. Ich kann dort jeden Regner manuell für 30 Minuten regnen lassen oder alle für z.B. 15 Min. nacheinander. Letzteres soll demnächst Anhand der Regenmenge in Verbindung mit der Temperatur automatisch geschehen.
Der Regner für den Bereich "Schuppen" ist noch nicht aktiv, der kommt später dazu.
Ich bin (noch) kein Profi und habe irgendwie einen Knoten im Kopf. Die Visualisierung ist sicher einfach gehalten, kann aber auch von unbegnadeten Laien intuitiv bedient werden (.. glaube ich)
Wer zerschlägt meinen Knoten?
DANKE!!MfG Hans K.
-
@hansk Das ist ein reines Logikproblem. Du musst einfach mit dem Notaus einen Datenpunkt oder eine Variable setzen, die bei den normalen "Beregnungsregeln" abgefragt werden.
Ich verstehe auch nicht warum Du 2 Datenpunkte verwendest und im Prinzip auf Aktualisierung triggerst. Ich würde nur einen Datenpunkt nehmen - zum Beispiel alle RegnerEin und diesen dann mit true oder false verwenden. Somit können alles ausschalten und alles einschalten nicht gleichzeitig aktiv sein.
-
@mickym Ja, OK. Die Idee hatte ich auch.
Ich habe das mal, damit beim testen der Rasen nicht absäuft mit einer Lampe nachgebaut.
Wenn ich den DP auf Wahr setze blinkt die Lampe 5 mal. Soweit ok.
Aber: Wenn ich z.B. nach dem 2. Blinken den DP auf Falsch setze blinkt die Lampe noch drei mal weiter, weil das Script zu noch zu Ende läuft.Ich müsste es hinbekommen, dass bei DP = Falsch sofort das Script endet. Ich komm' nicht drauf...
-
@hansk Gut ich bin kein Blockly Spezialist. Im Prinzip ist schon klar, warum das nicht geht. Wenn Du mit Pause arbeitet, wird das Script ja nur angehalten. In meinen Augen müsstest Du mit timern arbeiten und diese dann löschen bzw. cancel, wenn Du den DP auf False setzt.
Also statt Deinen Pausen nimmst Du timer und kannst diese bei Bedarf auch canceln.
Sprich wenn der auslösende Datenpunkt true ist, startest Du Deine verschiedenen oder einen Timer, wenn falls löscht Du diesen oder diese wieder, stoppst die Beregnung und somit ist dann auch kein weiterer Timer der erneut starten könnte aktiv. Wenn halt immer 500ms dazwischen liegen müssen, dann musst halt 5 Timer mit jeweils 500ms Unterschied starten. Also 500,1000, 1500,2000, 2500 ms usw.
EDIT:
Ich hätte es so irgendwie gemacht:
aber der Blockly Guru hat Dir sicher schon eine bessere Möglichkeit gepostet.
-
@hansk sagte: schaltet dann nacheinander die Regner für 15 Minuten ein
Das ist eine typische Aufgabenstellung für ein Intervall, das zum Ende und bei "Notaus" gestoppt wird.
Noch besser lässt es sich mit einer ID-Liste realisieren: