FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MarcS am 12 März 2013, 19:15:49

Titel: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: MarcS am 12 März 2013, 19:15:49
Hallo zusammen,
ich tue mir noch schwer mit geschachtelten Abhängigkeiten.......
Ich möchte zwischen 08:00 und 20:00 meinen Gartenbrunnen einschalten, aber nur, wenn das Wetter nicht schlecht ist bzw. die Sonne scheint.
Ich habe FS20 mit FB7390 und CUL, alles läuft.
Aktor ist ein FS20 SA (geeignet für Aussenbetrieb)

Folgenden Code wollte ich probieren - bitte helft mir, ob korrekt bzw. Welche Änderungen notwendig sind:

# Brunnen wettergesteuert einschalten
# Sensor = "weather"-Modul, reading = "condition"
# wenn "condition" == "teilweise sonnig" oder "sonnig" dann einschalten
# Abfrage der "condition" alle 30 Minuten
define 9_BrunnenWeather_an at +*00:30:00 { if (ReadingsVal("weather","condition","wolkig") eq "sonnig" { fhem("set 9_Aussen_S2 on") } else { fhem("set 9_Aussen_S2 off") } }

Offene Punkte:
- wie definiere ich hierzu, dass das ganze nur von 08:00 bis 20:00 gilt ?
- wie definiere ich, dass ausser der condition "sonnig" ebenfalls die condition "teilweise sonnig", die das Modul "weather" im Reading "condition" zurückliefert, als positiv bewertet wird (parallel zu "sonnig") ?

Vielen Dank schon mal für die Hilfe !

Marc
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Groby am 12 März 2013, 19:41:38
Hallo MarcS,

für die Wetter - Validierung =~ m/sonnig/

Zeiten entweder gegen $hour und $min validieren oder gegen die aktuelle Zeit mit ($now):


{my $now=sprintf("%%02d:%%02d",$hour,$min)}
 

Einfach mal die Bsp. suchen (code ungetested :)

Gruss, Groby
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: eppi am 12 März 2013, 19:45:08
Hallo Marc

Probier es mal so:
{ if (ReadingsVal("weather","condition","wolkig") eq "sonnig" || ReadingsVal("weather","condition","wolkig") eq "teilweise sonnig" && $hour >= 8 && $hour < 20{ fhem("set 9_Aussen_S2 on") } else { fhem("set 9_Aussen_S2 off") } }

Das "||" bedeutet ODER
Das "&&" bedeutet UND

Ich habe den Code nicht getestet, hoffe dass du trotzdem weiter kommst!
Viele Grüsse, Dani
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: MarcS am 12 März 2013, 19:47:35
Hallo Groby,
vielen Dank für deine Tipps !

Ich bin, was das ganze angeht nicht wirklich fit in der Programmierung, deswegen stehe ic da erstmal vor einem Rätsel, wie ich deine Tipps in die Tat umsetzen kann....

V G
Marc
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: MarcS am 12 März 2013, 19:48:52
Hi Dani,
vielen Dank, ich werde das morgen mal ausprobieren - klingt aber erstmal vielversprechend.

V G
Marc
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Groby am 12 März 2013, 19:51:32
Dank eppi hast Du ja schon die Lösung.

Die beiden ReadingsVal kannst Du noch mit o.g. Vergleich zusammenfassen :)

Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: eppi am 12 März 2013, 19:59:09
@Groby
Danke für den Tipp, man lernt nie aus :=)

@Marc
Nach dem "20" fehlt noch ein Abstand "Space"...

Viel Erfolg und Gruss Dani
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: MarcS am 13 März 2013, 19:49:49
@eppi:

Vielen Dank für deine Hilfe - das Ganze funktioniert großartig.
Ich hatte zwar noch keinen "sonnigen" Tag, aber mit Umstellung der Werte hat das gut geklappt!

Eine kurze Frage vielleicht noch:
Wenn ich diese Aktion nur von April bis Oktober ausführen möchte, wie muss ich das Skript ergänzen?
Im Winter habe ich ja die Pumpe nicht im Brunnen
:-)

Vielen Dank schon einmal und viele Grüße,
Marc
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: det. am 13 März 2013, 20:03:14
Einfache Lösung - wenn der Winter naht ein # vor den Code - wenn der Frühling im Anmarsch ist, das # da wieder weglöschen
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: MarcS am 13 März 2013, 20:09:50
Stimmt - so könnte das auch funktionieren...
:-)

Aber das kann an doch siherlich auh automatiiert machen, oder ?

V G
Marc

Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: eppi am 13 März 2013, 22:05:47
Hallo Marc
Das freut mich! Du kannst den bestehenden Code erweitern um "month".

Beispiel
$month >=3 && $month <10

Januar entspricht Monat 0
Februar entspricht Monat 1
......
Dezember entspricht Monat 11

Wieder ungetestet. Viel Erfolg!
Gruss Dani
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Klaus Rubik am 04 Mai 2013, 14:08:11
Hallo *,

ich bin am verzweifeln, im Prinzip ist der Code genau das was ich für meine Poolpumpe benötige, ich bekomme ihn aber nicht zum laufen.

Code:

+*00:05:00 { if (ReadingsVal("Puchheim","condition","wolkig") eq "sonnig" || ReadingsVal("Puchheim","condition","wolkig") eq "teilweise sonnig" &&  $hour >= 10 && $hour < 18 { fhem("set Poolpumpe on") } else { fhem("set Poolpumpe off") } }

Fehlermeldung im Log:
2013.05.04 13:54:45 3: syntax error at (eval 8407) line 1, near "18  { "

Wer hat hier noch einen Tip für einen Programmierinvalieden :-)

Danke

Klaus
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Dietmar63 am 04 Mai 2013, 14:25:01
Nach der 18 fehlt eine ).
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Klaus Rubik am 04 Mai 2013, 15:09:47
Super, Danke.

Funktioniert.
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Dietmar63 am 04 Mai 2013, 16:41:48
So wie du das Problem löst, schaltest du die Brunnenpumpe alle 5 Minuten - sehr oft und fast immer dann aus.

Du könntest folgendes machen:
Da du wie ich vermute das Weathermodul nutzt, könntest du ein notify auf die condition setzen:

define nf notify Puchheim:condition.* {Log 3, "Nachricht von @: %" }
dann wirst du immer informiert wenn sich die condition in Weather ändert, und abhängig von den Readings schaltest du an/oder aus. Du müstest dann nur noch {Log 3, "Nachricht von @: %"} ersetzen.

Wenn du dann noch mit  
attr Puchheim event-on-change-reading condition das Attribut event-on-change-reading setzt, dann wirst du nur noch informiert wenn sich im Weathermodul die condition tatsächlich ändert und du must nur noch ganz selten prüfen.
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Klaus Rubik am 06 Mai 2013, 08:55:34
Hallo Dietmar,

danke für den Tip, ich probier es mal aus.

Viele Grüße
Klaus
Titel: Aw: Steuerung Gartenbrunnen wetter- und zeitabhängig
Beitrag von: Dietmar63 am 06 Mai 2013, 11:32:56
mit

{Log 3, "Nachricht von @: %" }


kannst du erst einmal prüfen welche Nachrichten in welchem Rhythmus geliefert werden.