Vorschlag: Einheitliche Attribute für Sprachsteuerung Name und Room

Begonnen von Schlimbo, 23 August 2017, 22:10:36

Vorheriges Thema - Nächstes Thema

Schlimbo

Hallo zusammen,
Bin gerade am ausprobieren der verschieden Sprachsteuerungs Möglichkeiten in FHEM, dabei ist mir aufgefallen, dass jedes Modul sein eigenes "alias Attribut" für die Raum und Gerätenamen mitbringt.

Bei Alexa heißt es "alexaName" und "alexaRoom", bei TEERKO "TEERKOAlias" und "TEERKORoom", wenn es mal ein Google Modul gibt kommt wahrscheinlich noch ein weiters hinzu.

Fände es sinnvoller wenn es hier ein globale Lösung gäbe z.B. "VoiceRoom" und "VoiceName" auf die dann alle Sprachmodule zugreifen.

Was haltet ihr davon?


mchilli

Hi
hab zwar selber noch keinen Sprachassistenten, hatte aber vor mir irgendwann mal einen zu holen, allerdings brauch man denn im normal Fall mehrere Module? Eins würde doch reichen, dann würde es auch nicht so viele zusätzliche Attribute geben. Oder benötigt man mehr?

Aber an sich geb ich dir recht, je mehr Module man hat umso unübersichtlicher wird die Liste der Attribute.

MfG
Mehr als 3, der eine macht das, der andere was ganz anderes und einer was ganz ähnliches, was ein anderer auch machen soll.

CoolTux

Im Grunde genommen ist ein Modul in Verbindung mit einem Gerät nichts weiter wie ein Treiber. Wenn Du 5 unterschiedliche Drucker hast, wie viele Treiber hast Du dann geladen?
Natürlich brauch man nicht mehrere Module für 5 unterschiedliche Sprachassistenten. Im Grunde brauch man gar keine. Man kann alles in die fhem.pl schreiben.
Aber wer soll das warten und wer koordiniert welcher Entwickler seinen Teil da rein schreibt.

Ergo ist es nicht nur nötig sondern zwingend Modular zu arbeiten. Das schließt auch mehrere unterschiedliche Sprachassistenten ein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mchilli

Ok, kam falsch rüber.
Ich meinte wie viele unterschiedliche Sprachassistenten stellt man sich denn daheim hin.
Mehr als 3, der eine macht das, der andere was ganz anderes und einer was ganz ähnliches, was ein anderer auch machen soll.

Schlimbo

Ich denke die meisten Leute nutzen nur einen Sprachassistenten und haben deswegen noch nicht über die Attribute nachgedacht. Da die Sprachassistenten aber noch in den Kinderschuhen stecken und in nächster Zeit wohl noch einiges kommt, finde ich schon dass wir uns auf ein paar Standards festlegten sollten.

Beispiel:
Ich nutze momentan Alexa und hab mir alle Geräte, die ich über Sprache steuern möchte mit den Alexa spezifischen Attributen ausgestattet.
Jetzt wollte ich auch mal TEERKO probieren und muss jetzt bei allen Geräten "TEERKOAlias" und "TEERKORoom" setzten, obwohl in den Alexa Attributen  "alexaName" und "alexaRoom" die Infos schon vorhanden wären.

Wenn es in Zukunft mehr Alexa Alternativen gibt, wird es auch in FHEM einige Wechsler geben, die sich freuen würden wenn sie nicht alles komplett neun Konfigurieren müssen.

DeeSPe

Ich finde das eher sinnvoll zusätzliche Attribute für verschiedene Sprachassistenten zu haben.
Der Grund liegt darin dass man evtl. unterschiedliche Aliases bzw. Räume den verschiedenen Sprachassistenten zuweisen möchte.

Möchtest Du es einheitlich haben, so vergib einfach weder siriName noch alexaName und die Assistenten werden das normale Attribut alias verwenden.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Schlimbo

Die Zuweisung zu den Assistenten hat ja erst mal nicht mit dem Room und Name Attribut zu tun.
Die Wohnzimmer Lampe z.B. spreche ich doch mit allen Assistenten mit "Lampe" an und der Ort ist auch bei allen "Wohnzimmer".
Den normalen Alias möchte ich für die Sprachsteuerung nicht verwenden, der ist bei mir mehr für die Anzeige im Webinterface zuständig. Meine Lampen haben alle unterschiedliche alias Namen in denen teilweise auch die Raumbezeichnung enthalten ist, für die Sprachsteuerung heißen sie aber alle "Lampe".

justme1968

wie wäre es vcName und vcRoom als generelle/allgemeine attribute zu verwenden die sich dann von den jeweiligen modul spezifischen überschreiben lassen? vc -> voice control

der inhalt wäre jeweils eine komma getrennte liste mit möglichen werten. der erste wert wäre der default wenn keine automatische entscheidung möglich ist. z.b. in der antwort.


wenn wir diese (und vielleicht noch mehr allgemeine voice control attribute) einbauen müssen wir aber darauf achten das die funktionalität über alle module identisch gehandhabt wird. das ganze sollte auf jeden fall im wiki dokumentiert werden und alleingänge sollten nicht passieren. vielleicht ist sogar eine tabelle wie bei den av komponenten sinnvoll. wie sammeln wir die ganzen entwickler?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

