FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Marcus am 29 April 2013, 15:30:26

Titel: $we in Sub-Routinen?
Beitrag von: Marcus am 29 April 2013, 15:30:26
Hallo,

ich möchte mir in myUtils eine eigene Sub-Routine anlegen und darin auf die $we Variable zugreifen. Ist das möglich? Wenn ja, wie?
Titel: Aw: $we in Sub-Routinen?
Beitrag von: crissiloop am 29 April 2013, 15:53:00
Hallo,
du musst die Variable als Parameter beim Aufruf der Routine mit übergeben.
Das sollte alles sein.

Gruß
Titel: Aw: $we in Sub-Routinen?
Beitrag von: Marcus am 29 April 2013, 16:00:38
Ok, das geht natürlich, finde ich aber nicht so elegant... gibt es noch eine andere Möglichkeit?
Titel: Aw: $we in Sub-Routinen?
Beitrag von: fritz am 29 April 2013, 16:32:22
Zitat von: Marcus schrieb am Mo, 29 April 2013 16:00Ok, das geht natürlich, finde ich aber nicht so elegant... gibt es noch eine andere Möglichkeit?
TIMTOWTDI

Zuerst dachte ich: einfach importieren. Aber es gibt keine globale Variable dieses Namens und im ganzen FHEM-Verzichnis gibt es diese Variable nicht. Die Antwort lieferte ein Blick in fhem.pl: Dort gibt es die Funktion 'AnalyzePerlCommand', die ermittelt und setzt die Variablen und ruft dann via eval deine Routine auf. Damit kann das, was zu evaluieren ist, die Variablen benutzen, deine Funktion aber nicht.

Eine Lösung: Selbst noch einmal machen - Nebeneffekt: es wird bei jedem Aufruf zweimal bestimmt, zweite Lösung: die Entwickler fragen, ob nicht einige Variablen global zur Verfügung gestellt werden können, drittens: den Rat von crissiloop befolgen (scheint mir am einfachsten :-)

<F>
Titel: Aw: $we in Sub-Routinen?
Beitrag von: Marcus am 29 April 2013, 16:34:41
Ja, ich hatte auch auf die Quellen "gegrept" und keine Zuweisung an $we gefunden. Ok, ich habs jetzt erstmal an die Methode übergeben. Gefällt mir nicht so, ist aber auch nicht tragisch.

Danke für die Hilfe.