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

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

Vorheriges Thema - Nächstes Thema

justme1968

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

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

MadMax-FHEM

Zitat von: justme1968 am 29 September 2019, 19:33:49
hab ich doch oben schon beantwortet :)

es sollte gehen.

Ok... ;)

EDIT: mich hatte nur das hier verwirrt https://forum.fhem.de/index.php/topic,81324.msg978920.html#msg978920
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)

Toto1973

#857
JUHUUUUUU... :-)
Ich hab es geschafft.

So sieht nun mein Dummy aus:
Internals:
   FUUID      5d8f1ac4-f33f-206e-8f3a-8c547ad6c4781d3e
   NAME       dreamscreen_dummy
   NR         680
   STATE      AUX 2
   TYPE       dummy
   READINGS:
     2019-09-29 22:02:56   state           AUX 2
Attributes:
   alexaName  Umschalter
   alexaRoom  Wohnzimmer
   alias      DreamScreen 4K
   comment    Alexa schalte Umschalter auf (INPUT)
   genericDeviceType media
   group      TV
   homebridgeMapping InputController:reading=state,values=HDMI+1;HDMI+2;HDMI+3;AUX+1;AUX+2
   room       Wohnzimmer
   webCmd     HDMI 1:HDMI 2:HDMI 3:AUX 1:AUX 2

Daszu noch das DOIF:
Internals:
   DEF        ([dreamscreen_dummy] eq "AUX 2") (({system('/opt/fhem/DreamScreenComander.py -m 1&');;}))
DOELSEIF ([dreamscreen_dummy] eq "AUX 1") ({system('/opt/fhem/DreamScreenComander.py -m 2&');;})
DOELSEIF ([dreamscreen_dummy] eq "HDMI 1") ({system('/opt/fhem/DreamScreenComander.py -s 0&');;})
DOELSEIF ([dreamscreen_dummy] eq "HDMI 2") ({system('/opt/fhem/DreamScreenComander.py -s 1&');;})
DOELSEIF ([dreamscreen_dummy] eq "HDMI 3") ({system('/opt/fhem/DreamScreenComander.py -s 2&');;})

   FUUID      5d8f1c00-f33f-206e-db8c-6cc062b1435738c0
   MODEL      FHEM
   NAME       dreamscreen_doif
   NR         681
   NTFY_ORDER 50-dreamscreen_doif
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-09-29 22:02:56   Device          dreamscreen_dummy
     2019-09-29 22:02:56   cmd             1
     2019-09-29 22:02:56   cmd_event       dreamscreen_dummy
     2019-09-29 22:02:56   cmd_nr          1
     2019-09-29 22:02:56   e_dreamscreen_dummy_STATE AUX 2
     2019-09-29 22:02:56   error           {system('/opt/fhem/DreamScreenComander.py -m 1&');;}: -1
     2019-09-29 22:02:12   mode            enabled
     2019-09-29 22:02:56   state           cmd_1
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "AUX 2"
     1          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "AUX 1"
     2          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "HDMI 1"
     3          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "HDMI 2"
     4          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "HDMI 3"
   devices:
     0           dreamscreen_dummy
     1           dreamscreen_dummy
     2           dreamscreen_dummy
     3           dreamscreen_dummy
     4           dreamscreen_dummy
     all         dreamscreen_dummy
   do:
     0:
       0          ({system('/opt/fhem/DreamScreenComander.py -m 1&');;})
     1:
       0          {system('/opt/fhem/DreamScreenComander.py -m 2&');;}
     2:
       0          {system('/opt/fhem/DreamScreenComander.py -s 0&');;}
     3:
       0          {system('/opt/fhem/DreamScreenComander.py -s 1&');;}
     4:
       0          {system('/opt/fhem/DreamScreenComander.py -s 2&');;}
     5:
   helper:
     event      AUX 2
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   dreamscreen_dummy
     timerevent AUX 2
     triggerDev dreamscreen_dummy
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: dreamscreen_dummy
       error: {system('/opt/fhem/DreamScreenComander.py -m 1&');;}: -1
       state: cmd_1
     timerevents:
       AUX 2
     timereventsState:
       state: AUX 2
     triggerEvents:
       AUX 2
     triggerEventsState:
       state: AUX 2
   internals:
     0           dreamscreen_dummy:STATE
     1           dreamscreen_dummy:STATE
     2           dreamscreen_dummy:STATE
     3           dreamscreen_dummy:STATE
     4           dreamscreen_dummy:STATE
     all         dreamscreen_dummy:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   group      Sonstiges
   room       DOIFs


