Hauptmenü

Bewässerung

Begonnen von qwert4u, 01 Juli 2014, 11:55:30

Vorheriges Thema - Nächstes Thema

qwert4u

Hallo,

ich habe 3 Magnetventile die ich mittels Homamatich relay steuere.
händisch funktioniert das öffnen und manuelle schließen der Ventile über die Fhem Web-Oberfläche.

nun möchte ich einen Knopf / Schalter haben, der dann folgendes realisiert:
wenn gedrückt, dann öffne das erste Ventil für 20 min danach dass zweite Ventil für 20 min und danach das dritte Ventil für ebenfalls 20 min.

ich habe schon viel gelesen, bin jedoch mit der Programmierung nicht vertraut.
hat jemand einen fertigen Code Schnipsel für mich?

ich danke schon mal im voraus.

Bennemannc

Hallo,

grob beschrieben:
1) Notify - der überwacht, ob der Schalter gedrückt wurde.
2) Notify löst geschachtelte at aus
define t1 at +00:00 set Ventil 1 on-for-timer 1200 (= unverzögert ein für 1200 sec)
define t2 at +00:21 set Ventil 2 on-for-timer 1200 (= time+21 min ein für 1200 sec)
define t3 at +00:42 set Ventil 3 on-for-timer 1200 (= time+42 min ein für 1200 sec)
3) Notify auf Ventil 3 (Ausschaltung) - löschen t1,t2,t3 ... obwohl - ich habe irgendwo gelesen das einmalige Timer automatisch gelöscht werden. Musst Du einfach mal testen.

on-for-timer schaltet automatisch wieder ab, 1 min Pause zwischen den Ventilen (kann man auch weglassen)
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

peterchen89

Vielleicht passt das Modul von Tobias auf deinen Anwendungsfall ? Das unterstützt schon dass nur X Ventile parallel geöffnet sein dürfen.
FHEM 5.5 auf HP ProLiant MicroServer G7 N54L 8 GB Ubuntu 14.04 LTS.
1x HM-CFG-LAN, 1x HM-CFG-USB, 7x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-SEC-SCo, 2x HM-TC-IT-WM-W-EU, 2x HM-LC-Sw1-Pl, 2x HM-ES-PMSw1-Pl, 4x HM-PB-2-WM55-2, 1x HM-PB-6-WM55, 1x HM-WDS10-TH-O, 1x CUL433, 6x Pollin Funksteckdose

qwert4u

Hast Du noch einen hinweis / Beispiel, wie ich diese notify definieren muss?

qwert4u

es funktioniert nicht... und ich finde das Problem nicht, da ich nicht so bewandert mit dem programmieren bin. habe schon viel gelesen. es wäre schön, wenn mir jemand behilflich ist.
mit Wetter.humidity:.*  kann fhem nichts anfangen... muss ich dazu noch was laden?

also meine Aufgabenstellung war folgende:
einen dummy schalter schaffen, der wenn gedrückt ist die Beregnung nacheinander in der nacht abarbeitet. wenn ich ihn tagsüber ausschalte soll dann die Beregnung in der kommenden Nacht nicht laufen.
schön wäre, wenn man die Luftfeuchte auch noch mit einbezieht  (also höher 70 % beträgt (also regenwahrscheinlichkeit) der schalter ebenfalls deaktiviert wird bei unter 70% dann wieder aktiviert wird.

define Beregnung dummy
attr Beregnung alias Bewässerung
attr Beregnung eventMap on:on off:off
attr Beregnung fm_type smarttogglebutton
attr Beregnung room Garten
attr Beregnung webCmd on:off
define Bewaesserung_1 at +02:00 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_01 on-for-timer 1200)}}
define Bewaesserung_2 at +02:30 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_02 on-for-timer 1200)}}
define Bewaesserung_3 at +03:00 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_03 on-for-timer 1200)}}
Wetter.humidity:.* IF ([Wetter:humidity] => 70)(set Beregnung off)
Wetter.humidity:.* IF ([Wetter:humidity] => 30)(set Beregnung on)

Rince

Nicht so ganz.

Das if kannst du dir schenken. Das ist quasi dein Notify!
Schau mal in der commandref die Beispiele zum Notify an. Statt einem Licht einzuschalten, definierst du dann diese 3 at mit dem Einschaltbefehl.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Paul

Das könntest du zusammenfassen

*06:00  { if ( Value ("Regen") eq "an") {fhem ("set Regner1 on-for-timer 960; define R2 at +00:17 set Regner2 on-for-timer 960; define R3 at +00:34 set Regner3 on-for-timer 960")}}

und vorher ein at wo du dein dummy (bei mir Regen) auf on oder off stellst
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Puschel74

Hallo,

Zitatmit Wetter.humidity:.*  kann fhem nichts anfangen... muss ich dazu noch was laden?
keine Ahnung - mit der "Meldung" kann ich auch nichts anfangen.
Hast du Wetter irgendwie definiert?

