Hauptmenü

Gartenbewässerung

Begonnen von fhemguru66, 27 Juli 2013, 18:44:03

Vorheriges Thema - Nächstes Thema

fhemguru66

Derzeit funktioniert meine Gartenbewässerung zu fixen Zeiten recht gut.
Ich möchte aber Wetter abhängig - vorerst mittels einem Dummy Schieberegler eben von 1 bis 100 min einstellen können, wie lange die jeweiligen Kreise bewässern. Mein Problem ist, dass das Ende des 1. Kreises der Beginn des 2. Kreises sein soll.
Da genau habe ich das Problem, dass ich da keine Idee habe wie ich das realisieren kann.

1. Idee war: on for timer für 1. Kreis --> ist aber das Problem wie bekomme ich dann den 2. Kreis an?
2. Idee war: die Zeiten intern zu berechnen und dann abarbeiten --> ist mir aber auch nicht gelungen.

Wäre für Hilfe sehr dankbar.

justme1968

wie wäre es mit einem notify das nach dem on-for-timer auf das aus vom 1. kreis reagiert und dann den zweiten startet?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Paul

Das müsste doch mit set wasser1 on-for-timmer und einem at + ........ gehen
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Zrrronggg!

Wenn du ein bisschen genauer beschreibst, wie du den 1. Kreis exakt steuern willst, fällt und bestimmt das genaueres ein. Sonst müssen wir rumraten und können nicht mehr sagen als "das müsste doch mit einem at + gehen".
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

fhemguru66

Sorry, aber dann will ich es mal meinen Wunsch genauer beschreiben.
Ziel ist:
Ich möchte gerne mit einer Auswahlliste oder Slider Gießzeiten für die Kreise festlegen. Dann entweder mittels händischem anleiern durch Taster.
Dann soll zunächst Kreis1 die Gießzeit bewässern; nach Ablauf soll automatisch auf Kreis2 umgeschaltet werden und ebenfalls die Gießzeit bewässern.
Zum Schluss noch alles abdrehen.

Hoffe, nun ist es klarer?

Zrrronggg!

Hm.

Ich nahem irgendwie an, dass
Zitat1. Idee war: on for timer für 1. Kreis --> ist aber das Problem wie bekomme ich dann den 2. Kreis an?
so zu interpretieren ist, als hättest du das Problem "slider-> on for timer" schon gelöst.  Ist das so?

Wenn nicht: Ich habe dazu im Moment auch keine Idee und würde eher fragen, ob eine Slider von 1-100 Minuten erfoderlich bzw den Aufwand wert ist.
Wenn du dir einfach 4 Buttons anlegst, mit 25. 50, 75 und 100 Minuten Bewässerungszeit. wäre die Sache recht einfach.

Von meinem eigenen Garten kann ich sagen, das Bewässern unter 40 Minuten sowieso keinen Zweck hat und eine Minutenauflösung  wäre mir viel zu fein.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

justme1968

also der slider an sich ist kein problem:define dauer dummy
attr dauer setList time:slider,25,25,200
attr dauer webCmd time

das gibt z.b. einen slider mit 8 schritten (im abstand von jeweils 25) zwischen 25 bis 200.

die einzelnen kreise kannst du dann entweder aneinander hängen in dem jeder kreis per notify an das aus des kreises davor gehöngt wird oder in dem für jeden kreis das at jeweils um die dauer des kreises davor verschoben anlegst.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Zrrronggg!

Wenn man sich auf z.b. 4 Werte einschränkt sind 4 Buttons leichter zu bedienen als ein Slider und 1 Button. Daher meine Frage, wie notwendig das in der Praxis tatsächlich ist mit dem Slide bzw seiner Auflösung.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

fhemguru66

Vielen Dank für die vielen Tipps.
Grundsätzlich muss es kein Slider sein, scheint ja zu kompliziert zu sein. Klar, ein paar vordefinierte Zeiten (ob auf Buttons, oder aus einer Liste) würden genügen. Es soll ja nicht ständig umgestellt werden.
Sinn ist es, wenn es ein paar "heiße Tage" gibt, dann soll mehr bewässert werden, wenn Regen, dann entweder gar nicht oder entsprechend weniger.

Zu einer Meldung, wie genau müsste das 2.beginnende at an das 1. gehängt werden.
Bei automatischer Bewässerung ist es ok, denn da kenne ich die Startzeit 1. Kreis;

Geht das auch bei Start Bewässerung per Taster dann auch?

Zrrronggg!

Per Taster meint: per Fernbedienung?

Klar, geht.

(ich denke mir gerade mal paar Zeilen aus, kommt gleich.)i
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Also. Angenommen, du willst das mit eine FS20 Fernbedienung anmachen.

1. Anlegen von z.b. 4 FS20 Adressen.

Grob so:

define Sprengen30 FS20 22224444 02      #22224444 = dein hypotetischer Hauscode  02 Adresse des Kanals der Fernbedienung
attr Sprengen30 room Garten        

define Sprengen60 FS20 22224444 03      #22224444 = dein hypotetischer Hauscode  03 Adresse des Kanals der Fernbedienung
attr Sprengen60 room Garten            



Und so weiter.


2. Angenommen diie Sprengung würde ausgelöst durch Aktoren, die hypotetisch "Ventil1" und "Ventil2" heissen. Was du da genau hast weiss ich ja nicht. Dann sieht der Code so aus:

define act_on_sprengen30 notify Sprengen30:on  set Ventil1 on ; define Wechsel30 at +00:30:00 set Ventil1 off ;; set Ventil2 on ;; define aus30 at +00:30:00 set Ventil2 off

define act_on_sprengen60 notify Sprengen60:on  set Ventil1 on ; define Wechsel60 at +01:00:00 set Ventil1 off ;; set Ventil2 on ;; define aus60 at +01:00:00 set Ventil2 off


Und so weiter.
(Das hier ist ein define im define im define. Machen rollen sich hier schon die Fussnägel, wen sie das sehen, das geht aber. Es gibt mehrere andere Methoden)

Wenn die Aktoren "on-for-timer" können (also per FS20 oder HomeMatic angesteuert werden) kannst du etwas vereinfachen:

define act_on_sprengen30 notify Sprengen30:on  set Ventil1 on-for Timer 1792 ; define Wechsel30 at +00:30:00 set Ventil1 on-for Timer 1792

define act_on_sprengen60 notify Sprengen60:on   set Ventil1 on-for Timer 3584 ;  define Wechsel60 at +01:00:00  set Ventil2 on-for Timer 3584


Und so weiter.

Die krummen Sekundenwerte bei on-for-timer kommen daher, dass zumindest bei FS20 nicht alle Werte codiert werden können, sondern nur:

 0,25  0,5  0,75  1  1,25  1,5  1,75  2  2,25  2,5  2,75  3  3,25  3,5  3,75  
4  4,5  5  5,5  6  6,5  7  7,5  8  9  10  11  12  13  14  15  16  18  20  22  
24  26  28  30  32  36  40  44  48  52  56  60  64  72  80  88  96  104  112  
120  128  144  160  176  192  208  224  240  256  288  320  352  384  416  
448  480  512  576  640  704  768  832  896  960  1024  1152  1280  1408  
1536  1664  1792  1920  2048  2304  2560  2816  3072  3328  3584  3840  4096  
4608  5120  5632  6144  6656  7168  7680  8192  9216  10240  11264  12288  
13312  14336  15360

Andere Werte rundet FHEM automatisch.

Jetzt kannst du sowohl am Webinterface im Raum "Garten" das Sprengen einschalten, also auch mit einer Fernbedienung die auf die entsprechende FS20 Adresse programiert ist.

Ausserdem kannst du dir jederzeit Automatiken anlegen:

define AutomatischBewässern at *20:00:00 set Sprengen30 on


So, dies ist eine von rund 3 Wegen wie man das machen kann die mir gerade einfallen. Und dann gibts noch 5 weitere, die mir gerade nicht einfallen. Alles aus dem Kopf und ungeprüft.

Noch nicht berücksichtigt ist, dass auch was passiert wenn einer auf OFF drückt, z.b.: dass das Sprengen vorzeitig beendet wird. Ist aber alles kein Problem. Probier das erstmal aus und dann können wir weiter gehen und sehen was du noch haben willst.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

fhemguru66

Vielen Dank für die ausführlichen Lösungsansätze. Ich werde diese sicher ausprobieren.
Wünschenswert wäre noch dass die "30min" Geschichte aus einer Variablen kommt. Da wird man wohl oder übel echten Pearl-Code schreiben müssen.
Sollte aber, glaube ich, machbar sein.
Ich werde mich mal dort einlesen, nachdem ich die hartcodierten Zeiten ausprobiert habe.

Zrrronggg!

Ja, das mit der Variablen wäre genau der Ansatz den viele hier auch machen würden. Ich verstehe das auch, weil das irgendwie "eleganter" ist.

Aber bei Licht betrachtet: Welche Vorteile bietet das? Der Code wird in jedem Falle komplexer, schwerer zu lesen und zu debuggen, die Logfile Einträge sind schwerer nach zu verfolgen etc, man sieht nicht sofort welche "Abschaltdefines" aktiv sind, wenn man mal in die "at" - Liste sieht, da der Wert der Variabel dort nicht gelistet würde (der erklärende Name meiner Lösung aber wohl) und so weiter und so focht.
Kurzum: Ich weiss dass das irgendiwe unelegantist, aber in vielen solcher Fälle finde ich den Vorteil einer "richtigen" Lösung mit Variabelen einfach nicht, ausser das der Code vielleicht etwas kürzer wird.

Der Hartcoded Vorschlag von mir kostet par Minuten und geht (also mal mögliche Flüchtigkeitsfehler unberücksichtigt). Und Änderungen kosten so viel wie fhem.cfg aufmachen 2 Werte ändern, sichern.

Das ist natürlich nix, wenn du jeden Tag eine individuelle Bewässerungszeit einstellen willst, nur wie gesagt: Macht man das beim Bewässern?
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

fhemguru66

Klar, genau da hat es bei mir geklemmt.
Ich glaube, dass ich zu viel gedacht habe und entsprechend zu komplexe Strukturen hätte wollen.
Gut, den Wert einmal in die .cfg Datei zu schreiben und abspeichern geht sogar mittlerweile auch vom Smartphone.
Wenn das alles ist, damit kann ich ganz entspannt und und gut leben.
Vielen Dank für den Hinweis, dass ich mich wohl "verlaufen" habe.
Die Werte einzutragen ist ja wirklich kein großes Unterfangen, anders sähe es aus, wenn ich 27 Kreise zu bedienen habe. Aber dann würde ich mich auch wirklich in die Pearl Programmierung tief einlesen wollen.
Super TIPP!!!!! - DANKE!!!!!

fhemguru66

Klar, es würden vielleicht 3 oder 4 Werte reichen.
Habe mir nur gedacht, die Oberfläche könnte einfach mit einem Slider und Button einfach gestaltet werden. Es ist sicherlich unerheblich ob man statt 30min nur 28 oder 35 wässert - schließlich lässt sich ein Rasen (zum Glück habe ich einen fast Unkrautfreien) nicht überwässern; also selbst  einigermassen besoffen kann man einen vernünftigen Wert einstellen.
Aber die Idee auf relativ grobe Auswahl definierte anzuklicken ist natürlich einfacher zu bedienen.