SEPIA open-source Sprachassistent: Integration in FHEM?

Begonnen von sepia, 04 Juli 2019, 12:10:12

Vorheriges Thema - Nächstes Thema

whistler

Zitat von: sepia am 14 Juni 2020, 01:27:37
Ich fürchte wir haben jetzt zu viele Punkte parallel diskutiert ::) Ich versuche mal es etwas zu reduzieren, Falls ich was wichtiges übersehen habe frag einfach noch mal ;) .

Es kann nur einer gewinnen. Bei der gleichen "score" gewinnt der, der als erstes da war ;-)
Ich frage mich langsam ob der WebSocket Chat-Server nicht eigentlich der Punkt ist wo man ansetzen sollte. Der könnte vielleicht beim broadcast zum SEPIA Client die Nachricht zusätzlich zu einem MQTT Broker schicken. Das passt auch thematisch irgendwie besser als irgendwelche Hacks imr Assist-Server.

Javascript reicht für CLEXI :-) und ich hab auch schon ein paar mal versucht das irgendwie ins SDK zu integrieren, da habe ich aber noch keine gute Lösung gefunden bisher.
C++ packe ich auch nicht an übrigens :-p

Ursprünglich ja, aber nachdem ich in den Code geguckt habe denke ich das passt besser in die vorhandene Broadcaster Extension.

Cool, gucke ich mir Morgen sofort an!

Grüße und gute Nacht :-)

[EDIT]
Ok ich war zu neugierig und hab doch direkt reingeguckt.
Auf den ersten Blick sieht das eigentlich genau so aus wie ich mir das vorgestellt hatte :-D , nice!
Ich überlege Morgen mal was man wegen der Sprachausgabe noch machen könnte.

Deswegen hatte ich einen frischen Beitrag geschrieben, weil es mir auch zu unübersichtlich wurde genau. :-)

Java geht aber auch in Richtung Klassen etc. :-) da muss man sich dann immer erst wieder reindenken, wenn man das schon länger nicht genutzt hat.
Aber vielleicht ist bei dem MQTTDemo auch eher das Problem, das einen in dem Moment der Rest fehlt (also da wo die Aufrufe der Klassen stattfinden) um das Puzzle vom Code zusammenzufügen.

Aber das Thema ist ja erstmal durch und geschlossen. :-)

whistler

#256
Zitat von: sepia am 14 Juni 2020, 01:27:37
Ursprünglich ja, aber nachdem ich in den Code geguckt habe denke ich das passt besser in die vorhandene Broadcaster Extension.

Cool, gucke ich mir Morgen sofort an!

Grüße und gute Nacht :-)

[EDIT]
Ok ich war zu neugierig und hab doch direkt reingeguckt.
Auf den ersten Blick sieht das eigentlich genau so aus wie ich mir das vorgestellt hatte :-D , nice!
Ich überlege Morgen mal was man wegen der Sprachausgabe noch machen könnte.

Ich habe wegen der Sprachausgabe noch ein wenig gespielt und ein zweites Notify gebaut, was sich um das "Mic" kümmert.
Hiermit wird sogar über listening Readings pro client (1/0) der Status Mic an aus "visualisiert".
Zusätzlich gibt es dann den "coin" direkt über das TTS mit aus, etwas verzögert, weil das Mic dann schon an ist, aber noch im Rahmen denke ich.

Ich hab auch mal die zusätzlichen sub Funktionen zumindest als "Dummy" eingehängt damit der Code durchläuft.

[EDIT]
Ein offener Todo in V1 und auch in V2 wäre noch die Readings wieder in einen definierte Status zurück zu setzen, da zu verschiedenen Action verschieden Readings bedingt durch den Aufbau der json Struktur. Ich hab schon überlegt jeweils bei den zwei notify einmal die Readings zu löschen oder zu leeren. Wobei ich eher zum leeren tendiere. Aber leer geht glaubig nicht, also ein - z.b. dann würde aber wieder das entgegengesetze notify triggern.

Allen ein schönen Sonntag und Viel Spass damit
Gruß
Basti

whistler

