Einladung zum Beta-Test: "FHEMlazy" zur einfacheren Alexa-Integration

Begonnen von gvzdus, 23 Dezember 2018, 15:30:36

Vorheriges Thema - Nächstes Thema

mark79

Zitat von: gvzdus am 09 Januar 2019, 12:02:14
bin/alexa -A
hätte es automatisch für Dich gemacht :-)

Fürs nächste mal... :)

Den Modus zu stellen klappt nicht. Ich erhalte bei "boost" oder "auto" eine Fehlermeldung von Alexa: Küche reagiert leider nicht.
Aber die Temperatur stellen klappt, also die Verbindung besteht.

boost:
[server] <<<< {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetThermostatMode","payloadVersion":"3","messageId":"c7870b85-697a-4db3-b171-5203bfe8af3a","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxx"},"endpointId":"CUL_HM_5ACA0A04","cookie":{"device":"KU_Heizung_Clima"}},"payload":{"thermostatMode":{"value":"CUSTOM","customName":"BOOST"}}}}
[FHEM] KU_Heizung_Clima sending command undefined with value CUSTOM
[server] Exception in handling request:  TypeError: Cannot read property 'characteristic_type' of undefined
    at FHEMDevice.command (/opt/fhem/alexa-fhem/lib/fhem.js:1512:19)
    at Server.handleThermostatController (/opt/fhem/alexa-fhem/lib/server.js:2436:12)
    at Server.handler (/opt/fhem/alexa-fhem/lib/server.js:1450:57)
    at Server.verifyToken (/opt/fhem/alexa-fhem/lib/server.js:815:23)
    at Server.<anonymous> (/opt/fhem/alexa-fhem/lib/server.js:88:31)
    at emitNone (events.js:106:13)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)
[server] >>>> null


auto:
[server] <<<< {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetThermostatMode","payloadVersion":"3","messageId":"38b27621-10be-4368-9f44-68a08d78f118","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":""},"endpointId":"CUL_HM_5ACA0A04","cookie":{"device":"KU_Heizung_Clima"}},"payload":{"thermostatMode":{"value":"AUTO"}}}}
[FHEM] KU_Heizung_Clima sending command undefined with value AUTO
[server] Exception in handling request:  TypeError: Cannot read property 'characteristic_type' of undefined
    at FHEMDevice.command (/opt/fhem/alexa-fhem/lib/fhem.js:1512:19)
    at Server.handleThermostatController (/opt/fhem/alexa-fhem/lib/server.js:2436:12)
    at Server.handler (/opt/fhem/alexa-fhem/lib/server.js:1450:57)
    at Server.verifyToken (/opt/fhem/alexa-fhem/lib/server.js:815:23)
    at Server.<anonymous> (/opt/fhem/alexa-fhem/lib/server.js:88:31)
    at emitNone (events.js:106:13)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)
[server] >>>> null


