alexa-fhem: amazon alexa smart home skill für fhem

Begonnen von justme1968, 05 November 2016, 23:21:32

Vorheriges Thema - Nächstes Thema

Ma_Bo

Gibt es mittlerweile die Möglichkeit mit dem custom skill, das ganze ohne den Amazon aws lambda zu betreiben? (Also ohne Kreditkarten Angaben)

Grüße Marcel


Gesendet von iPhone mit Tapatalk
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

RaspiCOC

#586
@André: Ich habe mit dem Custom Skill ein Problem, das ich im Augenblick nur durch eine komplette Restrukturierung meiner FHEM Konfiguration lösen kann. Um die Übersicht in meiner zwischenzeitlich stark gewachsenen Installation zu behalten, arbeite ich mit vielen rooms und groups.

Die Räume sind wie folgt bezeichnet (was dann auch die Reihenfolge der Darstellung im FHEMWeb definiert):

1.00.00_Garten
1.00.01_KG_Arbeitszimmer
1.00.02_KG_Heizung
1.00.03_KG_Flur
1.01.01_EG_Flur
1.01.02_EG_Gästeklo
1.01.03_EG_Küche
1.01.04_EG_Wohnzimmer
1.01.05_EG_Treppenhaus
1.02.01_OG_Arbeitszimmer
1.02.02_OG_Badezimmer
1.02.03_OG_Kind1
1.02.04_OG_Kind2
1.02.05_OG_Schlafzimmer
1.02.06_OG_Privatklo
1.02.07_OG_Flur


Diese Raumnamen werde ich dem Alexa Skill wohl kaum vermitteln können...

FHEM_ROOM           1.00.01_KG_Arbeitszimmer | 1.02.02_OG_Badezimmer

Macht es nicht vielleicht noch Sinn in der alexa.pm ein Attribut alexaRoom zu implementieren?

Der Vorteil wäre dann auch, dass man imHinblick auf die Roombezeichnungen völlig frei wäre und alle Alexa-Devices in einem eigenen Raum sammeln könnte (hier würde man dann den Filter room=alexa) nehmen).

Gefühlt würde ich ohnehin sagen, dass alle Informationen, die der Skill verwendet pro Device mit einem Attribut angelegt werden sollten. Das bedeutet zwar einen gewissen Mehraufwand bei der einmaligen Konfiguration, bringt aber deutlich mehr Flexibilität.

Was meinst Du?

rr725

Zitat von: Ma_Bo am 28 November 2016, 12:25:19
Gibt es mittlerweile die Möglichkeit mit dem custom skill, das ganze ohne den Amazon aws lambda zu betreiben? (Also ohne Kreditkarten Angaben)
also eines vorweg...ich bin schwer begeistert, von dem was hier einige aus die beine stellen....
ich hatte auch begonnen dies hier zu installieren, jedoch habe ich an dem punkt aufgehört als die kreditkartendaten verlangt wurden. ebenso hat mein rechtsanwalt keine lust für mich kostenlos das kleingedruckte auf fallen, b.z.w. versteckten kosten zu überprüfen.

nun bin ich über die HA-Bridge gestolpert und habe einen "alten Rapberry" dafür genommen und dies am Wochenende installiert.
Hm.......Ich bin schwer begeistert und frage mich nun was kann der hier beschriebene Skill mehr als diese HA Bridge !?
Wenn ich sage Alexa, schalte die Heizung im Wohnzimmer an- macht sie es.
Ebenso alles andere was ich definiert habe und ihr sage. Eigentlich ist es das was man will. Oder was kann ich mit diesem hier so ausgiebig beschriebenen Skill mehr ?!

dk3572

Kann mir hier evtl. noch jemand weiter helfen?

Zitat von: dk3572 am 26 November 2016, 12:02:38
@justme1968
ich noch mal.
Mein Dummy lässt sich einfach nicht ansprechen. Alexa kennt die Befehle nicht.
Ich möchte Werte von 0 - 40% angeben.

define <name> dummy
attr <name> genericDeviceType light
attr <name> homebridgeMapping cmd=state,Brightness=state,minValue=0,maxValue=40,minStep=1
setreading dummy state 0


Was muss ich im Dummy noch ändern?

justme1968

@prodigy7: ich habe gerade keine idee was bei dir schief läuft. aber ohne alias ist keine gute idee. deine device namen haben punkte. die sind im namen den alexa verwendet nciht erwünscht.

änder mal deinen filter so das nur ein einziger dummy mit einem einfachen namen dabei raus kommt. und lösche vorher die geräte in der alexa app.

@Ma_Bo: der custom skill geht im prinzip auch ohne aws. du muss aber selber rausfinden was du genau eintragen musst und wie die authentifizierung beim aktivieren des skill dann geht.

@RaspiCOC: alexaRoom ist in meiner version schon drin. kommt mit dem nächsten update.

@rr725: schön wenn du eine lösung hast mit der du klar kommst.

der fhem skill kann unter anderem: nicht nur ein und aus schalten sondern ist frei konfigurierbar. also dir heizung auch auf eine bestimmte temperatur schalten, etwas wärmer oder heller machen, sender wechseln, nach geräte arten oder räumen gruppieren,... der wortlaut kann angepasst werden und du kannst fhem auch abfragen.

@dk3572: es muss mit Brightness anfangen. alles andere kommt danach.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

RaspiCOC

ZitatalexaRoom ist in meiner version schon drin. kommt mit dem nächsten update.

Genial! Freue mich schon auf die nächste Version!

justme1968

@prodigy7: ich habe gerade keine idee was bei dir schief läuft. aber ohne alias ist keine gute idee. deine device namen haben punkte. die sind im namen den alexa verwendet nciht erwünscht.

