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

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

Vorheriges Thema - Nächstes Thema

baerbel

Hi Joachim,

trotzdem danke dir für die Gedankenanstössen - evtl. hat Andre die zündende Idee -

Grüße,

/bernd

Tedious

Guten morgen zusammen,

Kurze Frage - mein Dot ist gestern gekommen. Sehe ich das richtig dass ich ohne AWS keine Chance habe den Dot an FHEM anzudocken? Sprich, in meinem Fall - aktuell ohne Kreditkarte keine Chance? Ich hab meine alten gekündigt und mich noch nicht entschieden welche ich jetzt beantragen soll...

Gruß Sascha
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

mpl8580

Hi zusammen,

Gibt es eine genaue Anleitung um ein Update von 0.1.8 auf 0.1.9 durchzuführen.

Quasi etwas für dummies?

Danke euch


MadMax-FHEM

Zitat von: Tedious am 14 Januar 2017, 08:54:36
Guten morgen zusammen,

Kurze Frage - mein Dot ist gestern gekommen. Sehe ich das richtig dass ich ohne AWS keine Chance habe den Dot an FHEM anzudocken? Sprich, in meinem Fall - aktuell ohne Kreditkarte keine Chance? Ich hab meine alten gekündigt und mich noch nicht entschieden welche ich jetzt beantragen soll...

Gruß Sascha

Es gibt neben dieser Lösung hier "alexa-fhem", welche zwar etwas aufwendiger in der Einrichtung ist, dafür aber deutlich mehr bietet, gerade beim Einsatz des Custom Skills auch noch diverse "HUE-BridgeSimulatoren".

Dabei wird eine HUE-Bridge "simuliert" dort kann man dann HTTP-Schaltbefehle eintragen und dann per Alexa wie eine "normale" HUE-Bridge steuern:

https://forum.fhem.de/index.php/topic,57701.msg536403.html#msg536403

https://github.com/armzilla/amazon-echo-ha-bridge

https://github.com/bwssytems/ha-bridge

Die eingetragenen Schaltbefehel können dabei auch HTTP-Schaltbefehle an ein fhem sein...

Die Möglichkeiten da sind ähnlich dem Smart Home Skill hier: ein/aus und dimmen.
Wobei stimmt nicht, hier beim Smart Home Skill geht auch das Einstellen von Temperatur und auch Prozentwerten.

Wie das Dimmen bei den Bridge-Lösungen geht (also was man Alexa da sagen muss) weiß ich nicht.
Ist zwar simpel von der Installation etc. hat aber bei mir nicht funktioniert...
...und mehr als ein/aus/dimmen geht nicht.

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)

wuast94

ich habe thermostate über eine ccu2 eingebunden in fhem was einen nachteil hat da readings anders sind als per cul und auch alexa-fhem erkennt diese nicht.
deswegen hatte ich mir allgemein mal slider dummys gemacht die dann das umständliche einfach machen. aber auch diese werden nicht von alexa-fhem als thermostat erkannt.

deswegen meine frage ob es nicht allgemein sinnvoll wäre slider zu unterstützen ?  (auch zur lautstärkeregelung von av´s oder ähnliches wäre dann machbar)

mein silder sieht so aus:


alexaName               temperatur
genericDeviceType    thermostat
setList                     state:slider,4,0.5,30
webCmd state


und/oder gibt es eine möglichkeit wie ich meine thermostate einfügen kann ?
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

Chris8888

Hi,

