FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cocojambo am 02 Oktober 2013, 12:05:24

Titel: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: cocojambo am 02 Oktober 2013, 12:05:24
Hallo,

Ich habe eine Müllabfuhr.holiday gemacht und mit Hilfe einiger IF Abfragen über einen SIG2 die Ausgabe welche Tonne an welchen Tag dran ist gemacht.

define Tonnenabfuhr_blau_heute at *11:42:00 { fhem("get Tonnenabfuhr today");;\
if (Value("Tonnenabfuhr") eq ("blau")) { fhem ("set Tonnen on")}}

Das habe ich in einem anderen Thread gelöst und es funktioniert auch. Jetzt passiert es aber, das an einem Tag alle drei Tonnen abgeholt werden. Dann steht bei "get Tonnenabfuhr today" als Ausgabe "bio, blau, rest". Damit kann meine Abfrage nach einer einzelnen Tonne nichts anfangen. Ich habe dann probiert mit Hilfe von Wildcard das Wort "blau" rauszufiltern. Finde aber keine Lösung. Probiert habe ich folgendes:

if ("Tonnenabfuhr" =~ ".*blau.*")
if (Value("Tonnenabfuhr") eq (".*blau.*"))
if (Value("Tonnenabfuhr") =~ (".*blau.*"))
if ("Tonnenabfuhr" =~ ./blau./")

Auch andere Variationen habe ich probiert, keine geht. Was mache ich da falsch? Läßt sich so die Abfrage nicht machen oder ist das mit .* total falsch. Hier im Board habe ich nichts dazu gefunden und auch nicht in der Fhem Referenz. Vielleicht hat jemand sowas schon mal gemacht und kann mir helfen.
Gruß aus Köln
Norbert

Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: justme1968 am 02 Oktober 2013, 12:27:23
if (Value("Tonnenabfuhr") =~ m/blau/)
mehr z.b. hier: http://www.troubleshooters.com/codecorn/littperl/perlreg.htm (//www.troubleshooters.com/codecorn/littperl/perlreg.htm)

gruss
  andre
Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: cocojambo am 02 Oktober 2013, 12:56:42
hallo andre,

ich habe es gerade probiert, geht aber leider nicht.

define Tonnenabfuhr_blau_heute at *12:50:15 { fhem("get Tonnenabfuhr today");;\
if (Value("Tonnenabfuhr") =~ m/blau/) { fhem ("set Tonnen on")}}

im LOG steht dann nur:
2013.10.02 12:50:15 3: get Tonnenabfuhr today : bio, rest, blau

habe auch m/blau/ mal mit "" und () und beides probiert, klappt auch nicht.
Hast du noch eine Idee woran es liegen könnte?

gruß
norbert
Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: justme1968 am 02 Oktober 2013, 13:04:03
was bekommst du wenn du direkt {Value("Tonnenabfuhr")} per telnet oder im web frontend eingibst?

du kannst auch ein Log 3, Value("Tonnenabfuhr"); direkt vor das if setzen und im log file schauen.

gruss
  andre
Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: cocojambo am 02 Oktober 2013, 13:09:31

Hallo andre

bei der Eingabe : {Value("Tonnenabfuhr")}

kommt als Ausgabe:  none

Gruß
norbert

Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: justme1968 am 02 Oktober 2013, 13:25:21
dann kann es ja auch nicht gehen ...

scheinbar gibt es einen unterschied zwischen 'get Tonnenabfuhr today' und 'Value("Tonnenabfuhr")'.

versuch es mal in der art:define Tonnenabfuhr_blau_heute at *12:50:15 { my $value = fhem("get Tonnenabfuhr today");;\
if ($value =~ m/blau/) { fhem ("set Tonnen on")}}
Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: cocojambo am 02 Oktober 2013, 13:39:40

hallo andre,

so wie es aussieht scheint es zu gehen. Habe es jetzt nur mal auf die Schelle in die CFG eingefügt. Auf jeden Fall erschien "Tonnen on" im Event monitor. Wenn es nicht richtig funktioniert, melde ich mich noch... aber auch wenn es funktioniert.
wir fahren nämlich heute für einen kurzurlaub weg bis sonntag. dann werde ich es mal für alle tonnen umschreiben und ausgiebig testen und mich dann mal melden.

auf jeden fall, herzlichen dank für deine schnelle hilfe.

gruß aus köln
norbert
Titel: Aw: Eine IF Abfrage mit Hilfe von Wildcards erstellen
Beitrag von: cocojambo am 06 Oktober 2013, 18:06:05
Hallo Andre,

Ich habe alle Varianten durchgetestet. Es funktioniert 100%ig. sehr gut!!!! Vielen Dank.
So sieht meine Abfrage jetzt aus. Die habe ich dann drei mal gemacht für die Reste und Bio Tonne auch.

# Blaue Tonne
#------------
define Tonnenabfuhr_blau_morgen at *19:00:10 { my $Value = fhem("get Tonnenabfuhr tomorrow");;\
if ($Value =~ m/blau/) { fhem ("set Tonnen_CUL on;;sleep2;;set Tonnen_CUNO on")}}
define Tonnenabfuhr_blau_heute at *07:00:10 { my $Value = fhem("get Tonnenabfuhr today");;\
if ($value =~ m/blau/) { fhem ("set Tonnen_CUL on;;sleep2;;set Tonnen_CUNO on")}}

Gruß aus Köln
Norbert