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

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

Vorheriges Thema - Nächstes Thema

Esjay

Zitat von: tagedieb am 04 März 2017, 07:40:53
guten Morgen

@Ma_Bo

ich habe deinen Beitrag gelesen und dazu folgende Frage:

wird das alles in die my_utils gepackt oder habt ihr für alexa eine gesonderte utils angelegt?

So ganz blicke ich da noch nict durch

gruss tagedieb
https://forum.fhem.de/index.php/topic,65890.0.html

MadMax-FHEM

Zitat von: tagedieb am 04 März 2017, 07:40:53
guten Morgen

@Ma_Bo

ich habe deinen Beitrag gelesen und dazu folgende Frage:

wird das alles in die my_utils gepackt oder habt ihr für alexa eine gesonderte utils angelegt?

So ganz blicke ich da noch nict durch

gruss tagedieb

Aktuell habe ich nur eine myUtils...
...aber überlege jetzt je nach "Aufgabenbereich" eine eigene...
...wird dann etwas übersichtlicher und ich muss nicht mehr so viel scrollen... ;)

Also jeder wie er will...

Ich kenne ja den restlichen code nicht aber den Skillnamen abzufragen (hast du den code zu der Funktion? / sonst wird "copy/paste" eh nicht gehen...) und nicht zu nutzen kannst du dann auch weglassen... ;)

Die geschweiften Klammern um return sind auch unnötig...

Ein return "guten morgen!"; reicht...

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)

knueppler

Zitat von: Esjay am 27 Dezember 2016, 19:44:34
Ihr legt den dummy an, wie Andre es beschrieben hat

define VolumeUpDown dummy
attr VolumeUpDown alexaName  Receiver
attr VolumeUpDown alexaRoom  Spielzimmer
attr VolumeUpDown genericDeviceType Speaker
attr VolumeUpDown homebridgeMapping LauterLeiser=harmony_39933799:state,cmd=command


...

dann geht ihr in Fhem auf euer alexa Device, welches ihr mit define <Euer gewählter Name> alexa angelegt habt.

nun gebt ihr oben in der Kommandozeile folgendes ein:
folgendes ein:
attr <Euer gewählter Name> alexaMapping LauterLeiser=state,verb=stelle,articles=den,values=lauter:VolumeUp;leiser:VolumeDown
Falls euer Receiver nicht auf VolumeUp oder VolumeDown hört,müsst ihr dies ebenfalls anpassen.

anschließend macht ihr ein

set <Euer gewählter Name> reload

nun ein
get <Euer gewählter Name> customSlotTypes

und tragt die Ergebnisse ( In dem Fall die Erweiterung des Device Receiver) unter Interaction Model in eurem Custom Skill unter Custom Slot Types nach dem im Wiki beschriebenen Schema ein.

dann führt ihr ein

get <Euer gewählter Name> interactionModel
aus, und erweitert in der Reihenfolge -->Custom Slot Types -->Sample Utterances--> Intent Schema den Custom Skill.

Anschließend könnt ihr sagen : Alexa sage <euer gewähltes Startwort für den Custom Skill> mach den Receiver lauter/leiser.
oder über Alexa starte  <euer gewähltes Startwort für den Custom Skill> --> und anschließend mach den Receiver lauter/leiser

Hallo,
ich habe das analog gemacht, wie oben beschrieben.

