"Round Robin": Status eines revolvierendenGeräts erfassen in Dummy

Begonnen von Ofenrohr, 21 Juni 2020, 12:59:18

Vorheriges Thema - Nächstes Thema

Ofenrohr

Hallo, mit der Suche wurde ich leider nicht fündig. Und da es keine Gardena-SPEZIFISCHE Frage ist, denke ich, passt sie hier ins Anfängerforum am besten.

Der Wasserdruck im Garten reicht nicht, um alles auf einmal zu bewässern. Deshalb mache ich das Beet für Beet mit einem Gardena Wasserverteiler (1x Wasser rein, 6x Wasser raus, Umschaltung mechanisch  - immer wenn der Druck abfällt, dreht sich die Revolvertrommel einen Ausgang weiter) und einen Gardena Smart Watercontrol. Morgens und abends schalte ich sechsmal für x Minuten das Wasser an, dazwischen eine Minute Pause, damit das mechanische Umschalten funktioniert.

Das kann ich in der Gardena App programmieren. Nun möchte ich es aber noch smarter machen mittels Integration in fhem (und perspektivisch zB nicht wässern, wenn noch viel Regen vorhergesagt ist).
Den Gardena Watercontrol hab ich erfolgreich eingebunden. Er geht im Reading "state" auf "offen" oder "geschlossen".

Schritt 1: Ich möchte ablesen können, welches Beet als nächstes dran ist.
Fürs Abspeichern des Status hab ich mir einen DUMMY Bewaesserungsstatus mit EVENT MAP (0:Beet Ost 1: BeetSued ...) angelegt.

Fürs umschalten auf den nächsten Status möchte ich ein DOIF, das bei jedem schließen des Ventils den Dummy Bewaesserungsstatus um eins weiterzählt. Modulo 6 natürlich.
Mit  einem DOIF mit
([Gardena_Watercontrol:geschlossen])
({fhem 'set Bewaesserungsstatus'++})


oder set Bewaesserungsstatus ReadingsVal(Bewaesserungsstatus)++

klappt es nicht. Vom Modulo ganz zu schweigen.

(Daran seht ihr meine bescheidenen Programmierkenntnisse.)


Schritt 2: Automatische Bewässerung über FHEM statt über Gardena App. Kriege ich glaube ich hin mit at und so.


Schritt 3: Dann würde ich mir gerne noch einen Dummy in FHEM anlegen, mit dem ich WÄHLEN kann, welches Beet gezielt und für wie lange manuell zusätzlich bewässert werden soll. Zeit einstellen mittels Slider kriege ich hin, Beet aus Liste auswählen mittels Webcmd und setlist etc kriege ich hin. Nur brauch ich dann noch die Logik dahinter die passend oft das Wasser an- und ausmacht, damit gezielt das gewünschte Beet angesteuert wird.
Auch hier wäre ich für Tipps dankbar.

Schritt 4: Nicht bewässern wenn sehr feucht (Feuchtigkeitsmesser ist vorhanden und eingebunden) ODER wenn Regen vorhergesagt.
Hier werde ich wahrscheinlich umfangreicher programmieren müssen. Weiß nicht, ob ich mich da rantraue...


Bin für Tipps sehr dankbar.
LG Oliver

betateilchen

Schritt 1: Doku lesen. (Wie verwendet man ReadingsVal() richtig?)

Schritt 2: Doku lesen. (Wie verwendet man at devices richtig?)

Schritt 3: Doku lesen. Dann überlegen, ob man dazu wirklich einen dummy braucht, oder ob man die Logik nicht sinnvoll anders abbilden kann.

Schritt 4: Ein Feuchtigkeitsgrad ist letztendlich als logische Bedingung auch nicht anders zu betrachten als ein Zeitpunkt, der darüber entscheidet, was passiert.

Davon abgesehen, würde ich das Ganze in einem notify anstatt DOIF abbilden, das wird wahrscheinlich übersichtlicher und für Anfänger leichter verständlich (und auch in 4 Wochen noch nachvollziehbar!)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!