Rolladensteuerung mit Alexa - homebridgeMapping

Begonnen von bruen985, 27 April 2025, 11:53:06

Vorheriges Thema - Nächstes Thema

bruen985

Hallo liebes Forum,

nach langer Zeit brauche ich mal wieder Eure Hilfe.
Ich habe seit Jahren erfolgreich eine Rolladensteuerung in Verbindung mit Alexa. Da ich damals beim Motoreinbau schon das Problem hatte, dass mit Alexa der RollO verkehrt herum auf und zu fuhr, hatte ich damals kurzer Hand die beiden Kabel am Aktor "falsch herum" angeschlossen, damit es mit Alexa korrekt funktionierte (daher unten im list des Rollos auch das verdrehte EventMap). Aus einem anderen Grund muss ich nun die Kabel wieder korrekt anschliessen und daher möchte ich nun mit Hilfe des homebridgeMappings die Funktion mit Alexa umdrehen. Leider komme ich hier nicht weiter.

Folgendes homebridgeMapping kommt meinem Wunsch am nächsten (Umdrehen der Fahrtrichtung):

homebridgeMapping clear CurrentPosition=position,minValue=100,maxValue=0 TargetPosition=position,minValue=100,maxValue=0

Jedoch kann ich hier nur komplett hoch oder runter fahren lassen.
Das Ansteuern von

  • z.B. 40 % o.ä. und
  • einfach nur ein Stück hoch oder runter
funktioniert hiermit leider nicht.

es sieht so aus, als ob Alexa nur Position 0 oder 100 kennt, siehe Auszug aus dem Alex-Log unten.

Wäre klasse, wenn mir jemand helfen könnte oder in die richtige Richtung lenken könnte, denn ich kämpfe schon lange mit diesen Thema.
Danke Euch!

2025-04-27 10:50:15 caching: EnO_DG_Rollladen_FSB61NP-position: 0
[27.4.2025, 10:50:15] [FHEM]     caching: CurrentPosition: 100 (as number; from '0')
[27.4.2025, 10:50:15] [FHEM]     caching: TargetPosition: 100 (as number; from '0')
  2025-04-27 10:50:20 caching: EnO_DG_Rollladen_FSB61NP-position: 81
[27.4.2025, 10:50:20] [FHEM]     caching: CurrentPosition: 100 (as number; from '81')
[27.4.2025, 10:50:20] [FHEM]     caching: TargetPosition: 100 (as number; from '81')
[27.4.2025, 10:50:25] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 100
  2025-04-27 10:50:25 caching: EnO_DG_Rollladen_FSB61NP-position: 100
[27.4.2025, 10:50:25] [FHEM]     caching: CurrentPosition: 0 (as number; from '100')
[27.4.2025, 10:50:25] [FHEM]     caching: TargetPosition: 0 (as number; from '100')
  2025-04-27 10:50:28 caching: EnO_DG_Rollladen_FSB61NP-position: 88
[27.4.2025, 10:50:28] [FHEM]     caching: CurrentPosition: 100 (as number; from '88')
[27.4.2025, 10:50:28] [FHEM]     caching: TargetPosition: 100 (as number; from '88')

List des Rollos:

Internals:
   DEF        018C044C
   FUUID      5c431700-f33f-cdde-716c-04ee4ae6f437bbbf
   IODev      TCM310_0
   LASTInputDev TCM310_0
   MSGCNT     60
   NAME       EnO_DG_Rollladen_FSB61NP
   NR         180
   NTFY_ORDER 50-EnO_DG_Rollladen_FSB61NP
   STATE      100
   TCM310_0_DestinationID FFFFFFFF
   TCM310_0_MSGCNT 60
   TCM310_0_PacketType 1
   TCM310_0_RSSI -73
   TCM310_0_ReceivingQuality excellent
   TCM310_0_RepeatingCounter 1
   TCM310_0_SubTelNum 6
   TCM310_0_TIME 2025-04-27 11:37:24
   TYPE       EnOcean
   eventCount 165
   READINGS:
     2025-04-26 22:44:26   IODev           TCM310_0
     2025-04-27 11:37:24   anglePos        90
     2022-11-01 13:54:27   block           unlock
     2025-04-27 11:37:24   endPosition     closed
     2025-04-27 11:37:24   position        100
     2025-04-27 11:37:24   state           closed
   helper:
Attributes:
   DbLogExclude .*
   IODev      TCM310_0
   alexaName  Rollo Schlafzimmer
   alias      DG Schlafzimmer
   comMode    confirm
   devStateIcon 100:fts_window_2w 0:fts_shutter_100 1\d.*:fts_shutter_90 2\d.*:fts_shutter_80 3\d.*:fts_shutter_70 4\d.*:fts_shutter_60 5\d.*:fts_shutter_50 6\d.*:fts_shutter_40 7\d.*:fts_shutter_30 8\d.*:fts_shutter_20 9\d.*:fts_shutter_10 .*:fts_shutter_100
   eep        A5-3F-7F
   eventMap   down:Hoch up:Runter
   fp_2_Dachgeschoss 105,185,2
   genericDeviceType blind
   group      Beschattung
   homebridgeMapping clear CurrentPosition=position,minValue=100,maxValue=0 TargetPosition=position,minValue=100,maxValue=0
   manufID    00D
   model      Eltako_FSB_ACK
   room       Alexa,Dachgeschoss
   shutTime   27
   shutTimeCloses 35
   sortby     1
   stateFormat position
   subDef     FF903609
   subType    manufProfile
   webCmd     Hoch:Runter:position
- FHEM v6.x | VM
- ESP3 Enocean USB-Stick
- MQTT2_FHEM_Server
- alexa-fhem version 0.5.64
- Zigbee2MQTT

TomLee

Hallo,

das Kommando zum setzen auf Prozentwerte fehlt noch, oder?

homebridgeMapping clear CurrentPosition=position,minValue=100,maxValue=0 TargetPosition=position,minValue=100,maxValue=0 cmd=position

Gruß Thomas

bruen985

Hallo Thomas,

danke für Deine Hilfe. Habe Deine Ergänzung aufgenommen, aber leider keine Besserung.

Habe mit
homebridgeMapping clear CurrentPosition=position,minValue=100,maxValue=0 TargetPosition=position,minValue=100,maxValue=0 cmd=position

und mit (mit und ohne Komma)

homebridgeMapping clear CurrentPosition=position,minValue=100,maxValue=0 TargetPosition=position,minValue=100,maxValue=0,cmd=position

getestet. Wenn ich z.B. sage "Alexa Rollo 20 Prozent" passiert nix und im Alex Log steht:

[27.4.2025, 13:20:43] >>>> [ssh] {"directive":{"header":{"messageId":"c937a462-4cc8-4326-ba23-bfa446682256","namespace":"Alexa.RangeController","name":"SetRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxxx-xxxxxxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValue":20}}}
[27.4.2025, 13:20:43] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 100
[27.4.2025, 13:20:43] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%20100&XHR=1
[27.4.2025, 13:20:43] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":100,"timeOfSample":"2025-04-27T11:20:43.948Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"539fd08d-dff6-4428-bded-f93fc1773bc3","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}

oder wenn ich z.B. sage "Alexa Rollo 50 Prozent" passiert nix und im Alex Log steht:

[27.4.2025, 13:21:50] >>>> [ssh] {"directive":{"header":{"messageId":"2b2e019b-c186-4a58-80fa-20798ae0b22b","namespace":"Alexa.RangeController","name":"SetRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValue":50}}}
[27.4.2025, 13:21:50] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 100
[27.4.2025, 13:21:50] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%20100&XHR=1
[27.4.2025, 13:21:50] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":100,"timeOfSample":"2025-04-27T11:21:50.020Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"e76c8a95-fd31-4ee4-ab2c-ad37ef941de2","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxxx-xxxxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}

Funktioniert: "Alexa Rollo ganz hoch":

[27.4.2025, 13:26:58] >>>> [ssh] {"directive":{"header":{"messageId":"3c4b1648-0307-45b7-a964-33f606a86f92","namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxxxxx-xxxxxxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValueDelta":100,"rangeValueDeltaDefault":false}}}
[27.4.2025, 13:26:58] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 0
[27.4.2025, 13:26:58] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%200&XHR=1
[27.4.2025, 13:26:58] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":0,"timeOfSample":"2025-04-27T11:26:58.802Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"81bdaf72-3d7d-4868-9741-0a054f96ee51","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxxxx-xxxxxxxxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}
  2025-04-27 13:26:58 caching: EnO_DG_Rollladen_FSB61NP-position: 0
[27.4.2025, 13:26:58] [FHEM]     caching: CurrentPosition: 100 (as number; from '0')
[27.4.2025, 13:26:58] [FHEM]     caching: TargetPosition: 100 (as number; from '0')
[27.4.2025, 13:26:58] [FHEM]     caching: cmd: 0 (as string; from '0')


Gruß
Oliver
- FHEM v6.x | VM
- ESP3 Enocean USB-Stick
- MQTT2_FHEM_Server
- alexa-fhem version 0.5.64
- Zigbee2MQTT

TomLee

#3
Hattest alexa-fhem nach der Änderung auch vorsichtshalber restartet?

Was passiert denn ohne homebridgeMapping?
Müsste doch laut hier ohne klappen. Du hast doch laut List einen setter position, oder?

ZitatWenn das Device einen set-Befehl position hat, wird gemappt
CurrentPosition => reading=position, TargetPosition => reading=position, cmd=position

bruen985

Ja, ich mache nach jeder Änderung einen "reload" von alexa-fhem.

Ohne das Mapping funktioniert alles, ja.
Aber, wie im ersten Post geschrieben, möchte ich das ja Umdrehen, da ich die Steuerkabel am Aktor wieder "korrekt" anbringen will.
Somit muss ich es mit dem homebridgeMapping quasi per Software korrigieren.

Ja, ich kann "Set EnO_DG_Rollladen_FSB61NP position" per FHEMWeb machen. Funktioniert auch.
- FHEM v6.x | VM
- ESP3 Enocean USB-Stick
- MQTT2_FHEM_Server
- alexa-fhem version 0.5.64
- Zigbee2MQTT

TomLee

minValue mit 100 und maxValue mit 0 ist nicht richtig mein ich.

So
clear CurrentPosition=position,minValue=0,maxValue=100,invert=1 TargetPosition=position,minValue=0,maxValue=100,invert=1,cmd=positionkann man auf Prozentwerte stellen.
Aber warum das invert=1 nicht greift, komm ich nicht drauf.

bruen985

dieses Mapping hatte ich mir auch schon mal zusammengestellt und getestet.
Habe es trotzdem nochmal von Dir übernommen (sicher ist sicher  ;) ).

Leider geht hiermit die gewünschte "Umkehrung" wieder verloren, sprich invert=1 funktioniert nicht. Dafür funktioniert (wie auch ohne das komplette Mapping) wieder alles, also auch hoch/runter oder zu einer bestimmten %-Zahl.

Die Frage scheint tatsächlich zu sein, warum invert=1 bei mir nicht funktioniert.... :o

Auszug aus dem alexa-fhem Log:
[27.4.2025, 14:36:45] >>>> [ssh] {"directive":{"header":{"messageId":"f4ddf6b5-1ea2-440f-a21a-252803be23fe","namespace":"Alexa.RangeController","name":"SetRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValue":80}}}
[27.4.2025, 14:36:45] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 20
[27.4.2025, 14:36:45] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%20position%2080&XHR=1
[27.4.2025, 14:36:45] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":20,"timeOfSample":"2025-04-27T12:36:45.860Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"ffa6c7f2-7103-4ef0-8fbf-31a91e3edd86","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}
  2025-04-27 14:36:45 caching: EnO_DG_Rollladen_FSB61NP-position: 80
[27.4.2025, 14:36:45] [FHEM]     caching: CurrentPosition: 80 (as string; from '80')
[27.4.2025, 14:36:45] [FHEM]     caching: TargetPosition: 80 (as string; from '80')
  2025-04-27 14:36:52 caching: EnO_DG_Rollladen_FSB61NP-position: 77
[27.4.2025, 14:36:52] [FHEM]     caching: CurrentPosition: 77 (as string; from '77')
[27.4.2025, 14:36:52] [FHEM]     caching: TargetPosition: 77 (as string; from '77')
[27.4.2025, 14:37:02] >>>> [ssh] {"directive":{"header":{"messageId":"518561d8-bdb6-490f-b57c-226d04e7c361","namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValueDelta":-10,"rangeValueDeltaDefault":true}}}
[27.4.2025, 14:37:02] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 33
[27.4.2025, 14:37:02] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%20position%2067&XHR=1
[27.4.2025, 14:37:02] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":33,"timeOfSample":"2025-04-27T12:37:02.334Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"c5c37bc4-fc33-42cc-b159-29facb96521c","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}
  2025-04-27 14:37:02 caching: EnO_DG_Rollladen_FSB61NP-position: 67
[27.4.2025, 14:37:02] [FHEM]     caching: CurrentPosition: 67 (as string; from '67')
[27.4.2025, 14:37:02] [FHEM]     caching: TargetPosition: 67 (as string; from '67')
  2025-04-27 14:37:05 caching: EnO_DG_Rollladen_FSB61NP-position: 65
[27.4.2025, 14:37:05] [FHEM]     caching: CurrentPosition: 65 (as string; from '65')
[27.4.2025, 14:37:05] [FHEM]     caching: TargetPosition: 65 (as string; from '65')
[27.4.2025, 14:37:14] >>>> [ssh] {"directive":{"header":{"messageId":"9b82aa7a-5e45-43c5-861a-8742c6a0c71b","namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValueDelta":10,"rangeValueDeltaDefault":true}}}
[27.4.2025, 14:37:14] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 25
[27.4.2025, 14:37:14] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%20position%2075&XHR=1
[27.4.2025, 14:37:14] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":25,"timeOfSample":"2025-04-27T12:37:14.877Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"85e5e6c7-4e20-486e-81b1-0306cc89c0e9","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}
  2025-04-27 14:37:14 caching: EnO_DG_Rollladen_FSB61NP-position: 75
[27.4.2025, 14:37:14] [FHEM]     caching: CurrentPosition: 75 (as string; from '75')
[27.4.2025, 14:37:14] [FHEM]     caching: TargetPosition: 75 (as string; from '75')
  2025-04-27 14:37:18 caching: EnO_DG_Rollladen_FSB61NP-position: 76
[27.4.2025, 14:37:18] [FHEM]     caching: CurrentPosition: 76 (as string; from '76')
[27.4.2025, 14:37:18] [FHEM]     caching: TargetPosition: 76 (as string; from '76')
[27.4.2025, 14:37:43] >>>> [ssh] {"directive":{"header":{"messageId":"60ca9f7d-a82b-40a6-9fed-dc21762ddf5c","namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","correlationToken":"-","instance":"Blind.Position"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C","cookie":{"device":"EnO_DG_Rollladen_FSB61NP","fuuid":"5c431700-f33f-cdde-716c-04ee4ae6f437bbbf"}},"payload":{"rangeValueDelta":100,"rangeValueDeltaDefault":false}}}
[27.4.2025, 14:37:43] [FHEM] EnO_DG_Rollladen_FSB61NP: executing set cmd for TargetPosition with value 0
[27.4.2025, 14:37:43] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20EnO_DG_Rollladen_FSB61NP%20position%20100&XHR=1
[27.4.2025, 14:37:43] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":0,"timeOfSample":"2025-04-27T12:37:43.856Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"90b5c4ad-26a3-460f-8f0e-2d92bc975de7","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxx-xxxxxxxxxx"},"endpointId":"EnOcean_018C044C"},"payload":{}}}
  2025-04-27 14:37:43 caching: EnO_DG_Rollladen_FSB61NP-position: 100
[27.4.2025, 14:37:43] [FHEM]     caching: CurrentPosition: 100 (as string; from '100')
[27.4.2025, 14:37:43] [FHEM]     caching: TargetPosition: 100 (as string; from '100')

Gruß
Oliver
- FHEM v6.x | VM
- ESP3 Enocean USB-Stick
- MQTT2_FHEM_Server
- alexa-fhem version 0.5.64
- Zigbee2MQTT

bruen985

Kann es sich mit irgendwelchen Einstellung/ Attributen des Gerätes beissen?
Siehe List des Rolladen im ersten Post....
- FHEM v6.x | VM
- ESP3 Enocean USB-Stick
- MQTT2_FHEM_Server
- alexa-fhem version 0.5.64
- Zigbee2MQTT

TomLee

Wenn man invertiert, kann ich mir vorstellen, das nur ganz hoch/runter oder auf Prozentwerte stellen möglich ist.

bruen985

hm, ok, das wäre schade.
Ist Andre (justme1968) hier noch aktiv und könnte diese Annahme bestätigen?

Gruß
Oliver
- FHEM v6.x | VM
- ESP3 Enocean USB-Stick
- MQTT2_FHEM_Server
- alexa-fhem version 0.5.64
- Zigbee2MQTT

TomLee

https://forum.fhem.de/index.php?msg=1001471

Das invertieren der Prozentwerte soll demnach klappen (hat es bei meinem Test aber nicht).