Ich habe einen Dummy Lautsprecher_Esszimmer mit Alexa-Namen Lautsprecher Esszimmer, der auf set Lautsprecher_Esszimmer VolumeUp genauso reagiert, wie ich das möchte.
Das Homebridge-Mapping sieht so aus
Volume=volume,cmd=volume Mute=state,cmdOn=on,cmdOff=off LauterLeiser=state,cmd=command
Die ersten zwei Mappings benötige ich für Siri
Allerdings reagiert Alexa beim Kommando Alexa sage James stelle Lautsprecher Esszimmer lauter sagen wir verwirrt, anbei das Log:
**** Received Directive: {"version":"1.0","session":{"new":true,"sessionId":"amzn1.echo-api.session.af60b09e-f756-4cae-be7b-3e1339f57ffc","application":{"applicationId":"amzn1.ask.skill.c487c1f9-2275-4dda-a148-d703702aee37"},"user":{"userId":"amzn1.ask.account.AFG2I73LPQ3SIVRLBL26OCMRSLDW5LVHZYMPZD6T6NX47OFTJGOYMIIEFYZ34M5SNT5QIKZDA47E6AGWJNKQMS6OUPYWGLHQXYQDECDEKVYLMRVEIHR2ZAR2VJ6XX2HASL7DJYXAPRFM5CYVVJLSRLQHNYGDAMFJJQPKJWNCG76ZJOI4BB4U6E4VEOY3CJ4T767LXSG5I5AD5CA"}},"context":{"AudioPlayer":{"playerActivity":"IDLE"},"System":{"application":{"applicationId":"amzn1.ask.skill.c487c1f9-2275-4dda-a148-d703702aee37"},"user":{"userId":"amzn1.ask.account.AFG2I73LPQ3SIVRLBL26OCMRSLDW5LVHZYMPZD6T6NX47OFTJGOYMIIEFYZ34M5SNT5QIKZDA47E6AGWJNKQMS6OUPYWGLHQXYQDECDEKVYLMRVEIHR2ZAR2VJ6XX2HASL7DJYXAPRFM5CYVVJLSRLQHNYGDAMFJJQPKJWNCG76ZJOI4BB4U6E4VEOY3CJ4T767LXSG5I5AD5CA"},"device":{"supportedInterfaces":{"AudioPlayer":{}}}}},"request":{"type":"IntentRequest","requestId":"amzn1.echo-api.request.94d1fdb2-3119-402b-97d2-cfb25c95c175","timestamp":"2017-03-04T15:13:31Z","locale":"de-DE","intent":{"name":"LauterLeiserIntent","slots":{"preposition":{"name":"preposition"},"Room":{"name":"Room"},"Device":{"name":"Device","value":"lautsprecher esszimmer"},"article":{"name":"article"},"LauterLeiser_Value":{"name":"LauterLeiser_Value","value":"lauter"}}}}}
[3/4/2017, 3:13:32 PM] IntentRequest
[3/4/2017, 3:13:32 PM] LauterLeiserIntent
[3/4/2017, 3:13:32 PM] [FHEM]   executing: https://192.168.178.51:8083/fhem?cmd=%7B$defs%7Balexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1
[3/4/2017, 3:13:32 PM] [FHEM]   executing: https://192.168.178.51:8083/fhem?cmd=setreading%20alexa%20intent%20IntentRequest%20LauterLeiserIntent&XHR=1
[3/4/2017, 3:13:32 PM] [FHEM]   executing: https://192.168.178.51:8083/fhem?cmd=%7B$defs%7Balexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1
[3/4/2017, 3:13:32 PM] LauterLeiserIntent -> LauterLeiser
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich habe Ich kann lautsprecher esszimmer nicht auf lauter schalten. lauter gestellt"},"shouldEndSession":true,"card":{"type":"Simple","title":"LauterLeiserIntent","content":"Ich kann lautsprecher esszimmer nicht auf lauter schalten. lauter gestellt"}}}

Leider habe ich keine Idee mehr, was falsch ist und bin für jeden Hinweis dankbar.

Ciao Christian

TomLee


LauterLeiser=state,cmd=+

denk ich, bringt dich weiter.

LG

Thomas

tagedieb

Guten morgen Esjay

Danke für deinen helfenden Hinweis  :)

ich wünsche einen schönen Sonntag

gruss tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

tagedieb

guten morgen MadMax-Fhem

