Hauptmenü

$we in Sub-Routinen?

Begonnen von Marcus, 29 April 2013, 15:30:26

Vorheriges Thema - Nächstes Thema

Marcus

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?

crissiloop

Hallo,
du musst die Variable als Parameter beim Aufruf der Routine mit übergeben.
Das sollte alles sein.

Gruß
FHEM 5.5 auf Cubietruck

1x HMLAN, 1x HMUSB, 12x HM-LC-Bl1 PBU-FM, 5x HM-LC-Sw1-Pl, 1x HM-LC-Sw1-FM, 2x HM-LC-Sw2-FM, 2x HM-SEC-RHS, 3x HM-SEC-SD, 8x HM-SEC-SC, 3x HM-RC-4-2, 1x HM-RC-8, 1x HM-Sec-SFA-SM, Jeelink, 7x Technoline TX 29 DTH-IT

Marcus

Ok, das geht natürlich, finde ich aber nicht so elegant... gibt es noch eine andere Möglichkeit?

fritz

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>

Marcus

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.