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

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

Vorheriges Thema - Nächstes Thema

justme1968

es steht bestimmt dort und auch an anderer stelle im thread schon ein paar mal. die fehlermeldung sagt es auch: du musst dir skill id des custom skill im configfile unteraaplicationId eintragen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

axs77

Danke.

Ich hatte die ganze Zeit die falsche config bearbeitet, war im Notepad++ noch geöffnet.

::)
FHEM 5.8
CUL868
CUL433 a-culfw
RasPi -B

RaspiCOC

Zitat von: justme1968 am 06 Dezember 2016, 23:36:44
die nat-pmp und nat-upnp zeilen aus dem config file entfernen

Habe ich ins Wiki aufgenommen....

Borkk

Hallo Andre,

da ich mein FHEM auf einem RPI2 möglichst stabil halten möchte, habe ich weitere RPI2´s zum ausprobieren und testen. Ich habe nun auf einem separaten RPI2 die Homebridge installiert was einwandfrei funktioniert. Ich würde die "Alexa Bridge" jetzt ebenfalls auf diesen RPI installieren. Spricht aus deiner Sicht was dagegen Homebridge und Alex-Bridge auf einem RPI zu installieren. Oder ist es eher sinnvoll Alexa dich auf dem FHEM RPI laufen zu lassen.

vg
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

ZnarfMe

Hallo zusammen,

gibt es eigentlich auch eine Möglichkeit den Echo aus FHEM zu steuern? Ich würde gerne automatisiert einen Wecker stellen oder Musik abspielen.

Grüße
Franz

justme1968

@Borkk: das kann problemlos auf dem gleichen rechner laufen. demnächst wird sowieso beides zusammen gefasst und alexa-fhem wandert mit in homebridge-fhem.

@ZnarfMe: nein. das ist nicht möglich da es weder ein api dafür gibt noch bis jetzt jemand rausgefunden hat wie die echo app das macht.

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

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

lenn1

Hi,

habe Alexa am laufen und es funktioniert soweit ganz gut. Bis auf die Thermostate!
Ich nutze ZWave Thermostate von Devolo.
Dort ist nicht desired-temp der Befehl, sondern setpointHeating.
Gibt es die Möglichkeit das noch in alexa-fhem zu realisieren?

[2016-12-08 20:09:51] [FHEM] mappings for WohnzimmerThermostat: { BatteryLevel: { reading: 'battery' },
  StatusLowBattery:
   { reading: 'battery',
     threshold: 20,
     values: [ '0:BATTERY_LEVEL_LOW', '1:BATTERY_LEVEL_NORMAL' ] },
  CurrentTemperature: { reading: 'temperature', minValue: -30 },
  CurrentHeatingCoolingState: { default: 'HEAT' } }
[2016-12-08 20:09:51] [FHEM] WohnzimmerThermostat is thermostat
[2016-12-08 20:09:51] [FHEM] WohnzimmerThermostat is NOT a thermostat. set command for target temperature missing:
[2016-12-08 20:09:51] [FHEM] WohnzimmerThermostat has
[2016-12-08 20:09:51] [FHEM]   BatteryLevel [battery]
[2016-12-08 20:09:51] [FHEM]   StatusLowBattery [battery]
[2016-12-08 20:09:51] [FHEM]   CurrentTemperature [temperature]
[2016-12-08 20:09:51] [FHEM]   CurrentHeatingCoolingState [undefined]
  2016-12-08 20:09:51 caching: WohnzimmerThermostat-battery: 67 %
[2016-12-08 20:09:51] [FHEM] value2homekit: { '0': 'BATTERY_LEVEL_LOW', '1': 'BATTERY_LEVEL_NORMAL' }
  2016-12-08 20:09:51 caching: WohnzimmerThermostat-temperature: 19.91 C
[2016-12-08 20:09:51] [FHEM] default: HEAT

justme1968