mit copy paste ist eh nicht so gut - denn beim "stibitzen" verstehe ich die Logik nicht - jedoch ein funktionierendes beispiel mit der richtigen Erklärung bringt einiges - ich denke da nur an deinen hervorragenden Hinweis mit dem video  ;)
danach ging es fast wie von selbst
doch mit diesen subs und codes habe ich hier noch meine schwierigkeiten  :-[
ich sehe zwar in der alexa-fhem log die meldungen und kann diesen auch so ungefähr entnehmen, was zur Verfollständigung noch fehlt, jedoch kann ich die fehlenden codes noch nicht erstellen -
zum Beispiel - ich habe Funkrolläden von jarolift, welche ich als dummy, mit einem 4 fach homatik schalter über die jarolift fernbedienung schalte (kabel an FB und diese per homatik etc) mit notifiys funktioniert das im FHEM seit jahren - hier habe den dummmy als blind deklariert - 0 und 100 bzw auf und zu sind in der webcmd enthalten, set list on off habe ich dem dummy hinzugefügt
alexa findet diesen rolladen und antwortet auch brav, sie hat ihn hochgestellt - doch er blieb unten
als Fehlermeldung habe ich erhalten:
","intent":{"name":"TargetPositionIntentB","slots":{"preposition":{"name":"preposition","value":"im"},"TargetPosition_ValueB":{"name":"TargetPosition_ValueB","value":"hoch"},"Room":{"name":"Room","value":"schlafzimmer"},"Device":{"name":"Device","value":"rolladen"},"article":{"name":"article"}}}}}
[3/5/2017, 6:44:33 AM] IntentRequest
[3/5/2017, 6:44:33 AM] TargetPositionIntentB
[3/5/2017, 6:44:33 AM] [FHEM]   executing: http://192.168.1.85:8082/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1
[3/5/2017, 6:44:33 AM] [FHEM]   executing: http://192.168.1.85:8082/fhem?cmd=setreading%20MyAlexa%20intent%20IntentRequest%20TargetPositionIntentB&XHR=1
[3/5/2017, 6:44:33 AM] [FHEM]   executing: http://192.168.1.85:8082/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1
[3/5/2017, 6:44:33 AM] TargetPosition
[3/5/2017, 6:44:33 AM] TargetPositionIntentB
[3/5/2017, 6:44:33 AM] [FHEM] Rolladen: executing set cmd for TargetPosition with value 0
[3/5/2017, 6:44:33 AM] [FHEM]   executing: http://192.168.1.85:8082/fhem?cmd=set%20Rolladen%20pct%200&XHR=1
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich habe den rolladen im Raum schlafzimmer hoch gestellt"},"shouldEndSession":true,"card":{"type":"Simple","title":"TargetPositionIntentB","content":"den rolladen im Raum schlafzimmer hoch gestellt"}}}

für meine Begriffe fehlt hier das Gerätemapping - ist das richtig? und wenn ja,
attr <meindummy> alexamapping blind=state,values=closed:100;open:0
ist das das benötigte schema?
muss dann noch ein cod für die utiels erstellt werden?

Hilfe wäre toll  :)
im anhang ist die komplette fehlermeldung, denn beim copieren ist nicht alles mit "rübergekommen"

gruss tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

MadMax-FHEM

#2331
@tagedieb:

bzgl. mapping kann ich dir leider nicht helfen.

Aber so wie ich die Meldungen interpretiere wurde hoch/auf verstanden und mit setze Rolladen auf 0 ausgeführt.

Entweder musst du Alexa dazu "überreden" bei auf/hoch 100 statt 0 zu setzen...
...oder halt beim Rolladen umdrehen ;)

Eine sub bzw. irgendwas in einer sub brauchst du nur, wenn du mit fhemIntent was machst bzw. bei fhemIntents wo du eben eine sub angibst...

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)

knueppler

Zitat von: TomLee am 04 März 2017, 20:06:16
LauterLeiser=state,cmd=+

denk ich, bringt dich weiter.

LG

Thomas

Moin,
mit Reboot von alexa-fhem war es das.
Vielen Dank!

tagedieb

hallo

@Madmax_FHEM

danke für die info - habe es zwischendurch mit einbezug des Modul´s rollo gelöst - reagiert nun vom sinn her, wie der original rolladenaktor - muss jetzt nur noch an der markise arbeiten, denn diese ist bei auf 100 und zu 0 - hier werde ich deinen hinweis mit der umkehrung einarbeiten  :D
und die sub würde ich also benötigen, wenn ich alexa sage: bereite mir einen cappuccino, bereite mir einen kaffee, bereite mir einen Kakao etc?
(das sind alles dummys, welche dann über ein notify den richtigen schalter an der Kaffeemaschine betätigen - funktioniert bisher über einen button auf dem fhem display)

gruss tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

hensing

wie kann ich dass csrfToken einbbauen bzw. was muss ich dazu wo eingeben ???

finde leider im forum keine für anfäger verständliche lösung.
möchte einfach alles über die app steuern können wie "vorher" auch.

danke und schönen restsonntag
hensing

MadMax-FHEM

Zitat von: tagedieb am 05 März 2017, 11:27:36
hallo

@Madmax_FHEM

danke für die info - habe es zwischendurch mit einbezug des Modul´s rollo gelöst - reagiert nun vom sinn her, wie der original rolladenaktor - muss jetzt nur noch an der markise arbeiten, denn diese ist bei auf 100 und zu 0 - hier werde ich deinen hinweis mit der umkehrung einarbeiten  :D
und die sub würde ich also benötigen, wenn ich alexa sage: bereite mir einen cappuccino, bereite mir einen kaffee, bereite mir einen Kakao etc?
(das sind alles dummys, welche dann über ein notify den richtigen schalter an der Kaffeemaschine betätigen - funktioniert bisher über einen button auf dem fhem display)

gruss tagedieb

Nein, eine Sub brauchst du beispielsweise für:

fhemIntent
{macheTee($num)}=mache {num:AMAZON.NUMBER} Tee


sub macheTee($)
{
  my($num) = @_;

...TUE WAS...

return "ich habe $num Tee gemacht.";
}

Dann kannst du sagen: "Alexa sag XXX mache 5 Tee" und an die Sub wird dann 5 als Parameter übergeben.
In der Sub kannst du dann tun "was du willst"...
...und der returnwert, z.B. return "ich habe $num Tee gemacht." wird dann von Alexa gesprochen.

Dazu brauchst du aber diese spezielle Version:

https://forum.fhem.de/index.php/topic,67490.0.html

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)

justme1968

@hensing: und warum denkst du dieser alexa-fhem thread ist der richtige für deine frage?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Zitat von: hensing am 05 März 2017, 11:54:14
wie kann ich dass csrfToken einbbauen bzw. was muss ich dazu wo eingeben ???

finde leider im forum keine für anfäger verständliche lösung.
möchte einfach alles über die app steuern können wie "vorher" auch.

danke und schönen restsonntag
hensing

Mit dieser Frage kann dir wohl keiner helfen...

Was machst du bzw. was willst du machen??

Oben rechts dem roten Link schon gefolgt??
Da steht eigentlich alles...

Bzgl. alexa-fhem: neueste Version installieren/updaten und sollte gut sein.

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)

Benni

Zitat von: MadMax-FHEM am 05 März 2017, 11:57:41
Mit dieser Frage kann dir wohl keiner helfen...

vor allem HIER nicht! Das ist m.E. der völlig falsche Thread!  ???

olli84

Hallo Ihr Lieben,

habe vor wenigen Minuten ein Update von alexa-fhem gemacht und nun geht nix mehr.

Habe mich an das Tutorial gehalten, dummerweise aber npm install mit einem sudo gemacht. Habe das npm install gerade nochmal (ohne sudo!) gemacht, dabei kommen einige errors:

npm ERR! Linux 3.13.0-108-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v7.1.0
npm ERR! npm  v3.10.9
npm ERR! path /opt/alexa-fhem/node_modules/.staging
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/opt/alexa-fhem/node_modules/.staging'
npm ERR!  { Error: EACCES: permission denied, mkdir '/opt/alexa-fhem/node_modules/.staging'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/opt/alexa-fhem/node_modules/.staging' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 3.13.0-108-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v7.1.0
npm ERR! npm  v3.10.9
npm ERR! path npm-debug.log.302651338
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open

npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.302651338'
npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.302651338'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'open',
npm ERR!   path: 'npm-debug.log.302651338' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /opt/alexa-fhem/npm-debug.log


wenn ich meinen fhem-alexa service starten will kommt:

sudo service alexa start
Alexa starting
Alexa is not running
script done
script done


im Logfile steht folgendes:

[3/5/2017, 1:49:02 PM] using /.alexa/config.json
[3/5/2017, 1:49:03 PM] ---
[3/5/2017, 1:49:03 PM] this alexa-fhem 0.3.0
/opt/alexa-fhem/lib/server.js:243
      var parts = this._config.alexa.applicationId[i].split( ':', 2 );
                                                     ^

TypeError: Cannot read property 'split' of undefined
    at Server.run (/opt/alexa-fhem/lib/server.js:243:54)
    at module.exports (/opt/alexa-fhem/lib/cli.js:30:10)
    at Object.<anonymous> (/opt/alexa-fhem/bin/alexa:17:22)
    at Module._compile (module.js:573:32)
    at Object.Module._extensions..js (module.js:582:10)
    at Module.load (module.js:490:32)
    at tryModuleLoad (module.js:449:12)
    at Function.Module._load (module.js:441:3)
    at Module.runMain (module.js:607:10)
    at run (bootstrap_node.js:420:7)


Wo ist mein Fehler? Vorher lief alles wunderbar...