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

justme1968

anbei eine erste test version von alexa-fhem (0.4.0) mit support für das neue v3 api.

achtung:
- wer einen funktionierenden skill laufen hat und damit glücklich ist: finger weg. erst mal alles lassen wie es ist. im prinzip ist zwar alles rückwärts kompatibel, für v2 gibt es aber keine neuen features.

- wer einen neuen skill einrichten möchte und v2 nicht mehr auswählen kann: bitte testen.

- wer neugierig ist: wenn man weiss was man tut kann man sich zusätzlich zum v2 skill einen v3 skill einrichten und auf eine eigene alexa-fhem instanz leiten. im prinzip könnte es sogar die gleiche sein, dann würden aber alle devices doppelt auftauchen. hierfür gibt es keinen support :)

- das alles betrifft nur den smart home skill. der custom skill ist unverändert weiter nutzbar.


der code an sich unterstützt den kompletten alten v2 umfang und zusätzlich die ersten v3 features.

was schon geht:
- schalter und lampen: ein und aus schalten, helligkeit, farbe und farbtemperatur setzen.
- wenn es ein reading volume (oder ein mapping für Volume) gibt lässt sich die lautstärke über alexa steuern

schalter und lampen lassen sich auch über die alexa app steuern, die app zeigt auch den aktuellen zustand und die helligkeit an. das müsste auch von unterwegs gehen. noch nicht getestet.

ich habe noch nicht rausgefunden mit welchem kommando man den zustand aktuellen auch per sprache abfragen kann.

alle andere geräte wie thermostate und schlösser gehen noch nicht. rollläden und alles bei dem direkt prozent werte gesetzt werden auch noch nicht.


edit 2017-12-21: update auf 0.4.1, änderungen sind:
- thermometer eingebaut, lassen sich über alexa abfragen, aber nicht in der app anzeigen
- thermostate eingebaut, lassen sich über alexa und über die app setzen. ich konnte bis jetzt nur die aktuelle temperatur abfragen, nicht die eingestellte.
- rollläden sollten jetzt über prozentuale steuerung wieder gehen

edit 2017-12-24: update auf 0.4.2: fehlender PORT repariert

edit 2017-12-24: update auf 0.4.3: restliche fehlenden zeilen repariert

edit 2017-12-26: update auf 0.4.4: status für Prozentangaben repariert

edit 2019-03-26: aktueller stand und anleitung hier: https://wiki.fhem.de/wiki/FHEM_Connector_für_Amazon_Alexa
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Hallo Andre,

mal sehen, vielleicht riskiere ich es doch mal...
...nach Weihnachten eventuell ;)

Vielleicht sogar mit einem komplett neuen Account etc.
Könnte auch einen Dot kurzzeitig mal "ausgliedern"...

Auf jeden Fall "hänge" ich mich mal dran...

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)

Markus.

Hallo Andre,

habe ja zwei FHEM Server im selben Netz und wollte meine 0.3.x Installation auf den anderen "umziehen". Macht es da nicht Sinn in meinem Fall eine neue Installation direkt auf 0.4 zu machen?
Kann ich mich im Fall der Neuinstallation an die Doku halten oder hat sich da auch was geändert?

Gruß

Markus

justme1968

wenn du einen v2 skill verwendest ist die funktionalität die gleiche wie in der letzen 0.3.x.

wenn du einen neuen skill anlegen musst bleibt dir nichts anderes übrig als auf die 0.4 zu wechseln.

also wie oben geschrieben: wenn alles geht erst mal nicht wechseln.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Tuxi70

Ich habe es riskiert.  8)


[12/20/2017, 5:13:07 PM] ---
[12/20/2017, 5:13:07 PM] this is alexa-fhem 0.4.0
[12/20/2017, 5:13:08 PM] Fetching FHEM devices...
[12/20/2017, 5:13:08 PM] [FHEM] starting longpoll: http://192............


Smarthome-Skill läuft.  ;D
FRITZ!Box: Fon WLAN 7560, FW: 7.0
James: Raspberry Pi 3 Alexa-Fhem 0.4.4 & FHEM 5.8 Latest Revision: 16799 & SVG-DBLog MySQL 3.10.8
Netz : VDSL 1&1 50.000 3x FRITZ!Powerline 530E FW: 1.4.0-00
Smarthome: 4x Comet DECT Thermostat Firmware: 3.68 8x FritzDECT200 Firmware: 4.08
Steuerung: Alexa

Tuxi70

Der Costumskill funktioniert mit der 0.4.0 auch ohne Probleme.
FRITZ!Box: Fon WLAN 7560, FW: 7.0
James: Raspberry Pi 3 Alexa-Fhem 0.4.4 & FHEM 5.8 Latest Revision: 16799 & SVG-DBLog MySQL 3.10.8
Netz : VDSL 1&1 50.000 3x FRITZ!Powerline 530E FW: 1.4.0-00
Smarthome: 4x Comet DECT Thermostat Firmware: 3.68 8x FritzDECT200 Firmware: 4.08
Steuerung: Alexa

justme1968

es gibt ganz oben eine neue version bei der jetzt auch thermostate, thermometer und rollläden funktionieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

hauwech

... woher weißt Du eigentlich, daß ich gerade vorher mit einem Homematic Heizkörper Thermostat getestet habe - und daß der nicht gefunden wurde?

-> Update auf 0.4.1 -> Schwupp, schon geht's  ;D
Fhem auf Intel NUC11TNKi5+M2 NVMe+32GB RAM mit Ubuntu 22.04 LTS

daxstar

Sehr fix, gefällt mir,

teste ich heute Abend, vielen Dank schon mal!

Tuxi70

