Bezeichnung des Raums eines Devices auslesen z.B. "getDeviceRoom"?

Hallo,

ich fände eine Funktion „getDeviceRoom“ o.Ä. sehr hilfreich, der man eine Device-ID übergibt und die dann zu diesem Device den Namen des jeweils zugeordneten Raumes zurückliefert (z.B. „Flur“ oder „Wohnzimmer“).

Diese Funktionalität lässt sich zwar bereits mit den bestehenden Befehlen umsetzen, aber nur mit mehreren Zwischenschritten.

Wenn ich aktuell zu einem Device den Namen des Raumes abfragen möchte, dann muss ich immer zuerst die ID des Raumes mit über getDeviceDescription oder listDevices holen.
Dann habe ich zwar die ID, aber noch nicht den Klartext-Namen des Raumes.

Zusätzlich muss man dann noch mit getRooms alle angelegten Räume einlesen und erst dann kann man zu einer ID eines Raumes auch die Bezeichnung ausgeben

Trotz der Vielzahl von Funktionen, die bereits im Zusammenhang mit „Devices“ und „Rooms and Categories“ existieren konnte ich bisher keine einfachere Vorgehensweise finden – oder habe ich etwas übersehen ?

Vielen Dank.

FiveEights

1 Like

Hallo @FiveEights,

habe ich dir eingebaut und es geht ab sofort mit:

homegear -e rc '$hg->setLanguage("de-DE"); print_v($hg->getDeviceDescription(3, 1, array("ROOMNAME")));'

Es wird die aktuell gesetzte Sprache zurückgegeben. Daher muss diese in PHP (bzw. für die jeweilige RPC-Verbindung) zunächst gesetzt werden.

Viele Grüße

Sathya

3 Likes

Hallo Sathya,

zunächst mal vielen Dank für das schnelle Feedback und den guten Support hier !

Hier schon mal meine ersten Ergebnisse:
Bei mir läuft jetzt das Nightly 0.8.0-2750 und die Abfrage der zugeordneten Räume zu Devices funktioniert - auch ohne, dass ich vorher mit setLanguage explizit eine Sprache gesetzt habe.

Ich glaube aber, in der Befehlszeile muss es “-1” heißen d.h.
getDeviceDescription(3, -1, array("ROOMNAME"))

Ich baue die neue Funktion jetzt bei mir in den Programmen ein und beobachte weiter.

Viele Grüße

FiveEights

Hallo @FiveEights,

auch ohne, dass ich vorher mit setLanguage explizit eine Sprache gesetzt habe.

Ja, aber dann wird auf der Konsole immer en-US zurückgegeben.

Ich glaube aber, in der Befehlszeile muss es “-1” heißen d.h.

-1 gibt das Gerät selbst zurück. Du kannst aber auch einem Kanal einen Raum zuordnen (z. B. sinnvoll, wenn du einen 20-fach Schaltaktor im Schaltschrank hast).

Viele Grüße

Sathya

1 Like

Hallo,

die neue Funktionalität ist bei mir jetzt seit ca. 2 Wochen im Einsatz und bis jetzt funktioniert alles wie erwartet (sowohl in PHP-Skripten als auch in Node-Blue Flows).

Und jetzt weiß ich auch, warum es auch ohne setLanguage funktioniert hat: Ich habe vor längerer Zeit die Räume zu den Devices über die Kommandozeile zugeordnet und dabei wurden die Bezeichnungen der Räume per default unter „en-US“ gespeichert. Eine Abfrage hat dann natürlich auch (ohne dass ich es gemerkt habe) immer den Raum der Sprache „en-US“ zurückgeliefert.
Erst jetzt habe ich in der Admin-GUI gesehen, dass ich die Bezeichnungen unter der falschen Sprache angelegt hatte und habe das jetzt bei mir korrigiert.

Viele Grüße

FiveEights

2 Likes