Temperatur:
[server] <<<< {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":""},"endpointId":"CUL_HM_5ACA0A04","cookie":{"device":"KU_Heizung_Clima"}},"payload":{"targetSetpoint":{"value":23,"scale":"CELSIUS"}}}}
[FHEM] KU_Heizung_Clima: executing set cmd for TargetTemperature with value 23
[FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20KU_Heizung_Clima%20desired-temp%2023&XHR=1
[server] >>>> {"context":{"properties":[{"namespace":"Alexa.ThermostatController","name":"targetSetpoint","value":{"value":23,"scale":"CELSIUS"},"timeOfSample":"2019-01-09T15:12:47.573Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"34f76bef-f590-418a-a843-1ed390943d1d","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":""},"endpointId":"CUL_HM_5ACA0A04"},"payload":{}}}
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

gvzdus

Ich habe jetzt länger auf den Code gestarrt, und bin noch zu keinem Verständnis gekommen :-)

mark79

Zitat von: gvzdus am 09 Januar 2019, 17:40:52
Ich habe jetzt länger auf den Code gestarrt, und bin noch zu keinem Verständnis gekommen :-)
Kenne ich, vielleicht eine Nacht drüber schlafen ;D
Das Eilt ja nicht und der Rest funktioniert. Sag bescheid, wenn ich es noch mal testen soll. :)
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

sTaN

Bin jetzt auch mit am Start und gerade die Wiki Anleitung zur Installation durchgegangen. Sobald Georg mir den Skill Zugang zugeschickt hat, kann ich testen. Auch ich verwende MAX! Thermostate und da habe ich sowieso noch einige ToDos offen.

Wird denn bei der aktuellen Anleitung schon auf Andre's aktuellste 39_alexa.pm zugegriffen? Sollte ich erst mal alles beim Standard belassen oder schon die neuste Version aus dem Forum Beitrag installieren?

Gruß sTaN
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

gvzdus

Schnapp Dir Andre 39_alexa.pm, dann ist es gleich "richtig" eingerichtet!

Sehr bald werde ich "meine" Version einstellen, bzw. nur als Clone von Andres Version betreiben, um z.B. Dinge wie die Heizkörper-Modus-Sache mit Willigen zu entwickeln (und dann natürlich bei Andre abzugeben).

Wenn Du beim Beta-Testing mittelfristig mitmachen willst, verwendet bitte "git" statt die anderen Downloads.

sTaN

Habe bereits per git installiert und bin am Punkt Email an dich senden. :-) Hätte ich die 39_alexa.pm vorher schon rein kopieren sollen oder kann ich die jetzt im Nachhinein einfach ersetzen?
Wie gesagt, Emailanfrage hast du schon in deinem Postfach. ;)
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

gvzdus

Eigentlich ist es mir inzwischen lieber, Du gehst nach Andres Methode im Nachbarthread vor.
Im Moment stecke ich eher die Energie darein, die gemeinsame Lösung "perfekt" zu machen.
Und der Proxy-Modus funktioniert m.E. auch da.

Auf jeden Fall installiere bitte *vor* dem "bin/alexa -A"-Aufruf Andres Modul bei laufendem FHEM.
Falls es "zu spät" ist, installiere es bitte, starte FHEM neu (logo), und rufe noch einmal "bin/alexa -A" auf -
das dürfte auf Anhieb ohne Fragen durchlaufen, und bringt Dich mit dem neuen Modul zusammen.

sTaN

Kein Problem! Jetzt versteh ich auch erst mal so langsam, wie das ganze zusammenspielen soll...Da war ich wohl etwas voreilig.

Also solltenich mit folgenden Schritten zum Ziel kommen auch wenn ich jetzt schon nach dem aktuellen Wiki Stand vorgegangen bin?

1. unter dem Benutzer fhem Andre's Version installieren mittels:
sudo npm install -g alexa-fhem
2. FHEM neustarten mittels:
shutdown restart
3. anschließen als FHEM Benutzer erneut mit Benutzer fhem in alexa-fhem wechseln und drüber installieren?
cd alexa-fhem
bin/alexa -A

Bei Amazon selbst aktiviere ich den Standard Smarthome Skill und nicht deinen, den du normal per E-mail versendest, wie im Wiki beschrieben und setze dann bei meinen Devices einfach den alexaName, den ich ansagen will?

Sorry, dass ich dich vom perfektionieren abhalte aber bevor ich noch mehr Schaden anrichte! ;)

Gruß und danke!
sTaN
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

gvzdus

Versuch mal 1) und 2).

Dann das "define MyAlexa alexa" aus Andres Anleitung.

*Eventuell* siehst Du dann schon - spätestens nach einem Reload der Seite nach 10 Sekunden - schon einen "Key", sowie einen positiven SSH-Status.

Wenn nicht, poste bitte den Status vom Alexa-Device.

punker

Zitat von: gvzdus am 09 Januar 2019, 16:05:42
Hmm. Ist hässlich. Irgendwie wird Dein homedirectory mit "/" erkannt, und da darf natürlich nicht geschrieben werden.

Am einfachsten erscheint es mir, dem Web-IF ein Attribut

alexaFHEM-params -U /opt/fhem


