KNX Dimmer via Alexa steuern

Begonnen von superverbleit, 10 November 2025, 22:28:55

Vorheriges Thema - Nächstes Thema

superverbleit

Hallo Leute,

ich hatte einen funktionierenden KNX Dimmer, den ich via Alexa steuern konnte.
Was ich damit tun will:

Alexa, Licht an.
Alexa, Licht aus.
Alexa, dimme Licht auf x%

Wie gesagt, das hat(te) bisher funktioniert.

Leider habe ich mein System upgedatet und jetzt funktioniert Alexa, Licht an nicht mehr. Der Rest geht noch.
Ich habe schon viele Dinge ausprobiert, mit z.B. eventMap und/oder stateCmd. Leider ohne Erfolg.
Mein Problem ist, das Alexa bei An immer eine 1 senden will (was beim Dimmer ja nicht funktioniert), ich hätte das gerne umgebogen auf Dimmer 75%

Hat von euch jemand eine Idee, was ich noch falsch mache, oder wie ich es wieder zum laufen bekomme?

Hier mein List:
Internals:
   DEF        0/1/128:dpt5.001:Dimm.Absolute 0/3/106:dpt5.001:Dimm.Status
   FUUID      5dfcf3af-f33f-5687-c860-47ad943dcd6127fd
   IODev      KNX
   KNX_MSGCNT 52
   KNX_RAWMSG C0112ew0036a00
   KNX_TIME   2025-11-10 22:01:27
   LASTInputDev KNX
   MSGCNT     52
   NAME       EG.Essz.Haengeleuchten.Licht.DimmAbsolute
   NR         500
   STATE      0 %
   TYPE       KNX
   eventCount 136
   model      dpt5
   GADDETAILS:
     Dimm.Absolute:
       CODE       00180
       MODEL      dpt5.001
       NO         1
       OPTION     
       RDNAMEGET  Dimm.Absolute-get
       RDNAMESET  Dimm.Absolute-set
       SETLIST    :slider,0,1,100
     Dimm.Status:
       CODE       0036a
       MODEL      dpt5.001
       NO         2
       OPTION     
       RDNAMEGET  Dimm.Status-get
       RDNAMESET  Dimm.Status-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     00180      Dimm.Absolute
     0036a      Dimm.Status
   Helper:
   READINGS:
     2025-11-10 22:01:29   Dimm.Absolute-set 0 %
     2025-11-10 22:01:27   Dimm.Status-get 0 %
     2025-10-27 09:55:24   Dimm.Status-set 70 %
     2025-11-06 21:20:31   IODev           KNX
     2025-11-10 22:01:29   last-sender     fhem
     2025-11-10 22:01:29   state           0 %
Attributes:
   IODev      KNX
   alexaName  Licht Esstisch
   genericDeviceType light
   homebridgeMapping On=cmdOn=Dimm.Absolute 75,cmdOff=Dimm.Absolute 0 Brightness=Dimm.Status,cmd=Dimm.Absolute,minValue=0,maxValue=100
   room       hidden
   stateFormat Dimm.Status-get

Hier der Auszug des Alexa Logs: 1. Dimme auf 50%, 2. Licht aus, 3. Licht an
[10/11/2025, 22:23:59] >>>> [ssh] {"directive":{"header":{"messageId":"e491e545-419b-4ae3-a7b2-5a94033edd0c","namespace":"Alexa.BrightnessController","name":"SetBrightness","payloadVersion":"3","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"F0C6AAB8-0C0BCA41083B64DB"},"endpointId":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd","cookie":{"device":"EG.Essz.Haengeleuchten.Licht.DimmAbsolute","fuuid":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd"}},"payload":{"brightness":50}}}
[10/11/2025, 22:23:59] [FHEM] EG.Essz.Haengeleuchten.Licht.DimmAbsolute: executing set cmd for Brightness with value 50
[10/11/2025, 22:23:59] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20EG.Essz.Haengeleuchten.Licht.DimmAbsolute%20Dimm.Absolute%2050&fwcsrf=csrf_606790952053282&XHR=1
[10/11/2025, 22:23:59] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.BrightnessController","name":"brightness","value":50,"timeOfSample":"2025-11-10T21:23:59.253Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"28d07316-4438-4716-947d-49329285deb3","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"F0C6AAB8-0C0BCA41083B64DB"},"endpointId":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd"},"payload":{}}}
  2025-11-10 22:23:59 caching: EG.Essz.Haengeleuchten.Licht.DimmAbsolute-state: 50 %
[10/11/2025, 22:23:59] [FHEM]     caching: On: 50 % (as string; from '50 %')
[10/11/2025, 22:24:11] >>>> [ssh] {"directive":{"header":{"messageId":"e63f25d6-7cbd-4bea-b99e-f8d2b93c3455","namespace":"Alexa.PowerController","name":"TurnOff","payloadVersion":"3","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"F0C6AAB8-0C0BCA41083B64DB"},"endpointId":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd","cookie":{"device":"EG.Essz.Haengeleuchten.Licht.DimmAbsolute","fuuid":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd"}},"payload":{}}}
[10/11/2025, 22:24:11] [FHEM] EG.Essz.Haengeleuchten.Licht.DimmAbsolute: executing set cmd for On with value 0
[10/11/2025, 22:24:11] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20EG.Essz.Haengeleuchten.Licht.DimmAbsolute%200&fwcsrf=csrf_606790952053282&XHR=1
[10/11/2025, 22:24:11] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.PowerController","name":"powerState","value":"OFF","timeOfSample":"2025-11-10T21:24:11.127Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"b2f497c3-c353-4b34-9acb-ba19785fb4c9","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"F0C6AAB8-0C0BCA41083B64DB"},"endpointId":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd"},"payload":{}}}
  2025-11-10 22:24:11 caching: EG.Essz.Haengeleuchten.Licht.DimmAbsolute-state: 0 %
[10/11/2025, 22:24:11] [FHEM]     caching: On: 0 % (as string; from '0 %')
[10/11/2025, 22:24:24] >>>> [ssh] {"directive":{"header":{"messageId":"72192d6f-6574-4008-b621-4efffb74eec0","namespace":"Alexa.PowerController","name":"TurnOn","payloadVersion":"3","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"F0C6AAB8-0C0BCA41083B64DB"},"endpointId":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd","cookie":{"device":"EG.Essz.Haengeleuchten.Licht.DimmAbsolute","fuuid":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd"}},"payload":{}}}
[10/11/2025, 22:24:24] [FHEM] EG.Essz.Haengeleuchten.Licht.DimmAbsolute: executing set cmd for On with value 1
[10/11/2025, 22:24:24] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20EG.Essz.Haengeleuchten.Licht.DimmAbsolute%20Dimm.Absolute&fwcsrf=csrf_606790952053282&XHR=1
[10/11/2025, 22:24:24] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.PowerController","name":"powerState","value":"ON","timeOfSample":"2025-11-10T21:24:24.104Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"9832ef1d-e11e-4f7f-9d71-4d832be7c5f5","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"F0C6AAB8-0C0BCA41083B64DB"},"endpointId":"5dfcf3af-f33f-5687-c860-47ad943dcd6127fd"},"payload":{}}}


Übrigens, ich benutze den Alexa FHEM Connector.


Danke für euren Support.


erwin

Hi,
gleich vorweg: ich verwende Alexa nicht, kann das nur aus der KNX-Sicht beurteilen....
Was ich dem Log entnehme:
1) Ein Dimm 50% funktioniert
2) Ein TurnOff funktioniert - wird auf 0% umgesetzt.
3) Ein TurnOn funktionert nicht - Alexa versucht value 1 - was sehr dunkel ist  8)
   Was allerding komisch ist, ist der http request:
[10/11/2025, 22:24:24] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20EG.Essz.Haengeleuchten.Licht.DimmAbsolute%20Dimm.Absolute&fwcsrf=csrf_606790952053282&XHR=1hier fehlt m.M. der Wert komplett!!!
Ich gehe davon aus, dass die KNX-cmds von der FHEM cmd-line funktionieren, ich würde vorschlagen, das ins Sprachsteuerung-Forum zu verschieben!

l.g. erwin
PS: um das mapping zu vereinfachen, würde ich die definition ändern:
0/1/128:dpt5.001:dim:set:nosuffix 0/3/106:dpt5.001:dimStatus:get:nosuffix siehe auch Alexa Wiki...
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

superverbleit

Hallo,

ich habe es jetzt nach Sprachsteuerung verschoben.

Und ja, Fhem cmd funktioniert:
set EG.Essz.Haengeleuchten.Licht.DimmAbsolute 50 tut zum Beispiel.

superverbleit

#3
Habe mich jetzt nochmals ein wenig probiert. Für Licht an und aus wird via Alexa kein Wert mitgeschickt, es wird also folgendes ausgeführt: set EG.Essz.Haengeleuchten.Licht.DimmAbsolute ohne Wert. Wie auch erwin schon richtig bemerkt hat.

Das homebridgemapping für on und off funktioniert in meinem Fall nicht. Ich habe jetzt schon so viele Varianten ausprobiert, aber keine löst mein Problem.
Früher hatte ich :75 und :0 im mapping. Dieser Syntax funktioniert ja leider nicht mehr nach meinem fhem update.

Hat von euch noch jemand eine Idee?

MadMax-FHEM

#4
Zitat von: superverbleit am 10 November 2025, 22:28:55homebridgeMapping On=cmdOn=Dimm.Absolute 75,cmdOff=Dimm.Absolute 0 Brightness=Dimm.Status,cmd=Dimm.Absolute,minValue=0,maxValue=100
Muss da nicht ein "plus" hin?
Also z.B.
homebridgeMapping On=cmdOn=Dimm.Absolute+75EDIT: https://github.com/justme-1968/homebridge-fhem/blob/master/README.md
Zitat von: https://github.com/justme-1968/homebridge-fhem/blob/master/README.mdspaces in commands have to be replaced by +

EDIT: wobei ich
ZitatDimm.Absolute
also den Punkt auch komisch finde, mag mich aber täuschen. Kenne KNX 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)

passibe

Also wenn ich die gegebenen Infos richtig verstehe, müsste es eigentlich mit diesem homebridgeMapping funktionieren:

clear
On=state,part=0,valueOff=0,cmdOn=75,cmdOff=0
Brightness=state,part=0

Das macht sich insbesondere folgendes zunutze:

- Um das % rauszukriegen:
Zitatpart: the reading value will be splitted at spaces and the n-th item is used as the value. counting starts at 0
- Um nicht irgendeine regex für die richtige Zustandserkennung nutzen zu müssen (alles > 0 = On):
ZitatvalueOn, valueOff: the reading values that are mapped to the true/false resp. on/off states in homekit. shotcut for values if only one is given all values not matching this one are automatically mapped to the other

Das einzige, was hier ein bisschen unüblich ist (eventuell eine KNX-Eigenheit?), ist, dass es kein set DEVICE BEFEHL WERT gibt, sondern set DEVICE WERT ausreicht, weil BEFEHL schon im Namen des devices enthalten ist. Lässt sich aber damit lösen, dass man im cmdOn/Off-Teil (jedenfalls bei der On-Characteristic) nur den Wert mitgibt und für die Brightness-Characteristic gar kein cmd definiert.

Ansonsten ist es sehr zu empfehlen, die Doku von homebridge-fhem SEHR genau zu lesen, da ist doch einiges versteckt, was nützlich ist.



Dieser Hinweis ist übrigens grundsätzlich zutreffend:
Zitat von: MadMax-FHEM am 11 November 2025, 23:27:27Muss da nicht ein "plus" hin?
Nur hier ist es wohl wegen KNX etwas anders (und deshalb war auch das ursprüngliche homebridgeMapping falsch), weil wir ja gerade nicht set EG.Essz.Haengeleuchten.Licht.DimmAbsolute Dimm.Absolute 75ausführen wollen, sondern einfach nur set EG.Essz.Haengeleuchten.Licht.DimmAbsolute 75, also "nur" das oben angesprochene set DEVICE WERT anstatt das üblichere set DEVICE BEFEHL WERT.

Kenne mich aber ebenfalls nicht mit KNX aus, vielleicht ist das, was ich hier vorgeschlagen habe also auch nutzlos, aber entsprechend der gegebenen Infos müsste es eigentlich™ funktionieren.

erwin

Hi,
in diesem Fall sind BEIDE cmd Varianten möglich und funktionieren:
set EG.Essz.Haengeleuchten.Licht.DimmAbsolute Dimm.Absolute 75
set EG.Essz.Haengeleuchten.Licht.DimmAbsolute 75
... weil bei fehlendem gadNamen der ERSTE gadName verwendet wird (kompatiblility mode).
siehe auch KNX cmd ref. Das ist also nicht das Problem.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

passibe

Ok! Danke für die Aufklärung. Dann dürfte wohl auch dieses Mapping funktionieren:
clear
On=state,part=0,valueOff=0,cmdOn=Dimm.Absolute+75,cmdOff=Dimm.Absolute+0
Brightness=state,part=0,cmd=Dimm.Absolute