also meine Thermostate (HmIP über CCU2) funktionieren (ohne CustomSkill) unter Alexa.
Hier eine Beispielkonfig:
Internals:
   CHANGED
   DEF        000A9569A3313B
   IODev      ccu
   NAME       HM_Badregler
   NR         624
   STATE      Ist: 20.8° Soll: 19.0° Feuchte: 43%
   TYPE       HMCCUDEV
   ccuaddr    000A9569A3313B
   ccudevstate Active
   ccuif      HmIP-RF
   ccuname    Badregler
   ccutype    HmIP-WTH-2
   channels   8
   statevals  devstate
   Readings:
     2017-01-14 13:16:29   0.CONFIG_PENDING false
     2017-01-14 13:16:29   0.DUTY_CYCLE    false
     2017-01-14 13:16:29   0.LOW_BAT       ok
     2017-01-14 13:16:29   0.OPERATING_VOLTAGE 2.9
     2017-01-14 13:19:06   0.RSSI_DEVICE   -64
     2017-01-14 13:16:29   0.RSSI_PEER     188
     2017-01-14 13:19:06   0.UNREACH       0
     2017-01-14 13:16:29   0.UPDATE_PENDING false
     2017-01-14 12:34:29   1.ACTIVE_PROFILE 1
     2017-01-14 13:16:29   1.ACTUAL_TEMPERATURE 20.8
     2017-01-14 12:34:29   1.BOOST_MODE    0
     2017-01-14 13:16:29   1.FROST_PROTECTION false
     2017-01-14 13:16:29   1.HEATING_COOLING 0
     2017-01-14 13:16:29   1.HUMIDITY      43
     2017-01-14 13:16:29   1.PARTY_MODE    false
     2017-01-14 13:16:29   1.PARTY_SET_POINT_TEMPERATU 0.0
     2017-01-14 13:16:29   1.PARTY_TIME_END N/A
     2017-01-14 13:16:29   1.PARTY_TIME_START N/A
     2017-01-14 13:16:29   1.SET_POINT_MODE 0
     2017-01-14 13:16:29   1.SET_POINT_TEMPERATURE 19.0
     2017-01-14 13:16:29   1.SWITCH_POINT_OCCURED false
     2017-01-14 12:34:29   1.WINDOW_STATE  Closed
     2017-01-14 13:16:29   control         19.0
     2017-01-14 13:16:29   state           20.8
Attributes:
   IODev      ccu
   alexaName  Bad-Themostat
   ccureadingformat datapoint
   controldatapoint 1.SET_POINT_TEMPERATURE
   event-on-change-reading .*
   genericDeviceType thermostat
   homebridgeMapping TargetTemperature=1.SET_POINT_TEMPERATURE::1.SET_POINT_TEMPERATURE,,minValue=19,maxValue=23,minStep=0.5,cmd=control,nocache=true
CurrentTemperature=1.ACTUAL_TEMPERATURE
CurrentHeatingCoolingState=1.SET_POINT_MODE,values=OFF:1;HEAT:3;COOL:2;AUTO:0
TargetHeatingCoolingState=1.SET_POINT_MODE::1.SET_POINT_MODE,values=OFF:1;AUTO:0;HEAT:3;COOL:2,cmds=OFF:datapoint+1.CONTROL_MODE+1;HEAT:datapoint+1.BOOST_MODE+1;COOL:datapoint+1.BOOST_MODE+0;AUTO:datapoint+1.CONTROL_MODE+0
CurrentRelativeHumidity=1.HUMIDITY

   room       HMIP-Test,Homekit,alexa
   stateFormat Ist: 1.ACTUAL_TEMPERATURE° Soll: 1.SET_POINT_TEMPERATURE° Feuchte: 1.HUMIDITY%
   statechannel 1
   statedatapoint ACTUAL_TEMPERATURE
   stripnumber 1
   substexcl  control
   substitute LOW_BAT!(0|false):ok,(1|true):low;;WINDOW_STATE!(true|1):Open,(false|0):Closed
   webCmd     control
   widgetOverride control:slider,12.0,0.5,25.0,1


Musst du eigentlich nur auf deine Readings adaptieren.

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

wuast94

Zitat von: Chris8888 am 14 Januar 2017, 13:21:42
Hi,

also meine Thermostate (HmIP über CCU2) funktionieren (ohne CustomSkill) unter Alexa.
Hier eine Beispielkonfig:
Internals:
   CHANGED
   DEF        000A9569A3313B
   IODev      ccu
   NAME       HM_Badregler
   NR         624
   STATE      Ist: 20.8° Soll: 19.0° Feuchte: 43%
   TYPE       HMCCUDEV
   ccuaddr    000A9569A3313B
   ccudevstate Active
   ccuif      HmIP-RF
   ccuname    Badregler
   ccutype    HmIP-WTH-2
   channels   8
   statevals  devstate
   Readings:
     2017-01-14 13:16:29   0.CONFIG_PENDING false
     2017-01-14 13:16:29   0.DUTY_CYCLE    false
     2017-01-14 13:16:29   0.LOW_BAT       ok
     2017-01-14 13:16:29   0.OPERATING_VOLTAGE 2.9
     2017-01-14 13:19:06   0.RSSI_DEVICE   -64
     2017-01-14 13:16:29   0.RSSI_PEER     188
     2017-01-14 13:19:06   0.UNREACH       0
     2017-01-14 13:16:29   0.UPDATE_PENDING false
     2017-01-14 12:34:29   1.ACTIVE_PROFILE 1
     2017-01-14 13:16:29   1.ACTUAL_TEMPERATURE 20.8
     2017-01-14 12:34:29   1.BOOST_MODE    0
     2017-01-14 13:16:29   1.FROST_PROTECTION false
     2017-01-14 13:16:29   1.HEATING_COOLING 0
     2017-01-14 13:16:29   1.HUMIDITY      43
     2017-01-14 13:16:29   1.PARTY_MODE    false
     2017-01-14 13:16:29   1.PARTY_SET_POINT_TEMPERATU 0.0
     2017-01-14 13:16:29   1.PARTY_TIME_END N/A
     2017-01-14 13:16:29   1.PARTY_TIME_START N/A
     2017-01-14 13:16:29   1.SET_POINT_MODE 0
     2017-01-14 13:16:29   1.SET_POINT_TEMPERATURE 19.0
     2017-01-14 13:16:29   1.SWITCH_POINT_OCCURED false
     2017-01-14 12:34:29   1.WINDOW_STATE  Closed
     2017-01-14 13:16:29   control         19.0
     2017-01-14 13:16:29   state           20.8