schau dir an wie homebrideMapping funktioniert. im homebridge thread gibt es diverse beispiele für thermostate. etwas in der art sollte funktionieren:attr WohnzimmerThermostat homebridgeMapping TargetTemperature=setpointHeating::targetTemperature
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

lenn1

#728
Hat funktioniert. Danke !
Hab jetzt eine Gruppe "Wohnzimmer" mit den Geräten WohnzimmerThermostat und WohnzimmerDimmer
Wenn ich sage "Alexa, Stelle das Thermostat im Wohnzimmer auf 21 Grad" kommt als Antwort:

Ich bin nicht sicher, ob die Einstellung für die Beleuchtung oder das Thermostat in der Gruppe Wohnzimmer ist. sinngemäß.

:(
Gibts da n Trick bei der Benamung?

stinky23

Hallo,

hab nach etwas Gefuddel den Smart Home Skill mit nem Dummy am laufen - Danke, wirklich gute Arbeit!

Neben dem Echo läuft hier testweise ein RasPi als Zweit-Alexa (PS Eye als Mikrofon-Array <9 Eur angeschafft und alexa-avs-sample-app draufgebacken).  Verbunden ist der mit dem deutschen Account, spricht natürlich nur Englisch, ist aber wohl mit Amazon-US verheiratet.

Ist es trotzdem möglich, dass die Büchse Geräte über den Skill erkennt? Während es beim Echo läuft bekomme ich beim RasPi nichtmal ein Lambda-Event scheinbar?

cu
  gonz

Chaos

Ahoi,
Zitat von: gonz am 09 Dezember 2016, 00:10:36
Hallo,

hab nach etwas Gefuddel den Smart Home Skill mit nem Dummy am laufen - Danke, wirklich gute Arbeit!

Neben dem Echo läuft hier testweise ein RasPi als Zweit-Alexa (PS Eye als Mikrofon-Array <9 Eur angeschafft und alexa-avs-sample-app draufgebacken).  Verbunden ist der mit dem deutschen Account, spricht natürlich nur Englisch, ist aber wohl mit Amazon-US verheiratet.

Ist es trotzdem möglich, dass die Büchse Geräte über den Skill erkennt? Während es beim Echo läuft bekomme ich beim RasPi nichtmal ein Lambda-Event scheinbar?

cu
  gonz
US läuft über nen anderen Server, evtl liegt es daran:
Zitat von: Chaos am 08 November 2016, 18:47:49
Ahoi,

so kurzer Zwischenstand von mir (auch wenn es vermutlich nur sehr wenige interessiert).

Die erste Rolllade funktioniert mit nem Dot2 auf deutsch und einem Dot2 auf US Englisch.
Sollte jemand auf die wahnwitzige Idee kommen den Dot auf US Englisch zu betreiben, so muss der Lambdaserver dafür der "US East (N. Virginia)" sein. Ansonsten passiert einfach nix.

MfG
Manuel
MfG
Manuel

Mathea

#731
Hallo justme1968,

nimmst du Wünsche in die Entwicklung von Alexa-Fhem und Homebridge auf?

Gibt es eine Möglichkeit, dass die Alexa- und Homebridge Module eine Rückmeldung an fhem geben, dass ein Gerät gerade durch eines der Module geschaltet wurde? Ich möchte gerne mit fhem darauf reagieren, wenn ein Gerät durch eine externe Quelle (Alexa / Siri) geschaltet wurde und daraufhin meine Lichtautomatik abschalten. Im Moment kann man nämlich nicht aus den Events herauslesen, was die Quelle eines Schaltvorganges war (Lichtautomatik oder "manueller" Schaltvorgang durch den Nutzer).

Falls das nicht geht: Könnte ich für jedes Device, das ich über Sprache steuern möchte, einen ReadingsProxy anlegen und im Eventmanager unterscheiden, ob meine Lichtautomatik gerade das physikalische Gerät oder z.B. Alexa den ReadingsProxy geschaltet hat?

stinky23

Zitat von: Chaos am 09 Dezember 2016, 12:01:11
Ahoi,US läuft über nen anderen Server, evtl liegt es daran:MfG
Manuel

(Hatte den Thread zwar komplett gelesen, diesen Part aber wohl verdraengt, sorry!)

Vielen Dank fuer den Hinweis, probiere ich aus und teile das Ergebnis mit!

justme1968

@Mathea: in meiner version hier erzeugt das alexa device schon events wenn ein intent gestartet wird. darüber kann man feststellen ob alexa gerade benutzt wird. es ist aber (noch) keine verknüpfung möglich ob ein kommando das gerade abgearbeitet wird auch über alexa gekommen ist. events die nicht vom gleichen device kommen sind prinzipiell unabhängig.

der weg über einen readingsProxy ist möglich. aber du erkennst es ebenfalls nicht an den events sondern müsstest dann im proxy ein flag setzen bzw. dort passend reagieren.

der einfachere weg ist aber über das homebridgeMapping für cmdOn und cmdOff direkt kommandos zu konfigurieren die z.b. die automatik vorher abschalten. vermutlich am einfachstenmit hilfe von cmdalias. das müsste auch generell gehen. d.h. du definierst dir mit cmdalias jeweils ein set .* onX und set .* offX kommando das zuerst die automatik deaktiviert und dann das eigentlich eon oder off macht.

die unterscheidung ob etwas manuell oder durch eine automatik ausgelöst wurde ist aber ein prinzipielles problem für das es keine allgemein gültige lösung gibt.es gibt diverse threads dazu. es läuft immer irgendwie darauf hinaus das man es selber im jeweiligen frontend das zur bedienung verwendet wird vorsehen muss.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

visionsurfer

Hallo,

ich hab es nun mit etwas Unterstützung hinbekommen eine Lichtszene mit readingsProxy als extra Device anzulegen. Wenn ich den ON Button im FHEMweb drücke, startet dann auch die Lichtszene. Wenn ich auf OFF drücke, wird quasi die Szene gestartet die ich als "ende" hinterlegt habe (in meinem Fall kochen_ende). Also per Button funktioniert es super.

Nun hab ich es dann dem Alexa Room zugeordnet und auch durch die Alexa APP suchen lassen. Das neue Gerät wurden sofort gefunden.

Der Aliasname ist "kochen".

Wenn ich nun sage: "Alexa, schalte kochen an" startet Alexa wunderbar meine Szene. So wie ich es haben will. Leider funktioniert nicht "Alexa, starte kochen". Da passiert gar nichts.

Das Hauptproblem ist aber das wenn ich sage "Alexa, schalte kochen aus", nichts passiert. Wenn ich dann den Off Button im FHEM web drücke, ist es sofort beendet.

Warum funktioniert das einschalten aber nicht das ausschalten ?

Mein List von dem Device sieht so aus:


Internals:
   CFGFN
   DEF        lichtszene_kueche:kochen_kochen
   DEVICE     lichtszene_kueche
   NAME       kochen_kochen_proxy
   NR         5704
   NTFY_ORDER 50-kochen_kochen_proxy
   READING    kochen_kochen
   STATE      Kochen_ende
   TYPE       readingsProxy
   Content:
     lichtszene_kueche 1
   Readings:
     2016-12-09 17:40:19   lastCmd         off
     2016-12-09 17:30:40   state           Kochen_ende
Attributes:
   alias      Kochen
   devStateIcon on:control_on_off@green off:control_standby
   event-on-change-reading .*
   genericDeviceType switch
   room       Alexa,Kueche
   setFn      { return 'scene kochen_kochen' if( $CMD eq 'on' ); return 'scene kochen_ende'; }
   setList    on off
   valueFn    { return 'on' if( $VALUE eq 'kochen_kochen' ); return 'kochen_ende'; }


Grüße,
Visionsurfer