änder mal deinen filter so das nur ein einziger dummy mit einem einfachen namen dabei raus kommt. und lösche vorher die geräte in der alexa app.

@Ma_Bo: der custom skill geht im prinzip auch ohne aws. du muss aber selber rausfinden was du genau eintragen musst und wie die authentifizierung beim aktivieren des skill dann geht.

@RaspiCOC: alexaRoom ist in meiner version schon drin. kommt mit dem nächsten update.

@rr725: schön wenn du eine lösung hast mit der du klar kommst.

der fhem skill kann unter anderem: nicht nur ein und aus schalten sondern ist frei konfigurierbar. also dir heizung auch auf eine bestimmte temperatur schalten, etwas wärmer oder heller machen, sender wechseln, nach geräte arten oder räumen gruppieren,... der wortlaut kann angepasst werden und du kannst fhem auch abfragen.

@dk3572: es muss mit Brightness anfangen. alles andere kommt danach.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dk3572


SalvadoreXXL

Hi,

danke erstmal an justme1968!!! Geniales Teil. Hab das soweit alles (nur Standard-Skill) funktionsfähig und kann Lampen schalten und Heizung bedienen. Ich finde allerdings keinen Ansatzpunkt für die Harmony und Lightscenes. Kann mir da mal jemand auf die Sprünge helfen mit einer Beispielkonfig? Möchte die im FHEM definierten Lichtszenen und Harmony-Activitys mit Alexa steuern.


prodigy7

@justme1968: Ich denke, ich habe das Problem gefunden. Aus irgendwelchen Gründen führen Geräte, die mehr als 37 Zeichen haben, dazu dass gar nichts mehr von Alexa erkannt wird. Konnte ich zuverlässig reproduzieren und auch egal, ob der Name mit . _ war oder nur auch Buchstaben oder Zahlen bestanden. Ich bin aber ziemlich sicher, das es mal mit den längeren Namen ging weil die Geräte ja auch mal in Alexa angezeigt wurden. Ich finde auch 37 Zeichen ist ein ziemlich komischer Wert ... 16, 32, 48 Zeichen usw. fände ich "IT nachvollziehbar" ... Idee, woran das liegen kann?

dk3572

Nächstes Problem. Ich wollte den Dummy auf den maximal wert von 40% begrenzen. Macht er aber nicht. Ich kann ihn dennoch auf 100% stellen.
Woran liegt das?

RaspiCOC

#597
Denke, ich habe einen Bug gefunden (oder vielleicht ist das einfach noch nicht implementiert):

Um die Übersicht zu behalten habe ich in meinem Alexa-Raum in FHEM readingsproxies angelegt. Zu Testzwecken hier aktuell folgende Konstellation:

Einen Dummy:

define Hund dummy
attr Hund room 2.14_AlexaDevices
attr Hund setList on off


Und einen ReadingsProxy dazu:

defmod Hundproxy readingsProxy Hund
attr Hundproxy alexaName Hundproxy
attr Hundproxy room 2.14_AlexaDevices
attr Hundproxy setList on off


Hund auf "on" gesetzt. Jetzt Alexa Service gestoppt und auf der Konsole neu gestartet:

[2016-11-29 10:06:11] [FHEM] Hund is switch
[2016-11-29 10:06:11] [FHEM] Hund has
[2016-11-29 10:06:11] [FHEM]   On [state;on,off]
  2016-11-29 10:06:11 caching: Hund-state: on
[2016-11-29 10:06:11] [FHEM] Hundproxy is switch
[2016-11-29 10:06:11] [FHEM] Hundproxy has
[2016-11-29 10:06:11] [FHEM]   On [state;on,off]
  2016-11-29 10:06:11 caching: Hundproxy-state: on


Hund auf "off" gesetzt:

2016-11-29 10:07:18 caching: Hund-state: off

Hundproxy auf "on" gesetzt:

  2016-11-29 10:08:08 caching: Hund-state: on

Fazit: Die Statusänderung von Hundproxy wird nicht auf der Konsole ausgegeben.

Ich kann aber über Alexa den Hundproxy ein und ausschalten - nur die Statusänderungen des Readingsproxy werden nicht an Alexa übergeben. Der initiale Status zum Zeitpunkt des Starts des Alexa Service jedoch schon.

[2016-11-29 10:18:37] IntentRequest
[2016-11-29 10:18:37] SwitchIntent
[2016-11-29 10:18:37] [FHEM] Hundproxy: executing set cmd for On with value 0
[2016-11-29 10:18:37] [FHEM]   executing: http://192.168.1.41:8083/fhem?cmd=set%20Hundproxy%20off&XHR=1
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich habe  hundproxy ausgeschaltet."},"shouldEndSession":true}}
  2016-11-29 10:18:37 caching: Hund-state: off


Eine korrekte Berücksichtigung von ReadingsProxies wäre schon schön, weil ich damit die Alexa Devices sozusagen "physisch" ausschließlich im Alexa Raum haben könnte.

justme1968

@prodigy7: ich vermute es liegt nicht am namen selber sondern am friendlyName. hier wird aktuell name, alias und room rein geschrieben. der darf aber nicht länger als 128 zeichen sein. kann es sein das du mit den langen device namen drüber kommst?

@dk3572: das habe ich hier schon länger repariert. kommt im nächsten update.

@RaspiCOC: readingsProxys erzeugen keine events wenn nicht event-on-change-reading oder event-on-update-reading gesetzt ist.

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

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

RaspiCOC

Zitat von: justme1968 am 29 November 2016, 11:09:01
@RaspiCOC: readingsProxys erzeugen keine events wenn nicht event-on-change-reading oder event-on-update-reading gesetzt ist.

Wieder was dazugelernt! Das klärt jetzt auch die eine oder andere Merkwürdigkeit an anderer Stelle. Vielen Dank!