hinzuzufügen, das müsste klappen. Das PID-File-Schreiben fliegt eh' bald wieder raus, wenn 39_alexa.pm offiziell ist.

wo sollte ich denn dieses Attribut reinschreiben?
LG

Dieter

The truth is out there!

gvzdus

In Dein Alexa-Device in die Attribute.

Zur Erläuterung: Die Version seit 1-2 Tagen prüft bei "bin/alexa -A", ob eine aktuelle (neue) Version von 39_alexa.pm installiert ist. Falls das der Fall ist, wird etwas wie "FHEM.Alexa" gar nicht mehr angelegt. Falls es *inzwischen* aktualisiert wird, werden die Settings in das neue Modul von Andre migriert.


sTaN

Habe jetzt 1) und 2) ausgeführt.
Das Device MyAlexa existierte ja bereits aus deiner Anleitung aber sollte durch den FHEM neustart ja neu geladen werden richtig? Zumindest steht der gleiche Key im Reading alexaFHEM.skillRegKey wie bei der Installation vorhin um 20:16 Uhr. Hat sich also nicht verändert. Dein Skill ist nun im Amazon Account sichtbar aber zeigt noch folgenden Status an:

Checking your key:
Status ActivationKey: Good Key
Checking connection status:
Status SSH: NOT online - no SSH session established
Status Reverse-Portmapping: -
Status nodejs-Connectivity: -
Status nodejs-Interaction: -

Der Status vom MyAlexa Device ist active.

EDIT:
Sieht im alexafhem.log so aus, als ob noch eine SSH Verbindung aktiv ist:

[2019-1-9 23:09:17] [FHEM] longpoll ended, reconnect in: 200msec
[2019-1-9 23:09:17] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1547071757223
[2019-1-9 23:09:17] [FHEM] longpoll error: Error: connect ECONNREFUSED 127.0.0.1:8083, retry in: 10000msec
[2019-1-9 23:09:26] [server] this is alexa-fhem 0.5.3-FHEMlazy
[2019-1-9 23:09:26] [server] Fetching FHEM devices...
[2019-1-9 23:09:27] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1547071767239
[2019-1-9 23:09:27] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1547071767364
[2019-1-9 23:09:27] [server] Server emitted error: {"errno":"EADDRINUSE","code":"EADDRINUSE","syscall":"listen","address":"127.0.0.1","port":3000}
[2019-1-9 23:09:27] [server] Terminating - starting the listener not possible (another instance running?)
[2019-1-9 23:09:27] [server] Killing SSH on event process.exit


Nachdem Neustart des Raspberry ist alles online!

Checking your key:
Status ActivationKey: Good Key
Checking connection status:
Status SSH: Online - SSH socket is IP-Adresse:Port
Status Reverse-Portmapping: Reverse tunnel up
Status nodejs-Connectivity: Test passed - HTTP status 200
Status nodejs-Interaction: Passed - found 1 visible devices
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

punker

LG

Dieter

The truth is out there!

gvzdus

Puh, bin glücklich, dass es jetzt in beiden Fällen läuft!

@STAN: Nein, keine 2 SSHs, 2 Alexas waren es. Der Prozess auf Port 3000 ist Alexa, und wenn da eine Meldung "in use" kommt, dann wurde ein 2. Alexa-Prozess gestartet.

sTaN

Okay! Aber meine Fenster Lampe hört schon mal auf Alexa!  ;D
Das läuft also erst mal. Jetzt wollte ich mal einen MAX! Wandthermostat hinzufügen und habe im Büro das attribute alexaName "Heizung Büro" vergeben. Anschließend im Device Alexa.FHEM Reload geklickt. Danach in der Alexa Web Oberfläche neue Geräte gesucht und leider findet er nichts neues. Findet der Reload noch wie in deinem Wiki beschrieben statt?

ZitatLade die Geräte neu in die Software, indem Du bei "FHEM.Alexa" auf "Reload" klickst!

Oder läuft das bei mit Andres fhem-alexa anders ab?
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover