bei mir läuft aktuell das Nightly 0.8.0-3052 mit der zugehörigen UI revision 343.
Ich versuche den Zustand eines Tür-Fenster Kontakts in der Homegear UI anzeigen zu lassen. Der entsprechenden Variable „STATE“ des Devices habe ich die Rolle 301001 zugewiesen.
Anscheinend hat die Variable damit automatisch auch noch die Rollen 300000 und 301000 erhalten.
Mit folgendem Befehl sollte das UI-Element erzeugt werden:
(ich lasse immer gleich beim Erzeugen die ID des UI-Elements ausgeben, damit ich es später ggf. leichter wieder löschen kann).
Leider erhalte ich dann folgende Exception:
Required role exists multiple times in room. Simple UI element creation is not possible.
Diese Vorgehensweise hat früher mal funktioniert und außerdem ist das die einzige Tür in dem zugeordneten Raum.
Hat hierzu jemand eine Idee ? Vielen Dank.
Noch eine kurze Frage:
Gibt es eigentlich eine Funktion, um alle Rollen anzeigen zu lassen, die einer Variable zugeordnet sind ? Ich kenne getVariablesInRole und auch die entsprechende Funktionalität in der Admin-UI aber hier geht man ja immer von der Rolle aus und nicht von der Variable.
magst du einmal die Ausgabe von homegear -e rc 'print_v($hg->getVariablesInRole(301001));' und homegear -e rc 'print_v($hg->getVariablesInRoom(<Raum-ID>);' posten? Probier vorher allerdings einmal, ob es mit dem aktuellen Nightly (> 3060) wieder funktioniert. Zwischenzeitlich gab es an dieser Stelle nämlich einen Fehler.
Vielen Dank für das schnelle Feedback.
Ein Update auf das Nightly 3064 hat leider keine Verbesserung gebracht.
Hier die Ausgabe von getVariablesInRole. Diese ist nach meinem Verständnis korrekt d.h. alle vier Variablen, denen ich diese Rolle zugewiesen habe, werden angezeigt:
manchmal hilft es eben schon, wenn man ein Problem diskutiert, um auf die richtige Spur zu kommen.
Beim Check des Logfiles auf Debug Level 5 habe ich die Meldung entdeckt: Debug: Required role (301001) STATE does not have required direction (input). Simple UI element creation is not possible.
Und tatsächlich war die Rolle 301001 für die Variable mit Direction=1 angelegt. Nachdem ich die Direction auf 2 geändert habe, ließ sich dann auch das UI-Element problemlos hinzufügen.
Die ursprüngliche Fehlermeldung war hier leider wenig intuitiv.
Das gleiche Issue hatte ich auch bei anderen Variablen und das Anpassen der Direction auf 2 hat bei einigen Rollen geholfen.
Anscheinend funktioniert für das UI nur Direction 2, mit Direction 0 und 1 hatte ich keinen Erfolg – also immer die Direction checken !
In diesem Zusammenhang ist übrigens die (nicht dokumentierte) Funktion getVariableDescription sehr hilfreich, um die Zuordnung von Rollen zu Variablen und die jeweiligen Parameter zu überprüfen.
Genau das hatte ich schon länger gesucht…
Mir ist übrigens aufgefallen, dass die Beschreibung des Parameters „direction“ anscheinend seit neustem in der Doku von addRoleToVariable fehlt. Ziemlich sicher war das früher mal in der Doku enthalten.
Vielen Dank auf jeden Fall für die Unterstützung !
Ich werde weiter mit dem Homegear UI experiementieren und sukzessive versuchen, alle meine Geräte einzubinden.
Mir ist übrigens aufgefallen, dass die Beschreibung des Parameters „direction“ anscheinend seit neustem in der Doku von addRoleToVariable fehlt. Ziemlich sicher war das früher mal in der Doku enthalten.