mherger wrote: > Versuche bitte mal, das Problem unabhängig von deinem Code zu > erklären. > Beschreibe, was du machen _willst_, nicht, was du tust. Okay. Ich versuch's ohne Code, allerdings mit "Namen", das hilft mir beim Beschreiben.
Hintergrund: Es soll eine HueBridge über einen Binary Helper, der in C geschrieben ist, gesteuert werden. Dieser verfolgt das gleiche Konzept wie die Plugins von philippe44. Die Kommunikation mit der HueBridge erfolgt über HTTP-Requests und HTTP-Responses. Ein wichtiger Unterschied zu den Plugins von pilippe44: Um die HueBridge ansprechen zu können, ist ein UserName notwendig ist, den die Bridge auf Anfrage durch einen HTTP-Request liefert. Dieser muss dann bei allen zukünftigen Steuerbefehlen in der URI des HTTP-Requests mitgeliefert werden. Sonst kann man die Lampen nicht einstellen. Den UserName bekommt man folgendermaßen: 1. Knopf an Bridge drücken, 2. innerhalb von 30 Sekunden entsprechenden Request schicken. 3. Response auslesen In der LMS-GUI soll ein Button rein, mit dem eine Routine ausgelöst wird, die den UserName anfragt und abholt. Danach soll der Username in einer XML Datei gespeichert werden, auf die auch das binary zugreift. Das ist wegen der Implementierung und dem Aufbau von philippe44's Vorlage der einfachste Weg, da das binary selbst die XML braucht. Die Routinen zum Abrufen des Usernames sollen der Übersichtlichkeit wegen in eine eigene Datei genannt "HueCom.pm". Die "Settings.pm" soll die Hanlder von der GUI enthalten. Was ich nun machen will: -> Den UserName von der HueBridge möglichst einfach in die XMLDatei schreiben. Die Idee, die ich dabei verfolge: 1. In der "Settings.pm" den Vorgang durch Aufrufen einer Funktion "HueCom::connect($deviceUDN, $XMLConfig)" starten. Der string "$deviceUDN" besagt, von welcher Bridge der UserName kommen soll, die heashref "$XMLConfig" enthält den Inhalt der XMLDatei (über XML::Simple). 2. In der "HueCom.pm" soll dann der Name abgefragt werden. 3. Der Name muss nun zurück in die "Settings.pm" um über eine Checkbox zu zeigen, dass ein Name gesetzt ist und der UserName soll in der XMLDatei gespeichert werden. Wichtig: Der Username ist einer UDN zugeordnet. Sollten 2 Bridges da sein, muss die Zuordnung ebenfalls klappen. Idee zur Umsetzung: Da in der XMLDatei für jede Bridge getrennt die Daten gespeichert sind, kann ich dort auch ganz gut den Username der Bridge zuordnen. Warum also nicht direkt mit der Datei bzw. deren Inhalt arbeiten. XML::Simple liefert den xml-Dateinhalt angeblich als hashref. weshalb ich gedacht habe: In der "Settings.pm" den hasref durch Auslesen der XML-Datei erzeugen, dann an die "HueCom.pm" übergeben und in der "HueCom.pm" den Inhalt des hashrefs an der entsprechenden Stelle (Bridge + deren UserName) ändern. Um die Änderungen in der "Settings.pm" angezeigt zu bekommen, einfach alle 2 Sekunden den hashref neu laden, dann wir der UserName irgendwann auftauchen, so umgehe ich die Wartezeit von 30 Sekunden und brauche keine weiteren Timer. Das würde mir auch eine weitere "Abholfunktion" ersparen, der ich beibringen muss die UDN und den Namen zurückzuliefern, ich könnte auf Checks verzichten und würde einfach die eh schon vorhanden hashref verwenden können... War das ungefähr, die Info, die Du losgelöst vom Code gebraucht hast? 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
