Hauptmenü

KNX Rolladen und Alexa

Begonnen von Kohle77, 19 Dezember 2020, 12:15:30

Vorheriges Thema - Nächstes Thema

Kohle77

Hallo,
ich blicke einfach nicht mehr durch und irgendwie gibt es keine richtige Lösung oder attr sind nicht vorhanden.
Also ich habe eine KNX Aktor der einen Rolladen steuert (der Teil HomeBridgeMapping vergesst mal da ich da x Änderungen schon hatte). Dieser Aktor hat 4 Adressen (Auf/Ab , Stop, Position und Status):
Internals:
   CFGFN      /opt/fhem/FHEM/CFG/2_neuMi_rollos.cfg
   DEF        3/1/4:dpt1.008:Auf/Ab 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:Position 3/1/17:dpt5.001:Status
   DEVNAME    KNX_0301004
   FIRSTGADNAME Auf/Ab
   FUUID      5e89ca80-f33f-f555-da32-3148abd23b731b80
   GETSTRING  Position:noArg Stop:noArg Status:noArg Auf/Ab:noArg
   IODev      KNX
   KNX_MSGCNT 28
   KNX_RAWMSG C0001bw031114c
   KNX_TIME   2020-12-19 11:56:33
   LASTInputDev KNX
   MSGCNT     28
   NAME       KNX_0301004
   NR         87
   NTFY_ORDER 50-KNX_0301004
   SETSTRING  Position:slider,0,1,100 Stop:trigger,trigger Status:slider,0,1,100 Auf/Ab:up,down
   STATE      30 %
   TYPE       KNX
   GADDETAILS:
     Auf/Ab:
       CODE       03104
       GROUP      3/1/4
       MODEL      dpt1.008
       NO         1
       OPTION     
       RDNAMEGET  Auf/Ab-get
       RDNAMEPUT  Auf/Ab-put
       RDNAMESET  Auf/Ab-set
       SETLIST    :up,down
     Position:
       CODE       03110
       GROUP      3/1/16
       MODEL      dpt5.001
       NO         3
       OPTION     
       RDNAMEGET  Position-get
       RDNAMEPUT  Position-put
       RDNAMESET  Position-set
       SETLIST    :slider,0,1,100
     Status:
       CODE       03111
       GROUP      3/1/17
       MODEL      dpt5.001
       NO         4
       OPTION     
       RDNAMEGET  Status-get
       RDNAMEPUT  Status-put
       RDNAMESET  Status-set
       SETLIST    :slider,0,1,100
     Stop:
       CODE       03105
       GROUP      3/1/5
       MODEL      dpt1.017
       NO         2
       OPTION     
       RDNAMEGET  Stop-get
       RDNAMEPUT  Stop-put
       RDNAMESET  Stop-set
       SETLIST    :trigger,trigger
   GADTABLE:
     03104      Auf/Ab
     03105      Stop
     03110      Position
     03111      Status
   READINGS:
     2020-12-16 07:08:26   Auf/Ab-get      up
     2020-12-19 11:43:08   Auf/Ab-set      up
     2020-12-19 11:56:28   Position-set    30 %
     2020-12-19 11:56:33   Status-get      30 %
     2020-12-19 10:53:28   Status-set      0 %
     2020-12-13 10:03:54   Stop-get        trigger
     2020-12-19 11:16:01   Stop-set        trigger
     2020-12-13 10:03:54   getG1           up
     2020-12-13 10:03:54   getG2           up
     2020-12-19 11:56:33   last-sender     0/0/27
     2020-12-13 10:03:54   schalten-set    up
     2020-12-13 10:03:54   setG1           down
     2020-12-13 10:03:54   setG2           down
     2020-12-19 11:56:33   state           30 %
     2020-12-13 10:03:54   stop-set        down
Attributes:
   DbLogExclude .*
   IODev      KNX
   alexaName  Büro Christian
   alias      Rollo
   devStateIcon up:fts_shutter_1w_0@green down:fts_shutter_1w_100@black 9\d.*:fts_shutter_1w_100 8\d.*:fts_shutter_1w_90 7\d.*:fts_shutter_1w_80 6\d.*:fts_shutter_1w_70 5\d.*:fts_shutter_1w_60 4\d.*:fts_shutter_1w_50 3\d.*:fts_shutter_1w_40 2\d.*:fts_shutter_1w_30 1\d.*:fts_shutter_1w_20 0\d.*:fts_shutter_1w_10up:shutter_1 down:shutter_closed
   genericDeviceType blind
   group      Christian Buero
   homebridgeMapping clear CurrentPosition=getG1,minValue=0,maxValue=100,minStep=1,invert=1 Position=value::getG1,minValue=0,maxValue=100,minStep=1,invert=1
   room       DG_MI->Buero Chris
   verbose    5


Ich habe ein Alexa Connector device. Ich möchte nun gerne über
ZitatAlexa Büro Christian Auf (oder eben Zu)
oder
ZitatAlexa stelle Büro Christian auf 30 prozent
den Rolladen verfahren.

Das Mapping wie auf https://wiki.fhem.de/wiki/Alexa_und_Mappings unter Rolladen beschrieben geht nicht weil ich mit:

Save config ?
Tablet-UI
DG_MI
OG_MI
EG_MI
Alles
Wetter
Draussen
9_Diagramme
Amazon
Automatikschalter
Kalender
Listen
Logfiles
Logik
Steckdosen
Stromzaehler
System
Test
Unsorted
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor
Update
UpdateCheck
Restart
BackupNow
RereadConf
SaveUI
Historie löschen
KNX_0301004: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userReadings verbose IODev do_not_notify showtime answerReading stateRegex stateCmd putCmd format listenonly readonly slider useSetExtensions event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn alexaName alexaProactiveEvents alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType homebridgeMapping icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType sortby webCmd webCmdLabel widgetOverride userattr

überhaupt kein readingList, setList als attribute habe.

Ich denke schon das Alexa den Wert liefert (mit verbose 5 im Log von Alexa):
[19.12.2020, 09:22:36] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.RangeController","name":"SetRangeValue","payloadVersion":"3","instance":"Blind.Position","messageId":"aaaabbbb-3b9e-4a2e-b592-e361aa6adddd","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"aaaabbbb-1234DC470F831234"},"endpointId":"aaaabbbb-f33f-f555-da32-1234DC470F831234","cookie":{"fuuid":"aaaabbbb-f33f-f555-da32-1234DC470F831234","device":"KNX_0301004"}},"payload":{"rangeValue":50}}}
[19.12.2020, 09:22:36] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value 50
[19.12.2020, 09:22:36] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20KNX_0301004%20pct%2050&fwcsrf=csrf_111234123412345&XHR=1
[19.12.2020, 09:22:36] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":50,"timeOfSample":"2020-12-19T08:22:36.223Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"abcdabcd-62b8-4b6b-8f64-1234d7881234","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"aaaabbbb-1234DC470F831234"},"endpointId":"aaaabbbb-f33f-f555-da32-1234DC470F831234"},"payload":{}}}



Hat jemand es schon fertig gebracht so eine KNX Rolladen über Alexa richtig zu steuern und wenn ja wie?

Gruß
Christian Eidenmüller

amenomade

Mit welchem Befehl setzt Du die position?
In welchem Reading sieht man die position?

Das 2. Teil deises HomeBridgeMapping hat wenig Sinn, da Alexa keine Characteristic Position braucht, sondern TargetPosition

Hast Du schon versucht ohne homeBridgeMapping Attribut?

Was alexa-fhem erkennt und wie, sieht man in der alexa-fhem Log, wenn man ein "set alexa reload" macht.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Kohle77

Hallo,
danke erstmal für feedback.
Mit set KNX_0301004 position 70 setze ich den Rolladen z.B. auf 70%.
Das Reading rufe ich ab mit get KNX_0301004 Status
Das liegt an der definition 3/1/4:dpt1.008 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:position 3/1/17:dpt5.001:Status
Ich könnte auch definieren 3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:SetPos 3/1/17:dpt5.001:Percentage

Dann würde ich mit set KNX_0301004 SetPos 70 den Wert setzen.
Ich nenne das ganze jetzt mal so:
3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:Percentage

und lösche das HomeBridgeMapping.

