alexa-fhem: amazon alexa smart home skill für fhem

Begonnen von justme1968, 05 November 2016, 23:21:32

Vorheriges Thema - Nächstes Thema

justme1968

@vbs: ich mache mal ein beispiel. dauert aber etwas.

@Det20: namen mit leerzeichen sind keine gute idee und namen die den raum enthalten auch nicht. zum einen hat alexa öfter probleme damit und zum anderen verbaust du dir damit das raum basierte ansprechen.

nimm alexaRoom für den raum und einfache sprechende namen für den namen.

mit dem custom skill kannst du licht auch als typen name für alle lampen verwenden wenn die geräte nicht licht heissen.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

cyvr1

#1996
@justme1968

Das Problem ist, dass Alexa bei mir "Esszimmer Lampe" erkennt, wenn ich "Esszimmerlampe" sage. Hier funktioniert es erst richtig, seitdem ich die Namen so vergebe, wie Alexa sie erkennt und das ist nun mal oft mit Leerzeichen. Ich will jetzt auch nicht alle Lampen nur noch "Lampe" nennen. Manchmal ist es einfacher, eine Lampe direkt anzusprechen, statt immer den ganz langen Satz "Mach die Lampe in Esszimmer an." zu sagen. Oft haben wir auch mehrere Lampen in einem Raum und die muss man unterscheiden können. Man will ja auch nicht immer alle Lampen einschalten.

Grüße
Stephan Krätzschmar

Gesendet von meinem LG-H960 mit Tapatalk

----------
Stephan Krätzschmar

nesges

Zitat von: justme1968 am 10 Februar 2017, 19:46:02
- fhem intents der art
  {meineSub()}=guten morgen und set|get|attr <device> xyz=gute nacht
  sind jetzt möglich.

Ich bin mir nicht sicher ob ich die Implikationen für die Sicherheit vollständig überblicke, aber ist es damit nicht so, dass ein Angreifer beliebigen Perl-Code auf meiner Maschine ausführen kann, wenn er nur eine Skill-ID hat?

Det20

#1998
Ich habe einen Lichtschalter definiert:


alexaName Licht.Finja
alexaRoom Obergeschoss


Den gibt es unter diesem alexaNamen exakt einmal. Trotzdem sagt Alexa "Ich habe mehrere Geräte mit dem Namen gefunden". Ich verstehe nicht so recht, wieso. Habe schon den . weggelassen, stattdessen ein Leerzeichen eingebaut ... Immer wieder fragt er nach.

Wenn ich


alexaName Licht
alexaRoom Finja


definiere, meldet Alexa, dass mehr als ein Gerät namens Licht gefunden wurde. Wie ist es denn nun richtig?

Det20

Zitat von: justme1968 am 13 Februar 2017, 21:04:24
nimm alexaRoom für den raum und einfache sprechende namen für den namen.

Dann erkennt Alexa garnichts mehr, siehe


alexaName Licht
alexaRoom Finja

justme1968

@nesges: nein. es wird für diesen intent genau der code ausgeführt der links vom = steht. es kann niemand von aussen beliebigen perl code anstossen. die zuordnung intent -> code passiert lokal bei dir in alexa-fhem, ist nicht von aussen zu beeinflussen oder sichtbar.


@Det20: namen mit satzeichen sind ebenfalls keine gute idee. das bringt alexa definitiv durcheinander und die werden automatisch entfernt.

hast du die custom slots im interaction model jeweils angepasst?

starte bin/alexa mal mit --debug. dann steht auf der console was genau verstanden wurde und bau mal in lib/server.js nach zeile 820 die beiden folgenden zeilen ein:
                 log.error(command.device +' -> '+ device.name +':'+ device.alexaName +'('+device.alexaRoom+'),'
                                                 + d.name +':'+ d.alexaName +'('+d.alexaRoom+')' );
dann gibt es eine konsolen ausgabe zu den device die gefunden werden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Det20

Ich habe noch keinen Custom-Skill, die peile ich irgendwie nicht. Sind normale ZWAVE Devices mit den Eigenschaften alexaName, alexaRoom, genericDeviceType (switch) und room (alexa).

Wie sollte der Aufbau denn sein? Oder bin ich der erste der auf die Idee kommt? :)


alexaName Licht
alexaRoom Finja

alexaName Licht
alexaRoom Terrasse

alexaName Licht
alexaRoom Küche


und irgendwann dann


alexaName Jalousie
alexaRoom Finja

alexaName Jalousie
alexaRoom Terrasse

alexaName Jalousie
alexaRoom Küche


Am Ende möchte ich halt sagen "Alexa, schalte Licht Terrasse an". Oder "Schalte das Licht auf der Terrasse an".

justme1968

alexaRoom ist nur für den custom skill.

im home automation skill musst du die geräte über die app zu gruppen zuordnen. über das api ist das nicht möglich.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Det20

#2003
Quasi Gruppe=Raum?

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Det20

Aktuell macht sie aus "Licht.Toilette" einfach "Lichterkette"

Cobra

Nenne das Device Licht und mach es in der Alexa-App in die Gruppe Toilette, dann kannst du sagen:
Alexa, mach das Licht in der Toilette an/aus.
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Det20

Gute Idee. Nur blöd, dass ich 12 Lichtschalter habe und die heißen in der App stumpf "Licht" (in den Gruppen).

Cobra

#2008
Dann gib jedem Lichtschalter einen individuellen Namen, ordne alles in die entsprechenden Gruppen und ändere dann den Namen wieder auf "Licht".

Hinterher Alexa-FHEM neu starten und in der Alexa-App die Daten neu einlesen.
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Det20

Aber genau das war's was ich gesucht hatte. Fehlen nur noch Jalousin ...
Vielen dank erstmal Euch allen!