[gelöst] [alexa-fhem] Mehrere Namen für das gleiche Gerät

Begonnen von bart0190, 30 August 2020, 10:40:03

Vorheriges Thema - Nächstes Thema

bart0190

Hallo,
Ich möchte gerne alternative Namen für die Erkennung von Alexa für das gleiche Gerät definieren. Leider bin ich bei meiner Suche auf keine funktionierende Variante gestoßen. Ich schaffe aktuell nur einen Namen, den Alexa erkennen kann.

Ich habe probiert:
Komma:
attr Esszimmer_Licht alexaName Esszimmerlicht,Tischlicht
Hier erkennt Alexa nur den ersten Namen.

Strichpunkt / Semikolon:
attr Esszimmer_Licht alexaName Esszimmerlicht;Tischlicht
Hier übernimmt Alexa einfach esszimmerlicht;tischlicht und Alexa erkennt auch den ersten Namen nicht mehr.

Alias:
attr Esszimmer_Licht alias Tischlicht hat bei mir auch nichts gebracht.

Mache ich etwas falsch? Bin für jeden Hinweis dankbar.

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

TomLee

Wenn das mit den Semikola nicht mehr klappt sind Gruppen evtl. eine Alternative ?

Einfach das Device Esszimmerlicht in die Gruppe Tischlicht schieben => Alexa, Tischlicht an/aus

Gruß

Thomas

juemuc

Hallo zusammen,

bitte ein Leerzeichen nach dem Semikolon sollte helfen :-)

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

bart0190

#3
Zitat von: juemuc am 30 August 2020, 14:06:41
Hallo zusammen,

bitte ein Leerzeichen nach dem Semikolon sollte helfen :-)

Viele Grüße
Jürgen

Vielen Dank für die schnelle Antwort. Das war es - Leerzeichen. :)
Wichtig ist auch, dass es über die Kommando-Zeile (oben) (mit ;; und Leerzeichen) nicht funktioniert hat, sondern nur über die "attr" Zeile vor der Section "Attributes" in der FHEM-Oberfläche.

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

der Bernhard

Hi,

ich stehe jetzt irgendwie vor dem selben Problem. Alle Möglichkeiten durchprobiert und trotzdem erkennt Alexa nur einen Namen.

Laut meiner attr sollte Alexa gästezimmer licht;; gästelicht;; licht im gästezimmer erkennen. Es erkennt die Worte auch richtig reagiert aber nur auf gästelicht.
Kann es sein dass mehrere Namen nicht mehr unterstützt werden? Wenn ich sage schalte Gästezimmer Licht ein triggert er meinen Raffstore der als alexaName Raffstore Gästezimmer hat.

Sehr seltsam. Irgendjemand eine Idee?

Hier die RawDef vom Lichtschalter:
attr MQTT2_DVES_B9FD89 alexaName gästezimmer licht;; gästelicht;; licht im gästezimmer
attr MQTT2_DVES_B9FD89 alias Gästelicht
attr MQTT2_DVES_B9FD89 devStateIcon on:ios-on-green off:ios-off
attr MQTT2_DVES_B9FD89 genericDeviceType switch


Hier die RawDef vom Raffstore AlexaName:
attr OG_GZi_RS_Gaestezimmer alexaName Raffstore Gästezimmer

Danke und lg
Bernhard

MadMax-FHEM

#5
Naja ob es (noch) geht bzw. jemals tatsächlich ging ist "unbelegt"...
Es gibt halt Anwender die das so nutzen und sagen: es geht.

Mir selber reicht (aktuell) ein Name...

ABER:
Zitat von: alexa-fhem Connector Wiki
Mehrere Namen für dasselbe Gerät/Device in fhem sind möglich.
Die Namen werden durch Strichpunkt getrennt.
Beispiel:
attr dmLampe alexaName Lichtkuppel;Lichtkugel

Warum 2 Strichpunkte? Gut, wenn es "aus der fhem.cfg" kopiert wurde ODER RawDef ist, dann stimmt das wohl...
Ansonsten eben: ein Strichpunkt.

UND: KEINE Leerzeichen...

Aber wie geschrieben: unbestätigtes Feature...

EDIT: ansonsten gibt es in einigen Threads anmerkungen zu einer "guten" Nameswahl. Den Raumnamen mit in den Namen zu nehmen gehört nicht dazu ;) Räume gehen im Smart Home Skill über die Alexa-App->Gruppen... Das kann auch bei die bzgl. "falscher" Geräte der Auslöser sein... Ansonsten: Verlauf in der Alexa-App prüfen und Feedback an Amazon, falls falsch verstanden wurde. Ansonsten im alexa-fhem Log warum da u.U. falsch geschalten wurde bzw. trotz richtiger Erkennung laut App-Verlauf ein falsches Gerät von Amazon "geliefert" wurde...

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)

der Bernhard

Danke für die rasche Antwort. Ja die Leerzeichen waren nur der letzte Versuch und ja in der RawDef werden aus einem ; zwei.
Das Feature steht aber auch so im Wiki drin. Wenn das unbestätigt ist, sollte es doch nicht da drin sein - oder?