Hab den Alexa reload gemacht.
[20.12.2020, 08:37:22] [FHEM] KNX_0301004 is blind
[20.12.2020, 08:37:22] [FHEM] KNX_0301004 has
[20.12.2020, 08:37:22] [FHEM]   CurrentPosition [pct]
[20.12.2020, 08:37:22] [FHEM]   TargetPosition [pct]
[20.12.2020, 08:37:22] [FHEM] KNX_0301004 will not send proactive events
[20.12.2020, 08:37:22] [FHEM] KNX_0301004 uses ID: abcdca80-f33f-f123-da32-31234

Denk somit müsste meine definition so aussehen:
   
3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:CurrentPosition:listenonly

Werde ich dann mal testen. Leider fehlt dann ja aber Auf und Zu und zusätzlich Stop aber wenn ich das richtig weiß braucht man dazu einen CustomSkill.

Ich teste mal.

Kohle77

Hallo,
habe jetzt die definition wei folgt 3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:CurrentPosition:listenonly
der Eintrag im Alexa Log ist [20.12.2020, 12:51:04] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value 49
aber leider bewegt sich der Rolladen nicht.
In der Alexa App sehe ich nur eine Fehlermeldung die sagt "Ein Problem ist aufgetreten"

Irgendwie scheint die Umsetzung zu fehlen zu dem set KNX_0301004 TargetPosition 49

Gruß
Christian

amenomade

Was hast Du jetzt im Attribut homeBridgeMapping? Immer noch gelöscht?

Zitat[20.12.2020, 08:37:22] [FHEM]   CurrentPosition [pct]
[20.12.2020, 08:37:22] [FHEM]   TargetPosition [pct]
bedeutet, alexa-fhem sucht CurrentPosition im Reading pct, und setzt die TargetPostion mit "set xxx pct 49"

Wenn ich dich richtig verfolgt habe, muss jetzt homeBridgeMapping so aussehen:
CurrentPosition=CurrentPosition TargetPosition=TargetPosition::TargetPosition

Vor deiner Änderung hätte es irgendwie so aussehen müssen (angenommen, dass alexa-fhem das % Zeichen versteht, das weiss ich nicht):
CurrentPosition=state TargetPosition=Position-set::position
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Kohle77

Hallo,
alo ich habe das device jetzt wie folgt definiert:
Internals:
   CFGFN      /opt/fhem/FHEM/CFG/2_neuMi_rollos.cfg
   DEF        3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:CurrentPosition:listenonly
   DEVNAME    KNX_0301004
   FIRSTGADNAME Auf/Zu
   FUUID      5e89ca80-f33f-f555-da32-3148abd23b731b80
   GETSTRING  TargetPosition:noArg Stop:noArg CurrentPosition:noArg Auf/Zu:noArg
   IODev      KNX
   KNX_MSGCNT 127
   KNX_RAWMSG C0001bw0311100
   KNX_TIME   2020-12-21 05:56:12
   LASTInputDev KNX
   MSGCNT     127
   NAME       KNX_0301004
   NR         87
   NTFY_ORDER 50-KNX_0301004
   SETSTRING  TargetPosition:slider,0,1,100 Stop:trigger,trigger Auf/Zu:up,down
   STATE      0 %
   TYPE       KNX
   GADDETAILS:
     Auf/Zu:
       CODE       03104
       GROUP      3/1/4
       MODEL      dpt1.008
       NO         1
       OPTION     
       RDNAMEGET  Auf/Zu-get
       RDNAMEPUT  Auf/Zu-put
       RDNAMESET  Auf/Zu-set
       SETLIST    :up,down
     CurrentPosition:
       CODE       03111
       GROUP      3/1/17
       MODEL      dpt5.001
       NO         4
       OPTION     listenonly
       RDNAMEGET  CurrentPosition-get
       RDNAMEPUT  CurrentPosition-put
       RDNAMESET 
       SETLIST    :slider,0,1,100
     Stop:
       CODE       03105
       GROUP      3/1/5
       MODEL      dpt1.017
       NO         2
       OPTION     
       RDNAMEGET  Stop-get
       RDNAMEPUT  Stop-put
       RDNAMESET  Stop-set
       SETLIST    :trigger,trigger
     TargetPosition:
       CODE       03110
       GROUP      3/1/16
       MODEL      dpt5.001
       NO         3
       OPTION     
       RDNAMEGET  TargetPosition-get
       RDNAMEPUT  TargetPosition-put
       RDNAMESET  TargetPosition-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     03104      Auf/Zu
     03105      Stop
     03110      TargetPosition
     03111      CurrentPosition
   OLDREADINGS:
   READINGS:
     2020-12-20 12:57:08   Auf/Zu-set      up
     2020-12-21 05:56:12   CurrentPosition-get 0 %
     2020-12-20 12:48:20   Stop-set        trigger
     2020-12-20 12:55:16   TargetPosition-set 49 %
     2020-12-21 05:56:12   last-sender     0/0/27
     2020-12-21 05:56:12   state           0 %