Attributes:
   IODev      ccu
   alexaName  Bad-Themostat
   ccureadingformat datapoint
   controldatapoint 1.SET_POINT_TEMPERATURE
   event-on-change-reading .*
   genericDeviceType thermostat
   homebridgeMapping TargetTemperature=1.SET_POINT_TEMPERATURE::1.SET_POINT_TEMPERATURE,,minValue=19,maxValue=23,minStep=0.5,cmd=control,nocache=true
CurrentTemperature=1.ACTUAL_TEMPERATURE
CurrentHeatingCoolingState=1.SET_POINT_MODE,values=OFF:1;HEAT:3;COOL:2;AUTO:0
TargetHeatingCoolingState=1.SET_POINT_MODE::1.SET_POINT_MODE,values=OFF:1;AUTO:0;HEAT:3;COOL:2,cmds=OFF:datapoint+1.CONTROL_MODE+1;HEAT:datapoint+1.BOOST_MODE+1;COOL:datapoint+1.BOOST_MODE+0;AUTO:datapoint+1.CONTROL_MODE+0
CurrentRelativeHumidity=1.HUMIDITY

   room       HMIP-Test,Homekit,alexa
   stateFormat Ist: 1.ACTUAL_TEMPERATURE° Soll: 1.SET_POINT_TEMPERATURE° Feuchte: 1.HUMIDITY%
   statechannel 1
   statedatapoint ACTUAL_TEMPERATURE
   stripnumber 1
   substexcl  control
   substitute LOW_BAT!(0|false):ok,(1|true):low;;WINDOW_STATE!(true|1):Open,(false|0):Closed
   webCmd     control
   widgetOverride control:slider,12.0,0.5,25.0,1


Musst du eigentlich nur auf deine Readings adaptieren.

VG
Christian

welche attribute sind denn auschlaggebend dafür das alexa-fhem sie erkennt ?
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

n0bbi

Hallo,

bei mir scheiterts schon an den einfachsten Dingen... Welche IP hat denn dieser doofe Echo? Ich habe ein

nmap 192.168.178.* -p 3000

durchgeführt und keinen offenen Port gefunden. Auch im Browser habe ich alle IPs im Netzwerk mit Port 3000 durchprobiert und nichts gefunden.

Online ist das Teil aber irgendwie, also muss es ja da sein ;)

Vielen Dank

wuast94

Zitat von: n0bbi am 14 Januar 2017, 14:14:19
Hallo,

bei mir scheiterts schon an den einfachsten Dingen... Welche IP hat denn dieser doofe Echo? Ich habe ein

nmap 192.168.178.* -p 3000

durchgeführt und keinen offenen Port gefunden. Auch im Browser habe ich alle IPs im Netzwerk mit Port 3000 durchprobiert und nichts gefunden.

Online ist das Teil aber irgendwie, also muss es ja da sein ;)

Vielen Dank

den port musst du auf dein gerät freigeben auf dem du das alexa-fhem installierst :)
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

n0bbi

Zitat von: wuast94 am 14 Januar 2017, 14:16:06
den port musst du auf dein gerät freigeben auf dem du das alexa-fhem installierst :)

Ach bin ich doof, ergibt auch irgendwie mehr Sinn, danke dir :)

Leider kommts bei mir beim Starten noch zu folgender Fehlermeldung

pi@raspberrypi:~/alexa-fhem/bin $ ./alexa

