FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Ralli am 17 Juni 2015, 07:24:32

Titel: DOIF: vereinfachte Bedingungsabfrage
Beitrag von: Ralli am 17 Juni 2015, 07:24:32
Hallo Damian,

bei der recht umfänglichen Programmierung meiner Beschattung habe ich folgendes festgestellt:


([Wetter:fc1_condition] eq "sonnig" | [Wetter:fc1_condition] eq "heiter" | [Wetter:fc1_condition] eq "teilweise wolkig")


lässt sich nicht durch


[Wetter:fc1_condition] eq ("sonnig" | "heiter" | "teilweise wolkig")


ersetzen. Würdest Du das mit auf ToDo setzen? Das wäre super.
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: igami am 17 Juni 2015, 09:08:52
Hallo Ralli,

DOIF ist perl,  versuch es mal mit

[Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/)


Einfach bei einer Suchmaschine nach Keywords suchen. In diesem Fall 'perl string eq list'.

Grüße
igami
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: Ralli am 17 Juni 2015, 09:35:38
Das ist natürlich eine Variante, die auch geht :)
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: flurin am 17 Juni 2015, 11:19:52
Zitat von: Ralli am 17 Juni 2015, 07:24:32

[Wetter:fc1_condition] eq ("sonnig" | "heiter" | "teilweise wolkig")


so sollte es eigentlich auch gehen:

([Wetter:fc1_condition] eq "sonnig" or "heiter" or "teilweise wolkig")
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: Damian am 17 Juni 2015, 18:03:14
Zitat von: flurin am 17 Juni 2015, 11:19:52
so sollte es eigentlich auch gehen:

([Wetter:fc1_condition] eq "sonnig" or "heiter" or "teilweise wolkig")


Wenn schon dann:

([Wetter:fc1_condition] eq "sonnig" or [Wetter:fc1_condition] eq "heiter" or [Wetter:fc1_condition] eq "teilweise wolkig")

eleganter ist allerdings der Vorschlag von igami.

Gruß

Damian

Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: flurin am 17 Juni 2015, 19:35:22
Zitat von: Damian am 17 Juni 2015, 18:03:14
Wenn schon dann:

([Wetter:fc1_condition] eq "sonnig" or [Wetter:fc1_condition] eq "heiter" or [Wetter:fc1_condition] eq "teilweise wolkig")

eleganter ist allerdings der Vorschlag von igami.

Gruß

Damian

igami's Version gefällt mir auch besser aber zu meinem Erstaunen geht es auch so  :)

define di_wc DOIF ([local_weather:condition] eq "showers" or "partly cloudy" or "mostly cloudy")
attr di_wc cmdState on|off


Gruss
flurin

Edit: es geht doch nicht! der Zustand ist immer "on".
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: Damian am 17 Juni 2015, 19:46:20
Zitat von: flurin am 17 Juni 2015, 19:35:22
igami's Version gefällt mir auch besser aber zu meinem Erstaunen geht es auch so  :)

define di_wc DOIF ([local_weather:condition] eq "showers" or "partly cloudy" or "mostly cloudy")
attr di_wc cmdState on|off


Gruss
flurin

Das kann ich mir nicht vorstellen, denn "partly cloudy" bzw. "mostly cloudy" ist immer wahr.

Du kannst auch in Perl schreiben if ("partly cloudy") {...}. Das ist das Gleiche wie if (1) {...}

Gruß

Damian
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: flurin am 17 Juni 2015, 19:48:58
Zitat von: Damian am 17 Juni 2015, 19:46:20
Das kann ich mir nicht vorstellen, denn "partly cloudy" bzw. "mostly cloudy" ist immer wahr.

Du kannst auch in Perl schreiben if ("partly cloudy") {...}. Das ist das gleiche wie if (1) {...}

Gruß

Damian

Ja, es stimmt, siehe oben.

Gruss
flurin
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: Ralli am 17 Juni 2015, 20:28:55
Deswegen ja meine Frage wegen des Einbaus in der Interpretation von DOIF von


[Wetter:fc1_condition] eq ("sonnig" | "heiter" | "teilweise wolkig")
Titel: Antw:DOIF: vereinfachte Bedingungsabfrage
Beitrag von: Damian am 17 Juni 2015, 20:42:50
Zitat von: Ralli am 17 Juni 2015, 20:28:55
Deswegen ja meine Frage wegen des Einbaus in der Interpretation von DOIF von


[Wetter:fc1_condition] eq ("sonnig" | "heiter" | "teilweise wolkig")



ganz einfach: geht in Perl nicht => geht in DOIF nicht, da DOIF daraus Perl-Code macht.

Gruß

Damian