Wobei
Wetter.humidity:.* IF ([Wetter:humidity] => 70)(set Beregnung off)
Wetter.humidity:.* IF ([Wetter:humidity] => 30)(set Beregnung on)

alles was => 70 ist wird auch =>30 sein - wobei ich den Syntax jetzt nicht in mein Versuchssystem eingebaut habe.
Aber IF (also das FHEM-IF und nicht das PERL-if) ist ja ein anderes Modul  ::)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

qwert4u

 der schalter (Bewässerung) funktioniert jetzt nur die Wetter "Schaltung" nicht was mache ich falsch? aktuell beträgt die Luftfeuchte 74 nur der schalter ist immer noch an.



define Beregnung dummy
attr Beregnung alias Bewässerung
attr Beregnung eventMap on:on off:off
attr Beregnung fm_type smarttogglebutton
attr Beregnung room Garten
attr Beregnung webCmd on:off
define Bewaesserung_1 at *02:00 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_01 on-for-timer 1200")}}
define Bewaesserung_2 at *02:20 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_02 on-for-timer 1200")}}
define Bewaesserung_3 at *02:40 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_03 on-for-timer 1200")}}


define Wetter Weather 689779 1800
attr Wetter event-on-update-reading humidity
attr Wetter room Wettervorhersage
define FileLog_Wetter FileLog ./log/meinwetter-%Y-%m.log Wetter
attr FileLog_Wetter logtype text
attr FileLog_Wetter room Wettervorhersage
define weblink_wetter weblink htmlCode {WeatherAsHtml("Wetter")}
attr weblink_wetter room Wettervorhersage
define Luftfeuchte notify Wetter.humidity:.* if ([Wetter:humidity]<50)(set Beregnung off)

qwert4u

schöner wäre natürlich, wenn mann das wetter so auswerten könnte, wenn da "regen" steht, das dann die bewässerung aus geschaltet wird.
hat einer eine Idee?

define Luftfeuchte notify Wetter.humidity:.* if ([Wetter:humidity]<50)(set Beregnung off)

Puschel74

Hallo,

if und IF kannst du nicht mischen.
Entweder oder - du musst dich entscheiden.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Paul

Was klappt denn nicht
?

Probier es mal so

define Luftfeuchte notify Wetter.humidity:.* if ([Wetter:humidity]<50) fhem(set Beregnung off)
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Puschel74

Hallo,

hab ich nicht grad 20 Minuten vorher geschrieben das sich if und IF nicht mischen lässt  :o

@Paul
Auch du mischt if und IF (oder kopierst einfach nur ab).

Das ist if
if (ReadingsVal("Wetter","humidity",0) < 50 ) ....
und das wäre IF
IF ([Wetter:humidity]<50)...

Man sei so nett und beachte die GROSS geschriebenen Buchstaben sonst werden Eure Codes NIE funktionieren.

Wobei mich das Event etwas wundert.
Sollte vielleicht eher so
ZitatWetter:humidity.*
aussehen.
Aber das lässt sich durch einen einfach Blick in den EventMonitor kontrollieren.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

qwert4u

code sieht jetzt so aus: also nur klein geschriebene if

es geht nicht. keine Fehlermeldung beim speichern der fhem.cfg. Aber keine Ereignisse im Event Monitor. Schalter immer noch on obwohl der aktuelle wert ein schalten auf OFF bewirken sollte.
noch schöner wäre wie gesagt die Auswertung ob schauer / regen usw. für den aktuellen tag angekündigt sind...


define Beregnung dummy
attr Beregnung alias Bewässerung
attr Beregnung eventMap on:on off:off
attr Beregnung fm_type smarttogglebutton
attr Beregnung room Garten
attr Beregnung webCmd on:off
define Bewaesserung_1 at *02:00 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_01 on-for-timer 1200")}}
define Bewaesserung_2 at *02:20 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_02 on-for-timer 1200")}}
define Bewaesserung_3 at *02:40 {if (Value("Beregnung") eq "on") {fhem ("set CUL_HM_HM_LC_SW4_WM_25115F_Sw_03 on-for-timer 1200")}}


define Wetter Weather 689779 1800 de
attr Wetter event-on-update-reading humidity
attr Wetter room Wettervorhersage
define FileLog_Wetter FileLog ./log/meinwetter-%Y-%m.log Wetter
attr FileLog_Wetter logtype text
attr FileLog_Wetter room Wettervorhersage
define weblink_wetter weblink htmlCode {WeatherAsHtml("Wetter")}
attr weblink_wetter room Wettervorhersage
define Luftfeuchte notify Wetter:humidity:.* if ([Wetter:humidity]<50)(set Beregnung off)

qwert4u

sorry... das geht jetzt doch mit Auswertung der Luffeuchte... aber besser wäre ja die Auswertung nach schauer, regen oder ähnlichen begriffen in der Vorhersage zum aktuellen tag... wie kann ich das realisieren?