/home/pi/alexa-fhem/lib/server.js:202
        for( var r of room.split(',') ) {
                   ^^
SyntaxError: Unexpected identifier
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/pi/alexa-fhem/lib/cli.js:3:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)



Die json.conf schaut so aus:

{
    "alexa": {
        "name": "Alexa TEST",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "192.168.178.1",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.??????",
        "oauthClientID": "amzn1.application-oa2-client.??????"
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "localhost",
            "port": "8083",
            "filter": "room=alexa"
        }
    ]
}


Den Fehler hatte hier schon mal jemand, aber leider keine Lösung dazu gepostet :(

wuast94

Zitat von: n0bbi am 14 Januar 2017, 14:31:57
Ach bin ich doof, ergibt auch irgendwie mehr Sinn, danke dir :)

Leider kommts bei mir beim Starten noch zu folgender Fehlermeldung

pi@raspberrypi:~/alexa-fhem/bin $ ./alexa

/home/pi/alexa-fhem/lib/server.js:202
        for( var r of room.split(',') ) {
                   ^^
SyntaxError: Unexpected identifier
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/pi/alexa-fhem/lib/cli.js:3:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)



Die json.conf schaut so aus:

{
    "alexa": {
        "name": "Alexa TEST",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "192.168.178.1",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.??????",
        "oauthClientID": "amzn1.application-oa2-client.??????"
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "localhost",
            "port": "8083",
            "filter": "room=alexa"
        }
    ]
}


Den Fehler hatte hier schon mal jemand, aber leider keine Lösung dazu gepostet :(

tipp mal node -v ein und guck ob deiner node version stimmt .. wenn nicht dann musst du dein node aktualisieren mit:


sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

n0bbi

Zitat von: wuast94 am 14 Januar 2017, 14:36:27
tipp mal node -v ein und guck ob deiner node version stimmt .. wenn nicht dann musst du dein node aktualisieren mit:


sudo npm cache clean -f
sudo npm install -g n
sudo n stable


Besten Dank, das wars! :)

Ich bekomme jetzt allerdings ein authentifizierungs-Problem. Umgangen habe ich es, indem ich eine eigene FHEMWEB-Instanz für Alexa angelegt habe und dort nur lokale Anfragen zulasse. Ist das schon die "Ideallösung"?

flolee

#1333
Zitat von: wuast94 am 13 Januar 2017, 18:12:59
Gibt es noch iwo die 1.8er version ? die 1.9er satretet bei mir nicht folgender code kommt beim starten

pi@raspberrypi:~/alexa-fhem $ ./bin/alexa

/home/pi/alexa-fhem/lib/server.js:202
        for( var r of room.split(',') ) {
                   ^^
SyntaxError: Unexpected identifier
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/pi/alexa-fhem/lib/cli.js:3:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)


habe genau das gleiche Problem (als Smart Home Skill).... was hast du genau geändert?

config:



{
    "alexa": {
        "name": "Alexa",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-upnp": true,
        "applicationId": "amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "oauthClientID": "amzn1.application-oa2-client.1903abb2accd4322a8XXXXXXXX"
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "filter": "room=alexa"
        }
    ]
}


EDIT: sorry, hatte die seite schon länger offen und zuerst noch etwas rumprobiert bevor ich das post abgeschickt habe, in der Zwischenzeit gabs die gleiche frage schon ;) ich probier mal den löschungsvorschlag oben!

EDIT2: Super, das war's auch bei mir! danke!!

justme1968

@dk3572: es geht mit jedem device bei dem homebridgeMapping passend gesetzt ist.

@wuast94, n0bbi: der fehler fürfor( var r of room.split(',') ) {bedeutet das eure node version zu alt ist. vermutlich 0.10.x statt mindestens 0.12.7. und das hat nichts mit der alexa-fhem version zu tun.

@baerbel: das smart home api kennt nur geräte die man ein- und ausschalten, dimmen und die temperatur einstellen kann. ein schloss hat keine On characteristic zum ein und aus schalten also wird sie nicht an den smart home skill durchgereicht. du must dir ein homebridgeMapping bauen das mit der On characteristic das macht was du willst. oder du steigst auf den custom skill um und kannst dann auch gleich vernünftige kommandos dafür konfigurieren.

@Tedious: ohne kreditkarte kein aws und kein smart home skill. der custom skill geht im prinzip auch mit einem passend konfigurierten eigenen server, es hat aber noch niemand probiert. aktuell geht aber auch nur oauth als authentifizierung und wenn du hierfür amazon verwenden willst weiss ich nicht ob das ohne kreditkarte geht.


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

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