Wie man sehen kann, sind die Values vorgegeben. Das heißt, man kann nur diese Values https://developer.amazon.com/de/docs/device-apis/alexa-property-schemas.html#input verwenden. Wer damit leben kann, hat nun die Möglichkeit, über den State und einem DOIF oder notify Dinge zu schalten.
Sagen kann man dann: "Alexa, schalte Umschalter (Dummyname) auf HDMI 1 (VALUE)". Der VALUE (hier HDMI 1) wird dann als state in das Dummy geschrieben.

In meinem Beispiel wird im DOIF das Python Script "DreamScreenComander.py" mit verschiedenen Parametern "geschalten".

Manchmal liegt es so Nahe, wenn man weiß, was man wo eintragen muss :-)
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

MadMax-FHEM

Gratuliere!

Würdest du noch das komplette Konstrukt (also Dummy und DOIF evtl. auch mit Erläuterung was sprachlich geht) hier posten oder deinen Post um das DOIF (und die "Sprachinfos") ergänzen, DANKE!

Macht es leichter darauf zu verweisen (bei Bedarf) als wenn man schreiben muss: hier ist das DOIF welches mit dem Dummy von da funktioniert ;)

Viel Spaß noch, 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)

Toto1973

Ich lasse noch nicht locker!

Ich versuche nun durch Mapping oder ähnlichem, Alexa beizubringen, das sie statt AUX 1 z.B. Musik als Wort akzeptiert. Nur bekomme ich das im Moment noch nicht hin.
Kennt sich jemand mit diesem mapping gut aus?
Wo muss ich denn da ansetzen?
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

justme1968

das geht wie gesagt in deutschland noch nicht.

zum eingang umschalten gehen nur die dokumentierte begriffe.

eine allgemeine frei konfigurierbare auswahl geht bisher nur in amerika.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Toto1973

Achso!
OK, dann warten wir mal ab. Weil wenn das geht, kann man ja quasi grenzenlos schalten und walten :-)
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

Panik

Hallo,

ich habe kürzlich den "FHEM Connector für Amazon Alexa" installiert und die ersten Tests waren erfolgreich
bzw. Geräte lassen sich gut steuern.

Was ich nicht ganz blicke, sind die voreingetragenen Werte für FHEMIntents:

#IntentName=<sample utterance>\
gutenMorgen=guten morgen\
guteNacht=gute nacht\


Was kann ich damit anfangen? Irgendwo hat da auch jemand so ein Construct eingesetzt:
{alexastatusBatterie()}=ob batterien leer sind|welche batterien leer sind|sind batterien leer

Muss ich mich da noch in die Thematik "CostumSkill" einarbeiten oder kann da der installierte FHEM Connector + Vereinsserver
schon solche Abfragen bedienen. Und wenn ja, wie ?
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

MadMax-FHEM

Die Sachen (ebenso wie alexaRoom [Ausnahme: Strukturen etc.]) sind nur für den Custom Skill!

Damit kann der fhem Connector nix anfangen.

D.h. du musst dich (wenn du das nutzen willst) in Custom Skill einarbeiten, bei Amazon eigenes Lambda anlegen, DynDNS etc. Portfreigabe/-weiterleitung und dann die Custom Skill Sachen in die autom. generierte config.json eintragen.

Oder dir mal Routinen anschauen...
...evtl. zusammen mit dem echodevice-Modul.

Damit gehen viele Dinge wozu es vorher unbedingt einen Custom Skill gebraucht hat...

EDIT: die Batterieabfrage ginge damit problemlos...

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)

Panik

Hallo MadMax,

also mit den Routinen klappt es ganz gut. Hatte ich gar nicht auf dem Schirm. DANKE!

Panik
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

cozwei

Hallo zusammen

Da ich mich nun wirklich lange abgekämpft habe um mein Deckenlicht mit Alexa (wieder) steuern zu können, hier ein funktionierendes Beispiel.

Definition der Deckenlampe:

define KUE.Deckenlampe KNX 0/0/1:dpt1.001
setuuid KUE.Deckenlampe 5c711dab-f33f-438e-97fe-e9484a5b8d9b93ba
attr KUE.Deckenlampe IODev KNX
attr KUE.Deckenlampe alexaName Kuechenlicht
attr KUE.Deckenlampe alias Deckenlampe
attr KUE.Deckenlampe devStateIcon (on)|([Ee]in):general_an:Aus (off)|([Aa]us):general_aus:Ein
attr KUE.Deckenlampe eventMap /g1 on:Ein/g1 off:Aus/
attr KUE.Deckenlampe genericDeviceType light
attr KUE.Deckenlampe icon light_wall_1
attr KUE.Deckenlampe room alexa,Homekit,Kueche
#attr KUE.Deckenlampe verbose 5
attr KUE.Deckenlampe webCmd on:off

(wird alleine nicht in Alexa gefunden)

list KUE.Deckenlampe

