[GELÖST] Suche Alexa Steuerung für FHEM Dummy

Begonnen von Burny4600, 01 Februar 2025, 18:36:13

Vorheriges Thema - Nächstes Thema

Burny4600

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
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

Dr. Boris Neubert

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     <-----------
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

passibe

#2
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.)

Burny4600

@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]
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

passibe

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.

Burny4600

#5
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?
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

passibe

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).

Burny4600

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.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

passibe

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.

Burny4600

#9
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.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2

TomLee

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?

passibe

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.

TomLee

Ohne genericDeviceType wirds ein Schalter, mit genericDeviceType light eine Lampe. Hab ich mich jetzt eben vergewissert, so wie es halt schon immer ist.

Burny4600

Ich habe beide Varianten getestet und beide funktionieren mit dem Dummy.
setList on offhomebridgeMapping On=state,valueOn=on,valueOff=off,cmdOn=on,cmdOff=off
Danke.
Mfg Chris

Raspberry Pi 2-5, Betriebssystem: Bullseye Lite, Bookworm Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: FS20, IT, Homematic, MQTT, TEK603, WMR200, YouLess, S.USV, APC-USV, PV-Deye, PV-Fronius, Resol VBUS & DL2