Hallo zusammen,

im Rahmen eines Plugin muss ich ein Netzwerkgerät nach einem Usernamen
bitten. Das Ganze funktioniert derart, dass am Gerät ein Kopf gedrückt
wird und dann innerhalb von 30 Sekunden vom User eine HTTP-Anfrage
kommen muss, die vom Gerätmit einem HHTP-Response beantwortet wird.
Die Kommunikation, das Drücken des Knopfes, schlicht und einfach die
Routine, um an den Usernamen zu kommen, funktioniert.

Das Problem: Ich muss den Namen noch in XML speichern.

Normalerweise würde ich so vorhgehen, wie Michael mir das schonmal
beschrieben hat: eine Funktion schreiben, die den Wert zurückgibt. Das
hat auch in anderen Fällen schon geklappt.

Hier ist es nun so, dass die Funktion, welche den Namen abfragt ja noch
gar nicht weiß, ob ein neuer da ist!

Konkret: In der Settings.pm wird die UserName-Abhol-Routine ausgeführt
und irgendwann innerhalb der Zeitspanne von 30 Sekunden ist der Name
dann bei der HueCom.pm abholbereit...
Letztlich schwierig, da den Namen abzuholen, zumal dieser noch einem
Gerät zugewiesen werden muss...

Umgesetzt habe ich das nun folgendermaßen:
Ich übergebe derHueCom.pm die UDN des Geräts sowie eine
XMLConfig-hashref (mit XML::Simple aus eine xml-Datei in der Settings.pm
gelesen). In der HueCom.pm wird dann über die IP-Adresse etc. der
UserName generiert.
Was ich mir nun denke: Da die XMLConfig ein hashref ist, sollte es doch
möglich sein, in der HueCom.pm die hasref zu ändern, so dass die
Änderung in der Settings.pm ebenfalls eintritt. Somit hätte ich das oben
beschrieben Problem, dass ich nicht weiß, wann der Wert abholbereit ist,
umgangen. Ich müsste nur zyklisch den hashref XMLConfig lesen und hätte
immer den aktuellsten Stand.

Allerdings scheint der Trick mit der Hashref nicht zu funktionieren. 
Ich weiß nur nicht, wo der Denkfehler dabei liegt, ob ich einfach die
Syntax in Perl falsch habe oder generell etwas missverstehe...
Vielleicht manipuliere ich auch einfach den XML-Hash falsch?

Bevor ich nun einen anderen, evtl. komplizierteren Weg einschlage wollte
ich fragen, ob mal jemand drüber schauen könnte und mir nen Tipp geben
kann, was ich falsch mache bzw. worauf ich achten muss. 
Laut Perl-Tutorials sollte die Idee, in einer anderen Funktion die
Hashref zu ändern funktionieren sollte...

Hier die entsprechenden Code Zeilen:
Auslesen der XMLConfig aus der XML Datei (funkioniert):
https://github.com/chincheta0815/LMS-to-Hue/blob/rework.plugin/plugin/Settings.pm#L65
Zyklisches Anzeigen in einem eigenen Handler (funktioniert):
https://github.com/chincheta0815/LMS-to-Hue/blob/rework.plugin/plugin/Settings.pm#L212
Übergabe der UDN und der XMLConfig an die UserNameRoutine
(funktioniert):
https://github.com/chincheta0815/LMS-to-Hue/blob/rework.plugin/plugin/Settings.pm#L139
Schreiben des UserNames in den heshref (ist da was falsch?):
https://github.com/chincheta0815/LMS-to-Hue/blob/rework.plugin/plugin/HueCom.pm#L168
Abholen bzw. zyklisches Lesen zeigt keine Änderung (es steht immernoch
der initiale Wert drin):
https://github.com/chincheta0815/LMS-to-Hue/blob/rework.plugin/plugin/Settings.pm#L156



LMS-7.9@solaris. 2x Radio, 2x Duet, 1x Chromecast v1, ShairTunes, 1x
Philips Hue System
------------------------------------------------------------------------
chincheta0815's Profile: http://forums.slimdevices.com/member.php?userid=42904
View this thread: http://forums.slimdevices.com/showthread.php?t=107424

_______________________________________________
slimserver-de mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/slimserver-de

Antwort per Email an