alexa-fhem: amazon alexa smart home skill für fhem, api version 3

Begonnen von justme1968, 19 Dezember 2017, 22:16:30

Vorheriges Thema - Nächstes Thema

stefanru

Hi justme,

ich habe das Audio abspielen mittels Audioplayer.Play in dem Alexa coding von hier mal eingebaut.
Es ist etwas reingehacked und die server.js reagiert nicht auf die Rückgaben wie Playing oder NearlyFinished.

Es funktioniert aber wunderbar. Musik wird als M3U Playlist an Alexa übergeben.

Als Server benutze ich Plex für die Musik und lighthttp um die Playlist für Alexa bereitzustellen.
Die Zertifizierung habe ich mit Let's Encrypt gemacht, das geht einwandfrei und die Zertifikate gehen in Plex und lighthttpd zu integrieren.

Ich erzeuge mir per suche im Plex Modul eine Liste aller Albem vom gesprochenen Künstler oder Album. Daraus randomize ich eine Playlist.
Die Erkennung ist super.

Habe das die letzen 2 Tage zusammengebaut. Ich werde bei Gelegenheit das mal hier einfügen. Vielleicht hilft es etwas.


Ein korrekter Einbau des Audioplayers wäre super.
Freu mich auf die nächste Version.

Gruß,
Stefan


Holger S

Hallo,

gibt es bezüglich Abspielen von Audio Dateien schon Neuigkeiten oder eine Anleitung?

Danke

MadMax-FHEM

Zitat von: Holger S am 10 Juni 2018, 18:40:54
Hallo,

gibt es bezüglich Abspielen von Audio Dateien schon Neuigkeiten oder eine Anleitung?

Danke

Es gibt (parallel) noch folgendes: https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482

Bzw. https://mwinkler.jimdo.com/smarthome/eigene-module/echodevice/

Allerdings macht es einem (in dem Fall Michael/Modulentwickler) Amazon nicht leicht...

Wegen immer wiederkehrender Anmeldeprobleme geht das immer mal wieder nicht...
Hoffentlich ändert sich das bald mal!

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)

stefanru

#273
Hi Holger,

ich kann über Plex media server und dem Alexa custom skill auf meine Musik zugreifen.
Grob habe ich das erklärt.
Bin damit super zufrieden.

Plex Serrver sucht nach Spracheingabe über Custom Skill Titel von Interpreten oder auch eine Playlist. Stellt eine Playlist zusammen und speichert sie, Alexa spielt diese dann ab.

Also ein Alex sage Plex spiele Sia, spielt Musik von Sia ab.

Es ist aber etwas fummelig einzurichten. Du brauchst HTTPS. Bin aber gerne bereit zu helfen.

Anleitung ist hier:
https://forum.fhem.de/index.php/topic,88038.msg804627.html#msg804627


Gruß,
Stefan

Prof. Dr. Peter Henning

Prima, kann das bitte auf eine Wiki-Seite kommen ?

LG

pah

stefanru

Hi Pah,

ich finde es halt doch ein dirty Hack.

So weit ich weiß will Justme eine Audioplayer Funktionalität in die nächste API mit einbauen.
Das wäre dann eher etwas für ein Wiki.

Mit der Playlist Lösung kann man weder pausieren, noch Titel überspringen.
Klar es tut seinen Dienst und funktioniert gut, aber es ist halt nur reingefummelt.

Ich würde auf die nächste Version warten.
Auch hat Plex einen offiziellen Skill, der geht sicher auch wesentlich besser.
Leider noch nicht in Deutschland verfügbar, ist aber auch nur eine Frage der Zeit.

Gruß,
Stefan

MaikelR2000

Hilfe,

kann mir einer mal helfen und eine aktuelle beschreibung für das einrichten bei developer.amazon.com und aws.amazon.com nennen?

Die haben scheinbar schon wieder alles umgebaut!

Mit den Anleitungen die ich bisher gefunden habe komme ich nicht weiter!!!!

Danke schon mal

Maikel

balli1187

Zitat von: MaikelR2000 am 12 Juni 2018, 16:37:47
Hilfe,

kann mir einer mal helfen und eine aktuelle beschreibung für das einrichten bei developer.amazon.com und aws.amazon.com nennen?

Die haben scheinbar schon wieder alles umgebaut!

Mit den Anleitungen die ich bisher gefunden habe komme ich nicht weiter!!!!

Danke schon mal

Maikel
Eine aktuelles HOW-TO gibt es meines Wissens nach nicht.

Du könntest höchstens über die Suchfunktion in der Konsole die entsprechenden Seiten ausfindig machen. Das ist sicher mit etwas Zeir und Nerven verbunden, hat mir aber schon das eine oder andere Mal geholfen.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

oeiber

hallo zusammen!
Ich hätte eine Frage zu Alexa-Fhem: Ich habe an einer Steckdose mehrere Geräte hängen. Und möchte für dieses Gerät Alias Namen vergeben. Ist dies irgendwie möglich? Ich habe schon versucht die Geräte Namen mit Strichpunkt oder mit einem Leerschritt zu trennen. spreche ich dann das Gerät mit dem zweite Namen an, sagt Alexa es gibt mehrere Geräte mit diesem Namen.

Habt ihr eine Idee? Oder geht das vielleicht überhaupt nicht und ich muss über einen Dummy arbeiten?

Herzlichen Dank!

balli1187

Zitat von: oeiber am 21 Juni 2018, 09:04:00
hallo zusammen!
Ich hätte eine Frage zu Alexa-Fhem: Ich habe an einer Steckdose mehrere Geräte hängen. Und möchte für dieses Gerät Alias Namen vergeben. Ist dies irgendwie möglich? Ich habe schon versucht die Geräte Namen mit Strichpunkt oder mit einem Leerschritt zu trennen. spreche ich dann das Gerät mit dem zweite Namen an, sagt Alexa es gibt mehrere Geräte mit diesem Namen.

Habt ihr eine Idee? Oder geht das vielleicht überhaupt nicht und ich muss über einen Dummy arbeiten?

Herzlichen Dank!

Alexa-FHEM bringt das Attribut alexaName mit sich. Auf die Bezeichnung, die du dort einträgst, hört Alexa dann. Sollte es nicht gesetzt sein, gilt der Alias und dann der ,,echte" Device-Name.
Wenn Alexa die Rückgabe gibt, dass es mehrere Devices mit dem Namen gibt, sind die Bezeichnung womögöich zu ähnlich und alexa kann es nicht sauber unterscheiden. Ich hatte das Problem anfangs mit meinen Rollläden, die mit "Rollladen Wohnzimmer", "Rollladen Küche" und "Rollladen Bad" benannt waren, und der zugehörigen Gruppe "Rollläden". Hier hatte alexa öfter Probleme zu erkennen, dass ich die ganze Gruppe schalten möchte und nicht nur eines der devices. Also ggf. mal die Namen etwas differenzierter wählen.

Der Satz ,,Ich habe an einer Steckdose mehrere Geräte hängen" macht mich ein wenig stutzig, daher die etwas komische Frage: du hast aber schon für jedes gerät einen eigenen Aktor und schaltest nicht die eine Steckdose an der alles hängt, oder?!


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

TomLee

#280
Moin,

hab zwar die "Steckdose an der mehrere Geräte hängen" nicht ganz verstanden, wenn ich mich richtig erinnere sollte mit Komma aber die Angabe mehrerer Namen möglich sein.

Gruß

Thomas

TomLee

gerade noch mal gesucht und gefunden, lies mal hier zwei, drei Beiträge weiter.
Die Angabe mehrerer 'alexaName', durch Komma getrennt, wird nur vom Custom-Skill unterstützt.

MadMax-FHEM

Wenn SmartHome Skill dann bleiben wohl nur die Varianten:

für jedes Gerät einen "Schalter-Dummy" welcher halt letztendlich die selbe Steckdose schaltet...
(die Idee hattest du ja auch schon als "Alternative")

oder per "Routinen" in der AlexaApp verschiedene "Sprüche" definieren welche dann immer das gleiche Gerät (in alexa) schalten...

oder halt sich für einen Namen entscheiden und damit dann die letztendlich eine Steckdose schalten...

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)

Dersch

Hi,

ich komme einfach nicht weiter und hoffe nun auf etwas Hilfe. Ich denke es ist nur etwas banales aber ich verstehe die Ursache nicht. Alexa FHEM findet einfach keine Devices und ich vermute die Verbindung zu FHEM steht intern nicht ganz:

● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-23 23:49:41 CEST; 2s ago
Main PID: 16975 (alexa)
    Tasks: 10 (limit: 4915)
   CGroup: /system.slice/alexa.service
           └─16975 alexa