Attributes:
   DbLogExclude .*
   IODev      KNX
   alexaName  Büro Christian
   alias      Rollo
   devStateIcon up:fts_shutter_1w_0@green down:fts_shutter_1w_100@black 9\d.*:fts_shutter_1w_100 8\d.*:fts_shutter_1w_90 7\d.*:fts_shutter_1w_80 6\d.*:fts_shutter_1w_70 5\d.*:fts_shutter_1w_60 4\d.*:fts_shutter_1w_50 3\d.*:fts_shutter_1w_40 2\d.*:fts_shutter_1w_30 1\d.*:fts_shutter_1w_20 0\d.*:fts_shutter_1w_10up:shutter_1 down:shutter_closed
   eventMap   /on g2:Stop/off g1:Auf/on g1:Zu/value 30% g3:Pos30/value 50% g3:Pos50/value 70% g3:Pos70
   genericDeviceType blind
   group      Christian Buero
   homebridgeMapping CurrentPosition=CurrentPosition TargetPosition=TargetPosition::TargetPosition
   room       DG_MI->Buero Chris
   verbose    5
   webCmd     Auf:Stop:Zu::Pos30:Pos50:Pos70


Danach hab ich das device in der Alexa App gelöscht. Alexa Connector in FHEM gestoppt und nach einer kurzen Zeit wieder gestartet.
In der Alexa App das Device wieder gesucht.
Es wird zwar in der Alexa App immer noch angezeigt "Ein Problem ist aufgetreten" aber wenn ich den Schieberegler auf, als Beispiel 47%, schiebe fährt der Rolladen auch auf 47 Prozent. Die Richtung stimmt auch. 70% ist fast zu und 13% fast auf.
Allerdings zeigt die Alex App nicht die Prozentzahl an auf der sich der Rolladen befindet wenn ich Ihn aus fhem heraus auf einen Wert fahre.
Sollte doch meines Erachtens wenn ich den Rolladen auf 50% fahre, aus FHEM heraus und die Alex App öffne die angefahrenen 50% auch anzeigen.

Gruß
Christian

amenomade

Wie immer: zeigt aus der Log, wie das Gerät jetzt erkannt wird
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Kohle77

Hello,
hier der Alexa output nach alexa restart:
[21.12.2020, 12:40:09] [FHEM] KNX_0301004 is blind
[21.12.2020, 12:40:09] [FHEM] KNX_0301004 has
[21.12.2020, 12:40:09] [FHEM]   CurrentPosition [pct]
[21.12.2020, 12:40:09] [FHEM]   TargetPosition [TargetPosition]
[21.12.2020, 12:40:09] [FHEM] KNX_0301004 will not send proactive events
[21.12.2020, 12:40:09] [FHEM] KNX_0301004 uses ID: abcdef80-1234-f125-da32-3148a                                                                                                                                                            d23b731123


amenomade

Der hat immer noch pct als CurrentPosition, und pct ist kein vorhandenes Reading. Er akzeptiert wahrscheinlich CurrentPostion nicht, da dieses % Zeichen drin steht. Mach evtl. ein userReading ohne % (egal der Name, aber diesen Name im homeBridgeMapping dann übertragen.)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Kohle77

