FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hugo Becker am 18 Januar 2015, 20:14:27

Titel: Über bedingtes NOTIFY ein Attribut setzen
Beitrag von: Hugo Becker am 18 Januar 2015, 20:14:27
Guten Abend allerseits,

ich bekomme bei einem NOTIFY mit Bedingung (IF, ELSIF) einen Syntax Error, wenn ich versuche ein Attribut für einen Dummy zu setzen. Geht das in diesem Zusammenhang überhaupt so ?  Ich komme einfach nicht auf die Lösung. Könnt Ihr mir biite helfen ?

define MeinNotify notify FSD_04:(Ein|Aus) { my $x = $value{"FSD_04"} ;; fhem "set d14 $x" ;; if ($x eq "Ein") { attr d14 devStateStyle style="font-weight:bolder;; font-size:120%%;; text-align:right;; color:green;; " } elsif ($x eq "Aus") { attr d14 devStateStyle style="font-weight:bolder;; font-size:120%%;; text-align:right;; " } }


Dies ist der Auszug direkt aus der fhem.cfg

Als Fehlermeldung bekomme ich...

2015.01.18 20:03:30 3: MeinNotify return value: Can't locate object method "devStateStyle" via package "style" (perhaps you forgot to load "style"?) at (eval 8160) line 1.


Mit einem zusätzlichen NOTIFY funktioniert das Setzen des Atrributs sehr gut, aber das "zusätzlich" wollte ich mir eingtlich ersparen...

define d14Ein notify d14:Ein attr d14 devStateStyle style="font-weight:bolder;;;; font-size:120%%;;;; text-align:right;;;; color:yellow"

Danke schon mal für Eure Hilfe.
Titel: Antw:Über bedingtes NOTIFY ein Attribut setzen
Beitrag von: ht am 10 Februar 2015, 01:27:10
Hi Hugo,

ich bin noch relativ neu mit fhem, und ich habe auch nicht die Zeit, meine Antwort zu testen. Aber ich dachte, da noch niemand sonst geantwortet hat, vielleicht hilft mein Idee. Ich gucke nämlich gerade nach devStateStyle, und bin ev. über die Lösung zu Deinem Problem gestolpert, siehe http://forum.fhem.de/index.php?topic=13227.0 (http://forum.fhem.de/index.php?topic=13227.0).

Meine Deutung: Da Du die Aktion als Perl-Code machst, musst Du auch das attr setzen über fhem "attr ..." machen, so wie Du es schon für "set d14 $x" gemacht hast. Und dann sind da wohl noch ein paar ; fällig ;)

Grüße,
Volker
Titel: Antw:Über bedingtes NOTIFY ein Attribut setzen
Beitrag von: Hugo Becker am 22 Februar 2015, 21:39:49
Super ht !!!!
Genau das wars. Jetzt funktioniert es und zwar so...
Zitatdefine FSD04Notify notify FSD_04:(Ein|Aus) { my $x = $value{"FSD_04"};; if ($x eq "Ein") { fhem 'attr d14 devStateStyle style="font-weight:bolder;;;; font-size:120%%;;;; text-align:right;;;; color:yellow"' ;; fhem "set d14 $x" } elsif ($x eq "Aus") { fhem 'attr d14 devStateStyle style="font-weight:bolder;;;; font-size:120%%;;;; text-align:right"' ;; fhem "set d14 $x" } }
Das Geheimnis waren die fehlenden ' oder halt " und jede Menge ;;;;;;;;;;;;;;
Vielen, vielen Dank für Deine Hilfe.
Gruß
Hugo