Jun 23 23:49:42 FHEM-Server alexa[16975]:      'jalousien',
Jun 23 23:49:42 FHEM-Server alexa[16975]:      'rollo',
Jun 23 23:49:42 FHEM-Server alexa[16975]:      'rollos' ] }
Jun 23 23:49:42 FHEM-Server alexa[16975]: [2018-6-23 23:49:42] roomOfEcho:
Jun 23 23:49:42 FHEM-Server alexa[16975]: [2018-6-23 23:49:42] {}
Jun 23 23:49:42 FHEM-Server alexa[16975]: [2018-6-23 23:49:42] fhemIntents:
Jun 23 23:49:42 FHEM-Server alexa[16975]: [2018-6-23 23:49:42] { FHEMgutenMorgenIntent: 'gutenMorgen',
Jun 23 23:49:42 FHEM-Server alexa[16975]:   FHEMguteNachtIntent: 'guteNacht' }
Jun 23 23:49:42 FHEM-Server alexa[16975]: [2018-6-23 23:49:42] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;list%20MyAlex
Jun 23 23:49:42 FHEM-Server alexa[16975]: [2018-6-23 23:49:42] [FHEM] got: 0 results


Ich habe Testweise 2 Devices mit den Attributen "AlexaName" "AlexaRoom" und "GenericDeviceType" ausgestattet. Und dann müsste es doch direkt gefunden werden oder?

Ein List von dem Alexa Modul:

Internals:
   NAME       MyAlexa
   NR         329
   STATE      active
   TYPE       alexa
   active     0
   alexa-fhem version 0.4.4
Attributes:
   alexaMapping #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um

Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220

Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER

TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad

Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr
   alexaTypes #Type=<alias>[,<alias2>[,...]]
light=licht,lampen
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
   echoRooms  #<deviceId>=<room>

   fhemIntents #IntentName=<sample utterance>
gutenMorgen=guten morgen
guteNacht=gute nacht
   room       Zentral


Ein Beispiel Device:

Internals:
   DEF        3EA0AA02
   NAME       KuLedBoards
   NOTIFYDEV  global
   NR         191
   NTFY_ORDER 50-KuLedBoards
   STATE      off
   TYPE       CUL_HM
   chanNo     02
   device     KuWandLicht
   READINGS:
     2018-06-22 22:33:12   CommandAccepted yes
     2018-03-19 15:41:51   R-powerUpAction off
     2018-03-19 15:41:51   R-sign          off
     2018-03-19 15:41:51   RegL_01.        08:00  30:06 57:24 56:00 00:00
     2018-06-23 22:04:35   deviceMsg       off (to CCU)
     2018-06-23 22:04:35   level           0
     2018-06-23 22:04:35   pct             0
     2018-06-23 22:04:35   recentStateType info
     2018-06-23 22:04:35   state           off
     2018-06-23 22:04:35   timedOn         off
   helper:
     regLst     ,1,3p
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     shadowReg:
     tmpl:
Attributes:
   alexaName  Küchenboards
   alexaRoom  alexa
   genericDeviceType light
   group      Licht
   icon       light_wall_2
   model      HM-LC-SW2-FM
   peerIDs    00000000,
   room       Küche
   webCmd     on:off


Und meine config.json für alexa-fhem:

cat /home/alexa/.alexa/config.json
{
    "alexa": {
        "port": 3000,
        "name": "Alexa",
        "keyFile": "/home/alexa/.alexa/key.pem",
        "certFile": "/home/alexa/.alexa/cert.pem",
        "nat-pmp": "192.168.10.254",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.XX",
        "oauthClientID": "amzn1.application-oa2-client.XX",
        "permissions": {"<skill-id>": { "client_id": "amzn1.application.XX", "client_secret": "XXXXXXXXXXXf"}}
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "webname": "fhem",
            "filter": "room=alexa"
        }
    ]
}


Was verstehe ich da falsch?

Grüße
Dirk

MadMax-FHEM

#284
alexaRoom ist nur für den Custom Skill relevant...

Dein Filter heißt: room=alexa
also muss das Gerät das gefunden werden soll auch das Attribut room alexa haben...
D.h. neben dem room Küche noch in den room alexa "stecken"...

Nur kurz, da grad nur mobil...

EDIT: vielleicht auch erst mal mit dem simplen Dummy-Schalter Beispiel aus dem WiKi testen. Wenn das geht weitere Geräte dazu nehmen...

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)