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

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

Vorheriges Thema - Nächstes Thema

olli84

#2340
Bin jetzt soweit das npm install sauber durchläuft, nachdem ich das Verzeichnis OHNE sudo entpackt habe - dieses mal auch sauber in opt/fhem/  :o

Trotzdem habe ich den gleichen Fehler.

olli@FHEM:/opt/fhem/alexa-fhem$ ./bin/alexa
[3/5/2017, 2:08:00 PM] using /.alexa/config.json
[3/5/2017, 2:08:00 PM] ---
[3/5/2017, 2:08:00 PM] this alexa-fhem 0.3.0
/opt/fhem/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/fhem/alexa-fhem/lib/server.js:243:54)
    at module.exports (/opt/fhem/alexa-fhem/lib/cli.js:30:10)
    at Object.<anonymous> (/opt/fhem/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)
olli@FHEM:/opt/fhem/alexa-fhem$


Edit:

In Zeile 243 in der server.js steht folgendes:

const REQUEST_TURN_OFF = "TurnOffRequest";

olli84

So, nun kann ich hier mir doch tatsächlich die Antwort selbst geben. :)

Über diesen Thread https://forum.fhem.de/index.php?topic=60244.1305 bin ich auf das Problem von roadghost aufmerksam geworden. Genau das gleiche - nur andere Version.

Nach dem hinzufügen der applicationId in der config.json (die hatte ich noch nie gebraucht!) funktioniert nun alexa-fhem wieder. Ich hatte aber bereits vorher die custom-skill version am laufen!

Grüße,
Olli

tagedieb

#2342
Hallo Joachim

danke für deine Erklärung - also FhemIntend und sub = verschiedene ausgaben einer "aufgabe" ?
somit müsste ich für jeden Dummy eine fhemIntend eintragung vornehmen oder:
ein gesamtdummy und den mit Nummern oder Buchstaben  (wie beim rolladen die 0:10:100:60 oder so) versehen und dann im Mapping
zum BeispielTargetPosition=verb=bereite,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=Zahl einrichten?


Gruss Annette
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

#2343
Hi Annette,

nein für den fhemIntent mit sub brauchst du eigentlich gar keinen dummy.

Außer du brauchst ihn weil du in der zugehörigen sub etwas tust wozu du einen brauchst...

Der Intent steuert/nutzt ja nichts von einem "Gerät" (oder dummy aber auch das ist ja im Sinne von fhem eins) sondern ruft "einfach" direkt die genannte Funktion/sub in myUtils auf und führt halt aus was dort programmiert wurde.
Das Ergebnis als String wird dann "vorgelesen"...

Falls noch nicht bekannt: https://wiki.fhem.de/wiki/99_myUtils_anlegen

Du kannst in der sub alles tun, was man in einer sub so tun kann...
...da es perl ist und du fhem-Kommandos nutzen kannst kannst du praktisch alles tun was eben mit perl und fhem geht.

Also auch direkt die Geräte die du steuern willst steuern oder Werte abfragen oder oder oder...


Schon mal auf die in der vorigen (oder so) Antwort verlinkte Seite geschaut!?

Da ist eigentlich alles erläutert...

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)

tagedieb

Hallo Joachim

danke für deine Antwort, habe auch gerade gesehen, das ein und ausschalten eines dummys bereits von haus aus enthalten ist
On=verb=schalte,valueOn=an;ein,zubereiten,öffnen,valueOff=aus,zu,schliessen,valueToggle=um

Zitatnein für den fhemIntent mit sub brauchst du eigentlich gar keinen dummy.
war nicht so angedacht, etwas unglücklich formuliert  :-[
Zitatoder:
ein gesamtdummy und den mit Nummern oder Buchstaben  (wie beim rolladen die 0:10:100:60 oder so) versehen und dann im Mapping
(nicht im fhemintend)

ZitatSchon mal auf die in der vorigen (oder so) Antwort verlinkte Seite geschaut!?
ja  :) habe 0.3.1 und auch das dazugehörige gelesen, aber es blieben noch Fragen offen  :-\

gruss annette
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

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

KölnSolar

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Benni

Besteht eigentlich die Chance, dass man die aktuelle Version immer an einer bestimmten Stelle auffinden kann?
Der Link auf der alexa-fhem - Seite im Wiki zeigt aktuell auch noch auf den Post mit der 0.30

justme1968

die 0.3.0 ist die aktuelle version. die 0.3.1 ist noch eine test version die noch nicht 'offiziell' ist.

die nächste nicht-test version gibt es wie immer unter dem link aus dem wiki.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Benni


vbs

Ist es normal, dass alexa-fhem Geräte ignoriert, dem es nicht automatisch einen Device-Type zuordnen kann, wenn sie kein Attribut "genericDeviceType" haben?

Ich habe einen Dummy, dem ich nur eine selbstgemacht Characteristik verpassen möchte (Aktivitäts-Status "PC", "Film", "Fernsehen"). Ich habe daher keinen genericDeviceType zugeordnet. Nun wird das Device von alexa-fhem ignoriert. Was macht man da? Wenn ich einen beliebigen genericDeviceType zuordne, dann klappt es zwar, aber damit hole ich mir ja Characteristiken rein, die das Device gar nicht hat, oder?

justme1968

ja. das ist normal. was soll alexa-fhem denn sonst tun wenn es das gerät nicht erkennt? erst recht wenn es etwas selbst gemachtes ist.

denk dir einfach etwas passendes aus und verwende es.

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

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

vbs

Zitat von: justme1968 am 06 März 2017, 11:09:40
ja. das ist normal. was soll alexa-fhem denn sonst tun wenn es das gerät nicht erkennt? erst recht wenn es etwas selbst gemachtes ist.
Könnte sich dann alexa-fhem nicht auf die Charakteristiken beschränken, die man in dem Device per Attribut "homebridgeMapping" selbst angelegt hat? Hatte mir das "genericDeviceType" so vorgestellt wie eine Klasse, die dem Device einen gewissen Satz an Standard-Mappings vererbt.

Danke!

justme1968

ja. und wenn du eine standard service verwendest sind automatisch default characteristics damit verbunden. bei homekit werden sie sogar immer angezeigt. auch wenn sie keine funktion haben. wenn du die nicht möchtest kannst du sie mit clean löschen.

wenn du eine eigene service klasse verwendest gibt es auch keine defaults die automatisch verwendet werden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

vbs

Ok, danke, mache ich so.

Nochmal eine andere Idee (falls das nicht schon möglich ist. Aber ich habs nicht finden können):
Ich fände es super, wenn man bei den fhemIntents für einen Intent mehrere Sample Utterances angeben könnte, die alle diesen Intent triggern (sozusagen als Aliase).

Also anstatt:
{fhem("set wz_htpc pause");;return "pausiert"}=pause
{fhem("set wz_htpc pause");;return "pausiert"}=stop


evtl. sowas (o.ä.):
{fhem("set wz_htpc pause");;return "pausiert"}=pause|stop