Hi,
also als erstes habe ich mit:
deletereading KNX_0301004 .*
alle readings des KNX devices gelöscht.
Die DEF des KNX devices habe ich so abgeändert 3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:AktuellePos:listenonly
Dann habe ich den Rollo aus FHEM ein Stück verfahren und habe ein Reading mit dem Namen "AktuellePos-get" erhalten.
Damit have ich mir mit attr KNX_0301004 userReadings CurrentPosition {ReadingsNum("KNX_0301004", "AktuellePos-get",0)} gebaut.
Danach wieder den Rolladen ein Stück verfahren und bei dem UserReading das ich angelegt habe erscheint nun der ganzzahlige Wert der Rollo Position.
Nun habe ich das erkannt device in der Alexa App wieder gelöscht und mit set alexa reload das alexa device neu geladen. Zur Sicherheit habe ich auch den Dienst aus FHEM gestoppt und wieder gestartet.
In der Alexa App jetzt nach neue Geräte suche.
Im Alexa Log sehe ich nun das:
[22.12.2020, 07:37:48] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value 27
[22.12.2020, 07:37:48] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20KNX_0301004%20TargetPosition%2027&fwcsrf=csrf_123191221633539&XHR=1
[22.12.2020, 07:37:48] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":27,"timeOfSample":"2020-12-22T06:37:48.222Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"1234e9e0-6c67-4c0f-1234-8aead12b1234","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-1234DC470F83E73D"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234"},"payload":{}}}
[22.12.2020, 07:37:51] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa","name":"ReportState","payloadVersion":"3","messageId":"c9262325-2d9a-428f-b410-9c1d064f147b","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-3E19DC470F831234"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234","cookie":{"fuuid":"1234ca80-f33f-f123-da32-3148abd23b731234","device":"KNX_0301004"}},"payload":{}}}
[22.12.2020, 07:37:51] <<<< [ssh] {"context":{"properties":[]},"event":{"header":{"namespace":"Alexa","name":"StateReport","payloadVersion":"3","messageId":"4bb3f157-1861-479f-850b-361188789591","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-3E19DC470F831234"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234"},"payload":{}}}
[22.12.2020, 07:37:54] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa","name":"ReportState","payloadVersion":"3","messageId":"b66595bf-71b8-4009-a310-e5df4637782e","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-3E19DC470F831234"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234","cookie":{"fuuid":"1234ca80-f33f-f123-da32-3148abd23b731234","device":"KNX_0301004"}},"payload":{}}}
[22.12.2020, 07:37:54] <<<< [ssh] {"context":{"properties":[]},"event":{"header":{"namespace":"Alexa","name":"StateReport","payloadVersion":"3","messageId":"e4d50d31-0dff-41be-832f-bc646f809aad","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-3E19DC470F831234"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234"},"payload":{}}}
[22.12.2020, 07:37:57] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa","name":"ReportState","payloadVersion":"3","messageId":"001ae01c-1eb4-4f80-b2fd-30679fb6fc7b","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-3E19DC470F831234"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234","cookie":{"fuuid":"1234ca80-f33f-f123-da32-3148abd23b731234","device":"KNX_0301004"}},"payload":{}}}
[22.12.2020, 07:37:57] <<<< [ssh] {"context":{"properties":[]},"event":{"header":{"namespace":"Alexa","name":"StateReport","payloadVersion":"3","messageId":"424615b3-6c21-4b62-970e-246dfbb2c364","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"1234221F-3E19DC470F831234"},"endpointId":"1234ca80-f33f-f123-da32-3148abd23b731234"},"payload":{}}}


Also nochmal ein set alexa reload und wieder ins Log geschaut:
[22.12.2020, 07:43:37] [FHEM] KNX_0301004 is blind
[22.12.2020, 07:43:37] [FHEM] KNX_0301004 has
[22.12.2020, 07:43:37] [FHEM]   CurrentPosition [pct]
[22.12.2020, 07:43:37] [FHEM]   TargetPosition [TargetPosition]
[22.12.2020, 07:43:37] [FHEM] KNX_0301004 will not send proactive events
[22.12.2020, 07:43:37] [FHEM] KNX_0301004 uses ID: 1234ca80-f33f-f123-da32-3148abd23b731234


Mache ich aber ein "list KNX_0301004" habe ich diesen output:
Internals:
   CFGFN      /opt/fhem/FHEM/CFG/2_neuMi_rollos.cfg
   DEF        3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:AktuellePos:listenonly
   DEVNAME    KNX_0301004
   FIRSTGADNAME Auf/Zu
   FUUID      1234ca80-f33f-f123-da32-3148abd23b731234
   GETSTRING  AktuellePos:noArg TargetPosition:noArg Stop:noArg Auf/Zu:noArg
   IODev      KNX
   KNX_MSGCNT 26
   KNX_RAWMSG C0001bw0311143
   KNX_TIME   2020-12-22 07:37:53
   LASTInputDev KNX
   MSGCNT     26
   NAME       KNX_0301004
   NR         87
   NTFY_ORDER 50-KNX_0301004
   SETSTRING  TargetPosition:slider,0,1,100 Stop:trigger,trigger Auf/Zu:up,down
   STATE      26 %
   TYPE       KNX
   GADDETAILS:
     AktuellePos:
       CODE       03111
       GROUP      3/1/17
       MODEL      dpt5.001
       NO         4
       OPTION     listenonly
       RDNAMEGET  AktuellePos-get
       RDNAMEPUT  AktuellePos-put
       RDNAMESET 
       SETLIST    :slider,0,1,100
     Auf/Zu:
       CODE       03104
       GROUP      3/1/4
       MODEL      dpt1.008
       NO         1
       OPTION     
       RDNAMEGET  Auf/Zu-get
       RDNAMEPUT  Auf/Zu-put
       RDNAMESET  Auf/Zu-set
       SETLIST    :up,down
     Stop:
       CODE       03105
       GROUP      3/1/5
       MODEL      dpt1.017
       NO         2
       OPTION     
       RDNAMEGET  Stop-get
       RDNAMEPUT  Stop-put
       RDNAMESET  Stop-set
       SETLIST    :trigger,trigger
     TargetPosition:
       CODE       03110
       GROUP      3/1/16
       MODEL      dpt5.001
       NO         3
       OPTION     
       RDNAMEGET  TargetPosition-get
       RDNAMEPUT  TargetPosition-put
       RDNAMESET  TargetPosition-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     03104      Auf/Zu
     03105      Stop
     03110      TargetPosition
     03111      AktuellePos
   OLDREADINGS:
   READINGS:
     2020-12-22 07:37:53   AktuellePos-get 26 %
     2020-12-22 07:36:20   Auf/Zu-set      down
     2020-12-22 07:37:53   CurrentPosition 26
     2020-12-22 07:36:24   Stop-set        trigger
     2020-12-22 07:37:48   TargetPosition-set 27 %
     2020-12-22 07:37:53   last-sender     0/0/27
     2020-12-22 07:37:53   state           26 %
Attributes:
   DbLogExclude .*
   IODev      KNX
   alexaName  Büro Christian
   alias      Rollo
   devStateIcon up:fts_shutter_1w_0@green down:fts_shutter_1w_100@black 9\d.*:fts_shutter_1w_100 8\d.*:fts_shutter_1w_90 7\d.*:fts_shutter_1w_80 6\d.*:fts_shutter_1w_70 5\d.*:fts_shutter_1w_60 4\d.*:fts_shutter_1w_50 3\d.*:fts_shutter_1w_40 2\d.*:fts_shutter_1w_30 1\d.*:fts_shutter_1w_20 0\d.*:fts_shutter_1w_10up:shutter_1 down:shutter_closed
   eventMap   /on g2:Stop/off g1:Auf/on g1:Zu/value 30% g3:Pos30/value 50% g3:Pos50/value 70% g3:Pos70
   genericDeviceType blind
   group      Christian Buero
   homebridgeMapping CurrentPosition=CurrentPosition TargetPosition=TargetPosition::TargetPosition
   room       DG_MI->Buero Chris
   userReadings CurrentPosition {ReadingsNum("KNX_0301004", "AktuellePos-get",0)}
   verbose    5
   webCmd     Auf:Stop:Zu::Pos30:Pos50:Pos70


Dort ist also ein Reading mit den Namen CurrentPosition das den Wert 26 hat.

Gruß
Christian

amenomade

 Versuch mal noch ein "clear" + Leerzeichen ganz am Anfang des homeBridgeMappings hinzuzufügen, dann "set alexa reload"
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

justme1968

hier gehen glaube ich gerade ein paar dinge durcheinander. am besten geht man so vor:
- welches reading enthält die aktuelle position? welches (set-) kommando ändert die position?
- falls es das reading nicht gibt: mit userReading (oder device spezifisch) dafür sorgen das es vorhanden ist
- falls es das kommando nicht gibt: mit cmdalias (oder device spezifisch) dafür sorgen das es vorhanden ist
- das reading muss auch ein event (siehe event monitor) erzeugen
- wenn irgend möglich 100% -> offen, 0% -> zu!

- genericDeviceType auf blind setzen und homebridgeMapping anlegen (s.u.)

- set <alexa> add <name> oder alexa-fhem neu starten
- geräte suche starten
- sicherstellen das es einen slider in der alexa app gibt

- slider testen
- probieren ob alexa, <name> <wert> prozent funktioniert
- probieren ob alexa, <name> ganz hoch oder alexa, <name> ganz runter funktioniert
- probieren ob alexa, <name> hoch oder alexa, <name> runter funktioniert

- wichtig: zum ganz rauf und ganz runter fahren muss man 'ganz rauf' bzw. 'ganz runter' sagen. nur 'rauf' oder 'runter' fahren jeweils nur ein kleines stück.

- danach fine tuning des alexa mappings (minValue, maxValue invert)




CurrentPosition: konfiguration für das auslesen der aktuellen position
TargetPosition: konfiguration für die gewünschte konfiguration

also: attr homebridgeMapping TargetPosition:<reading>,cmd=<cmd> CurrentPosition:TargetPosition

<reading>: das reading in dem die aktuelle position steht

<cmd>: das kommando zum setzen der gewünschten position

CurrentPosition=TargetPosition: kopiert die konfiguration von TargetPosition nach CurrentPosition statt alles einzeln anzugeben. die reihenfolge in homebridgeMapping ist wichtig. readings sollten dann nicht genau so heissen wie characteristics.

attr homebridgeMapping CurrentPosition:<reading> TargetPosition:CurrentPosition,cmd=<cmd>
so rum geht auch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

amenomade

#12
So in die Richtung waren wir am Anfang.
Zitat- welches reading enthält die aktuelle position? welches (set-) kommando ändert die position?
Das war meine erste Frage. Aber dann hat er angefangen, seine Readings und Kommandos umzubenennen, und:


Zitat von: justme1968 am 22 Dezember 2020, 11:47:15

CurrentPosition=TargetPosition: kopiert die konfiguration von TargetPosition nach CurrentPosition statt alles einzeln anzugeben. die reihenfolge in homebridgeMapping ist wichtig. readings sollten dann nicht genau so heissen wie characteristics.

Aha! Darauf habe ich nicht aufgepasst. Und deswegen geht es mit seinen umgenannten Readings (CurrentPosition) und Kommandos (TargetPosition)nicht. Also ... die Readings wie die Characteristics zu nennen = schlechte Idee?

Das hätte vermutlich (bis auf das % Zeichen - versteht alexa-fhem Readings/sets mit % Zeichen?) mit seiner urspünglichen Definition funktioniert:
Zitat von: amenomade am 21 Dezember 2020, 01:53:07

Vor deiner Änderung hätte es irgendwie so aussehen müssen (angenommen, dass alexa-fhem das % Zeichen versteht, das weiss ich nicht):
CurrentPosition=state TargetPosition=Position-set::position

Danke, für die Erklärung :)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Kohle77

Hallo,
als erstes habe ich mal das userReading gelöscht. Das hatte ich ja gemacht um das Reading ohne % Zeichen zu erhalten.
So war es definiert:
userReadings CurrentPosition {ReadingsNum("KNX_0301004", "AktuellePos-get",0)}

Die definition des KNX devices lautet:
3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:TargetPosition 3/1/17:dpt5.001:AktuellePos:listenonly
Dort ist der erste Teil für das öffnen oder schließen des Rolladens.
Der 3/1/5 Teil ist die Adresse zum stoppen des Rolladens.
3/1/6 wird benutzt um den Rolle auf eine Prozentzahl zu fahren.
3/1/17 liefert die aktuelle Rolladen Position in ein Reading das "AktuellePos" heist (wobei ich glaube das ich das nicht brauche da es ja schon in state steht).

In der FHEM Eingabezeile kann ich den Rolladen darüber steuern.
set KNX_0301004 Zu fährt der Rolladen zu (= 100% im Reading state)
und mit
set KNX_0301004 Auf fährt der Rolladen auf (= 0% im Reading state)
mit
set KNX_0301004 Stop kann ich den Rolladen stoppen während er fährt
mit
set KNX_0301004 TargetPosition 35% (es geht auch ohne das % Zeichen)
fährt der Rolladen auf die gewünscht Position (also 35%).

Das homebridgeMapping war bisher CurrentPosition=CurrentPosition TargetPosition=TargetPosition::TargetPosition
Auch dieses gelöscht.

Schaue ich mir den Event Monitor an bekomme ich folgendes:

2020-12-22 13:40:51 KNX KNX_0301004 TargetPosition-set: 30 %
2020-12-22 13:40:51 KNX KNX_0301004 30 %
2020-12-22 13:40:51 KNX KNX_0301004 last-sender: fhem
2020-12-22 13:40:56 KNX KNX_0301004 AktuellePos-get: 30 %
2020-12-22 13:40:56 KNX KNX_0301004 last-sender: 0/0/27
2020-12-22 13:40:56 KNX KNX_0301004 30 %
2020-12-22 13:40:56 KNX KNX_0301004 AktuellePos-get: 30 %
2020-12-22 13:40:56 KNX KNX_0301004 last-sender: 0/0/27
2020-12-22 13:40:56 KNX KNX_0301004 30 %


Somit wird auch ein Reading "AktuellePos-get" im Event monitor geloggt (das state beinhaltet dieses aber auch).

Wenn ich es nun richtig verstehe und diesem folge für das homebridgeMapping Beispiel/Erklärung:
attr homebridgeMapping TargetPosition:<reading>,cmd=<cmd> CurrentPosition:TargetPosition
TargetPosition:<reading> wäre für mich dann TargetPosition:state
cmd=<cmd> wäre dann set

Also müsste das ganze dann so aussehen:
attr homebridgeMapping TargetPosition:state,cmd=set CurrentPosition:TargetPosition
genericDeviceType ist auf blind gesetzt.
Um ganz sicher zugehen habe ich in der Alexa App (auf dem Handy) wieder gelöscht und in FHEM Alexa gestoppt und wieder gestartet.
Danach das Gerät wieder aus der Alexa App gesucht.

Jetzt zum test.
Ich war mir nicht sicher welchen slider du meinst. Den in der Alexa App oder in FHEM.
Habe mit dem slider in FHEM angefangen. Ergebniss funktioniert und in state wie auch in AktuellePos-get steht der richtige Wert.
Schaue ich jetzt in die Alexa App werden dort auch % angezeigt (Juhu) aber weiter im test.
Verschieben des Reglers in der AlexaApp. Ergebniss Rolladen fährt nicht (das ging doch vorher...)
Das war das alte homebridgeMapping war (hier konnte ich den Rolladen über die Alexa App steuern aber die Anzeige funktioniert nicht):
homebridgeMapping CurrentPosition=CurrentPosition TargetPosition=TargetPosition::TargetPosition
das neue ist (hier funktioniert die Anzeige aber ich konnte den Rolladen nicht aus der Alexa App steuern) :
homebridgeMapping TargetPosition:state,cmd=set CurrentPosition:TargetPosition

Es kann jetzt nicht mehr viel sein. Ich hoffe ihr könnt mir jetzt noch bei dem letzten Rest helfen (mache natürlich auch die Restlichen Tests).
Wenn alles funktiort Poste ich das ganze Setup nochmal damit andere das vielleich nachvollziehen können.

Gruß
Christian

amenomade

Nein. Versuche nicht die Readings nach Characteristics zu nennen.

Nimm das "list" deines Geräts, und schaue im Abschnitt "READINGS" wo die jetzige Position steht.
READINGS:
     2020-12-22 07:37:53   AktuellePos-get 26 %
     2020-12-22 07:36:20   Auf/Zu-set      down
     2020-12-22 07:37:53   CurrentPosition 26
     2020-12-22 07:36:24   Stop-set        trigger
     2020-12-22 07:37:48   TargetPosition-set 27 %
     2020-12-22 07:37:53   last-sender     0/0/27
     2020-12-22 07:37:53   state           26 %

Sagen wir mal  hier AktuellePos-get
Dann kommt in homeBridgeMapping
CurrentPosition=AktuellePos-get
Linker Teil ist der Name der Characteristic bei Alexa, das ist fest und kann man nicht ändern. So muss es heissen, damit Alexa es versteht => CurrentPosition
Rechter Teil ist das entspr. Reading in Fhem, das dafür benutzt werden muss =>  AktuellePos-get

Dann nimmst Du den "set" Befehl, der zum Position Setzen gilt: z.B.
set KNX_0301004 TargetPosition-set 50
Dann kommt in homeBridgeMapping
TargetPostion=TargetPosition-set,cmd=set
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus