FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kblc am 21 November 2014, 16:03:45

Titel: if Formulierung klappt nicht
Beitrag von: kblc am 21 November 2014, 16:03:45
Hallo mal wieder.

Ich hatte eine Idee und versuche die gerade umzusetzen:

Ich möchte die Wetterdaten verwenden. Und soll bei z.B. 3°C ein "3°C"-Dummy in der CCU eingeschaltet werden, damit bei Aktivierung der Sprachausgabe durch einen Taster die aktuelle Temperatur über den MP3 Gong von Homematic ausgeben kann.
Soweit zur Idee. In der CCU ist alles vorbereitet. Jetzt muss ich nur noch die Dummys von FHEM aus einschalten.

Das will ich mit ... realisieren. Was auch im Test klappt:
{GetFileFromURL 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject("CUxD.CUX2801006:16.STATE").State(1)'}

Zu meinem Code mit if:
Wenn die Temperatur temp_c  3°C ist soll Lampe 1 angehen ansonsten Lampe 1 ausbleiben

Hier mein Versuch mit dem gar nix klappt.

define Wetterweitergabe notify MeinWetter {if(Readings temp_c ("3") ) {GetFileFromURL 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject("CUxD.CUX2801006:16.STATE").State(1)'} else {GetFileFromURL 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject("CUxD.CUX2801006:16.STATE").State(0)'} }

Meine Daten bekomme ich aus MeinWetter das ich mit:

# ————– Wetterdaten erfassen ————-
define MeinWetter Weather 650068 3600 de
attr MeinWetter room Wettervorhersage

# — Logfile alle Wetter Daten —
define FileLog_MeinWetter FileLog ./log/meinwetter-%Y-%m.log MeinWetter
attr FileLog_MeinWetter logtype text
attr FileLog_MeinWetter room Wettervorhersage

# attr MeinWetter localicons 1

# — Wetter Icons hinzufügen —
define weblink_meinwetter weblink htmlCode {WeatherAsHtml("MeinWetter")}
attr weblink_meinwetter room Wettervorhersage


Das funktiniert auch super. Die Daten kann ich bei FHEM einsehen.

in FHEM einfügte.

Kann mir jemand bitte helfen, Ich komme wieder einmal nicht mehr weiter.
Es wäre schön, wenn ich das realisieren könnte.

Vielen Dank.
Titel: Antw:if Formulierung klappt nicht
Beitrag von: Puschel74 am 21 November 2014, 16:09:24
Hallo,

{if(Readings temp_c ("3") )
Falsch.
Das wird aber vermutlich auch im Logfile stehen so das notify überhaupt triggert.

{if(ReadingsVal("meinWetter","temp_c",99) < 3) ...
Bei Fragen zu ReadingsVal lesen sie bitte im Forum und fragen sie die commandref sowie das Wiki  ;)

Besser wäre es so:
define Wetterweitergabe notify MeinWetter:temp_c.* {if($EVENT < 3) ...
Wobei ich mir nicht sicher bin ob in $EVENT auch die Temperatur - also nur die Zahl steht.
ggf. prüfen durch einfügen von Log(3,"$EVENT - $EVTPART0"); in den Code - das geht dann bei mir aber nur mit Mehrzeiler da ich mit Einzeiler auf Kriegsfuss stehe.

Grüße

Edith: Elegantere Möglichkeit wäre vermutlich DOIF - bitte in der commandref (auch auf deutsch verfügbar) nachlesen