#257
Zitat von: sepia am 14 Juni 2020, 01:27:37
Das ist definitiv zu lang und darf höchstens bei den erstem 1-2 requests passieren wenn sich der Server noch "warm" läuft. Ich würde als erstes mal den Server neustarten. Eventuell lohnt es sich auch im Control HUB auf der "Server Connections" Seite mal die Statistiken des Assist-Servers abzurufen. Seit v2.5.0 bröselt der auch noch besser auf welche Services und API calls wie viel Zeit im Schnitt benötigen.
Wifi am Client war bei mir eigentlich nie ein Problem aber Wifi am Server sollte man vermeiden, nicht so sehr wegen der Datenmengen (die sind klein) sondern eher weil Wifi gerne mal Mikro-Aussetzer hat :-|

Also die Sepia VM hab ich mir gerade mal angeschaut, (Rückblick auf die letzte Stunde wo ich ja beim testen auch fleissig geschaltet habe. Idle unter 5% in allen Richtungen. Daran sollte es also nicht liegen.

Ich hab mal einen Report gezogen (Anhang) von der Statistic und hätte die bitte ob du ein drüber fliegst was die an "ungewöhnlich hohen werten" vorkommt.

Der MQTTDemo Service sollte das ja nicht beeinflussen, weil er seinen Standardweg nimmt. Zumal mir dieses Verhalten ja auch schon vorher aufgefallen ist bevor ich da angesetzt habe.

Vielen Dank fürs drüber schauen.

Gruß
Basti

sepia

#258
Zitat von: whistler am 14 Juni 2020, 16:27:01
Also die Sepia VM hab ich mir gerade mal angeschaut, (Rückblick auf die letzte Stunde wo ich ja beim testen auch fleissig geschaltet habe. Idle unter 5% in allen Richtungen. Daran sollte es also nicht liegen.

Ich hab mal einen Report gezogen (Anhang) von der Statistic und hätte die bitte ob du ein drüber fliegst was die an "ungewöhnlich hohen werten" vorkommt.

Hi Basti,

sorry hab gerade nicht so viel Zeit, aber gucke mir die CLEXI PDF eventuell Morgen oder spätestens am Wochenende an :)

Die Server Stats sehen eigentlich solide aus, alles im grünen Bereich, lediglich drei Sachen fallen mir auf:

"API poss. errors (>2s): 34"

34 API Calls die länger als 2s gedauert haben (deswegen als "possible" errors deklariert). Das muss nichts heißen, manche APIs wie das Wetter etc. können sich schon mal etwas Zeit nehmen und >2s kann ja auch 2.1s sein ^^, aber da sollte man mal ein Auge drauf haben. Eventuell sollte ich die API calls noch weiter aufbröseln damit man genauer sieht ob es das Wetter ist oder was anderes.

"TTS Time: 956.0454545454545ms (84132ms)"

Auch das ist jetzt nicht ungewöhnlich zumal es erst relevant wird nachdem der Befehl schon ausgeführt wurde und es auch stark auf die durchschnittliche Länge der Sätze ankommt, aber da könnte man eventuell noch 500ms rausholen durch Ändern der Engine. Ist das die MaryTTS engine?

DB poss. errors (>2s): 8

8 von 587 >2s ist kaum relevant, aber ich frage mich auch hier welche Calls das wohl waren. Vielleicht war die Elasticsearch mal kurz am stottern.

Alles in Allem sehe ich nichts, was die Zeit insgesamt über 3-4s drücken sollte. Vor allem die FHEM Calls sind super schnell (370ms im Schnitt).
Was du mal machen könntest ist den SEPIA Server neu starten damit alle Statistiken auf 0 sind und dann konkret nur die Befehle ausführen, die länger dauern. Direkt danach dann wieder auf die Statistiken gucken ob es Ausreißer gibt. Dabei würde ich dem Server 3-4 Calls geben zum warm werden, aber danach sollte es zügig gehen.

Jasdhewer

#259
Hallo,
erst einmal vielen Dank für die neue Version. Ich habe noch ein paar Verständnisfragen/ Probleme und hoffe, mir kann jemand weiterhelfen.
Ich benutze den ioBroker. Was habe ich bisher geschafft: Der Server läuft wohl und ich konnte eine Verbindung zum IoBroker herstellen. Der Test mit dem Drücken "Toogle" funktioniert.
Jetzt fangen aber meine Probleme/ Fragen an:

1. Über den Test kann ich die Lampe nur "ausschalten", aber nicht "anschalten", obwohl ich den Befehl in der "custom config" angegeben habe (s. Anhang 1). Muss ich für jeden Befehl immer wieder eine neue Karte erstellen? Wie sieht es mit dimmen aus? Wie müssen dann die Werte dort reingeschrieben werden?

2. Iobroker-Verbindung: dort gibt es die Möglichkeit der Verschlüsselung (HTTPS). Wenn ich das Einstelle, wie genau muss ich im Interface dies einstellen? Dort steht username:password --> Muss ich genau so dies eingeben oder muss ich aus dem username und passwort des ioBrokers eine Buchstaben/Zahlenkombination generieren lassen und wie geht dies?

3. SSH-Verbindung
Im "sh setup.sh" habe ich "bash setup-nginx.sh" ausgeführt. Dort NGINX (1) installiert und dann eingerichtet (3). Wenn ich nun die Adresse aufrufen möchte (meine SEPIA-Adresse nur hinten mit 20726). Leider öffnet er die SEPIA-Adresse nicht. Wann muss ich noch einstellen, dass die SSH-Verbindung klappt?

4. Verzeiht mir, aber leider finde ich die weitere Anleitung nicht. Wie bekomme ich jetzt es hin, dass ich die Sprachbefehle durchführen kann? Ich muss jetzt doch meine Sprache/ Befehle an das System anpassen?! Gibt es dazu eine Anleitung?

5. Nach einem Neustart kann ich nicht mehr auf die Adresse zugreifen: http://192.168.178.28:20721/tools/index.html#!home Es scheint so, als wäre der Server nicht gestartet. Wie kann ich diesen Starten bzw. beim booten direkt immer mitstarten lassen?

Vielen Dank für die Rückmeldungen und an den Entwickler: Tolle Arbeit bisher und danke dafür!

sepia

Hi.

Zitat von: Jasdhewer am 17 Juni 2020, 11:08:49
1. Über den Test kann ich die Lampe nur "ausschalten", aber nicht "anschalten", obwohl ich den Befehl in der "custom config" angegeben habe (s. Anhang 1). Muss ich für jeden Befehl immer wieder eine neue Karte erstellen? Wie sieht es mit dimmen aus? Wie müssen dann die Werte dort reingeschrieben werden?

Die Befehle für AN/AUS und Zwischenwerte können von Gerät zu Gerät abweichen. Eventuell hilft es im ioBroker Interface bei dem Gerät selber mal hinten auf den Wert zu gucken was dieser anzeigt bei den verschiedenen Zuständen. Meine Hue Lampen nutzen z.B. nur Zahlen (0=AUS, 50=50%, für AN nutze ich 70) andere Geräte können aber durchaus auch Werte wie "on"/"off" oder "70pct" verwenden.

Zitat von: Jasdhewer am 17 Juni 2020, 11:08:49
2. Iobroker-Verbindung: dort gibt es die Möglichkeit der Verschlüsselung (HTTPS). Wenn ich das Einstelle, wie genau muss ich im Interface dies einstellen? Dort steht username:password --> Muss ich genau so dies eingeben oder muss ich aus dem username und passwort des ioBrokers eine Buchstaben/Zahlenkombination generieren lassen und wie geht dies?

HTTPS bezieht sich nur auf die SSL Zertifikate des Servers, sprich das Interface in SEPIA braucht kein zusätzliches Passwort aber die URL muss auf "https" geändert werden. In meinen Tests mit ioBroker waren die SSL Zertifikate dabei meistens auf den "Hostname" des Gerätes registriert, sprich wenn der Hostname z.B. "raspberry" ist dann wird die gültige URL vermutlich "https://raspberry.local:8..." sein oder "https://raspberry:8...".
Da die SSL Zertifikate von ioBroker selbst-signiert sind muss zu guter letzt noch das Zertifikat in den "Truststore" von Java aufgenommen werden, dazu gibt es ein Skript im SEPIA/scripts Ordner und eine mini-Anleitung

Zitat von: Jasdhewer am 17 Juni 2020, 11:08:49
3. SSH-Verbindung
Im "sh setup.sh" habe ich "bash setup-nginx.sh" ausgeführt. Dort NGINX (1) installiert und dann eingerichtet (3). Wenn ich nun die Adresse aufrufen möchte (meine SEPIA-Adresse nur hinten mit 20726). Leider öffnet er die SEPIA-Adresse nicht. Wann muss ich noch einstellen, dass die SSH-Verbindung klappt?

Eine SSH Verbindung kann immer nur zum Betriebssystem aufgebaut werden, also z.B. zum RaspberryPi falls du sowas benutzt. Die SEPIA Adresse ist hingegen für den Zugriff auf die HTTP/Socket Schnittstellen und den Webserver gedacht.

Zitat von: Jasdhewer am 17 Juni 2020, 11:08:49
4. Verzeiht mir, aber leider finde ich die weitere Anleitung nicht. Wie bekomme ich jetzt es hin, dass ich die Sprachbefehle durchführen kann? Ich muss jetzt doch meine Sprache/ Befehle an das System anpassen?! Gibt es dazu eine Anleitung?

Meinst du ganz generell Befehle auszuführen? Dafür musst du eigentlich nichts einstellen, einfach den SEPIA Client öffnen, einloggen und sagen "Licht im Wohnzimmer" etc..
Oder meinst du vielleicht einen neuen, eigenen Befehl erstellen? Dafür gibt es verschiedene Möglichkeiten.

Zitat von: Jasdhewer am 17 Juni 2020, 11:08:49
5. Nach einem Neustart kann ich nicht mehr auf die Adresse zugreifen: http://192.168.178.28:20721/tools/index.html#!home Es scheint so, als wäre der Server nicht gestartet. Wie kann ich diesen Starten bzw. beim booten direkt immer mitstarten lassen?

Ich gehe davon aus du arbeitest mit Linux?
Am Besten prüfst du erstmal ob der Server noch läuft. Dazu gehst du in den Ordner "~/SEPIA" und rufst das test Skript auf "bash test-cluster.sh".
Falls nichts läuft kannst du den Server mit "bash run-sepia.sh" oder "bash restart-sepia.sh" starten.
Um den Server beim System Reboot automatisch zu starten empfehle ich das Skript "on-reboot.sh" via Cronjob einzubinden (crontab -e). Mein Cronjob sieht z.B. so aus:

@reboot sleep 60; ~/SEPIA/on-reboot.sh;
30 4 1-31/2 * * ~/SEPIA/cronjob.sh;


Der erste Teil starten den Server nach dem Boot, außerdem starte ich meinen Server alle 2 Tage neu, einfach um sicher zu gehen ;-)

Hoffe das Hilft,
Grüße,
Florian

TRallala


@Florian: könnte auch noch etwas Unterstützung gebrauchen:

1. wie lösche ich einen Service wieder aus dem System? Habe als uid1007 mal einen angelegt und diesen dann doch als assistant weiter gepflegt. Später dann per Hand das class file vom dateisystem gelöscht. Seitdem wird ständig Class not found: net.b07z.sepia.sdk.services.uid1007.SepiaDemo geloggt.

2. (Wie/Wo) Kann ich den answer pool für den bestehenden smartdevice bereich erweitern?

3. habe ähnlich wie whistler eine (teilweise) weiterleitung per MQTT eingerichtet - funktioniert auch nach Anpassung deiner Demo ganz gut.
Als Erweiterung würde ich gerne auf eine vorherige Eingabe reagieren, mit in folgendem ablauf:

Client: schalte IrgendeinGanzMerkwürdigesGerät was sepia leider nicht versteht im Wohnzimmer ein
Sepia: Tut mir leid verstehe ich leider nicht.
Client: Leite es weiter an mqtt

Sprich, ich würde gerne das letzte Kommando, bzw. Chat weiterleiten.   Guten Idee, wie man dies verwirklichen kann?

4. Da ich leider absolut nichts programmieren kann, beschränkt sich mein customizing also auf commands/answer files.  Bekomme diese aber auch nicht wie erhofft zum laufen.
Beispiel:
es ist staubig;;          command=smartdevice;;    smart_device=Staubsauger;;    action=<set>;;    smart_device_value={"value":"zone ***", "type":"custom"};;       parameter_set=***place;;         question_set=Wo denn genau?||wo soll gesaugt werden?;;      reply=ok, Robo kümmert sich||Robo ist unterwegs.

in diesem Fall wechselt sepia direkt in den Modus smartdevice  und fragt "welches gerät möchtest du steuern", anstatt meinen Weg zu nehmen. Soll das so bzw. wie bekomm ich sepia trotzdem auf meinen Weg?


Danke und Gruß
Markus

Nitaro

Ich teste mich gerade mal daran.
Bei funktioniert das Schalten aber irgendwie nicht. Also Sepia ist mit
fhem verbunden und hat auch die Devices "importiert". Schalten über die
Smart Home Oberfläche von Sepia geht auch. Wenn ich ihr aber jetzt sage "Schalte Drucker an" (dahinter
verbirgt sich eine Schaltsteckdose), sagt sie mir immer
Ich muss dir leider sagen, dass ich dir darauf grade wirklich keine Antwort geben kann.

Kann mir einer sagen wo ich da nicht aufgepasst habe ?

P.S.: Super sache das Projekt, vielen Dank dafür!

TRallala

hat dein User die Rolle"smarthomeguest"  ?

unter "user Management"
- uid eintragen
-"Get Roles"
-und ggfs. "user,smarthomeguest" / set roles

Nitaro

#264
Zitat von: TRallala am 18 Juni 2020, 16:08:32
hat dein User die Rolle"smarthomeguest"  ?

unter "user Management"
- uid eintragen
-"Get Roles"
-und ggfs. "user,smarthomeguest" / set roles

Danke, smarthomeguest fehlte. Aber auch mit geht es leider nicht.
Habe mich in der App abgemeldet und wieder angemeldet. Leider die gleiche antwort.

Edit:
Also wenn ich in der App eingebe "Smart Home" dann antwortet sie mit:
Welches Gerät möchtest du steuern ?
Dann sage ich "Drucker" und sie antwortet:
Drucker am Standort 1 auf aus, alles klaro.
Ihre Antwort nimmt sie auch direkt wieder als Sprache an weil die SPracheingabe noch aktiviert ist.

Und dann schaltet sie den Drucker auch aus.
Ihre Antwort nimmt sie auch direkt wieder als Sprache an weil die SPracheingabe noch aktiviert ist.
Nur wenn ich ihr direkt sage "Schalte Drucker aus" bekommt sie nicht die Kurve zu fhem.

TRallala

ZitatIhre Antwort nimmt sie auch direkt wieder als Sprache an weil die SPracheingabe noch aktiviert ist.
das klingt merkwürdig. kein ahnung.

Ich glaube für das direkte schalten ist etwas mehr info nötig:

was passiert bei der eingabe "schalte das gerät drucker am standort ein" ?

Nitaro

Zitat von: TRallala am 18 Juni 2020, 16:49:17

was passiert bei der eingabe "schalte das gerät drucker am standort ein" ?

Das funktioniert ohne Probleme  8)

Muss man ihr erst noch kurzbefehle beibringen ?

TRallala

ZitatMuss man ihr erst noch kurzbefehle beibringen ?

grad auch mal etwas rumgespielt - theoretisch nicht:
bei mir reicht ein   "stehlampe aus".

gesetzt sind in fhem:

sepia-room  livingroom
sepia-type  light

und in sepia noch

state-type Binary

sepia

Ich kläre das mal kurz auf bevor ich gleich näher auf deine Fragen von oben eingehe @Markus ;-)

"Schalte Stehlampe ein" - geht weil SEPIA Lampe erkennt und das mit dem Smart Home Service verbindet
"Schalte Drucker ein" - geht nicht, weil SEPIA die Verbindung zum Smart Home Service nicht hin bekommt
"Schalte Gerät Drucker ein" oder "Gerät Drucker einschalten" - geht weil die es wieder eindeutig ist
"Smart Home" --- "Drucker" - geht auch weil man dann schon im Smart Home Service drin ist

Ich weiß das ist nicht so optimal, aber der "Type" "Device" hat hier eine kleine Sonderstellung. Da es theoretisch unendlich viele Gerätenamen geben kann erfordert der Befehl einen eindeutigen Hinweis auf Smart Home. Bei "Drucker" fällt das besonders auf, aber bei "Schalte Radio ein" wäre es z.B. in Konflikt mit dem Radio Service. Ich überlege noch wie man das optimieren kann  ;)
Über die Teach UI kann man es aber erzwingen wenn es einen zu sehr stört.

sepia

#269
Zitat von: TRallala am 18 Juni 2020, 15:01:38
1. wie lösche ich einen Service wieder aus dem System? Habe als uid1007 mal einen angelegt und diesen dann doch als assistant weiter gepflegt. Später dann per Hand das class file vom dateisystem gelöscht. Seitdem wird ständig Class not found: net.b07z.sepia.sdk.services.uid1007.SepiaDemo geloggt.

Leider fehlt die Funktion noch im Control HUB :-X es gibt aber einen Server Endpoint dafür. Im Java SDK gibt es auch eine Funktion zum löschen von Services.
Wenn das Java SDK keine Option ist hilft vielleicht dieser curl Befehl:

curl -X POST \
  http://localhost:20721/delete-service \
  -d '{
"commands":["uid1007.corona_data"],
"client":"web_app"
"GUUID":"uid1007",
"PWD":"Mein Passwort im Klartext"
}'


Hier beispielhaft für den User uid1007 und den damit hochgeladenen Service "corona_data" (der command name). Statt "GUUID" und "PWD" kann man auch sein zeitlich begrenztes login token nutzen, das ist aber etwas komplizierter (Erklärung auf Anfrage ;-)).
Eventuell musst du vorher noch die alte Class Datei wiederherstellen, ich weiß jetzt nicht genau ob der den Fehler einfach ignoriert wenn er die nicht löschen kann.

Zitat von: TRallala am 18 Juni 2020, 15:01:38
2. (Wie/Wo) Kann ich den answer pool für den bestehenden smartdevice bereich erweitern?

Die einfachste Methode ist ->hier<- beschrieben. Theoretisch geht es auch über den Control HUB auf der Seite "Answer Manager", wenn man vorher in den core settings das Answer Modul auf "elasticsearch" stellt (was für ein Satz :o).

Zitat von: TRallala am 18 Juni 2020, 15:01:38
3. habe ähnlich wie whistler eine (teilweise) weiterleitung per MQTT eingerichtet - funktioniert auch nach Anpassung deiner Demo ganz gut.
Als Erweiterung würde ich gerne auf eine vorherige Eingabe reagieren, mit in folgendem ablauf:

Client: schalte IrgendeinGanzMerkwürdigesGerät was sepia leider nicht versteht im Wohnzimmer ein
Sepia: Tut mir leid verstehe ich leider nicht.
Client: Leite es weiter an mqtt

Sprich, ich würde gerne das letzte Kommando, bzw. Chat weiterleiten.   Guten Idee, wie man dies verwirklichen kann?

Ah, spannend :-D . Ich habe seit langer Zeit vor kontextbezogene Befehle einzubauen, es kommt aber immer was dazwischen ^^. Seit der ersten Version von SEPIA gibt es dafür zumindest schon das Feld 'lastCmd' im 'NluInput' Objekt. Grob gesagt wäre das Vorgehen so:
- einen Service erstellen, der ".* weiter .* an mqtt" versteht
- in dem Service das Feld 'input.lastCmd' auswerten
- auf basis des Input eine neue Aktion ausführen

Eigentlich könnte ich mal versuchen sowas kurzfristig auf die Beine zu stellen :-D

Zitat von: TRallala am 18 Juni 2020, 15:01:38
4. Da ich leider absolut nichts programmieren kann, beschränkt sich mein customizing also auf commands/answer files.  Bekomme diese aber auch nicht wie erhofft zum laufen.
Beispiel:
es ist staubig;;          command=smartdevice;;    smart_device=Staubsauger;;    action=<set>;;    smart_device_value={"value":"zone ***", "type":"custom"};;       parameter_set=***place;;         question_set=Wo denn genau?||wo soll gesaugt werden?;;      reply=ok, Robo kümmert sich||Robo ist unterwegs.

in diesem Fall wechselt sepia direkt in den Modus smartdevice  und fragt "welches gerät möchtest du steuern", anstatt meinen Weg zu nehmen. Soll das so bzw. wie bekomm ich sepia trotzdem auf meinen Weg?

Es sieht aus als hättest du ein paar spezielle Parameter entdeckt (question_set, parameter_set), die nur für den 'open_link' Befehl funktionieren. Kein schlechter Versuch muss ich zugeben ... eigentlich könnte ich das mal erw... ah, eins nach dem anderen ;D
Der Anwendungsfall passt gut zu einem Custom Service. Ich überlege seit Langem, wie man diese zugänglicher machen könnte mit minimaler Programmierung, leider bin ich noch nicht soweit.
Bis dahin würde ich vorschlagen die Teach UI zu nutzen für 2-3 Befehle a la "es ist staubig im Wohnzimmer" / "es ist staubig im Schlafzimmer" etc. . Theoretisch gibt es auch hier die Möglichkeit für einen Befehl "es ist staubig im <room>" ... das ist intern aber zur Zeit deaktiviert weil das schnell aus dem Ruder laufen kann :-\

Ich gucke mal was ich auf die Roadmap für v2.5.1 setzen kann von den diskutierten Sachen ;-)

Grüße,
Florian