Na hier im Forum Sprachsteuerung. Der Entwickler muss dieses Forum ja wenn dann als Kontaktforum angeben wenn er ein Sprachsteuerungs Modul schreibt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Benni

Zitat von: justme1968 am 24 August 2017, 20:33:15
wie wäre es vcName und vcRoom als generelle/allgemeine attribute zu verwenden die sich dann von den jeweiligen modul spezifischen überschreiben lassen? vc -> voice control

Ich handhabe das bei mir an verschiedenen Stellen für Frontents und der Visualisierung der Devices über. deren Bezeichnung/Bennenung ähnlich:
Entweder habe ich ein spezifisches Attribut für den Namen am Device definiert und gesetzt, dann wird dieses für die Anzeige verwendet,
fehlt es, dann wird, sofern vorhanden, das alias-Attribut verwendet, ist auch das nicht gesetzt, wird eben der echte NAME des device verwendet.
Das ganze analog auch bei Räumen.

MadMax-FHEM

Zitat von: Schlimbo am 24 August 2017, 19:45:40
Die Zuweisung zu den Assistenten hat ja erst mal nicht mit dem Room und Name Attribut zu tun.
Die Wohnzimmer Lampe z.B. spreche ich doch mit allen Assistenten mit "Lampe" an und der Ort ist auch bei allen "Wohnzimmer".
Den normalen Alias möchte ich für die Sprachsteuerung nicht verwenden, der ist bei mir mehr für die Anzeige im Webinterface zuständig. Meine Lampen haben alle unterschiedliche alias Namen in denen teilweise auch die Raumbezeichnung enthalten ist, für die Sprachsteuerung heißen sie aber alle "Lampe".

Klar stellt man wahrscheinlich letztendlich nur ein Sprachsteuergerät in die Wohnung...
...aber ich teste gerade mit verschiedenen rum...

Und auch klar will ich eigentlich alle gleich nennen (schon damit ich mir nicht zu viel merken muss ;)  )...

ABER: (zumindest aktuell) es kann sein, dass die Spracherkennung nicht alles gleich versteht:

Alexa erkennt Fire TV (und ich spreche: "Feier Tivi")
Google Home tut sich damit schwer, da muss ich tatsächlich "Fire TV" oder so ähnlich sprechen (werde deshalb mal testen den dafür dann Feier Tivi zu nennen) wobei er dann aber trotzdem mit "Feier Tivi" wird eingeschaltet antwortet ;)

Wenn ich also nur ein Name-Attribut hätte, dann hätte ich jetzt ein Problem...
(gut natürlich nicht wirklich, soll ja nur ein Beispiel sein, da ich Google Geräte aktuell per ha-bridge schalte und dort Namen vergebe und für Alexa alexa-fhem verwende und damit dann alexaName etc)

Nur als Beispiel...

Alternativ (wenn nur ein Attribut in fhem), dann müsste man die jeweiligen (sofern gegeben) "Alias-Mechanismen" bei den einzelnen Geräten nutzen (z.B. Google Home "Spitzname")...

Ich denke aktuell ist da nich viel in Entwicklung...
...wenn da mal mehr/besser geht, dann denke ich machen "einheitliche" (oder auch ein) Attribut Sinn...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tiroso

Jeder Entwickler hat seine Idee hinter seinen Readings.

Aber solange alle das gleiche hinter ihren Readings (Alexaname, TEERKOAlias etc.) nutzen wäre ich nicht dagegen da ein einheitliches Attribut einfließen zu lassen.

Bei mir sind sowohl in TEERKORoom als auch in TEERKOAlias mehrere Komma separierte Werte möglich.
Und genau da kommen wir schon an ein Problem....ist das bei Alexaname auch so? Oder Alexaroom?

Das gilt erstmal zu klären bevor man da sein Modul auf den Kopf stellt. Bei mir hält sich das noch in Grenzen, da ich iwie wieder von vorne mit meinem Algorithmus anfange und da in meinem jetztigen Stand noch flexibel bin. Aber der Aufwand hinter Alexa und für justme1968 ist denk ich noch ein ganz anderes Stück.

Schlimbo

Zitat von: tiroso am 25 August 2017, 12:25:17
Bei mir sind sowohl in TEERKORoom als auch in TEERKOAlias mehrere Komma separierte Werte möglich.
Und genau da kommen wir schon an ein Problem....ist das bei Alexaname auch so? Oder Alexaroom?
Für den Alexa Smart Home Skill kann man mehrere Namen mit Semikolon ";" getrennt angeben.

Du hast recht, hierzu müsste es auch eine einheitliche Regelung geben.

justme1968

das mit dem ; ist ein undokumentiertes feature bei amazon das im nächsten api update auch wieder raus fliegen kann. ein ; ist im namen der an amazon übergeben wird eigentlich nicht erlaubt.

der custom skill unterstützt für beide attribute mit , getrennte werte so wie es auch für das normale fhem room attribut der fall ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968