Internals:
   DEF        0/0/1:dpt1.001
   DEVNAME    KUE.Deckenlampe
   FIRSTGADNAME g1
   FUUID      5c711dab-f33f-438e-97fe-e9484a5b8d9b93ba
   GETSTRING  g1:noArg
   IODev      KNX
   NAME       KUE.Deckenlampe
   NR         31
   NTFY_ORDER 50-KUE.Deckenlampe
   SETSTRING  g1:off,on
   STATE      on
   TYPE       KNX
   GADDETAILS:
     g1:
       CODE       00001
       GROUP      0/0/1
       MODEL      dpt1.001
       NO         1
       OPTION     
       RDNAMEGET  getG1
       RDNAMEPUT  putG1
       RDNAMESET  setG1
       SETLIST    :off,on
   GADTABLE:
     00001      g1
   READINGS:
     2019-10-06 23:19:06   last-sender     fhem
     2019-10-06 23:17:34   readonly-set    off
     2019-10-06 23:19:06   setG1           on
     2019-10-06 23:19:06   state           on
Attributes:
   IODev      KNX
   alexaName  Kuechenlicht
   alias      Deckenlampe
   devStateIcon (on)|([Ee]in):general_an:Aus (off)|([Aa]us):general_aus:Ein
   eventMap   /g1 on:Ein/g1 off:Aus/
   genericDeviceType light
   icon       light_wall_1
   room       alexa,Homekit,Kueche
   verbose    5
   webCmd     on:off


Benötigt wird ein Dummy (hier im Beispiel "Fluter") der in Alexa gefunden wird:

define Fluter dummy
attr Fluter alexaName Deckenfluter
attr Fluter alexaRoom Kueche
attr Fluter alias Deckenfluter
attr Fluter event-on-change-reading .*
attr Fluter icon light_wall_1
attr Fluter room alexa,Kueche
attr Fluter setList off on
attr Fluter devStateIcon (on)|([Ee]in):general_an:Aus (off)|([Aa]us):general_aus:Ein


list Fluter

Internals:
   FUUID      5d9a59ed-f33f-438e-0a11-40d9f84ad999c3e7
   NAME       Fluter
   NR         68
   STATE      on
   TYPE       dummy
   READINGS:
     2019-10-06 23:19:06   state           on
Attributes:
   alexaName  Deckenfluter
   alexaRoom  Kueche
   alias      Deckenfluter
   devStateIcon (on)|([Ee]in):general_an:Aus (off)|([Aa]us):general_aus:Ein
   event-on-change-reading .*
   icon       light_wall_1
   room       alexa,Kueche
   setList    off on


Alexa wird nun die "ein" und "aus" Kommandos an den Dummy weiterleiten. Damit dieser dann auch noch das Küchenlicht schaltet, braucht es einen

Notify:

define fluterchange notify Fluter.*:(off|on) { fhem "set KUE.Deckenlampe $EVENT" }


Für Verbesserungsvorschläge (ausser der offensichtlich noch schlechten Benennung des Dummy und notify), bin ich gerne offen  :).

Beste Grüße
cozwei

PS: so ein Beispiel im Wiki wäre sehr hilfreich, kann gerne übernommen werden.

justme1968

es ist niemals ein dummy nötig.

passend gestzte genericDeviceType und homebrisgeMapping attribute im device reichen zum schalten.

in deinem fall light und On=<reading>,cmdOn=<kommando für an>,cmdOff=<kommando für aus>,valueOn=<wert bei an>

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

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

Toto1973

#867
Hallo!
Ich wieder...  ;D
Ich habe ein ein Wecker in FHEM. zu diesem gehört ein Dummy, mit dem ich eine Weckzeit einstellen kann.
Nun würde ich gerne die Weckzeit per Alexa stellen lassen.
Geht das generell oder würde da wieder der Custom Skill benötigt werden?

Internals:
   FUUID      5c4ad8b6-f33f-206e-2fa4-6c1a7acc3f499cab
   NAME       wakeUp_dummy
   NR         204
   STATE      09:00
   TYPE       dummy
   READINGS:
     2019-10-08 00:30:00   state           09:00
Attributes:
   alexaName  Weckzeit
   alexaRoom  Schlafzimmer
   alias      Weckzeit
   genericDeviceType wecker
   group      Weckereinstellung
   homebridgeMapping Weckzeit=state,cmd=+
   icon       time_timer@yellow
   room       1.5 Schlafzimmer
   setList    state:time
   webCmd     state
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

justme1968

aktuell nur mit einem custom skill.

eventuell mit etwas tricksen über das andere alexa modul.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Zitat von: justme1968 am 08 Oktober 2019, 10:50:44
aktuell nur mit einem custom skill.

eventuell mit etwas tricksen über das andere alexa modul.

Jep, ich glaube da hat jemand was "gebastelt"...
...hier der Thread: https://forum.fhem.de/index.php/topic,82631.0.html

Eher gegen Mitte/Ende... ;)

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)