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

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

Vorheriges Thema - Nächstes Thema

Antimaster

Ich habe ein Problem mit meinen Homematic Rolladenaktoren. Ich habe diese zusammen mit allen möglichen anderen Geräten über Fhem in Alexa eingebunden. Ich kann auch die Rollos alle per Sprache steuern. Jetzt möchte ich für die Rolladen eine Routine anlegen, z.B. Fernsehen = Rollos 30% schließen. In der Alexa-App sind alle Geräte eingerichtet. Wähle ich das Gerät jedoch beim erstellen einer Routine aus, bekomme ich nur einen schwarzen Bildschirm und ich kann das Gerät nicht bestätigen. Schalter / Licht (0-100%) wird ohne Probleme dargestellt aber die Rolladenaktoren bekomme ich nicht eingebunden. Jemand eine Idee?

TomLee

Du kannst dir zur Zeit damit behelfen den Aktor nicht mit genericdevicetype blind sondern switch zu definieren. Dieser wird dann auch in der Routine angezeigt.

slor

Zitat von: wuast94 am 01 November 2017, 14:02:17
ssl war in der config nicht gesetzt .. hatte ich aber auch nicht gefunden aber danke :) jetzt liegts am zertifikat

[11/1/2017, 2:01:18 PM] [FHEM] longpoll error: Error: self signed certificate, retry in: 5000msec

Hallo, ich scheitere gerade hier dran. Was muss ich tun, damit das mit meinem self signed certificate läuft?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

theo69

Zitat von: cyvr1 am 13 Februar 2017, 06:13:12
Hallo,

dank der tollen Unterstützung hier im Forum habe ich  nun fast alles mit dem CustomSkill entsprechend eingerichtet. Es fehlt mir im Moment nur noch der Füllstandsmelder in meiner Zisterne.

Dafür gibt es ja kein "genericDeviceType", also schätze ich, dass ich mir da einen eigenen Gerätetyp definieren und mit dem hombridgeMapping arbeiten muss.

Wenn da jemand einen Tipp hat, wäre ich sehr dankbar.

EDIT:

Ein bisschen was habe ich selber hinbekommen. Ist zwar bestimmt nicht so ganz im Sinne des Erfinders, aber es funktioniert erst mal.

In der server.js unter lib habe ich folgenden Eintrag bei "StatusIntent" ergänzt:


if( device.mappings.CurrentWaterLevel ) {
    if( state ) { state.replace( ' und ', ', ' ); state += ' und ' };
    state += 'ist zu '+ device.fhem.cached(device.mappings.CurrentWaterLevel.informId)+' Prozent gefüllt';
}



Bei "homebridgeMapping" im Füllstandmesser:

clear CurrentWaterLevel=level


Funktioniert erstmal und ich bekomme bei der Abfrage zurückgemeldet "Zisterne ist zu 100% gefüllt". Soweit, so gut.

Bleibt nur noch das Problem mit dem "genericDeviceType". Ich habe zur Zeit "Security" ausgewählt, da sonst nichts passendes vorhanden ist und die Zisterne nicht beim allgemeinen Statusabruf z.B. der Fenster oder Rolläden mit ausgegeben werden soll.

Wie kann ich das eleganter lösen? Eigenes "genericDeviceType"?

Hallo, hast du das Problem gelöst, habe einen Füllstandsmesser in % oder liter, derzeit nutze ich als Humidity mit % wie hast du es jetzt gelöst, angeblich gibt es bei HomeKit WaterLevel...


justme1968

homekit hat dafür WaterLevel. wenn du kompatibel sein willst nimm das. ansonsten bleib bei deinem CurrentWaterLevel.

die liste in genericDeviceType ist nur ein vorschlag der am häufigsten verwendeten. von hand kannst du alles setzen das in homekit bekannt ist und darüber hinaus auch noch alles das dir selber einfällt. es muss nur alles zusammen passen.

das der custom skill ohne code änderung nur über configuration einen beliebigen status zurück liefern kann steht noch auf der liste und kommt irgendwann.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Markus.

#3575
Hallo Zusammen,

