alexa-fhem test version mit ModeController support

Begonnen von justme1968, 20 Januar 2022, 19:42:00

Vorheriges Thema - Nächstes Thema

justme1968

ich habe eben eine test version von alexa-fhem mit unterstützung für ModeController gepublished.

damit kann man in der alexa app aus einem frei konfigurierbaren drop down auswählen.

die mode auswahl ist im prinzip zusätzlich zu anderen dingen wie ein- und ausschalten möglich. welche kombinationen tatsächlich gehen und auch in der alexa app dargestellt werden weiss ich nocht nicht.

ausser diesem posting hier gibt es noch keine doku. bitte probieren und ideen entwickeln :)

mit einer definition wie dieser: defmod kino dummy
attr kino devStateIcon on:control_on_off: off:control_home:
attr kino genericDeviceType mode
attr kino homebridgeMapping ModeController:mode,cmd=mode,mode=status,values=start;;play;;pause;;stop On=state,cmdOn=on,cmdOff=off
attr kino readingList mode
attr kino setList on off mode:start,play,pause,stop
attr kino webCmd on:off:mode

setstate kino off
setstate kino 2022-01-19 20:09:51 mode stop
setstate kino 2022-01-19 20:09:51 state off
und einem notify:
Zitatdefmod watchKino notify kino:.* {\
  if( $EVTPART0 eq 'on') {\
    fhem( 'sleep 0.1 ;; set kino mode start' );;\
   \
  } elsif( $EVTPART0 eq 'off') {\
    fhem( 'sleep 0.1 ;; set kino mode stop' );;\
   \
  } elsif( $EVTPART0 eq 'mode:') {\
    if( $EVENT =~ /start/ ) {\
     startKino();;\
     \
    } elsif( $EVENT =~ /stop/ ) {\
     stopKino();;\
     \
    }\
  }\
}

kann man in der alexa app neben ein- und ausschalten noch einen mode namens status aus einer liste auswählen. ein und aus ändert den mode ebenfalls zu start bzw. stop

das ganze kann man auch mit routinen in der alexa app kombinieren.

in diesem fall bietet sich z.b. ein alexa, kino an das das device einschaltet oder direkt den mode start setzt.

alexa, kino status pause geht direkt, mit alexa, kino pause hatte ich auch schon glück.

alexa, kino aus geht automatisch

wie im beispiel oben zu sehen ist gibt man mit  mode= den namen der angezeigt werden soll an und mit values die möglichen werte. wenn man im menü etwas anderes als den direkten wert anzeigen möchte kann man jeweils wert:anzeige verwenden

das ganze ist auf amazon seite ziemlich flexibel und mit etwas fantasie müsste es möglich sein in gewissem umfang eigene kommandos damit zu erzeugen. eine genaue beschreibung mit beispielen findet sich hier: https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-modecontroller.html.

das api unterstützt auch mehrer ModeController in einem device. aktuelle alexa-fhem Implementierung unterstütz nur strings und (noch ?) keine assets (d.h. die vordefinierten kategorien).

das ist aber in alexa-fhem noch nicht implementiert und ich weiss nicht wie die alexa app damit umgeht.

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

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

balli1187

Hört sich spannend an.
"Gepublished" heist es ist über das normale Update in fhem zu beziehen, richtig?
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

MadMax-FHEM

Zitat von: balli1187 am 21 Januar 2022, 07:20:08
Hört sich spannend an.
"Gepublished" heist es ist über das normale Update in fhem zu beziehen, richtig?

Eher update von alexa-fhem, also dem nodejs, siehe Wiki alexa-fhem Connector...

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)

slupus

Danke justme, damit kann ich nun einige Dummy Devices in einem zusammenführen  :)
Dein Beispiel funktioniert bei mir einwandfrei, ohne das Wort status im Befehl nutzen zu müssen.

Besteht die Möglichkeit, auch direkt das Reading state zu setzen? Das würde das Auslesen und Setzen (wenn nicht über Alexa) ein wenig vereinfachen. Ich habe das Attribut setList angepasst (state:on,off,...) und das Attribut readingList entfernt. Im Attribut homebridgeMapping habe ich verschiedene Varianten probiert, habe es aber nicht geschafft state korrekt zu setzen.

justme1968

mir fällt auf die schnelle nichts ein das mit state nicht gehen würde. was genau möchtest du denn manchen und was geht daran nicht? mach doch am besten mal ein beispiel.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

slupus

Ich ziehe meine Frage zurück. HAbe das Device heute gelöscht und neu angelegt, jetzt funktioniert es wie gewünscht: Der Alexa Befehl ändert das Reading state.
Somit kann ich an anderen Stellen einfach set licht_modus <Wert> verwenden und den Wert auch einfach in Perl mit Value("licht_modus") auslesen. Ich könnte zwar auch ohne Probleme das Reading mode verwenden, aber ich bin schreibfaul.

