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