muss nochmal nachfragen bezüglich dem Einsatz eines Echos pro Raum. Und zwar setzte ich den Standard Smarthome Skill ein
und habe halt in der Alexa App für jeden Raum eine Gruppe definiert. Auch auch FHEM-Seite habe ich die alexaroom Attibute gleich den Gruppennamen in AlexaApp gesetzt. Wenn ich jetzt meherer Echos (einen pro Raum) einsetzten will, reicht es da, das ich die Echos entsprechend in der AlexaApp in die Gruppen verteile oder sollte man auch im Alexa-Device auf FHEM entsprechend das roomID Attribut verwenden?
Schlussendlich will ich einfach in jedem Raum sagen Alexa, schalte Licht ein. Halt ohne den Raumnamen nochmal explizit zu nennen. Müsste doch eigentlich mit dem Smarthome Skill V3 funktionieren oder brauche ich dafür den Custom Skill?
Den Custom Skill habe ich zwar mal eingerichtet aber nutze ihn eigentlich nur um mir die Luftfeuchtigkeit ansagen zu lassen für jeden Raum über eine Abfrage in myUtils.
Verwende Alexa-Fhem Version 0.4.4 und der Smarthome skill ist V3.

Gruß

Markus

slor

Zitat von: slor am 13 Februar 2018, 19:39:04
Hallo, ich scheitere gerade hier dran. Was muss ich tun, damit das mit meinem self signed certificate läuft?

Habs gefunden. Fehlermeldung war irreführend.
Username und Passwort für Fhem in config.json eingebaut und es läuft.
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

justme1968

@Markus.: alexaRoom ist nur für den custom skill relevant.

um in jedem raum 'schalte das licht an' sagen zu können ist auf fhem seite nichts zu tun. du musst nur in der app
alle echos und alle lampen jeweils in die passende gruppe schieben.

und du brauchst mindestens version 0.3.4 oder 0.3.5 von alexa-fhem. das device muss als lampe (oder schalter) in der app zu sehen sein. nicht als haus.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Markus.

Zitat von: justme1968 am 15 Februar 2018, 10:53:46
@Markus.: alexaRoom ist nur für den custom skill relevant.

um in jedem raum 'schalte das licht an' sagen zu können ist auf fhem seite nichts zu tun. du musst nur in der app
alle echos und alle lampen jeweils in die passende gruppe schieben.

und du brauchst mindestens version 0.3.4 oder 0.3.5 von alexa-fhem. das device muss als lampe (oder schalter) in der app zu sehen sein. nicht als haus.

Super danke dann müsste es so funktionieren wie ich in etwa dachte. Nun noch warten das die Dots geliefert werden :-)

Gruß

Markus

OppiM

@justme1968:  Wie muss dann in diesem Fall der alexaName für die Lampe in FHEM gesetzt werden? Immer auf "Licht" oder je Lampe auf einen individuellen Wert ("Lampe_Wohnzimmer","Lampe_Küche", etc.)?

Gruß,
Michael

justme1968

in diesem fall spielt der alexaName keine rolle und es wird nur nach dem typ light geschaltet. das macht amazon intern automatsch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Schlimbo

Zitat von: justme1968 am 15 Februar 2018, 14:00:56
in diesem fall spielt der alexaName keine rolle und es wird nur nach dem typ light geschaltet. das macht amazon intern automatsch.
Bei mir hat es erst funktioniert, als ich den Leuchten unterschiedliche Namen gegeben hatte.
Meine Leuchten hatten anfangs alle den Namen "Licht", nach Erstellten der Gruppen in der APP und Zuweisung der Echos zu den jeweiligen Gruppen, kam bei: "Alexa, schalten das Licht an" nur: "Ich habe mehrere Geräte mit dem Namen Licht gefunden...", denke das in diesem Fall der Geräte Name "Licht" Vorrang vor den Gruppen Befehl hat.

justme1968

ja. die geräte dürfen nicht licht heissen. lampe geht aber. oder ging zumindest.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

PNinBB

#3583
Ich "kämpfe" noch im Bereich der ersten Schritte. Versucht habe ich es mit Smart Home Skill und Custom Skill; immer mit 'V3' und 'alexa-fhem 0.4.4'. Grundlage waren das Wiki und die Tutorials von 'haus-automatisierung.com'. Bei allen Versuchen bin ich an der Kontoverbindung gescheitert; alle (so denke ich zu mindest) Einstellungen, wie beschrieben. Alexa hört an Port 3000; Weiterleitung in der Fritzbox ist gesetzt (auch mit nmap von aussen geprüft). Skill und Lambda bis zu Ende fehlerfrei eingerichtet.
Beim (momentan) letzten Versuch mit Smart Home Skill und der Lambda-Funktion mit Trigger 'Alexa Smart Home' kam ich einen Schritt weiter: Kontoverbindung war erfolgreich; aber es werden keine Geräte gefunden.
Der Status von fhem-alexa zeigt kontinuierlich Einträge, beispielsweise:
Feb 16 16:26:40 PNinBBServer4 alexa[14575]: 2018-02-16 16:26:40 caching: BD_TI_FV-temperature: 21.06 C
Feb 16 16:26:51 PNinBBServer4 alexa[14575]: 2018-02-16 16:26:51 caching: WZ_DS_SM-temperature: 24.1 C
Feb 16 16:27:40 PNinBBServer4 alexa[14575]: 2018-02-16 16:27:40 caching: WZ_AB_TV-power:  111.9 W
Feb 16 16:27:51 PNinBBServer4 alexa[14575]: 2018-02-16 16:27:51 caching: WZ_AB_TV-power:  123.7 W
Feb 16 16:28:05 PNinBBServer4 alexa[14575]: 2018-02-16 16:28:05 caching: WZ_AB_TV-power:  114.6 W
Feb 16 16:28:28 PNinBBServer4 alexa[14575]: 2018-02-16 16:28:28 caching: SZ_TI_FS-temperature: 14.62 C
Feb 16 16:28:37 PNinBBServer4 alexa[14575]: 2018-02-16 16:28:37 caching: AZ_TI_FV-temperature: 24.93 C
Feb 16 16:29:04 PNinBBServer4 alexa[14575]: 2018-02-16 16:29:04 caching: WZ_DS_SM-luminance: 4 Lux
Feb 16 16:29:07 PNinBBServer4 alexa[14575]: 2018-02-16 16:29:07 caching: FL_DS_SM-luminance: 0 Lux
Feb 16 16:29:23 PNinBBServer4 alexa[14575]: 2018-02-16 16:29:23 caching: WZ_DS_SM-luminance: 5 Lux

Kurioserweise gibt es im alexa-log keine Einträge mehr (letzte waren gestern).
Nach Start von alexa-fhem sieht es wie folgt aus:
root@PNinBBServer4 16.02.2018;16:12:20 /var/www/GB/FH/alexa-fhem 68>service alexa status
● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled)
   Active: active (running) since Fr 2018-02-16 16:11:16 CET; 1min 9s ago
Main PID: 14575 (alexa)
   CGroup: /system.slice/alexa.service
           └─14575 alexa

Feb 16 16:11:19 xxxxServer4 alexa[14575]: [2018-2-16 16:11:19] ---
Feb 16 16:11:19 xxxxServer4 alexa[14575]: [2018-2-16 16:11:19] this is alexa-fhem 0.4.4
Feb 16 16:11:19 xxxxServer4 alexa[14575]: [2018-2-16 16:11:19] Fetching FHEM devices...
Feb 16 16:11:19 xxxxServer4 alexa[14575]: [2018-2-16 16:11:19] [FHEM] starting longpoll: http://192.168.2.xxx:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=...18793879217
Feb 16 16:11:19 xxxxServer4 alexa[14575]: [2018-2-16 16:11:19] Server listening on: https://:::3000
Feb 16 16:11:37 xxxxServer4 alexa[14575]: [2018-2-16 16:11:37] [FHEM] Checking devices and attributes...
Feb 16 16:11:37 xxxxServer4 alexa[14575]: [2018-2-16 16:11:37] [FHEM]   executing: http://192.168.2.xxx:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)...39489&XHR=1
Feb 16 16:11:37 xxxxServer4 alexa[14575]: [2018-2-16 16:11:37] [FHEM]   executing: http://192.168.2.xxx:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_421308575039489&XHR=1
Feb 16 16:11:37 xxxxServer4 alexa[14575]: [2018-2-16 16:11:37] [FHEM] Fetching FHEM devices...
Feb 16 16:11:37 xxxxServer4 alexa[14575]: [2018-2-16 16:11:37] [FHEM] fetching: http://192.168.2.xxx:8083/fhem?cmd=jsonlist2%20room=Aktoren%7CDetektoren&fwcsrf=csrf...39489&XHR=1
. . . .

Ideen habe ich keine mehr !
Für jeden Tipp und Hilfe bin ich sehr dankbar.
Peter
Nachtrag: Bei den Geräten sind 'alexa'-Attribute (Name, genericDeviceType, ...) gesetzt.
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

theo69

Zitat von: justme1968 am 14 Februar 2018, 11:49:35
homekit hat dafür WaterLevel. wenn du kompatibel sein willst nimm das. ansonsten bleib bei deinem CurrentWaterLevel.

die liste in genericDeviceType ist nur ein vorschlag der am häufigsten verwendeten. von hand kannst du alles setzen das in homekit bekannt ist und darüber hinaus auch noch alles das dir selber einfällt. es muss nur alles zusammen passen.

das der custom skill ohne code änderung nur über configuration einen beliebigen status zurück liefern kann steht noch auf der liste und kommt irgendwann.
Hab ich gemacht aber nun erscheint er als Schalter in den Details steht dann der Wasserfüllstand