Anbei mein Device, falls sich jemand daran orientieren möchte. Keine Ahnung, ob attr homebridgeMapping korrekt ist, aber es funktioniert :)

defmod licht_modus dummy
attr licht_modus alexaName Lichtmodus
attr licht_modus event-on-change-reading state
attr licht_modus genericDeviceType mode
attr licht_modus group Überwachungsstatus
attr licht_modus homebridgeMapping ModeController:state,mode=state,values=standard;;besuch;;essen;;film;;manuell On=mode,cmdOn=on,cmdOff=off
attr licht_modus room 0_Status,93_Alexa
attr licht_modus setList state:on,off,standard,besuch,essen,film,manuell
attr licht_modus webCmd state

MadMax-FHEM

Zitat
Perl mit Value("licht_modus") auslesen. Ich könnte zwar auch ohne Probleme das Reading mode verwenden, aber ich bin schreibfaul.

Dann aber nicht wundern, wenn du mal z.B. die Webansicht "aufhübschen"/ändern willst und stateFormat verwendest und dann eben Value() nicht das liefert, was du erwartest...

Weil: Value() "frägt" STATE (das INTERNAL) ab und nicht state (das Reading)!

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)

locodriver

Bei mir ist der Eintrag "mode" im Auswahlfeld "gDT" nicht vorhanden.

Kann man diesen gDT nur im Eingabefeld von fhem eingeben?


Etwas OT: lässt sich auch der "RangeController" in fhem integrieren? Dieser scheint auch sehr vielseitig einsetzbar zu sein?

fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

justme1968

der range controller wird für die rollladen integration schon verwendet. ich hatte bisher noch keine idee wie man
ihn auch von hand per mapping konfigurieren kann da es recht umfangreich ist und es auch einige abhängigkeiten der parameter untereinander gibt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

locodriver

fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

locodriver

ZitatBei mir ist der Eintrag "mode" im Auswahlfeld "gDT" nicht vorhanden.

Kann man diesen gDT nur im Eingabefeld von fhem eingeben?
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

MadMax-FHEM

Zitat von: locodriver am 07 August 2022, 14:00:38
Bei mir ist der Eintrag "mode" im Auswahlfeld "gDT" nicht vorhanden.

Kann man diesen gDT nur im Eingabefeld von fhem eingeben?

Du kannst auch das userattr unter global erweitern, dann steht es auch als Auswahl im Dropdown zur Verfügung... 8)

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)

locodriver

@MadMax-FHEM: Danke, das hatte ich nicht auf dem "Schirm"...
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

der.einstein

Hallo,
ich hab folgendes probiert. Aber ohne Erfolg:

defmod Saugroboter_Archie_dummy dummy
attr Saugroboter_Archie_dummy alexaName Archie
attr Saugroboter_Archie_dummy genericDeviceType mode
attr Saugroboter_Archie_dummy homebridgeMapping ModeController:state,mode=state,values=Erdgerschoss;;Eingangsbereich;;Wohnzimmer;;Esszimmer;;Flur;;Couch;;Wohnbereich On=mode,cmdOn=on,cmdOff=off
attr Saugroboter_Archie_dummy room EG->Flur
attr Saugroboter_Archie_dummy setList state:on,off,Erdgeschoss,Eingangsbereich,Wohnzimmer,Esszimmer,Flur,Couch,Wohnbereich
attr Saugroboter_Archie_dummy webCmd state

setstate Saugroboter_Archie_dummy on
setstate Saugroboter_Archie_dummy 2022-11-22 17:51:08 state on


Ich habe einen Botvac D9 mit dem Botvac Modul laufen. Das funktioniert sehr gut.
Jetzt wollte ich das auch über Alexa probieren. Hierfür schien mir ModeController gut geeignet, denn ich würde ihnen halt dann den Dummy auf das jeweilige Zimmer setzen und das könnte die jeweilige Reinigung am Roboter triggern.
Leider schaltet Alexa den Dummy nur bei An und Aus bzw. in und Off

Warum ist das so?
Was einer Rat?

FHEM und Alexa-Fhem habe ich gestern aktualisiert. Ich verwende den Fhem-Connector.

Danke euch  8)

MadMax-FHEM

Aktuell kann ich nicht nachschauen was der modeController "kann" (und ob er in alexa-fhem implementiert ist)...

Generell gilt: man kann Alexa (auch mit homebridgeMapping) nichts "beibringen" was nicht verstanden wird. Das musst du bei Amazon nachschauen, Link im Wiki. Was dort nicht aufgeführt ist geht nicht.

Das homebridgeMapping passt "nur" Befehle bzw. Zustände zwischen Amazon und fhem an (mehr 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)