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

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

Vorheriges Thema - Nächstes Thema

gvzdus

Die Version bis vor ein paar Minuten kam einfach nicht mit User/Passwort-geschützten FHEMs klar.
Das ist jetzt erstmal so gefixt, dass man zumindest mit einer händisch erstellten config.json dann durch die Auto-Konfiguration kommt.

Die Version liegt auf GitHub und https://va.fhem.de/alexa-fhem.tar.gz

Aber ich baue an einer interaktiven Version....

Update übrigens so:

Mit GIT:
Als richtiger Benutzer ins alexa-fhem-Verzeichnis:
git pull

Mit wget  / curl:
Wie im Wiki beschrieben, also vom FHEM-Home-Verzeichnis aus.

Sorry an Dich, Punker und Robra!

gvzdus

Wie vorher geschrieben: Wer anständig seinen FHEM im Web mit Nutzernamen geschützt hatte, lief in Schwierigkeiten....

In GitHub und auf dem Vereinsserver liegt die verbesserte, interaktive Version, und der Wiki ist entsprechend angepasst.

Wer bereits glücklich ist, hat keinen großen Mehrwert durch die aktualisierte Version.

desmoloch

Mein alexa-fhem fuhr gestern Abend einfach "runter".
Letzte Nachricht im Log:
2019-01-02T22:51:37.509Z info undefined: Got %s, shutting down alexa-fhem...         

Lucky2k12

kurze Rückmeldung: Mit der neuen Version hat es reibungslos geklappt!
Jetzt kann ich ein paar Geräte einrichten :)

Danke für die schnelle Reparatur!
HP T610, HM, Jeelink, LGW, mapleCUL868+434

RoBra81

Ich habe nun auch ein paar Geräte drin, habe aber mal ein paar Fragen zur Konfiguration (Ist mein erster persönlicher Kontakt mit Alexa):
1. Ich dachte, wenn ich einem Gerät den alexaName "Licht" und den alexaRoom "Esszimmer" gebe, kann ich sagen "Schalte das Licht im Esszimmer ein" - da bekomme ich allerdings nur die sture Antwort "Ich kenne kein Gerät Esszimmer". Erst, wenn ich den alexaName "Licht Esszimmer" vergebe funktioniert meine Ansage.
2. Ich habe zwei Geräte "Licht Esszimmer" und "Licht Esstisch" jeweils mit alexaRoom "Esszimmer" und hatte die Hoffnung sagen zu können, "Schalte das Licht im Esszimmer aus" um beide zu schalten - das schaltet aber nur "Licht Esszimmer". Nenne ich das eine Gerät nur "Licht" so kommt auf meine Ansage die Frage, welches Licht ich meine - alle Lichter eines Raumes mit einem Befehl zu schalten geht wohl nicht?!
3. Ich habe ein Gerät "Licht Esszimmer" und ein Gerät "Heizung Esszimmer" (der room scheint ja egal zu sein). Auf die Frage, "wie ist die Temperatur im Esszimmer" ("wie warm ist das Esszimmer" scheint gar nicht zu funktionieren) kommt die Antwort, dass "Licht Esszimmer" diese Funktion nicht unterstützt. Wenn ich frage, "wie ist die Temperatur der Heizung im Esszimmer" erhalte ich die korrekte Antwort. Wie kann ich FHEM so konfigurieren, dass sowohl die Ansage "Schalte das Licht im Esszimmer ein" als auch "wie ist die Temperatur im Esszimmer" die korrekte Reaktion liefern?

Vielen Dank
Ronny

Gesendet von meinem LYA-L29 mit Tapatalk


MadMax-FHEM

alexaRoom ist nur für den Custom Skill relevant.
Unterschied: Custom Skill - Smart Home Skill kannst du z.B. im alexa-fhem Wiki nachlesen...

Im Smart Home Skill gibt es z.B. die Gruppen...

Licht als Name ist evtl. auch eher schlecht...

Kurz weil grad nur Handy...

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)

mark79

Mit den Temperatur abfragen hatte ich auch meine Probleme und lange rumprobiert und die Lösung war, in der Alexa APP die Temperatursensoren in eine Gruppe zu schieben, z.B. Küche. Wie MadMax-FHEM schon geschrieben hat.

Zusätzlich habe ich noch folgende Attribute für den Temp Sensor gesetzt:
genericDeviceType HumiditySensor
homebridgeMapping clear CurrentRelativeHumidity=BME280_Humidity CurrentTemperature=BME280_Temperature


Ich bin auch relativ neu dabei und habe vorher ha-bridge verwendet... Kann man sich alexaRoom für diesen Skill allgemein sparen?
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

> Kann man sich alexaRoom für diesen Skill allgemein sparen?

Ja.

Schlicht und einfach, weil die SmartHome-API keine Möglichkeit bietet, den Raum zu übermitteln. Diese Struktur wird rein auf der Amazon-Seite gemanagt.

Ich bin von Tag zu Tag neugieriger, auch mal den CustomSkill (den mit "Frage FHEM / Haus / wieauchimmer ....") zu probieren. Aber erst mal den Smarthome-Skill rund kriegen...

mark79

Zitat von: gvzdus am 03 Januar 2019, 21:46:39
> Kann man sich alexaRoom für diesen Skill allgemein sparen?

Ja.

Schlicht und einfach, weil die SmartHome-API keine Möglichkeit bietet, den Raum zu übermitteln. Diese Struktur wird rein auf der Amazon-Seite gemanagt.

Ich bin von Tag zu Tag neugieriger, auch mal den CustomSkill (den mit "Frage FHEM / Haus / wieauchimmer ....") zu probieren. Aber erst mal den Smarthome-Skill rund kriegen...

Das ist gut zu wissen, ich habe bisher auch immer den Raum Namen gesetzt und war der Annahme das er berücksichtigt wird.  :D Bis ich das mit den Gruppen in der Alexa APP gefunden habe.

Dann weist amazon beim SmartHome Skill, den Room Namen bestimmt über den alexaName zu? Wie z.B. "TV Küche" > "TV" = Device und "Küche" ist dann der Room Name

Jedenfalls wenn man die Geräte mit Room Name bennent, hat man auch eine bessere Übersicht in der Alexa APP um die Gruppennamen zuzuordnen. Sonst hat man da 3-4 Thermometer in verschiedenen Räumen, die alle gleich heißen. :)

Neugierig auf dem CustomSkill bin ich auch, wenn man den kennengelernt hat, hat man bestimmt auch eine bessere Übersicht über das ganze, aber da fehlt die Zeit zu und ist wohl eher was für Programmierer.
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

> Dann weist amazon beim SmartHome Skill, den Room Namen bestimmt über den alexaName zu?

Nein.

Smarthome-Skill-API macht bei Amazon der Praktikant, und der hat sich da noch etwas verzettelt. Fragen im Amazon-Developerforum (auch auf Englisch) nach dem Motto
"Verflixt, ich muss den Raumnamen immer im Gerätenamen dazugeben, damit die Namen eindeutig sind (sonst meckert Alexa), andererseits will ich doch im Wohnzimmer sagen: "Schalte die Lampe aus""

werden von Amazon beantwortet mit "Hast Du eine Gruppe eingerichtet?". Und wenn die Frage in "für Dummies" wiederholt wird, kommt keine Antwort.

Kostprobe? Siehe hier:
https://forums.developer.amazon.com/questions/186240/rooms-support-with-groups-and-devices-duplicate-na.html

gvzdus

Ich habe die nächste Version (meldet sich im MyAlexa-Device mit 0.5.1-fhemlazy an) auf GitHub und den Server gelegt.

Verbessert ist das Pidfile-Handling und der Einwand von "desmoloch":
Man kann jetzt mehrfach auf Reload drücken, denn das DOIF-Device ist jetzt "always". Dafür war aber nötig, dass ich auch souveräner mit dem Mehrfachstart umgehe (der ohnehin ein Problem war).

Wer Reload nicht braucht und ansonsten glücklich ist, braucht nicht upzudaten, ansonsten muss man "bin/alexa -A" wieder laufen lassen (wobei sich der Registrierungscode ändert, allerdings ist das nur relevant, wenn man den Skill trennen und sich neu anmelden will).

Falls mir keine Probleme um die Ohren gehauen werden, die ich noch nicht kenne, gehe ich als Nächstes die Optimierung des Loggings an. (Anständiger Pfad, keine Custom-Skill-Meldungen, u.s.w.). Oder was an Vorschlägen kommt.

Zu den technischen Hintergründen:
Dass der laufende Prozess durch einen Aufruf mit "alexa -k" beendet wird, haben vielleicht schon manche erkannt. Das Problem: Startet man 2 Server, überschrieb der neu gestartete Prozess das PID-File, beendete sich dann aber, weil der Listener auf Port 3000 nicht andocken konnte (da war schon jemand). Danach war dann das PID-File kaputt, also zeigte auf einen Prozess, der sich beendet hatte.
Ist jetzt gelöst, indem das PID-File ein Array ist.
Man sollte trotzdem nicht wie blöd auf "Start" klicken, denn ggf. kommt sonst das Backend durcheinander, weil schon ein neuer SSH-Prozess sich angemeldet hatte, dann aber mit der zugehörigen Alexa-Instanz wieder verschied.
"Stop" killt alle eventuell laufenden Alexa-Prozess-Instanzen.

Und noch was: Von ca. 22:00 - 22:10 Uhr gab es technische Probleme. Die schreibe ich eher Amazon zu - ich erhielt auch in der Entwickler-Konsole Netzwerkfehlermeldungen.

justme1968

#56
halll georg und co.

  • ich habe hier: https://forum.fhem.de/index.php/topic,95272.0.html ein paar änderungen am alexa modul und an alexa-fhem gepostet. ich denke damit sollte es möglich sein installation, start und default config einfacher hin zu bekommen. ich denke für die einfachst mögliche installation und skill verwendung sollte das die richtige richtung sein.
  • wie oben schon geschrieben: alexaRoom ist für den smart home skill nicht relevant weil im api nicht unterstütz und auch nicht nötig.
  • mit gruppen über die alexa app, einer passenden device config (genericDeviceType light) und zur not in der alexa app auch noch mal als licht konfiguriert  (gerät -> einstellungen -> typ)  kann man ohne die geräte namen zu verwenden in jedem raum in dem es ein alexa device gibt sage: mach das licht an bzw. mach das licht aus. die geräte haben in der alexa app dann eine glühbirne als symbol. wenn es ein anderes symbol ist geht das nicht!
  • ich vermute das amazon das mit den gruppen nach und nach ausdehnt. seit ein paar wochen kann man damit auch default lautsprecher für die gruppen anlegen und so z.b. musik automatisch auf dem sonos system im gleichen raum abspielen statt lokal auf einem echo
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Zitat von: justme1968 am 03 Januar 2019, 22:54:34

  • wie oben schon geschrieben: alexaName ist für den smart home skill nicht relevant weil im api nicht unterstütz und auch nicht nötig.

Müsste aber wohl: alexaRoom heißen ;)

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

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

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

MadMax-FHEM

Zitat von: gvzdus am 03 Januar 2019, 22:50:34
Ich habe die nächste Version (meldet sich im MyAlexa-Device mit 0.5.1-fhemlazy an) auf GitHub und den Server gelegt.

Verbessert ist das Pidfile-Handling und der Einwand von "desmoloch":
Man kann jetzt mehrfach auf Reload drücken, denn das DOIF-Device ist jetzt "always". Dafür war aber nötig, dass ich auch souveräner mit dem Mehrfachstart umgehe (der ohnehin ein Problem war).

Wer Reload nicht braucht und ansonsten glücklich ist, braucht nicht upzudaten, ansonsten muss man "bin/alexa -A" wieder laufen lassen (wobei sich der Registrierungscode ändert, allerdings ist das nur relevant, wenn man den Skill trennen und sich neu anmelden will).

Falls mir keine Probleme um die Ohren gehauen werden, die ich noch nicht kenne, gehe ich als Nächstes die Optimierung des Loggings an. (Anständiger Pfad, keine Custom-Skill-Meldungen, u.s.w.). Oder was an Vorschlägen kommt.

Evtl. statt dem Dummy/DOIF zur Steuerung mal bei dem serviced-Modul "vorbeischauen": https://forum.fhem.de/index.php/topic,79952.msg719659.html#msg719659

So starte/stoppe etc. ich meine alexa-fhem Installation (noch die "alte" ohne "einfach" ;)  ).
Musste zwar das initd-Script etwas anpassen aber läuft gut bislang (seit ca. 1 Jahr)...
(bei Interesse kann ich das geänderte Script und ein list des serviced-Moduls posten)

Besser/einfacher sollte eine Steuerung von alexa-fhem sein, wenn es per systemd (ab Jessie/Stretch Standard) gestartet wird.
Diese Umstellung bin ich mit einigen Anwendern durch und es funktioniert (prima).
Auch zusammen mit dem serviced-Modul, da Dummy/DOIF nur mit dem initd-Script funktionieren...
...mit systemd ja nicht mehr!
(Ich selbst hatte leider noch keine Zeit auf systemd Umzustellen :-|  ;)  )

Ja: leider ist das Modul (noch) nicht offiziell (glaube ich)... :-|

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)