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 (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.
Hört sich spannend an.
"Gepublished" heist es ist über das normale Update in fhem zu beziehen, richtig?
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
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.
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.
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
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
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?
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.
Danke für die "Aufklärung"... :)
ZitatBei mir ist der Eintrag "mode" im Auswahlfeld "gDT" nicht vorhanden.
Kann man diesen gDT nur im Eingabefeld von fhem eingeben?
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
@MadMax-FHEM: Danke, das hatte ich nicht auf dem "Schirm"...
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)
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
Ich habe mir gerade mit dem aktuellen fhem-alexa connector das Beispiel von justme in mein fhem kopiert.
In der App sehe ich das device und kann auch via drop down die verschiedenen Modi auswählen.
Mit der Sprach Steuerung funktioniert das allerdings nur sehr bedingt. Alexa ruft bei "Alexa Kion Start" immer das aktuelle Kino Program auf :-)
Ein Umbenennen in der AlexaApp auf Alarm hat schon mal dazu geführt, dass Start, Pause und Play funktionieren.
Sage ich "Alexa, Alarm stop" meldet sie zurück "Alarm unterstützt das nicht." (In der App kann ich stop einstellen)
Auch scheinen keine anderen Stati zu gehen als start, play, pause, stop.
Ein eingefügtes Manuell oder Automatik zeigt keine Wirkung. Das Gerät springt in der App dann auf Status Festlegen.
Mir ist noch aufgefallen, dass ich in Fhem im Dropdown für genericDeviceType "mode" nicht auswählen kann. In der Alexa App wird das Gerät als "Typ Sonstiges" angezeigt.
Das mit dem Sprechen ist "Übung", da muss man etwas probieren.
Habe auch festgestellt (typ media), dass sich das auch immer wieder mal ändert (also was ich sprechen muss)...
Auch ist Alexa ab und an (vermeintlich) "superschlau" und macht nicht wirklich was sie soll, obwohl exakt verstanden.
Also exakt das Gerät verstanden, trotzdem wird auf einem anderen Echo z.B. eine andere Musik gestartet, gestoppt (weil dort gerade was läuft) oder eben auch geantwortet: unterstützt das nicht...
Wenn ich dann exakt dasselbe noch mal sage klappt es (manchmal "trotzdem" ;) )...
Kurz: man kann nicht sagen was man selber will, sondern muss so sprechen, wie es Alexa will/versteht...
Das mit dem Attribut: entweder die Liste unter "global" (userattr) anpassen oder einfach per FhemWeb-cmd eingeben:
attr DeviceName genericDeviceType mode
Wichtig: das Attribut wird, wie auch homebridgeMapping, von verschiedenen Sprachsteuerungen genutzt. Nicht alles geht...
Gruß, Joachim
Hallo,
ich verzweifle gerade am modeController...
Ich habe das Beispiel von vorne 1:1 definiert:
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
Irgendwie fehlt aber doch der "alexaName"?
Wenn ich den noch hinzufüge
attr kino alexaName kino
und dann alexa-fhem neu starte
set alexa restart
... dann wird die SSH Verbindung immer wieder kurz aufgebaut und fällt dann wieder runter (
Readings:
alexaFHEM stopped
alexaFHEM.ProxyConnection stopped
Im log finde ich nichts dazu, keine Fehlermeldung.
Wenn ich das attr homebridgeMapping lösche, dann läuft alexa-fhem sofort wieder stabil...
Was mache ich falsch?
(System und fhem sind aktuell)
Hallo,
ich hatte bei der Migration von Raspberry Pi3 auf Pi5 auch dieses Problem mit alexa-fhem und ModeController-Devices. Nachdem ich den Ordner /usr/local/lib/node_modules/alexa-fhem/lib vom Alt- auf das Neusystem kopiert hatte, lief wieder alles.
Der Inhalt des Ordners ist im Anhang. Du kannst ja Mal probieren, ob es bei dir auch das Problem löst.
Hi,
Danke - aber das ist eine "wilde" Lösung.
Ich habe alexa-fhem sauber neu installiert, da jetzt eine ältere Version drüber-"patchen" klingt abenteurlich.
Mein libs liegen (ubuntu) unter /usr/lib, in /usr/local/lib waren vorher Überbleibsel alter Installationen. Habe ich alles bereinigt.
Welche Version von alexa-fhem läuft bei Dir? Mit 0.5.61 habe ich keine Abstürze, wenn ich auf 0.5.65 umschalte schon. Die 0.5.65 hat aber halt den modeController Support an Bord.
Danke aber für den Tipp, ich probiere das mal.
Update: Deine libs sind nicht aus der aktuellen Version 0.5.65, sondern vermutlich aus der 0.5.61. Die kann keinen ModeController. Mit Deinen libs crashed alexa-fhem zwar nicht, aber mode geht halt auch nicht :(
Zitat von: hapege am 02 Oktober 2025, 15:44:02Im log finde ich nichts dazu, keine Fehlermeldung.
Poste bitte mal trotzdem das Log, auch wenn dir erstmal nichts auffällt; irgendwas muss da ja geloggt werden, wenn die SSH-Verbindung gestoppt wird.
Ansonsten füge bitte mal das homebridgeMapping so hinzu und mach dann mal ein
set alexa reloadund dann poste aus dem Log mal die Stellen, in denen
kino auftaucht. Während dem reload werden nämlich die einzelnen Devices bei Amazon "angemeldet" und da wird relativ detailliert aufgeschlüsselt a) was genau zu Amazon übermittelt wird und b) was Amazon zurückgibt, also wie Amazon die Geräte bei sich registriert.
Im Zweifel mal mehr aus dem Log posten als du denkst, dass es notwendig ist, vielleicht liegt der Teufel da irgendwo im Detail.
Wenn ich demnächst Zeit habe kann ich selbst mal probieren das bei mir zu definieren, habe (noch) keine Erfahrung mit ModeController, aber vielleicht schaffe ich es den Fehler zu reproduzieren.
Hallo,
installiert ist bei mir die Version 0.5.65 in /usr/local/bin/alexa-fhem. Ich hatte damals ein Fhem-Backup auf einem neu aufgesetztem Debian Bookworm eingespielt und alexa-fhem nach FHEMWiki "FHEM Connector für Amazon Alexa" installiert. Leider funktionierte es wegen ModeController-Devices nicht (https://forum.fhem.de/index.php?msg=1335140), aber mit dem Überschreiben von /usr/local/lib/node_modules/alexa-fhem/lib ging wieder alles.
Soweit ich mich erinnern kann, habe ich das Kino-Beispiel in 2022 nicht zum Laufen bekommen, andere ModeController-Devices schon.
Hi,
wenn Du die alten libs drüberkopiert hast, dann ist es halt keine 0.5.65 mehr ;) mit
npm install -g alexa-fhem@0.5.61wäre das sauberer (damit stürzt alexa-fhem beim ModeController nicht ab, kann aber halt auch nichts damit anfangen...)
Wue hast Du ein ModeCOntroller Device zum Laufen gebracht, hast DU da evtl. ein Beispiel?
Hallo,
ich steuere fünf Jarolift-Rollladenmotoren mit ModeController. Hier die Definition eines Devices:
defmod dym_jl_Esszimmerrollo dummy
attr dym_jl_Esszimmerrollo userattr relatedTo
attr dym_jl_Esszimmerrollo alexaName Esszimmerrollo
attr dym_jl_Esszimmerrollo genericDeviceType mode
attr dym_jl_Esszimmerrollo homebridgeMapping ModeController:mode,cmd=mode,mode=state,values=auf;;zu;;schatten;;stop
attr dym_jl_Esszimmerrollo relatedTo mq_jl_Esszimmerrollo
attr dym_jl_Esszimmerrollo room Jarolift
attr dym_jl_Esszimmerrollo setList mode:auf,zu,schatten,stop
attr dym_jl_Esszimmerrollo webCmd mode
Die Aktionen werden über ein Notify und eine Sub in 99_Utils ausgeführt. Warum ich das damals so gemacht habe, weiß ich nicht mehr, spielt aber erstmal keine Rolle. Der Rollladen erscheint in der alexa-App und bietet mir die Optionen auf, zu, schatten und stop an.
Hi,
das funktioniert in dieser Mischkonstellation tatsächlich - Danke Dir!
Ich habe mal ein issue in github eröffnet (https://github.com/justme-1968/alexa-fhem/issues/33), aber das pflegt wohl keiner mehr :(
Update:
ModeController funktioniert in der 0.5.64, nicht mehr in der 0.5.65. Eine saubere Installation gelingt mit
sudo npm install -g alexa-fhem@0.5.64