Hauptmenü

DOIF Problem

Begonnen von AmunRe, 19 April 2016, 11:01:25

Vorheriges Thema - Nächstes Thema

AmunRe

Ich habe das Modul DOIF im Einsatz, welches ich nutzen möchte um zu bestimmten Zeiten ein andere Farbe der Lampen zu erzeugen. Zusätzlich schaltet es auch noch mein Tablet ein aus. Hat aber mit dem Problem nichts zu tun.

Wenn ich es Definiere mit :
define di_licht22_6 DOIF ([F_bewegungsmelder:"motion"] AND [22:00-06:00]  AND [HUEDevice4] eq "off") (set tabletflur screen on)(set tabletflur openApp mobi.mgeek.TunnyBrowser)(set HUEDevice4 hue 43913)(set HUEDevice4 pct 35)(set tabletflur screenBrightness 100)(set tabletflur screen off)(set HUEDevice4 off)
attr di_licht22_6 do resetwait
attr di_licht22_6 room Flur,Befehle
attr di_licht22_6 wait 0,0,0,0,0,120,120


Bekomme ich immer eine Fehlermeldung des Moduls:
Zitaterror
perl error in condition: EventDoIf('F_bewegungsmelder',$hash,'motion',1) AND DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") AND InternalDoIf($hash,'HUEDevice4','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "off": syntax error at (eval 6263) line 1, near ") AND "
2016-04-19 10:54:42

Für mich sieht es aus als würde das Device HUEDevice4 nicht existieren, es ist aber da und funktioniert auch sonst.

Wo liegt hier mein Fehler?

Im Anhang ist ein Bild das HUEDevice4 wirklich existiert.
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

CoolTux


define di_licht22_6 DOIF ([F_bewegungsmelder:"motion"] AND [22:00-06:00]  AND [HUEDevice4] eq "off") (set tabletflur screen on, set tabletflur openApp mobi.mgeek.TunnyBrowser, set HUEDevice4 hue 43913, set HUEDevice4 pct 35, set tabletflur screenBrightness 100, set tabletflur screen off, set HUEDevice4 off)

Bist Du ein Klammerfetischist? Habe mir mal erlaubt das bisschen sauber zu schreiben.
Vielleicht geht es ja auch schon so.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

AmunRe

Zitat von: CoolTux am 19 April 2016, 11:25:18

define di_licht22_6 DOIF ([F_bewegungsmelder:"motion"] AND [22:00-06:00]  AND [HUEDevice4] eq "off") (set tabletflur screen on, set tabletflur openApp mobi.mgeek.TunnyBrowser, set HUEDevice4 hue 43913, set HUEDevice4 pct 35, set tabletflur screenBrightness 100, set tabletflur screen off, set HUEDevice4 off)

Bist Du ein Klammerfetischist? Habe mir mal erlaubt das bisschen sauber zu schreiben.
Vielleicht geht es ja auch schon so.

Das geht so glaub ich nicht, weil ich die resetwait nutze.(on-for-timer mit DOIF) Aber Du hast Recht, es würde so besser aussehen:

define di_licht22_6 DOIF ([F_bewegungsmelder:"motion"] AND [22:00-06:00]  AND [HUEDevice4] eq "off") (set tabletflur screen on, set tabletflur openApp mobi.mgeek.TunnyBrowser, set HUEDevice4 hue 43913, set HUEDevice4 pct 35, set tabletflur screenBrightness 100)(set tabletflur screen off, set HUEDevice4 off)
attr di_licht22_6 wait 0,120


Problem bleibt aber das gleiche, er hat ein Problem mit dem HUEDevice.
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

CoolTux

Zitat von: AmunRe am 19 April 2016, 11:32:11
Das geht so glaub ich nicht, weil ich die resetwait nutze.(on-for-timer mit DOIF) Aber Du hast Recht, es würde so besser aussehen:

define di_licht22_6 DOIF ([F_bewegungsmelder:"motion"] AND [22:00-06:00]  AND [HUEDevice4] eq "off") (set tabletflur screen on, set tabletflur openApp mobi.mgeek.TunnyBrowser, set HUEDevice4 hue 43913, set HUEDevice4 pct 35, set tabletflur screenBrightness 100)(set tabletflur screen off, set HUEDevice4 off)
attr di_licht22_6 wait 0,120


Problem bleibt aber das gleiche, er hat ein Problem mit dem HUEDevice.

Doch das geht so.
Aus der Commandref
Zitat
Beispiel: Bei einer Befehlssequenz, hier: (set lamp1 on, set lamp2 on), soll vor dem Schalten von lamp2 eine Verzögerung von einer Sekunde stattfinden. Die Befehlsfolge muss zunächst mit Hilfe von Klammerblöcke aufgespaltet werden: (set lamp1 on)(set lamp2 on). Nun kann mit dem wait-Attribut nicht nur für den Beginn der Sequenz, sondern für jeden Klammerblock eine Verzögerung, getrennt mit Komma, definieren werden, hier also: wait 0,1. Damit wird lamp1 sofort, lamp2 nach einer Sekunde geschaltet. Die Verzögerungszeit bezieht sich immer auf den verherigen Befehl.

Aber nun zum eigentlichen Problem.

Nimm mal das HUE Device raus zum testen ob er dann immer noch meckert.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

AmunRe

#4
Zitat
Nimm mal das HUE Device raus zum testen ob er dann immer noch meckert.

Hab ich sah dann so aus:

Zitatperl error in condition: EventDoIf('F_bewegungsmelder',$hash,'motion',1) AND DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") : syntax error at (eval 7809) line 1, near ") AND "


Ich hab das Problem gelöst. Ich hab das "AND" groß geschrieben. Mit einem klein geschriebenen "and" läuft es durch. Danke für die Hilfe!
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

CoolTux

Schon interessant auf man nicht achtet. Ich habe das gar nicht gesehen. Gut zu wissen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net