Raumname (Lichtschalter) ist unterschiedlich zur AlexaName. Alexa selbst erkennt den Befehl korrekt - triggert leider aber trotzdem den Raffstore und nicht das Licht. Den Log habe ich mir angesehen, konnte aber in den 1000 Zeilen nichts passendes finden. Ich werde das nochmals überprüfen.

Danke.

MadMax-FHEM

Zitat von: der Bernhard am 21 Januar 2021, 11:23:31
Das Feature steht aber auch so im Wiki drin. Wenn das unbestätigt ist, sollte es doch nicht da drin sein - oder?

Nimm es raus. Schreibe was dazu...
Wie du willst... ;)

Wurde (lang) in einem der alexa-fhem Threads "diskutiert".
Einige haben geschrieben es geht, dann stand/steht es halt im Wiki...
Es gibt keine Garantie, dass Wiki 100% korrekt ist. Es arbeiten Menschen dran...
...und es wird nicht ständig geprüft/aktualisiert...



Zitat von: der Bernhard am 21 Januar 2021, 11:23:31
Raumname (Lichtschalter) ist unterschiedlich zur AlexaName.

Da kein komplettes list hier gepostet wurde und ich nicht weiß welche Gruppen (wenn überhaupt) du in der Alexa-App hast: kurz, ich habe keine Ahnung was du hier schreibst ;)

Anmerkung (falls das gemeint sein sollte): alexaRoom hat für den Smart Home Skill KEINERLEI Bedeutung (Ausnahmen siehe Wiki).

Zitat von: der Bernhard am 21 Januar 2021, 11:23:31
Alexa selbst erkennt den Befehl korrekt - triggert leider aber trotzdem den Raffstore und nicht das Licht. Den Log habe ich mir angesehen, konnte aber in den 1000 Zeilen nichts passendes finden.

Naja, wenn laut Verlauf richtig erkannt wurde, dann eben im alexa-fhem Log (ja ist sehr "ausführlich") nachsehen was Amazon geschickt hat...

Es sollte ja Datum/Uhrzeit im Log vorhanden sein und du ja wissen wann du den Befehl gegeben hast...
...das sollte auch einige Zeilen einschränken ;)

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)

der Bernhard

Wegen dem Wiki war mir das nicht so ganz klar, dachte das wird vom jeweiligen Modulersteller oder Maintainer gepflegt.

Nein ich meinte eh nicht Alexaroom - verwende ich nicht. Dachte das die Zeilen aus der RawDef reichen da der Rest ja eh obsolet und funktional ist.
Aber falls was bringen sollte und wenn nur für die Nachwelt ;)
defmod MQTT2_DVES_B9FD89 MQTT2_DEVICE DVES_B9FD89
attr MQTT2_DVES_B9FD89 DbLogExclude .*
attr MQTT2_DVES_B9FD89 IODev myBroker
attr MQTT2_DVES_B9FD89 alexaName gästezimmer licht;;gästelicht;;licht im gästezimmer
attr MQTT2_DVES_B9FD89 alias Gästelicht
attr MQTT2_DVES_B9FD89 devStateIcon on:ios-on-green off:ios-off
attr MQTT2_DVES_B9FD89 genericDeviceType switch
attr MQTT2_DVES_B9FD89 group Gästezimmer
attr MQTT2_DVES_B9FD89 readingList DVES_B9FD89:tele/tasmota_B9FD89/LWT:.* LWT\
DVES_B9FD89:cmnd/tasmota_B9FD89/POWER:.* POWER\
DVES_B9FD89:tele/tasmota_B9FD89/STATE:.* { json2nameValue($EVENT) }\
DVES_B9FD89:tele/tasmota_B9FD89/SENSOR:.* { json2nameValue($EVENT) }\
DVES_B9FD89:tele/tasmota_B9FD89/INFO:.* { json2nameValue($EVENT) }\
DVES_B9FD89:stat/tasmota_B9FD89/RESULT:.* { json2nameValue($EVENT) }\
DVES_B9FD89:tasmota/discovery/A4CF12B9FD89/config:.* { json2nameValue($EVENT) }\
DVES_B9FD89:tasmota/discovery/A4CF12B9FD89/sensors:.* { json2nameValue($EVENT) }\
DVES_B9FD89:stat/tasmota_B9FD89/POWER:.* POWER\
DVES_B9FD89:stat/tasmota_B9FD89/POWER1:.* POWER1
attr MQTT2_DVES_B9FD89 room Lichtschalter
attr MQTT2_DVES_B9FD89 setList on cmnd/tasmota_B9FD89/POWER on\
off cmnd/tasmota_B9FD89/POWER off
attr MQTT2_DVES_B9FD89 sortby 05
attr MQTT2_DVES_B9FD89 stateFormat POWER1
attr MQTT2_DVES_B9FD89 verbose 5
attr MQTT2_DVES_B9FD89 webCmd :


Alexa App erkennt den Befehl korrekt im Verlauf und das ist das was im log steht. Wenig hilfreich in meinen Augen...
[2021-1-21 11:31:31 AM] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.RangeController","name":"SetRangeValue","payloadVersion":"3","instance":"Blind.Position","messageId":"46d2bd84-b858-4f39-a9b9-146bc39f3f82","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"AC2A9956-D91B4A0E976A339A"},"endpointId":"LEQ1438158","cookie":{"fuuid":"5c5965a3-f33f-65f6-b326-e9a77a4a4146e649","device":"OG_GZi_RS_Gaestezimmer"}},"payload":{"rangeValue":100}}}
[2021-1-21 11:31:31 AM] [FHEM] OG_GZi_RS_Gaestezimmer: executing set cmd for TargetPosition with value 100
[2021-1-21 11:31:31 AM] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20OG_GZi_RS_Gaestezimmer%20pct%20100&fwcsrf=csrf_446543078852817&XHR=1
[2021-1-21 11:31:31 AM] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":100,"timeOfSample":"2021-01-21T10:31:31.504Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"5312073b-08b7-4027-a432-193617f64e2d","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"AC2A9956-D91B4A0E976A339A"},"endpointId":"LEQ1438158"},"payload":{}}}


Für mich schauts eher so aus wie wenn Alexa nicht AlexaName sondern den alias verwendet

MadMax-FHEM

Zum Schalten muss alexa-fhem den NAME nehmen, den man leider nicht sieht, weil es (immer noch) kein list des Devices ist...

Bei der Namensgebung gilt (normalerweise):

alexaName, wenn nicht vorhanden -> alias, wenn nicht vorhanden -> NAME

Daher kann ich zu dem Logausschnitt wenig sagen, weil eben wichtige Infos aus einem list fehlen...

Aber du kannst ja auch ganz leicht selber nach FUUID des Gerätes/Devices im alexa-fhem Log suchen, das ist (soweit ich das weiß) das tatsächliche "Bindeglied" für alexa-fham zwischen dem was von Amazon kommt und dann die Umsetzung auf das fhem Device...

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)

TomLee

Zitat von: justme1968 am 25 März 2020, 20:41:48
alexa kennt für bestimmte geräte generische namen. aktuell sind das unter anderem licht für lampen und rollladen und temperatur für eben diese.

wenn man diese geräte die alexa mit generischem namen kennt in eine gruppe steckt mit jeweils einem eigenen echo steckt kann man diese verwenden um alle geräte dieses typs in einem raum anzusprechen. wenn man sich nicht im betreffenden raum befindet oder kein eigener echo dort ist kann man zusätzlich 'in ...' sagen.

das ist die beste methode um schnell wiederkehrende dinge raum weise anzusprechen und zu steuern. und man spart sich das ausdenken und vor allem merken von viel zu vielen eindeutigen namen. das ganze ist so auch auf dauer auch am 'natürlichen'.

wenn man geräte genau so benennt wie die generischen namen verhindert man die erkennung der generischen namen.

aktuell sollte man auch nicht mehrere worte oder noch den raum namen als geräte namen werwenden. das mag alexa meist nicht.

wenn man geräte direkt ansprechen möchte geht das entweder über eindeutige namen, ebenfalls über ein angehängtes 'in ...' oder durch angabe des raums wenn alexa fragt welches von mehreren gleichen geraten gemeint ist. alles ausser der ersten variante funktioniert nicht immer.


routinen sind eine gute möglichkeit wenn die generischen namen von ganz oben nicht gehen oder um sich dinge zu vereinfachen. aber da es aktuell nicht möglich ist das eine routine je nach echo der einen Anweisung empfängt etwas anderes machen zu lassen wird das sehr schnell unhandlich wenn es eine n:m kombination aus geräten und räumen gibt die man gleich (oder auch unterschiedlich) steuern möchte.

ZitatDas Feature steht aber auch so im Wiki drin.

Aber mit Fußnote, schonmal draufgeklickt/gelesen ?

Nimm mal zum Test einfache Namen, ohne generische Namen und ohne Namen die man eigentlich zum benenennen von Gruppen verwendet, bspw. Kiwi, Mandarine, Kartoffel, werden die dann erkannt ?

der Bernhard

So alles klar. Ich habe nun dem Device nur den AlexaName Gästelicht gegeben und als genericDeviceType light und nicht als switch definiert. Dann in der Alexa App der Gruppe Gästezimmer zugeordnet und schon flutscht es.

Danke für den Gedankenanstoß... Mehrfachnamen - ich habe es mit irgendwelchen probiert - funktioniert zumindest bei mir nicht.

LG Bernhard

TomLee

Gästelicht beinhaltet den generischen Namen Licht und sollte man vermeiden, ja das klappt trotzdem ich weiß.

Jetzt wo du das Device einer Gruppe zugeordnet hast und es das einzige light-Device in der Gruppe ist, kannst du es auch mit dem generischen Namen Licht ansprechen und es wird geschaltet, unabhängig vom gewählten alexaName, der kann jetzt auch "Hirnfurz" sein.

der Bernhard

Ja das ist korrekt - Ananas geht jedenfalls - Hirnfurz nicht probiert :D

Wegen der Licht Problematik, ja das ist blöd, aber ich würde auch gerne mit Gästelicht schalten...