Keine fünf Minuten, und das Update verrichtet seine Arbeit.  :)
FRITZ!Box: Fon WLAN 7560, FW: 7.0
James: Raspberry Pi 3 Alexa-Fhem 0.4.4 & FHEM 5.8 Latest Revision: 16799 & SVG-DBLog MySQL 3.10.8
Netz : VDSL 1&1 50.000 3x FRITZ!Powerline 530E FW: 1.4.0-00
Smarthome: 4x Comet DECT Thermostat Firmware: 3.68 8x FritzDECT200 Firmware: 4.08
Steuerung: Alexa

Headhunter667

Hallo,

super Arbeit und absolut konkurrenzlose Reaktionszeit.
Danke dafür!

Gerade habe ich den ersten Test gemacht. (Alexa ist neu bei mir, sonst wäre ich sicherlich noch auf V2).
Ergebnis:
Homematic Lichtschalter und Steckdosen funktionieren einwandfrei  ;D, aber meine Homematic-Rolläden leider nicht.
Hier die Ausgabe:
[2017-12-21 18:47:11] [FHEM] Kue.Rolladen.NORD is light
[2017-12-21 18:47:11] [FHEM] Kue.Rolladen.NORD has
[2017-12-21 18:47:11] [FHEM]   PositionState [motor]
[2017-12-21 18:47:11] [FHEM]   FirmwareRevision [D-firmware]
[2017-12-21 18:47:11] [FHEM]   CurrentPosition [pct]
[2017-12-21 18:47:11] [FHEM]   TargetPosition [pct]
[2017-12-21 18:47:11] [FHEM] { reading: 'motor',
  values: [ '/^up/:INCREASING', '/^down/:DECREASING', '/.*/:STOPPED' ],
  device: 'Kue.Rolladen.NORD',
  informId: 'Kue.Rolladen.NORD-motor',
  characteristic_type: 'PositionState',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' },
  value2homekit: {},
  value2homekit_re:
   [ { re: '^up', to: 'INCREASING' },
     { re: '^down', to: 'DECREASING' },
     { re: '.*', to: 'STOPPED' } ] }
  2017-12-21 18:47:11 caching: Kue.Rolladen.NORD-motor: stop:20
[2017-12-21 18:47:11] [FHEM] { reading: 'D-firmware',
  _isInformation: true,
  device: 'Kue.Rolladen.NORD',
  informId: 'Kue.Rolladen.NORD-D-firmware',
  characteristic_type: 'FirmwareRevision',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2017-12-21 18:47:11 caching: Kue.Rolladen.NORD-D-firmware: 2.8
[2017-12-21 18:47:11] [FHEM] { reading: 'pct',
  device: 'Kue.Rolladen.NORD',
  informId: 'Kue.Rolladen.NORD-pct',
  characteristic_type: 'CurrentPosition',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2017-12-21 18:47:11 caching: Kue.Rolladen.NORD-pct: 20
[2017-12-21 18:47:11] [FHEM] { reading: 'pct',
  cmd: 'pct',
  delay: true,
  device: 'Kue.Rolladen.NORD',
  informId: 'Kue.Rolladen.NORD-pct',
  characteristic_type: 'TargetPosition',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
[2017-12-21 18:47:11] [FHEM] no alexa device found. please define it.


Für mich sieht das so aus, als ob der Rolladen als Licht erkannt wird.
Daraufhin wird kein Alexa Gerät erzeugt.
Alexa findet den Rolladenaktor aber.
Wäre ja jetzt nicht weiter tragisch.
Aber: Alexa findet ihn zwar, steuert ihn aber nicht an
Dann habe ich in Alexa die Gruppe "Rolladen" definiert, mit dem Rolladenaktor als einzigem Inhalt, aber die wird auch nicht gefunden.
Ist das ein V3-Problem, oder liegt es an meiner mangelnden Erfahrung?

Grüße aus dem Schwabenland

justme1968

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

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

daxstar

[quote author=Headhunter667 link=topic=81324.msg734989#msg734989 date=1513879407]
[2017-12-21 18:47:11] [FHEM] no alexa device found. please define it.

[/quote]

ich denke du soltest erstmal ein Alexa Device in deinem FHEM deifnieren...

Headhunter667

Danke für die Hilfe. - Läuft!

Natürlich ein Anfängerfehler... :o
Um Anderen Deppen wie mir Einsteigern die Suche zu ersparen:
Einfach im FHEM-Web Frontend beim Rolladen-Device das Attribut
"genericDeviceType" auf "blind" setzen.
Ggf. muss das neu gesetzt werden - bei mir gab's das noch gar nicht.
Dann findet alexa-fhem den Rolladen auch als Solchen.
Dann muss die Gruppe in der Alexa-App bei mir noch "Rollo" heiße, nicht "Rolladen" - das versteht Alexa bei mir nicht.
Liegt vielleicht an der Aussprache...

Auch nochmal danke für die Reaktionszeit - wenn's noch schneller gehen soll brauchen wir ein Zeitmaschine  ;)


daxstar

Soo, ich habe die 0.4.1 ausprobiert, ich sehe in den logs, dass es schon mal prinzipiell funktioniert.
Ich habe allerdings noch zwei Probleme, da ich ich die Aktoren von Eltako verwende (ich vermute es liegt daran) wird der Wert für Position genau invertiert interpretiert, sodass 'set position 0' ganz offen und position 100 dementsprechend komplett geschlossen bedeutet.
Des weiteren wäre es der Hammer wenn z.B. 'Alexa, fahre das Rollo runter' nicht mit 'set position xxx' sondern mit 'set <device> down' (umgekehrt dann 'up') umgesetzt werden könnte:-) Meine FHEM Rollladen devices reagieren auf die position Angabe nämlich nur wenn sie 'wissen' in welcher Position sie sich befinden und das geht verloren, wenn der Rollladen manuell betätigt wurde.