Ich habe ein Gerät auf einem anderem Pi angeschlossen. Der Dummy auf dem Master Pi steuert dieses Gerät.
Nun habe ich Alexa auf dem Master Pi installiert, weil dort die meisten benötigten Geräte angeschlossen sind.
Ich habe auf dem Master Pi den Dummy wie die Geräte definiert. Auf der Alexa App ist dieser Dummy auch als Dummy ersichtlich. Nur lässt sich dieser Dummy mittels Alexa-APP nicht steuern. Hier fehlt auch auf der App der Button zum Ein- und Ausschalten.
Gibt es eine Möglichkeit ein Dummy-Gerät mittels Alexa zu steuern?
list OG1_WZ_BBD
Internals:
CFGFN /media/hdd/fhem/myprogram/blumenbeleuchtung_rasp01.pm
FUUID 5c45b053-....................................
NAME OG1_WZ_BBD
NR 6090
STATE AUS
TYPE dummy
eventCount 12
READINGS:
2025-02-01 09:48:44 state off
Attributes:
alexaName Blumenlampe
alexaRoom OG1 Wohnzimmer
alias OG1 Wohnzimmer - Beleuchtung - Blumenkasten
cmdIcon EIN:remotecontrol/black_btn_GREEN AUS:remotecontrol/black_btn_RED
devStateIcon EIN:light_ceiling_light@violet AUS:light_ceiling_light@gray
devStateStyle style="text-align:left;;font-weight:bold;;"
eventMap on:EIN off:AUS
genericDeviceType light
group OG1 Wohnzimmer - Beleuchtung
icon light_ceiling_light
room OG1-Wohnzimmer
sortby 03.05
webCmd ::EIN:AUS
Hier mal ein Beispiel für einen Dummy, den ich benutze, meine Audio-Anlage mit mehreren Schaltern gleichzeitig anzuschalten:
define Audio dummy
attr Audio userattr room_map structexclude
attr Audio alexaName Audio
attr Audio appOptions { "template": "switch" }
attr Audio genericDeviceType switch <-----------
attr Audio group Heimkino
attr Audio room Automatisierung,Gewerke->Schalter,Räume->1->Wohnzimmer
attr Audio setList on off <-----------
attr Audio useSetExtensions 1 <-----------
1. Wieso sollte eine Lampe zu einem switch werden müssen? Könnte ja auch wichtig sein, dass es in der Alexa-App als Lampe dargestellt wird (z.B. auch wegen WAF).
2. Ich glaube setList wird von alexa-fhem ohnehin nur im Zusammenhang mit switch geparst, hilft also bei der Lampe auch nicht. Eigentlich sollte alexa-fhem aber die characteristics auch bei einer Lampe automatisch erkennen, auch ohne homebridgeMapping.
3. Was hat useSetExtensions mit alexa zu tun? Ich glaube, dass das schon gar nicht von alexa-fhem verarbeitet wird.
@Burny4600 gib uns doch mal einen Auszug des Logs von alexa-fhem beim Start (oder reload) von alexa-fhem. Dort müsste eigentlich stehen, mit welchen characteristics dein device bei Alexa announced wird. Musst nicht das ganze Log reinkopieren, nur den Teil, der sich auf dieses device bezieht.
Das müsste ungefähr so aussehen:
[...]
OG1_WZ_BBD is light
OG1_WZ_BBD has
On [state;on,off]
[...]
Vielleicht braucht es hier wegen der eventMap auch ein homebridgeMapping. Das lässt sich dann aber aus dem Log erkennen. Bin mir da aber nicht sicher, wie alexa-fhem das interpretiert, hab selbst kein eventMap im Einsatz. (Ist mir aber auch noch schleierhaft, wieso man das hier überhaupt braucht. Macht Dinge ggfs. nur komplizierter. Aber bestimmt gibt es dafür guten Gründe.)
@passibe
Zitat...gib uns doch mal einen Auszug des Logs von alexa-fhem...
[...]
[2.2.2025, 12:21:40] [FHEM] OG1_WZ_BBD is light
[2.2.2025, 12:21:40] [FHEM] OG1_WZ_BBD has
[2.2.2025, 12:21:40] [FHEM] OG1_WZ_BBD will not send proactive events
[2.2.2025, 12:21:40] [FHEM] OG1_WZ_BBD uses ID: 5c45b053-.............................
[...]
Das sieht schon mal anders aus als es sein sollte. Hier fehlt
....[FHEM] On [state;on,off]
Ok, dann wird aus irgendeinem Grund das homebrdigeMapping nicht richtig gesetzt.
Probier es doch mal manuell:
attr OG1_WZ_BBD homebridgeMapping On=state,valueOn=on,valueOff=off,cmdOn=on,cmdOff=off
Edit: Danach natürlich alexa-fhem reloaden/neustarten.
homebrdigeMapping
Genau das war es. Jetzt funktioniert die Steuerung über den Dummy.
Muss das homebrdigeMapping bei allen Geräten die mit Alexa gesteuert werden definiert werden?
Meistens klappt das automatisch.
Wenn es mal – so wie hier – nicht klappt, dann musst du es eben manuell hinzufügen.
Einfach schauen, ob das Gerät so funktioniert, wie du es erwartest bzw., wie schon getan, schauen, was im Log von alexa-fhem steht. Sind dort keine/nicht alle/nicht die gewünschten characteristics aufgelistet, musst du sie manuell hinzufügen.
Falls du unliebsame automatisch hinzugefügte characteristics rauskriegen willst, einfach mit "clear" arbeiten, das löscht etwaige automatisch angelegte mappings (clear muss in der ersten Zeile des homebridgeMappings stehen).
Zitat(clear muss in der ersten Zeile des homebridgeMappings stehen).
Du meinst an der ersten Position der Zeile von homebridgeMappings.
Sozusagen wird das Attribut homebridgeMappings nach dem erfolgreichem Test nicht mehr benötigt und kann entfernt werden, wenn ich das richtig verstanden habe.
Zitat von: Burny4600 am 02 Februar 2025, 16:01:57Du meinst an der ersten Position der Zeile von homebridgeMappings.
Nein, ich meine schon die erste Zeile. homebridgeMapping ist ein Attribut mit mehreren Zeilen. Ich hänge mal einen Screenshot an, damit das deutlich wird.
In deinem global-device sollte unter userattr homebridgeMapping mit textField-long versehen sein, damit das beim Bearbeiten über FHEMWEB auch als mehrzeilig angezeigt wird.
Zitat von: Burny4600 am 02 Februar 2025, 16:01:57Sozusagen wird das Attribut homebridgeMappings nach dem erfolgreichem Test nicht mehr benötigt und kann entfernt werden, wenn ich das richtig verstanden habe.
Nein! Dann kannst du nach dem nächsten reload von alexa-fhem die Lampe wieder nicht steuern. Denn offensichtlich schafft alexa-fhem es nicht, die Lampe richtig zu erkennen, deshalb braucht es das homebridgeMapping. alexa-fhem liest aber die Geräte immer komplett neu ein, d.h., wenn es homebridgeMapping nicht mehr gibt, dann weiß alexa-fhem wieder nicht, was zu tun ist und die Lampe ist nicht bedienbar.
Gut, dass habe ich verstanden.
textField-long habe ich wie die anderen textField-long unter WEB mittels widgetOverride definiert, weil ich ohnehin einige andere Definitioen für mehrzeilige Einträge benötige.
Somit habe ich das Dummy Problem gelöst und werde mich dem nächsten Alexaproblem widmen.
Hallo,
was ich nicht verstehe, warum hier die Verwendung von homebridgeMapping vorgeschlagen wird, für so nen simplen dummy der nur ein.-/ausschalten können muss?
Warum nicht einfach on off in der setList ergänzen?
Ich dachte, dass setList für genericDeviceType light nicht geparst wird, siehe hier: https://github.com/justme-1968/alexa-fhem/blob/master/lib/fhem.js#L2612
Aber vielleicht verstehe ich service_name da im code auch falsch und setList hätte es doch getan.
Ohne genericDeviceType wirds ein Schalter, mit genericDeviceType light eine Lampe. Hab ich mich jetzt eben vergewissert, so wie es halt schon immer ist.
Ich habe beide Varianten getestet und beide funktionieren mit dem Dummy.
setList on off
homebridgeMapping On=state,valueOn=on,valueOff=off,cmdOn=on,cmdOff=off
Danke.