FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus Bloch am 21 November 2015, 14:48:34

Titel: Frage zu EvalSpecials() mit FeatureLevel 5.7
Beitrag von: Markus Bloch am 21 November 2015, 14:48:34
Hallo zusammen,

da ich in PRESENCE EvalSpecials() verwende um bestimmte Platzhalter im powerCmd zu ersetzen frage ich mich gerade im Zusammenhang mit 5.7 wie ich es nun richtig verwenden muss.

Momentan lautet mein %specials:

        my %specials= (
        "%NAME" => $name,
        "%ADDRESS" => $hash->{ADDRESS},
        "%ARGUMENT" => $a[2]
        );
       
        $powerCmd= EvalSpecials($powerCmd, %specials);


Damit wird momentan mit featureLevel 5.7 $NAME, $ADDRESS und $ARGUMENT in $powerCmd ersetzt.  Vorher war es %NAME, %ADDRESS, ...

Sollte man das % nicht auch aus den Platzhaltern im Hash nehmen? Finde das dann etwas verwirrend, dass man %NAME im Hash angeben muss damit $NAME durch was anderes ersetzt wird. Ich hätte jetzt erwartet, dass man nur noch sagt NAME => $name usw.

Ich hab mir den Code durchgeschaut, konnte mir aber keinen Reim darauf machen wie es richtig zu verwenden ist.

Viele Grüße

Markus
Titel: Antw:Frage zu EvalSpecials() mit FeatureLevel 5.7
Beitrag von: rudolfkoenig am 22 November 2015, 12:02:31
Praezisierung:
Fuer die Anwender: $EVENT usw. funktioniert mit featurelevel <=5.6 auch. Wenn im eval $EVENT,usw. gefunden wrd, dann wird %,%EVENT usw. _nicht_ ersetzt.  Mit featurelevel >= 5.7 funktioniert nur noch $EVENT, und es wird viel weniger geprueft bzw. ersetzt.
Fuer die Entwickler: es aendert sich nichts.

Dass die Entwickler fuer $EVENT als Schluessel %EVENT definieren muessen, ist in der Tat etwas verwirrend, bin aber nicht sicher, ob eine Umstellung sich lohnt. Falls du die anderen beiden Anwender von EvalSpecials (dietmar63:WeekdayTimer und klaus-schauer:EnOcean) ueberzeugst, dass wir diese Aenderung an einem Tag durchfuehren, habe ich nichts dagegen.
Wenn wir aendern sollten: aus %EVENT wird EVENT, usw. also ohne Praefix.
Titel: Antw:Frage zu EvalSpecials() mit FeatureLevel 5.7
Beitrag von: Markus Bloch am 22 November 2015, 13:28:44
Vielen Dank. Das reicht mir. Geht mir nur darum zu wissen, wie man es weiterhin richtig nutzen sollte.

Gruß
Markus