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

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

Vorheriges Thema - Nächstes Thema

gvzdus

Am besten ist, wenn Du auch alle Aktionen in "Andres" Alexa-Device machst, also nicht in FHEM.Alexa o.ä.

Brutallösung ist natürlich der Neustart von FHEM, aber bei mir reicht der Reload.

sTaN

Könnte es vielleicht sein, dass das MyAlexa Device gar nicht das richtige ist, weil es durch deine Anleitung vor der Installation von Andres Version installiert wurde?

Aktuell sieht mein Alexa Device MyAlexa nämlich wie im Screenshot aus. Laut Andres Threa müsste es ja eigentlich auch einen Link auf ein fake FileLog device geben, was bei mir fehlt. Kann ich das Device MyAlexa einfach löschen und neu anlegen oder werden bei erneuten define MyAlexa alexa die ganzen Readings und AlexaMappings, Types etc. nicht noch mal neu gesetzt und man müsste wieder neu installieren?

Sorry für den Trouble! ;-)
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

Hast Du ganz oben beim Auswahlfeld unter "set" auch die Möglichkeit für "start" und "restart"?

sTaN

Leider nein. Nur reload und skilled. Hab jetzt mutigerweise mal das Device MyAlexa gelöscht (vorher aus der fhem.cfg den Inhalt gesichert), anschließend neu angelegt und den Raspberry neugestartet. Er legt mir das Device inkl. Mappings und Types wieder an aber die Readings inkl bearer und ssh key fehlen leider. Im Logfile sagt er mir dann:

[2019-1-10 00:07:48] [server] Killing SSH on event process.exit
[2019-1-10 00:08:09] [server] this is alexa-fhem 0.5.3-FHEMlazy
[2019-1-10 00:08:09] [server] Fetching FHEM devices...
[2019-1-10 00:08:10] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1547075290637
[2019-1-10 00:08:10] [server] Server listening on: http://127.0.0.1:3000
[2019-1-10 00:08:10] [server] SSH: Welcome at the reverse proxy!
This pseudoshell does not react to any input - do not get irritated.

[2019-1-10 00:08:10] [server] SSH: Pseudo-terminal will not be allocated because stdin is not a terminal.

[2019-1-10 00:08:19] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_648167355625156&XHR=1
[2019-1-10 00:08:19] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_648167355625156&XHR=1
[2019-1-10 00:08:19] [FHEM] Executing cmd 'jsonlist2 TYPE=alexa from startup command list
[2019-1-10 00:08:19] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_648167355625156&XHR=1
[2019-1-10 00:08:19] [FHEM] Executing cmd 'jsonlist2 FHEM.Alexa from startup command list
[2019-1-10 00:08:19] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20FHEM.Alexa&fwcsrf=csrf_648167355625156&XHR=1
[2019-1-10 00:08:19] [FHEM] Fetching FHEM devices...
[2019-1-10 00:08:19] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName=...*&fwcsrf=csrf_648167355625156&XHR=1
[2019-1-10 00:08:29] [FHEM] alexa device is MyAlexa
[2019-1-10 00:08:29] [FHEM] MyAlexa is switch
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

ZitatNur reload und skilled

Dann ist definitiv nicht Andres aktuelle 39_alexa.pm - Version aktiv. Du musst sie aus dem Forum downloaden und nach /opt/fhem/FHEM verschieben (und dann FHEM Restarten)

sTaN

Habe es zumindest mal wieder hingebogen, indem ich

1. alle drei Alexa Devices MyAlexa, FHEM.Alexa und das FHEM.Alexa.DOIF gelöscht habe.
2. RPi neugestartet.
3. Andres Version mit dem fhem Benutzer und Befehl sudo npm install -g alexa-fhem neuinstalliert (bzw. war hier nichts zu tun)
4. Device MyAlexa mittels define MyAlexa alexa angelegt
5. im Nachgang noch mal mit dem Benutzer fhem in alexa-fhem gewechselt und bin/alexa -A ausgeführt. Er konnte feststellen, dass es bereits einen SSH key gibt und auch sonst alles gut aussieht, nur der BearerToken fehlte. Dadurch das ich den SSH Key gesichert habe, habe ich Option 1 gewählt (neu erzeugen) und der bearerToken wurde neu erstellt und die Readings sind im MyAlexa Device auch wieder vorhanden
5. Nachdem Start von FHEM.Alexa war auch alles connected
6. erneute Suche im Alexa Skill nach neuen Geräten. Nun fand er auch mein Max Thermostat und meine zwei HUE Leuchten im Alexa Skill

Was ich jetzt noch nicht nachvollziehen kann ist, warum ich den Neustart von Alexa-Fhem nicht über das Device MyAlexa machen kann, sondern dazu noch FHEM.Alexa benötige. Laut dem parallel Betrieb von Andre geht ein starten und stoppen mit folgenden Befehlen:


attr alexa stateFormat alexaFHEM
attr alexa devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop


Ich habe dies auf meine Installation versucht zu adaptieren aber ohne Erfolg. Da mein Device MyAlexa heißt und ich davon ausgehe, dass er mit stateFormat alexaFHEM eigentlich dein Device FHEM.Alexa meint, hatte ich auch folgendes versucht:

attr MyAlexa stateFormat FHEM.Alexa
attr MyAlexa devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop


Ich habe aber weder ein farbiges Icon noch kann ich das Device MyAlexa direkt neustarten. Aber vielleicht ist es jetzt auch einfach zu spät dafür!  :o
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

sTaN

Aua....Ja es war tatsächlich nicht die aktuelle 39_alexa.pm....Ich dachte die kommt mit dem sudo npm install -g alexa-fhem mit...Das habe ich wohl total missverstanden!.
Nachdem ich nun die Datei ausgetauscht und FHEM neugestartet habe, hat er mir auch die Devices von dir FHEM.Alexa DOIF etc. entfernt. Nun fehlen allerdings auch wieder die Readings mit dem BearerToken und SSH key  ::)
Jetzt muss ich scheinbar noch mals bin/alexa -A aufrufen?!

EDIT: Beim Aufruf von bin/alexa -A erhalte ich jetzt:

fhem@raspberrypi3:~/alexa-fhem$ bin/alexa -A
internal/modules/cjs/loader.js:550
    throw err;
    ^

Error: Cannot find module 'commander'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
    at Function.Module._load (internal/modules/cjs/loader.js:475:25)
    at Module.require (internal/modules/cjs/loader.js:598:17)
    at require (internal/modules/cjs/helpers.js:11:18)
    at Object.<anonymous> (/opt/fhem/alexa-fhem/lib/cli.js:1:79)
    at Module._compile (internal/modules/cjs/loader.js:654:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
    at Module.load (internal/modules/cjs/loader.js:566:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
    at Function.Module._load (internal/modules/cjs/loader.js:498:3)


EDIT2: War scheinbar nicht nötig. Ein erneuter Reboot des RPI hat auch das MyAlexa Device mit den Readings bearerToken und SSH key aktualisiert und die SSH Verbindung wieder gestartet. Sieht erst mal wieder gut aus und werde morgen bzw. später weiter testen. Danke für die Geduld!!!
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

sTaN

Auch noch mal in diesem Thread! Alexa rennt und das erstaunlich schnell ohne Verzögerung!
Also auch ich bin bereit weitere Geräte und Befehle bei Bedarf zu testen!

Aktuell steuere ich folgende Geräte erfolgreich an:

- sämtliche FS20 Steckdosen (Drucker, Schreibtisch etc.) ein/aus

- MAX! Wandthermostate in jedem Raum
  erfolgreiche Befehle:
  --> Wie ist die Temperatur im Büro? --> Die Temperatur von Büro ist 22,2 Grad
  --> Stelle die Temperatur im Büro auf 16.5 Grad! --> Temperatur wird verstellt
  nicht erfolgreiche Befehle:
  --> Stelle die Heizung im Büro auf Auto! --> Heizung Büro reagiert leider nicht
  --> Stelle die Heizung im Büro aus! --> Heizung Büro unterstützt das nicht! (hier wäre es schön, wenn automatisch die minimumTemperature gesetzt werden würde
  --> Stelle die Heizung im Büro ein! --> Heizung Büro unterstützt das nicht! (hier wäre es schön, wenn automatisch die comfortTemperature gesetzt werden würde
  --> Wie ist der Fensterstatus im Büro? --> Das weiß ich leider nicht (hier muss man sicher den Fensterkontakt in Alexa einbinden?!)
  --> Wochenpläne mittels weekprofile setzen habe ich nicht getestet, wäre auch auch schön.

- sämtliche Philips HUE Leuchten inkl. Farbveränderung und Dimmung
  --> Stelle die Schreibtisch Beleuchtung auf blau! (ohne Angabe des Raumnamens, da in der Alexa App die Geräte der Gruppe Büro zugeordnet wurde)
  --> Stelle die Schreibtisch Beleuchtung auf 50% oder dimme die Schreibtisch Beleuchtung auf 50%!

- Unifi Access Point Gäste WLAN
  --> Schalte das Gäste WLAN ein/aus

- QNAP NAS
  --> schalte das NAS ein

Wenn ich also noch irgendetwas testen soll, gerne Bescheid geben. Gerade was die Steuerung der MAX! Thermostate angeht, habe ich großes Interesse, dass dies noch weiter ausgebaut wird.

Danke bisher für die tolle Arbeit! Kann man nicht genug loben!
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

justme1968

Zitat--> Stelle die Heizung im Büro auf Auto! --> Heizung Büro reagiert leider nicht
da ist gvzdus noch dran.

Zitat--> Stelle die Heizung im Büro aus! --> Heizung Büro unterstützt das nicht! (hier wäre es schön, wenn automatisch die minimumTemperature gesetzt werden würde
  --> Stelle die Heizung im Büro ein! --> Heizung Büro unterstützt das nicht! (hier wäre es schön, wenn automatisch die comfortTemperature gesetzt werden würde
das ist im smart home api nicht vorgesehen. ersteres müsste aber mit einer routine in der alexa app gehen. letzteres auch sobald der mode geht.
oder warten bis die custom interactions für den smart home skill freigegeben werden und in deutschland verfügbar sind. oder custom skill.

Zitat--> Wie ist der Fensterstatus im Büro? --> Das weiß ich leider nicht (hier muss man sicher den Fensterkontakt in Alexa einbinden?!)
contact sensoren sind aktuell nur in amerika verfügbar. geht bei uns bis dahin nur über den custom skill.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

hier: https://developer.amazon.com/docs/device-apis/list-of-interfaces.html ist zu finden was in welchem land geht.

alles aus der liste was noch nicht eingebaut ist kommt nach und nach.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

gvzdus

Das sieht nicht gut aus.

Frage 1: Bist Du sicher, dass bei Dir nur ein Alexa-Prozess läuft? Hast Du vielleicht noch aus meiner Anleitung ein FHEM.Alexa-Device, dass auch den Prozess startet?
Frage 2: Was steht im Alexa-eignen Log? Sollte unter /opt/fhem/log/alexa-<datum> zu finden sein

sTaN

Mein Gott warst du schnell! Hatte die Nachricht direkt nach dem Post gelöscht, da sie in deinem und nicht Andres Thread war.  :-[
Mehr Details habe ich unter Andres Thread aufgeführt. https://forum.fhem.de/index.php/topic,95272.msg885155.html#msg885155
Sorry dafür! Dachte hier ist es ggf. falsch.
Aber es gibt bei mir nur noch ein FHEM.Alexa.autostart Device. Ansonsten wurden deine Devices durch Andres Version gelöscht und ich habe sonst nur noch das MyAlexa Device. Ich vermute es liegt am FHEM Absturz siehe anderer Thread, wodurch evtl. mehrere Prozesse laufen?!
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

Esjay

So kurze Rückmeldung meinerseits.
Installation laut Wiki keinerleih Probleme,bei der Skill-Verknüpfung musste ich den Link ein paar mal aufrufen, aber ich denke das liegt an Amazon. Parallele Nutzung von "alexa-fhem-alt" und FHEMlazy auch kein Problem.Habe mittlerweile den AWS Account geschlossen. DEV Account läßt sich nicht ohne weiteres schließen. Ich werde berichten.
Was noch nicht gewirkt hat, ist der automatische reload bei der Änderung von "alexaName". Hier wurde erst nach einer Gerätesuche der Name geändert. Werde ich morgen nochmal probieren.

Was mir gerade noch einfällt:
Wäre es vll möglich ein reading/Internals in alexa.pm einzuführen wie
"lastCmd" --> start --> stop --> reload --> usw."
"cmdResult" --> success --> notsuccess"

Wäre zumindest eine kleine Visuelle Rückmeldung!

LG



justme1968

zum automatischen ändern von alexaName: da ist mir inzwischen leider noch ein problem aufgefallen :(.

für das proaktive senden eines events an amazon ist neben einem token das jeder user bei der verkündung bekommt noch ein skill spezifisches secret nötig.

so wie das bisher gebaut ist geht das nur für eigene private skills weil alexa-fhem id und secret des skills kennen muss.

für den weg über den proxy müssen wir noch eine art rückweg einbauen damit alexa-fhem events senden kann ohne das diese skill spezifischen privaten daten zu veröffentlichen.


die idee mit der kommando status schaue ich mir an.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Esjay

Hallo zusammen, lange rede kurzer Sinn ich musste alexa-fhem heute neu einrichten, deswegen bin ich die aktualisierten Schritte im Wiki nochmal durchgehen.
Bis es gelaufen ist, habe ich jedoch einige Fehler gehabt.

Fehler 1

[1/11/2019, 5:32:23 PM] using ./alexa-fhem.cfg
Startup rejected. Reason: TypeError: Cannot set property 'alexa' of undefined


Durch ein wenig hin und her ist es dann zu dem nächsten Problem gekommen
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Fehler 2

[1/11/2019, 5:34:49 PM] Server listening on: http://127.0.0.1:3000
(node:1580) UnhandledPromiseRejectionWarning: ReferenceError: reject is not defined
    at runAutoconfig (/usr/local/lib/node_modules/alexa-fhem/lib/user.js:295:7)
    at process.internalTickCallback (internal/process/next_tick.js:77:7)
(node:1580) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1580) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[1/11/2019, 5:34:49 PM] [FHEM] Checking devices and attributes...
[1/11/2019, 5:34:49 PM] [FHEM]   executing: http://localhost:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_459711178349116&XHR=1
[1/11/2019, 5:34:49 PM] [FHEM]   executing: http://localhost:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_459711178349116&XHR=1
[1/11/2019, 5:34:49 PM] [FHEM] Executing cmd 'jsonlist2 TYPE=alexa from startup command list
[1/11/2019, 5:34:49 PM] [FHEM]   executing: http://localhost:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_459711178349116&XHR=1
[1/11/2019, 5:34:49 PM] [FHEM] Fetching FHEM devices...
[1/11/2019, 5:34:49 PM] [FHEM] fetching: http://localhost:8083/fhem?cmd=jsonlist2%20alexaName=..*&fwcsrf=csrf_459711178349116&XHR=1
[1/11/2019, 5:34:49 PM] [FHEM] longpoll ended, reconnect in: 200msec
[1/11/2019, 5:34:49 PM] [FHEM] There was a problem connecting to FHEM (http://localhost:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_459711178349116&XHR=1).
[1/11/2019, 5:34:49 PM] [FHEM]   401: Authorization Required


Den konnte ich dadurch beheben, dass ich die Zugangsdaten zu meinem Server manuell in die alexa-fhem config eingetragen habe.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Fehler 3 ist danach aufgetreten, welches ich mit einer erneuten Verknüpfung des Skills behoben habe.

[1/11/2019, 5:59:05 PM] client not authorized: {"error_index":"xxxxxxxxxxxxxxxxxxxGA==","error_description":"The request has an invalid parameter : access_token","error":"invalid_token"}
[1/11/2019, 5:59:05 PM] ERROR: InvalidAccessTokenError from 127.0.0.1
response :{"header":{"namespace":"Alexa.ConnectedHome.Control","name":"InvalidAccessTokenError","payloadVersion":"2","messageId":"c9exxxxxxxxxxxxxxxxxxx9e"},"payload":{}}
[1/11/2019, 5:59:05 PM] client not authorized: {"error_index":"6bJxxxxxxxxxxxxxxxxxxxxxxxxxrUB-A==","error_description":"The request has an invalid parameter : access_token","error":"invalid_token"}
[1/11/2019, 5:59:05 PM] ERROR: InvalidAccessTokenError from 127.0.0.1



Jetzt läuft es wieder, daher dient das einfach nur als Info!

Grüße