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

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

Vorheriges Thema - Nächstes Thema

justme1968

für den mode brauchst du ein mapping für TargetHeatingCoolingState.

was spricht dagegen das weiter als structure zu machen und diese als blind einzubinden?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dadoc

Zitat von: justme1968 am 26 März 2019, 18:36:51
für den mode brauchst du ein mapping für TargetHeatingCoolingState.
Danke, das werde ich testen und im Erfolgsfall im Wiki ergänzen.

Zitatwas spricht dagegen das weiter als structure zu machen und diese als blind einzubinden?
Aus meiner Sicht nichts, nur dass es halt anscheinend nicht funktioniert.
Im Wiki steht, dass man structure als scene einbinden muss, und dass diese dann (nur?) ein und aus kennt:
Zitatstructure Devices aus FHEM (ab alexa-fhem version 0.5.7)
werden mit genericDeviceType scene als Szene eingebunden
über alexaRoom kann der name um einen Ort ergänzt werden
Szenen aus einer structure lassen sich ein- und ausschalten
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

justme1968

ZitatIm Wiki steht, dass man structure als scene einbinden muss, und dass diese dann (nur?) ein und aus kennt:

da steht nichts von muss. da steht das man sie als szene einbinden kann und wenn man das tut nur aktivieren und eventuell deaktivieren kann.

du kannst sie weiterhin als jeden anderen genericDeviceType einbinden der zu den beteiligten devices passt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dadoc

Naja, das ,,werden eingebunden als scene" hatte ich nicht als Option verstanden. Aber so oder so: Beim Einbinden der structure als blind sagt mir Alexa (die das neue ,,Gerät" nach de Suche durchaus gefunden hat), auf ,,setze den Rollladen im Badezimmer auf 50 Prozent", dass sie das Gerät nicht kennt.
Weiss nicht, ob es damit zu tun hat: Es gab ja schon immer gewisse Probleme mit dem Namen Rollladen. Und mir ist auch nicht klar (weil unterschiedliche Erfahrungsberichte in diesem Thread), ob Geräte wie Heizung oder Rollladen, die in vielen Räumen/Gruppen vorkommen, in fhem immer gleich benannt werden können, weil man im Sprachbefehl ja dann den betreffnden Raumnamen hinzufügt (,,Stelle die Heizung in der Küche auf 20 Grad", was bei mir in allen Räumen mit demselben Namen funktioniert).
Vielleicht geht das ja mit structure noch nicht?
Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

justme1968

alexa-fhem ist der TYPE beim schalten völlig egal. der spielt nur zur automatischen erkennung eine rolle und ist fast nicht relevant wenn genericDeviceType gesetzt ist.

wenn irgendetwas nicht funktioniert: das log bei der geräte suche anschauen.

den Namen kannst du zum testen ja auch variieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dadoc

GenericDeviceType ist blind, bei der Alexa-Gerätesuche wird das nur als ,,sonstiges" gefunden. Alexaname hatte ich jetzt mal auf Petwr gesetzt.
Was mir auffällt:
- in fhem wird der Name und das genericDeviceType, das ich für die structure definiert habe, beiden Rollläden (*_l und *_r) ohne mein Zutun zugeordnet.
- In Alexa steht dann nur einer der beiden Rolläden in der Definition (*_r), s. screenshot
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

justme1968

sonstiges ist ok. alexa kennt keine rollläden.

in der antwort auf die gerätesuche sollte aber etwas von Alexa.PercentageController beim jeweiligen device stehen.

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

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

dadoc

Beim wiederholten Versuch der Gerätesuche, nachdem ich den AlexaName für die Structure zunächst auf Paul, beim nächsten Versuch auf Maria gesetzt habe: bei Maria wurden zwei Devices mit dem Namen Maria gefunden, einmal die structure und einmal einer der beiden in der structure enthaltenen Rollläden. Bin verwirrt, da ich mit dem log nicht viel anfangen kann:
{"supported":[{"name":"powerState"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":["LIGHT"],"cookie":{"device":"Licht_Esstisch","fuuid":"5c7b92e6-f33f-e02c-06fb-5e0723155fc8565d"}},{"endpointId":"MEQ1313197","manufacturerName":"FHEMCUL_HM","modelName":"FHEMHM-LC-BL1-FM","version":"<unknown>","friendlyName":"peter","description":"n: Rolllaeden_Bad_l, r: bad,cul_hm","actions":[],"capabilities":[{"type":"AlexaInterface","interface":"Alexa.PercentageController","version":"3","properties":{"supported":[{"name":"percentage"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":[],"cookie":{"device":"Rolllaeden_Bad_l","fuuid":"5c7b92eb-f33f-e02c-5865-0cce41ae65ead4af"}},{"endpointId":"MEQ1313283","manufacturerName":"FHEMCUL_HM","modelName":"FHEMHM-LC-BL1-FM","version":"<unknown>","friendlyName":"peter","description":"n: Rolllaeden_Bad_r, r: bad,cul_hm","actions":[],"capabilities"

"endpointId":"5c7b92ef-f33f-e02c-f672-e0c3c4cd0cf0f31a","manufacturerName":"FHEMstructure","modelName":"FHEM<unknown>","version":"<unknown>","friendlyName":"maria","description":"n: rollaeden_bad_structure, r: bad","actions":[],"capabilities":[{"type":"AlexaInterface","interface":"Alexa.PercentageController","version":"3","properties":{"supported":[{"name":"percentage"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":[],"cookie":{"device":"rollaeden_bad_structure","fuuid":"5c7b92ef-f33f-e02c-f672-e0c3c4cd0cf0f31a"}}]}}}
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

dadoc

Hi,
ich habe mittlerweile auf 0.5.26 upgedatet, und der Status zum Thema structure <> Alexa ist bei mir nun so:

1. Wenn ich in fhem einer structure einen alexaName (hier: Peter) und den genericDeviceType (hier: blind) zuweise, so vererbt die structure das offensichtlich an ihre Kinder.
M.a.W.: die beiden Rollladenaktoren, die ich in einer structure zusammenfasse, haben dann ebenfalls alexaName "Peter" und den genericDeviceType "blind".
Die Aktoren haben:
userattr kueche_structure kueche_structure_map structexclude
Ich habe in der commandref nichts dazu identifizieren können, wie man die Vererbung von Attributen bei structure verhindern kann - oder müsste da (das für mich etwas undurchsichtige) structexclude explizit auf alexaName und genericDeviceType gesetzt werden?

Mit dem status quo ist es dann jedenfalls so, dass bei der Gerätesuche in diesem Fall drei Geräte namens Peter gefunden werden (s. screen), weshalb sich Peter nicht per Sprachbefehl schalten lässt. Ich gehe die drei Peters dann manuell durch und werfe die der Aktoren raus, dann geht es. Wenn ich dann ich fhem die attr bei den Aktoren manuell lösche und das Alexa-Modul neu starte, werden sie bei einer erneuten Suche auch nicht mehr gefunden. Kurios: Ein Rolladen ist sogar über sein FileLog eingebunden worden. Das hat, warum auch immer, ebenfalls die Alexa-Attribute geerbt (s. screen).

2. Es scheint einen erheblichen Unterschied zwischen der Steuerung von structures (oder liegt es am Begriff "Rollladen"?) und anderen devices zu geben:
- Beispiel Heizungsthermostaten: Ich habe allen den alexaName "Heizung" gegeben und in Alexa unterschiedlichen Räumen zugewiesen. Das Schalten mit "Setze die Heizung im Badezimmer auf 22 Grad" funktioniert.
- Wenn ich dasselbe mit Rollläden machen, also allen structures den alexaName "Rollladen" gebe und sie dann auf die Räume verteile, funktioniert das Schalten mit "Setze den Rollladen im Badezimmer auf 100 Prozent" nicht - Alexa kennt kein Gerät namens Rolladen Badezimmer.
Wenn ich die Structure dagegen "Badezimmerrollläden" nennen, klappt es (ohne Raumangabe). Wäre natürlich toll, wenn das hier so wie bei den Thermostaten funktionieren würde.
Oder mache ich etwas falsch?
Danke & Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

justme1968

#624
1. um das zu verhindern gibt es das structexclude attribut.

2. es gib aus alexa sicht keinen unterschied zwischen einer structure und einem ,echten' rollladen. so lange beide devices das passende homebridgeMapping und den gleichen genericDeviceType haben.

ob ein bestimmter name probleme macht ist ebenfalls unabhängig von fhem device type.

da alexa noch keine rollläden kennt funktioniert das generische ansprechen wie bei lampen und thermostaten einfach nicht.

wenn es über den (gleichen) device namen und gruppen namen nicht geht -> feedback an amazon.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dadoc

Zitat von: justme1968 am 28 März 2019, 12:37:56
1. um das zu verhindern gibt es das structexclude attribut.
Danke, d.h. mann muss bei allen Elementen einer structure einzeln structexclude alexaName genericDeviceType setzen?
Zitat
2. es gib aus alexa sicht keinen unterschied zwischen einer structure und einem ,echten' rollladen. so lange beide devices das passende homebridgeMapping und den gleichen genericDeviceType haben.

ob ein bestimmter name probleme macht ist ebenfalls unabhängig von fhem device type.
ok, ich werde heute abend mal mit Einzelrollläden testen, ob sie sich wie die Thermostaten verhalten.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

dadoc

Zitat von: dadoc am 28 März 2019, 13:00:18
ok, ich werde heute abend mal mit Einzelrollläden testen, ob sie sich wie die Thermostaten verhalten.
Getestet, geht auch nicht. Alexa scheint mit ,,Rollladen" als Gerätenamen generell ein Problem zu haben, wie ich auch schon vage anderen Posts und anderen Foren entnommen habe. Wenn man es mit dem Raumnamen im Sprachbefehl kombiniert, kennt sie das nicht. Wenn man es ohne Raumname sagt, ist die Antwort, dass es mehrere Geräte mit dem Namen ,,Rollladen" gibt.
Habe das für mich jetzt mal so ge-work-arounded, dass ich die Structures direkt in Alexa mit Namen wie ,,Rollläden in der Küche" umbenenne. Das ist zwar nicht schön, funktioniert aber (auch in Sachen WAF).
Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

xha1

Hallo zusammen,

erst einmal danke für den FHEM Connector, wenn das ganze funktioniert - genial.

Ich habe alles nach der Anleitung installiert. Nachdem beim ersten Versuch der proxyKey nicht verfügbar war habe ich die Schritte "Registrierungskey vergessen, Registrierung zurücksetzen" durchgeführt. Jetzt zum Problem:

Status ActivationKey: Good Key
Status SSH: Online...
Status Revers-Portmapping: Reverse tunnel up
Status nodejs-Connectivity: Test passed

Hier nun der Fehler in der Alexa App:

Status nodejs-Interaction: AutoDiscovery failed, response: {"header":{"namespace":"Alexa-ConnectedHome.Control","name":"InvalidAccessTokenError","payloadVersion":"2","messageId":"87.....37"},"payload":{}}


In der alexa.log:

[29.3.2019, 13:20:17] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"0815"},"payload":{"scope":  {"type":"BearerToken","token":"<...>"}}}}
[29.3.2019, 13:20:18] client not authorized: {"error_index":"<...>","error_description":"The request has an invalid parameter : access_token","error":"invalid_token"}
[29.3.2019, 13:20:18] ERROR: InvalidAccessTokenError from 127.0.0.1
[29.3.2019, 13:20:18] <<<< [ssh] {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"InvalidAccessTokenError","payloadVersion":"2","messageId":"<...>"},"payload":{}}


Kann mir jemand weiterhelfen? Wie bekomme ich den FHEM Connector zum laufen

Esjay

Lösch mal im Homeverzeichniss von fhem im .ssh Ordner die Datein id_rsa und id_rsa.pub. Und starte Alexa danach nochmal durch!

Danach wieder ins Log schauen!

Grüße

xha1

Nach einem kompletten Neustart funktioniert es nun endlich. Vielen Dank!