FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cocojambo am 30 September 2013, 18:10:48

Titel: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: cocojambo am 30 September 2013, 18:10:48
Hallo,
Ich habe mir aus verschiedenen Beiträgen schon etliche Codeschnipsel "zusammen geklaut" und sowohl bei Google Fhem Groups und auch hier nach einer Lösung gesucht. Was ich machen möchte ist eigendlich simpel, aber ich kriege es nicht hin. Ich habe eine "Tonnenabfuhr.holiday" angelegt, in der ich die Abfuhrtermine der einzelnen Tonnen eintrage:

1 09-30 Bio
1 10-04 Bio_Blau
1 10-07 Rest
1 10-10 Bio
1 10-14 Rest
1 10-17 Bio_Blau
1 10-21 Rest
1 10-26 Rest
1 10-30 Bio_Blau

So jetzt zu meiner Abfrage, die zwar komischer Weise ohne Fehermeldung läuft aber nichts schaltet:

define Tonnenabfuhr holiday
attr Tonnenabfuhr group Events
define Tonnenabfuhr_heute at *18:03:00 { ("get Tonnenabfuhr today");;\
 if (Value(Tonnenabfuhr eq "Bio")) { fhem ("set Tonnen off")}}


Im Event Monitor steht dann folgendes:
Events:
2013-09-30 18:03:00 Global global DELETED Tonnenabfuhr_heute
2013-09-30 18:03:00 Global global DEFINED Tonnenabfuhr_heute

Gebe ich über die Eingabeaufforderung "get Tonnenabfuhr today" ein kommt als Ausgabe "Bio".
Warum funktioniert das nicht mit der if-Bedingung? das der Befehl "set Tonnen off" aufgegeben wird.

Ich habe auch noch andere Programmteile ausprobiert, aber nie kommt der "off" Befehl.
Ich freue mich wenn einer was dazu weiß und mir helfen kann.
Gruß aus köln
Norbert
Titel: Aw: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: Puschel74 am 30 September 2013, 18:19:24
Hallo,

sollte das

Zitatif (Value(Tonnenabfuhr eq "Bio")) { fhem ("set Tonnen off")}}

nicht so

if (Value("Tonnenabfuhr" eq "Bio")) { fhem ("set Tonnen off")}}

aussehen?

Dann sollte aber mWn mindestens eine Meldung im fhem-LogFile auftauchen.

Grüße
Titel: Aw: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: fhainz am 30 September 2013, 18:22:17
Hallo!

Versuch's mal mit:
define Tonnenabfuhr_heute at *18:03:00 { fhem("get Tonnenabfuhr today");;\
if (Value(Tonnenabfuhr eq "Bio")) { fhem ("set Tonnen off")}}


Wenns nicht klappt muss jemand anders ran. Bin auch noch am anfang ;)


Grüße

Edit:
Da war jemand schneller. Meine Frage muss nicht vor dem ("get ... ) auch ein fhem() wie bei dem set anschließend?
Titel: Aw: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: betateilchen am 30 September 2013, 18:28:23
Macht das doch einfach über einen Google Kalender. Dafür gibts doch ein fertiges Modul in fhem.
Titel: Aw: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: cocojambo am 01 Oktober 2013, 10:12:54
Danke für eure Ratschläge.
@ Puschel 74
@ fhainz
@ betateilchen

Ich hatte diese Varianten in meinen stundenlangen Veruche schon probiert, habe sie aber jetzt noch mal ausprobiert. Ich habe die attr Log Zeilen noch eingefügt. Leider geht es so auch nicht und auch kein LOG taucht auf.

Das mit dem google kalender habe ich mir auch mal angesehen. Dort muß ich aber doch mit dem gleichen Aufwand meine Daten eingeben so wie in meiner Tonnenabfuhr.holiday. Deshalb ist es mir lieber, die Daten zu Hause zu haben, als bei Google. Oder habe ich das falsch verstanden?

Vielleicht weiß ja noch jemand was an meiner Abfrage der Tonnenabfuhr.holiday falsch ist. Ich würde es erst mal lieber so lösen.

Gruß aus Köln
Norbert
Titel: Aw: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: UliM am 01 Oktober 2013, 10:36:06
Hi,
Du willst nicht abfragen, welchen Wert der Aktor 'Tonnenabfuhr eq "Bio"' hat, oder?

Geht vielleicht
define Tonnenabfuhr_heute at *18:03:00 { fhem("get Tonnenabfuhr today");;\
if (Value("Tonnenabfuhr") eq "Bio") { fhem ("set Tonnen off")} }


Falls das nicht geht, kannst Du den erzeugten Wert von "Tonnenabfuhr" testweise ja mal ins Log schreiben

define Tonnenabfuhr_heute at *18:03:00 { fhem("get Tonnenabfuhr today");;\
Log 1, Value("Tonnenabfuhr");;if (Value("Tonnenabfuhr") eq "Bio") { fhem ("set Tonnen off")} }

und dann ggf die if-Bedingung anpassen.

=8-)
Titel: Aw: Problem mit der Abfrage einer .holiday Datei und Schalten eines Aktors
Beitrag von: cocojambo am 01 Oktober 2013, 11:48:39

Ich frage auch ab ob Bio, graue oder blaue Tonne dran ist.
mit dem LOG File habe ich mich vielleicht nicht richtig ausgedrückt. Im normal LOG File der alles logt steht natürlich als Ergenis von "get Tonnenabfuhr today" als Ergebnis "Bio" drin. Das hatte ich ja schon im ersten Post erwähnt, das bei der manuellen Eingabe von "get tonnenabfuhr today" als Ergebnis "Bio" kommt. Deshalb habe ich gedacht das die if bedingung irgendwie falsch ist oder falsch geschrieben ist.
Ich habe jetzt mal alle Möglichkeiten dieser if - fhem Bedingung durchprobiert. Mal mit Klammern, geschweift und gerundet, mit und ohne Anführungszeichen und mit div. Kombinationen von Allem.

Mit dieser funktioniert es einwandfrei, wenn man Bio so ("Bio") in die Bedingung schreibt. Ich weiß nicht warum. In allen anderen if-fhem Abfragen brauchte ich das nicht so zu machen:

define Tonnenabfuhr_heute at *11:47:00 { fhem("get Tonnenabfuhr today");;\
if (Value("Tonnenabfuhr") eq ("Bio")) { fhem ("set Tonnen off")}}

Damit geht es. Fall gelöst. Nochmals Danke an die, die sich auf mein Problem gemeldet haben und mir bei der Lösung geholfen haben.

gruß aus köln
Norbert