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

amenomade

Zitat von: raimundl am 01 Oktober 2018, 15:41:15
Hallo!

Durch Zufall habe ich bemerkt, dass alexa bei einen HM-Thermostat nicht nur (wie auch im Wiki beschrieben) die Temperatur verstellen kann (reduziere, erhöhe, stelle auf) sondern auch die Raumtemperatur ansagen kann (alexa, wie ist die Temperatur "Device").
Wo gibt es eine Quelle für alle aktuellen Neuerungen im SmartHomeBereich?

LG
https://developer.amazon.com/docs/smarthome/smart-home-skill-api-message-reference.html
Wie ein Gerät mit einer "capability" umgehen kann, ist eine Frage von Mapping https://wiki.fhem.de/wiki/Alexa_und_Mappings
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

gvzdus

Wenn ich mal als Newbie lästern darf: Alexa-FHEM ist im Vergleich zum Interesse etwas dürftig dokumentiert. Der Vorwurf schreit natürlich danach: "Dann mach' es doch besser" - aber dazu fühle ich mich - auch mit Editierrechten - doch noch wissenstechnisch etwas dünn auf den Beinen.

An der konkreten Doku "Alexa & Mappings" ist deutlich verbesserungsfähig:
- Sie wirkt teils wie ein Copy & Paste für "Apple Homekit und FHEM", wo man das Löschen vergessen hat
- Die Tabellen sind ungepflegt
- Es gibt Überschneidungen zum Wiki "Alexa FHEM"
- Es ist in dem Wiki nicht klar: "Das brauchst Du für den Smarthome-Skill, das für den Custom-Skill".
- Er ist in weiten Teilen recht abstrakt

Auf der anderen Seite: Der größte Thread zum Thema im Forum hat mittlerweile 254 Seiten, was schon einem kleineren Buch entspricht. Ich muss zugeben: Ich bin zwar kleinlaut bei Fragen, aber das will ich nicht Seite für Seite das alles durchlesen. Ich sehe da schon Bedarf, die Dinge zu vereinheitlichen.

Um konkret mal was vorzuschlagen in Sachen "Temperatur abfragen": Es gibt bei mir das wohl nicht atypische Problem, dass Räume mehrere Heizkörper haben. Ich möchte aber beide (bei mir sind es nie mehr als 2) in einem Rutsch setzen. Bei der Abfrage gibt es das bekannte Problem, dass MAX-Thermostate nur äußerst spärlich die Temperatur senden: Nämlich wenn sich das Valve-Setting ändert. Das habe ich wie folgt gelöst, und bevor ich mir anmaße, das in den Wiki zu schreiben, bitte ich, mal mein Geschreibsel als Entwurf für den Wiki auf groben Unfug gegenzulesen:

MAX-Thermostat
Die MAX-Themostate unterstützen das Setzen der Temperatur sowie (Anmerkung: Wenn gefixt) des Modus "Automatisch" ebenso wie das Auslesen der Raumtemperatur. Ein einzelner Thermostat in einem Raum, oder ein Wandthermostat, der mehrere Geräte im Raum steuert, sind dabei natürlich einfach: Das Device muss lediglich Alexa-Fhem bekannt gemacht werden.

Schwieriger ist folgende Situation: 2 MAX-Thermostate, die gemeinsam als ein Gerät von Alexa gesetzt werden sollen, aber im Rahmen der Möglichkeiten des Smarthome-Skills nur mit einer Temperatur auf die Frage nach der aktuellen (Ist-)Temperatur antworten können. Das kann man in FHEM wie folgt lösen:

Man definiert eine Structure, die aus beiden Thermostaten besteht. Im folgenden Beispiel sind og_eltern_t1 und og_eltern_t2
die MAX-Thermostate. Mit:

define og_eltern_t_all structure room og_eltern_t1 og_eltern_t2
attr og_eltern_t_all alexaName Heizung Eltern
attr og_eltern_t_all genericDeviceType thermostat


definieren wir das virtuelle Gesamtgerät und machen es für Alex-FHEM sichtbar. Achtung: Das Anlegen der Struktur weist den beiden MAX-Thermostaten in FHEM auch den alexaName zu, die somit auch erkannt würden - was aber nicht gewünscht ist. Um nun auch die Temperatur auszulesen, weisen wir FHEM an, den aktuelleren Temperaturwert der beiden Heizkörper zu verwenden:

attr og_eltern_t_all userReadings temperature {if(ReadingsTimestamp("og_eltern_t1","temperature",0) gt ReadingsTimestamp("og_eltern_t2","temperature",0)){return ReadingsVal("og_eltern_t1","temperature",0)}else{return ReadingsVal("og_eltern_t2","temperature",0)}}

Ist beides, alexaName und userReadings gesetzt, müssen zunächst beide Attribute bei den "Kindern" der Struktur, nämlich den realen Devices, gelöscht werden.
Nun kann das Gesamtkonstrukt in Alexa eingebunden werden, und Temperatur & Modus können in einem Rutsch gesetzt werden, aber zugleich die Temperatur abgefragt werden.


Geht es eleganter?


BTW: Alexa-FHEM gibt zur Zeit als timeOfSample brutal die aktuelle Uhrzeit der Alexa-Abfrage an, was natürlich erstunken und erlogen ist. Hätte es aber irgendeinen Mehrwert, hier anzugeben, von wann tatsächlich der Messwert ist? Ich habe noch nicht probiert, ob Alexa dann sagt: "Die Temperatur vor 3 Stunden war 21,2 Grad".

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

gvzdus

Danke - offenbar verstehe ich allmählich FHEM  ;) Ich werde dann die Tage anfangen, den Wiki zu erweitern, aber auch versuchen, klarer deutlich zu machen, was für den Custom-Skill und was für den Smarthome-Skill gilt bzw. nötig ist.

Noch zwei Anmerkungen:
- Zu meiner Frage im Alexa-Developer-Forum herrscht noch schweigen: https://forums.developer.amazon.com/questions/186239/thermostatcontroller-timeofsample-and-supportssche.html
- Von meiner Idee, die Anbindung Lambda <-> nodeJS auf Amazon IoT umzustellen, bin ich etwas ab: Die Devices unterliegen Einschränkungen, die - wollte man ganz FHEM als Device abbilden, bei größeren Installationen wohl definitiv gesprengt würden, und jedes FHEM-Device einzeln anzulegen, widerspricht der Controller-Rolle von FHEM.

Amenophis86

Wie kann ich meinen Smarthome Skill für eine zweiten Account freigeben? Haben ein zweites Benutzer Konto heute eingerichtet und dieses muss natürlich auch den Smarthome und Coustom Skill haben. Finde aber die Funktion dafür nicht.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

charlie0815

#380
Zitat von: mrSnatz am 04 August 2018, 17:39:26
Hi Leute,
heute habe ich auch ma versucht Alexa-fhem zu installieren und den Smart Home Skill zu aktivieren. Im Anhang habe ich mein Vorgehen mit Bildern (Stand 04.08.18) dokumentiert ;). Am Ende erhalte ich allerdings einen Fehler (Auch in der doku enthalten)

Kann mir hier einer weiterhelfen??? Ich sehe den Wald vor lauter bäumen nicht mehr.
Hallo FHEM Gemeinde,
ich finde es ganz toll, dass MrSnatz eine neue Anleitung zum einrichten der Alexa-Einbindung geschrieben hat (auf Seite 21 dieses Fadens). Ich hatte mich ohne diese Anleitung durchgequält und wäre fast verzweifelt.

SOOO nun zu meiner Frage: Ich habe den Alexa Skill im developer-Bereich von Amazon eingerichtet, jetzt steht dort seit ca einer Stunde, dass er IN REVIEW ist und es bis zu 5 Tage dauern kann...??? <das stand auch in der Mail, die ich bekommen habe. Hab ich da irgend was existentielles falsch gemacht. ich will ja keinen Skill veröffentlichen. Zudem mußte ich im Distributions-Ordner alles peinlichst ausfüllen, sonst konnte ich nicht beenden.

Edit: Ich habe nun den Skill noch einmal genau nach MrSnatz Anweisung angefertigt und voillla Funktioniert ....vielen Dank dafür.....

Mir ist aber auch noh ein anderer Anfängerfehler unterlaufen. Ich habe den Raum Alexa mit einem großen A geschrieben, im fhem Script ist aber nur room=alexa drin. Ich hab mir fast einen Wolf gesucht, bis ich entdeckt hatte, dass die Groß- und Kleinschreibung wichtig ist  :o..
Grüße von charlie

kalle86

Moin,

alexa-fehm benutze ich schon ne ganze weile, und alles läuft perfekt. Nun bin ich gerade dabei den Custom Skill einzurichten.

Das Youtube Video/ Blogbeitrag / Wiki scheinen dazu leider veraltet.
Es scheitert bei mir schon die intens anzulegen. Leider bin ich im Forum nicht fündig geworden.

Wo genau gebe ich nun die intents ein? Etwa da wo "Sample Utterances" steht?
Bei Slot Types kann ich leider nur Amazon.Animal/ Amazon.Artist usw. eintragen und nicht FHEM_article
Vielleicht ist ja jemand schon über die selben probleme gestolpert und kann mir helfen, oder es gibt schon eine neue Anleitung :-)

Gruß
Kalle

stefanru

@Kalle schau mal eins höher. Da steht wo du die neue Anleitung findest.

kalle86

Super, Danke, muss ich übersehen haben bei den viele Posts die es über Alexa gibt.
Habe es nun mühsam hinbekommen.   ;D

Gruß
Kalle

kalle86

#384
Danke nochmal an MrSnatz für die tolle Anleitung  ;D

Jedes mal wenn Ich das  Interaction Model im JSON Editor ändere, sind danach auch wieder die ganze Slot Values und die Sample Utterances verschwunden. Das bedeutet ich muss alles wieder müheseelig eingeben bei jeder noch so kleinen vereänderung.

Gibt es dort vielleicht eine Einstellung, welche die Intents und die Slot Types nicht jedes mal überschrieben werden?

Das würde das ganze sehr viel einfach machen :-)

Gruß Kalle



docb

Moin, ich habe auch mal eine Frage - Alexa findet ein Device, dass sie eigentlich gar nicht finden sollte, nämlich:
fernseher
n: TVSamung_wol, r: alexa,multimedia

Allerdings habe das Device aus dem Raum alexa gelöscht (das attr room alexa) und auch beim myAlexa Device ein set reload durchgeführt. Selbst ein shutdown restart hat nichts geholfen.
Hier die Attribute des TVSamsung_wol:
Attributes:
   alias      Samsung (WOL)
   devStateIcon on:it_television@green off:it_television@red
   group      Fernseher
   icon       it_television
   interval   60
   room       Multimedia
   shutdownCmd set TV POWER
   sortby     2
   webCmd     refresh:on:off

Hat jemand eine Idee, was da bei mir schief läuft?
Viele Grüße
doc
I love FHEM!

MadMax-FHEM

Löschen eines Gerätes:

1. Filter "wegnehmen", Beispiel: Filter: room=alexa -> alexa aus Attribut room wegnehmen

2. alexa-fhem neu starten

3. Gerät aus Alexa-App (oder Web) löschen

Schritt 3 kann auch "irgendwann" vorher erfolgen solange zwischendrin keine neue "Smarte Geräte Suche" mehr anstösst...

Reload Alexa-Device liest nur die für den Custom Skill relevanten Dinge neu ein...

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)

Sailor

Zitat von: charlie0815 am 10 Oktober 2018, 14:49:33
Hallo FHEM Gemeinde,
ich finde es ganz toll, dass MrSnatz eine neue Anleitung zum einrichten der Alexa-Einbindung geschrieben hat (auf Seite 21 dieses Fadens). Ich hatte mich ohne diese Anleitung durchgequält und wäre fast verzweifelt.

Edit: Ich habe nun den Skill noch einmal genau nach MrSnatz Anweisung angefertigt und voillla Funktioniert ....vielen Dank dafür.....

Moin zusammen

Ich beiße mir auch gerade die Zähne an der Installation aus.
Scheinbar gibt es eine gute Anleitung von Mr. Snatz.

Mag mir Jemand diese Anleitung zukommen lassen (den Link) ... Das Wiki ist leider nicht mehr aktuell da insbesondere die Menues bei Amazon mittlerweile vollkommen anders aufgebaut sind.

Danke

Gruss
    Sailor
******************************
Man wird immer besser...

MadMax-FHEM

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)

Tommy82

Ich hab mal angefangen das Wiki zu überarbeiten, inkl. der überarbeitung der Bilder, denke das ich das diese Woche zu ende bekomme, dann kann ja vieleicht nochmal einer drüber gucken ob jetzt alles so korrekt , nachvollziehbar und aktuell ist.
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI