FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kohle77 am 19 Dezember 2020, 12:15:30

Titel: KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Dezember 2020, 12:15:30
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 19 Dezember 2020, 18:02:22
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.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 20 Dezember 2020, 08:42:00
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.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 20 Dezember 2020, 12:55:55
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 21 Dezember 2020, 01:53:07
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 21 Dezember 2020, 10:59:08
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 21 Dezember 2020, 11:58:11
Wie immer: zeigt aus der Log, wie das Gerät jetzt erkannt wird
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 21 Dezember 2020, 12:43:02
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

Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 21 Dezember 2020, 17:05:22
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.)
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 22 Dezember 2020, 07:47:54
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 22 Dezember 2020, 11:04:24
 Versuch mal noch ein "clear" + Leerzeichen ganz am Anfang des homeBridgeMappings hinzuzufügen, dann "set alexa reload"
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: justme1968 am 22 Dezember 2020, 11:47:15
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.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 22 Dezember 2020, 11:56:54
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 :)
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 22 Dezember 2020, 14:09:18
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: amenomade am 22 Dezember 2020, 18:19:52
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
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: justme1968 am 22 Dezember 2020, 19:27:52
für alexa–fhem sind die direkten auf und zu set kommandos nicht relevant. alexa kennt nur die prozentuale steuerung.

stop eigentlich auch nicht. inneinem anderen thread hat aber jemand heraus gefunden das man es alexa per On characteristic auch für rollläden beibringen kann. das ist aber kür. zuerst muss die prozentuale steuerung gehen.

readings mit einem % sollten keine probleme machen. wenn das reading komplizierter ist kann man über die part anweisung im homebridgeMapping teile extrahieren.

ein zwingendes % im set müsste man per cmdalias erzeugen. ist hier aber nicht nötig.

die readings sollte man nicht wie die characteristic benennen. im besten fall verwirrt es, im schlimmsten fall sorgt es für fast nicht auffindbare probleme.

wie oben geschrieben kann man die ,falsche' richtung mit einem invert im mapping korrigieren.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 23 Dezember 2020, 08:26:28
Hallo,
also ich habe verstanden das die Reading nicht gleich den Characteristics sein darf.

Dazu habe ich meine definition wie folgt geändert:
DEF        3/1/4:dpt1.008:Auf/Zu 3/1/5:dpt1.017:Stop 3/1/16:dpt5.001:Position 3/1/17:dpt5.001:AktuellePos

Somit wäre "Position" das womit ich den % wert setze was aus FHEM heraus auch geht mit:
set KNX_0301004 Position 30

Jetzt stellt sich mir aber die Frage wie Alexa diesen Wert liest. Aus FHEM heraus mache ich das mit:
get KNX_0301004 AktuellePos

   READINGS:
     2020-12-23 08:02:30   AktuellePos-get 37 %
     2020-12-23 07:59:47   Auf/Zu-get      down
     2020-12-23 07:55:56   Auf/Zu-set      down
     2020-12-23 08:02:28   Position-set    38 %
     2020-12-23 07:59:48   Stop-get        trigger
     2020-12-23 07:55:58   Stop-set        trigger
     2020-12-23 08:02:30   last-sender     0/0/27
     2020-12-23 08:02:30   state           37 %


Warum in den Readings das -get und -set and Position bzw. AktuellePos angehängt wird weiß ich nicht.

Um den Wert auch zu sehen habe ich aus FHEM heraus das ausgeführt:
{ReadingsNum("KNX_0301004", "AktuellePos-get",0)}
und es wird mir dann auch der aktuelle Wert des readings AktuellePos-get angezeigt.

Ich habe das homebridgeMapping so definiert:
TargetPosition=Position::Position CurrentPosition=AktuellePos-get

Was bedeuten eigentlich diese ::?

Mit diesem Mapping kann ich den Rolladen aus der Alexa App auf einen Prozentwert fahren.
Fahre ich aber den Rolladen aus FHEM auf einen anderen Wert ändert sich die Anzeige nicht.

Führ das fahren des Rolladens sehe ich Alex log:
[23.12.2020, 08:13:31] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value 31
[23.12.2020, 08:13:31] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20KNX_0301004%20Position%2031&fwcsrf=csrf_878497296073011&XHR=1


Letztendlich lässt sich durch ersetzen die %20 durch eine Leerzeichen folgendes schreiben:
<---snipped--->set KNX_0301004 Position 31<---snipped--->
Also genau die Zeile die ich auch as FHEM heraus eingeben würde.

Schaue ich jetzt im Alexa log nach dem get finde ich nur:
  2020-12-23 08:19:26 caching: KNX_0301004-AktuellePos-get: 31 %
[23.12.2020, 08:19:26] [FHEM]     caching: CurrentPosition: 31 % (as string; from '31 %')


also müsste das lesen der Position doch auch funktionieren?
Warum zeigt er diesen Wert den nicht an in der Alexa App?

Fahre den Rolladen aus FHEM auf 50% dann sollte in dem Alexa Log ja auch ein get zu sehen sein, richtig?
  2020-12-23 08:22:02 caching: KNX_0301004-AktuellePos-get: 50 %
[23.12.2020, 08:22:02] [FHEM]     caching: CurrentPosition: 50 % (as string; from '50 %')


das scheint ja auch der Fall zu sein aber in der Alexa App sehe ich noch immer auf 31 Prozent und die Meldung "Ein Problem ist aufgetreten".

Zu dem fahren des Rolladens via Sprachsteuerung.
"Alexa fahre Büro Christian auf 70 prozent" -> funktioniert
"Alexa fahre Büro Christian ganz auf" -> geht nicht bekomme nur eine Ton (PlümPlüm)

Gruß
Christian

Titel: Antw:KNX Rolladen und Alexa
Beitrag von: justme1968 am 23 Dezember 2020, 09:26:29
alexa erwartet das die position im reading automatisch aktualisiert wird und per event gemeldet wird. so wie ein notify auch. so wie fhem an sich ja auch event basiert ist.

dan hat alexa dich nicht verstanden. versuch ,ganz hoch' statt ,ganz auf'. wie schon im anderen thread geschrieben die sprachassitenten sind dumm. sie verstehen nicht was du sagst sondern du musst sagen was sie verstehen..
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 23 Dezember 2020, 10:05:24
Hello,
Im Event Log (aus der GUI auf "Zu" im event log down und dann "Stop" im event log trigger):

2020-12-23 09:37:31 KNX KNX_0301004 Auf/Zu-set: down
2020-12-23 09:37:31 KNX KNX_0301004 down
2020-12-23 09:37:31 KNX KNX_0301004 last-sender: fhem
2020-12-23 09:37:34 KNX KNX_0301004 Stop-set: trigger
2020-12-23 09:37:34 KNX KNX_0301004 trigger
2020-12-23 09:37:34 KNX KNX_0301004 last-sender: fhem
2020-12-23 09:37:34 KNX KNX_0301004 AktuellePos-get: 16 %
2020-12-23 09:37:34 KNX KNX_0301004 last-sender: 0/0/27
2020-12-23 09:37:34 KNX KNX_0301004 16 %
2020-12-23 09:37:34 KNX KNX_0301004 AktuellePos-get: 16 %
2020-12-23 09:37:34 KNX KNX_0301004 last-sender: 0/0/27
2020-12-23 09:37:34 KNX KNX_0301004 16 %


Die Readings dazu:

   READINGS:
     2020-12-23 09:37:34   AktuellePos-get 16 %
     2020-12-23 07:59:47   Auf/Zu-get      down
     2020-12-23 09:37:31   Auf/Zu-set      down
     2020-12-23 08:26:00   Position-set    0 %
     2020-12-23 07:59:48   Stop-get        trigger
     2020-12-23 09:37:34   Stop-set        trigger
     2020-12-23 09:37:34   last-sender     0/0/27
     2020-12-23 09:37:34   state           16 %


Somit hat "AktuellePos-get" ein Event log eintrag.

"Alexa fahre Büro Christian ganz hoch" -> Rückmeldung Büro Christian reagiert grade nicht
mach ich direkt danach aber ein "Alexa fahre Büro Christian auf 70 prozent" funktioniert es.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 05 Januar 2021, 07:13:53
Hi,
also ich ignoriere mal die falsche Anzeige in der Alexa App.
Ich habe nicht ganz verstanden was mit der Option -D gemeint wurde.
Aus der fhem set <alexa> stop dann set <alexa> start -D ?

Ich habe jetzt gesprochen:
ZitatAlexa, fahre <device> ganz hoch
und alexa sagt mir dann das <device> reagiert grade nicht.
Im Log steht dazu:

[5.1.2021, 07:00:52] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","instance":"Blind.Position","messageId":"12345678-e283-47aa-8a59-acd4c7244321","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"12345678-3E19DC470F834321"},"endpointId":"abcdefgh-f33f-f555-da32-3148abd23b731234","cookie":{"fuuid":"lalalala-f33f-f555-da32-3148abd23b73bbbb","device":"KNX_0301004"}},"payload":{"rangeValueDelta":100,"rangeValueDeltaDefault":false}}}
[5.1.2021, 07:00:52] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value NaN
[5.1.2021, 07:00:52] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20KNX_0301004%20Position%20NaN&fwcsrf=csrf_126653004448903&XHR=1


Natürlich kann KNX_0301004 diese
ZitatNaN
nicht. Sollte da nicht 0% bzw. 100% geliefert werden?

Habe dann mal das homebridgeMapping auf das geändert:
CurrentPosition=curPosNum TargetPosition=Position::Position,minValue=0,maxValue=100,minStep=5

und mit set <alexa> reload das device neu geladen.

ZitatAlexa, fahre <device> ganz hoch
und alexa sagt mir dann das <device> reagiert grade nicht.
Im log steht das gleiche.

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 18 Januar 2021, 08:28:41
Hi,
habe jetzt meinen FHEM Server auf Buster umgezogen.
Hallo,
also ich habe das homeBridge Mapping ganz gelöscht. genericDeviceType ist blind.

[18.1.2021, 07:34:04] SSH: Welcome at the reverse proxy!  This pseudoshell does not react to any input - do not get irritated.
Jetzt sage ich
ZitatAlexa fahre RolladenName ganz zu

Im Alexa log steht:

[18.1.2021, 07:48:34] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","instance":"Blind.Position","messageId":"12345678-1234-1234-1234-123456789012","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"12345678-1234567890123456"},"endpointId":"12345678-1234-1234-1234-1234567890123456","cookie":{"fuuid":"12345678-1234-1234-1234-1234567890123456","device":"KNX_0301004"}},"payload":{"rangeValueDelta":-100,"rangeValueDeltaDefault":false}}}
[18.1.2021, 07:48:34] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value NaN
[18.1.2021, 07:48:34] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20KNX_0301004%20pct%20NaN&fwcsrf=csrf_123456789227169&XHR=1


Wenn ich es richtig verstehe ist der Wert der von Amazon zurück kommt -100 aber das gibt es bei dem KNX device nicht und deswegen macht er ein set auf NaN.
Ich habe ja nur die Werte 0 bis 100.
100% wäre zu und 0% wäre auf.

Jetzt sage ich "Alexa fahre RolladenName auf 30 prozent"

[18.1.2021, 07:55:51] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.RangeController","name":"SetRangeValue","payloadVersion":"3","instance":"Blind.Position","messageId":"12345678-1234-1234-1234-123456789012","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"12345678-1234567890123456"},"endpointId":"12345678-1234-1234-1234-1234567890123456","cookie":{"fuuid":"12345678-1234-1234-1234-1234567890123456","device":"KNX_0301004"}},"payload":{"rangeValue":30}}}
[18.1.2021, 07:55:51] [FHEM] KNX_0301004: executing set cmd for TargetPosition with value 30
[18.1.2021, 07:55:51] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=set%20KNX_0301004%20pct%2030&fwcsrf=csrf_123456789227169&XHR=1
[18.1.2021, 07:55:51] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.RangeController","instance":"Blind.Position","name":"rangeValue","value":30,"timeOfSample":"2021-01-18T06:55:51.794Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"6ea7c7f5-f12d-4cf8-8b81-3c42a0c3e83d","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"5500183B-C38E230E27661A3B"},"endpointId":"5e89ca80-f33f-f555-da32-3148abd23b731b80"},"payload":{}}}
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 18 Januar 2021, 11:50:03
Also ich kämpfe auch aktuell mit der Einbindung von Alexa und einem KNX Rollladen. Kann bisher über absolute Pos in der Alexa App anfahren aber sehe in der App den Status noch nicht.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 18 Januar 2021, 12:48:52
Hello Amenophis86,
ja genau das hatte ich am Anfang. Ist mir aber inzwischen egal ob es in der Alexa App richtig angezeigt wird.
Ich möchte nur das "Alexa fahre devicename ganz auf" oder "zu" funktioniert.
Habe allerdings am WE auch die 10_KNX.pm eingespielt https://forum.fhem.de/index.php/topic,116737.0.html (https://forum.fhem.de/index.php/topic,116737.0.html)
Leider funktioniert danach aber meine Web Buttons nicht mehr richtig und habe deswegen "https://forum.fhem.de/index.php/topic,117869.0.html" eröffnet.

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 18 Januar 2021, 13:48:24
Das mit dem Webbuttons habe ich noch nicht umgesetzt, da mir die Alexa Anbindung noch wichtiger ist. Dann muss ich mal weiter versuchen die blöden Dinger richtig angezeigt zu bekommen.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 18 Januar 2021, 14:41:16
An amenomade und justme1968:

Ich hänge am gleichen Problem mit der Anzeige. Allerdings scheint laut Log der Wert anzukommen:

  2021-01-18 14:38:48 caching: EKU_Rollo_test-Status: 0
[18.1.2021, 14:38:48] [FHEM]     caching: CurrentPosition: 0 (as string; from '0')


Warum wird er mir nicht in der Anzeige in der Alexa App angezeigt? Es steht dort nur, dass es zu einem Fehler gekommen ist. Kann ich irgendwie den Fehler finden?
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Januar 2021, 07:23:03
Guten morgen,
nachdem ich jetzt von erwin in https://forum.fhem.de/index.php/topic,117869.0.html (https://forum.fhem.de/index.php/topic,117869.0.html) erfahren habe wie ich das Mapping der Webbuttons richtig mache und folgendes homebridgeMapping gemacht habe CurrentPosition=posstatus TargetPosition=position::position funktioniert die Einbidung mit Alex fast einwandfrei (Anzeige geht, steuerung per Sprache mit ganz rauf/runter und nur rauf/runter, ändern des Reglers in der Alexa App funktionieren). Das einzige problem dabei ist das im Moment rauf und runter vertauscht sind aber wenn ich sage "Alexa fahre Gerät auf 30 %" fährt es in die richtige Richtung.

Ich weiß es gibt einen Paramter in dem homebridgeMapping der invert=1 heist aber an welcher stelle muss ich diesen einbauen?
CurrentPosition=posstatus TargetPosition=position::position,invert=1 (fährt immer noch nach oben bei ganz runter)
oder
CurrentPosition=posstatus TargetPosition=position,invert=1::position (fährt immer noch nach oben bei runter)

Danke
Christian

Titel: Antw:KNX Rolladen und Alexa
Beitrag von: TomLee am 19 Januar 2021, 07:36:28
Versuch mal obs was bringt das Device in der App zu löschen und dann nach einem restart/neue Suche mit invert=1 klappt ?
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Januar 2021, 08:48:27
Hallo,
also ich habe das homebridgeMapping nun auf:
CurrentPosition=posstatus TargetPosition=position,invert=1,minValue=0,maxValue=100,minStep=10::position,invert=1,minValue=0,maxValue=100,minStep=10
geändert.
Jetzt kann ich sagen "Alexa fahre KNXDev runter" und er fährt in die richtige Richtung nur "ganz runter" bzw. "ganz rauf" geht noch in die falsche Richtung.

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 19 Januar 2021, 09:05:53
Kann mir mal jemand bitte erklären was das :: bedeutet und warum man das braucht? Und würdest du mal ein raw (kein list) deines Rollladen Devices posten @Kohle77
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Januar 2021, 11:05:21
Hi,
ich kann dir leider auch nicht sagen für was die :: sind.
Leider wird der status in der Alexa App auch nicht mehr richtig angezeigt wenn ich das invert=1 in dem homebridgeMapping einfüge.
Hier mal das list KNX_0301004:
Internals:
   CFGFN      /opt/fhem/FHEM/CFG/2_neuMi_rollos.cfg
   DEF        3/1/4:dpt1.008:aufab:set:nosuffix
3/1/5:dpt1.010:stop:set:nosuffix
3/1/17:dpt5.001:posstatus:listenonly:nosuffix
3/1/16:dpt5.001:position:set:nosuffix
   DEVNAME    KNX_0301004
   Eversion   E04.20 10-01-2021
   FIRSTGADNAME aufab
   FUUID      5e89ca80-f33f-f555-da32-3148abd23b731b80
   GETSTRING 
   IODev      KNX
   KNX_MSGCNT 96
   KNX_RAWMSG C0001bw031111b
   KNX_TIME   2021-01-19 08:46:18
   LASTInputDev KNX
   MSGCNT     96
   NAME       KNX_0301004
   NOTIFYDEV  global,TYPE=KNX
   NR         87
   NTFY_ORDER 50-KNX_0301004
   SETSTRING  aufab:up,down stop:stop,start position:slider,0,1,100
   STATE      11 %
   TYPE       KNX
   GADDETAILS:
     aufab:
       CODE       03104
       GROUP      3/1/4
       MODEL      dpt1.008
       NO         1
       OPTION     set
       RDNAMEGET 
       RDNAMEPUT  aufab
       RDNAMESET  aufab
       SETLIST    :up,down
     position:
       CODE       03110
       GROUP      3/1/16
       MODEL      dpt5.001
       NO         4
       OPTION     set
       RDNAMEGET 
       RDNAMEPUT  position
       RDNAMESET  position
       SETLIST    :slider,0,1,100
     posstatus:
       CODE       03111
       GROUP      3/1/17
       MODEL      dpt5.001
       NO         3
       OPTION     listenonly
       RDNAMEGET  posstatus
       RDNAMEPUT  posstatus
       RDNAMESET 
       SETLIST    :slider,0,1,100
     stop:
       CODE       03105
       GROUP      3/1/5
       MODEL      dpt1.010
       NO         2
       OPTION     set
       RDNAMEGET 
       RDNAMEPUT  stop
       RDNAMESET  stop
       SETLIST    :stop,start
   GADTABLE:
     03104      aufab
     03105      stop
     03110      position
     03111      posstatus
   OLDREADINGS:
   READINGS:
     2021-01-19 08:40:35   aufab           down
     2021-01-19 08:46:18   last-sender     0.0.27
     2021-01-19 08:46:12   position        0
     2021-01-19 08:46:18   posstatus       11 %
     2021-01-19 08:46:18   state           11 %
     2021-01-19 08:46:18   stop            stop
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 \d.*:fts_shutter_1w_10
   eventMap   { dev=>{'^posstatus:.(.*)'=>'position: $1'}, usr=>{"Stop"=>"stop stop","Auf"=>"aufab up","Ab"=>"aufab down","Pos30"=>'position 30'},fw=>{'^posstatus (.*)'=>'position' } }
   genericDeviceType blind
   group      Christian Buero
   homebridgeMapping CurrentPosition=posstatus TargetPosition=position,invert=1,minValue=0,maxValue=100,minStep=10::position,invert=1,minValue=0,maxValue=100,minStep=10
   room       DG_MI->Buero Chris
   verbose    5
   webCmd     Auf:Stop:Ab::Pos30:position
   widgetOverride position:slider,0,10,100


Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 19 Januar 2021, 11:20:52
Ich habe mir mal dein Device angeschaut und nachgebaut. Was ich festgestellt habe ist, dass Alexa wohl ein Problem damit hat, wenn der Aktuelle Status in einem anderen Reading als im Absolute Position Reading steht. Selbst, wenn ich das CurrentPosition auf mein Status Reading mappe kommt in der App es nicht richtig an. Die App orientiert sich immer am TargetPosition Reading. Dadurch, dass du mittels Eventmap den aktuellen Status auf das Absolute Positions Reading mapps stimmt die Anzeige in der App mit der Wirklichkeit überein. Sobald man dieses Mapping raus nimmt und versucht zwei verschieden Readings zu nutzen, also eins für CurrentPosition und eins für TargetPosition klappt die Anzeige nicht mehr. Aber warum ist das so? Genau dafür gibt es doch eigentlich die Unterscheidung und laut Log liest Alexa ja auch in den beiden Readings die richtigen Werte, wie ich es oben geschrieben habe.
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: TomLee am 19 Januar 2021, 11:38:12
was das :: bedeutet

Was ich bisher mitgenommen habe (das ist nicht viel und kann mich auch irren)

minStep=10::position

ist nur die Abkürzung von

minStep=10,cmd=position




Bei Alexa ist auf 100 und zu 0, wenn das so ist das bei KNX oben 0 und unten 100 ist und dann mit invert=1 arbeitet, dann werded ihr nie einen korrekten Status in der App angezeigt bekommen und korrekt per Sprache steuern können.
Eines von beiden geht dann halt nicht, das ist das was ich bezüglich diesem Thema bisher mitgenommen habe und Justme1968 schon oft erwähnt hat. 
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Januar 2021, 15:40:14
Ok,
ich habe verstanden das ich auf die Anzeige verzichten muss wenn ich invert=1 verwenden muss.
Was mir aber noch immer nicht klar ist warum der Rolladen in die richtige Richtung fährt wenn ich sage
ZitatAlexa fahre KNXDev runter
aber wenn ich sage
ZitatAlexa fahre KNXDev ganz runter
eben ganz nach oben fährt.
Wie vorher schon gesagt ist mir die Anzeige der Position in der Alexa App egal.

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Januar 2021, 17:21:08
Hallo,
ich habe jetzt mal ein wenig getestet. Hierzu lösche ich das Gerät immer in der Alexa App, ändere das homebridgeMapping und mache aus der FHEM Gui immer ein "set Alexa restart".

#### erster Fall ohne invert ####
Ohne Invert also mit dem homebridgeMapping
ZitatCurrentPosition=posstatus TargetPosition=position::position

Ich sage
ZitatAlexa fahre KNXDev ganz runter
aber der Rolladen fährt hoch und die Anzeige in der Alexa App funktioniert.
Ich sage
ZitatAlexa fahre KNXDev runter
aber der Rolladen fährt 10% hoch

Beim Scan der Alexa devices bekommen ich:

found 32 device(s)
<--snipped--->
{"endpointId":"","manufacturerName":"KNX",
"description":"n: KNX_0301004, r: dg_mi->buero chris",
"friendlyName":"büro christian",
"displayCategories":["EXTERIOR_BLIND"],
<---snipped--->

"configuration":{"supportedRange":{"minimumValue":0,"maximumValue":100,"precision":1},
"unitOfMeasure":"Alexa.Unit.Percent"},
"semantics":{"actionMappings":

[{"@type":"ActionsToDirective","actions":["Alexa.Actions.Close"],
"directive":{"name":"SetRangeValue","payload":{"rangeValue":0}}},   <<<<<<<<<<< dieser Wert scheint mir nicht richtig zu sein da ja Rolladen geschlossen = 100% ist

{"@type":"ActionsToDirective","actions":["Alexa.Actions.Open"],
"directive":{"name":"SetRangeValue","payload":{"rangeValue":100}}},      <<<<<<<<<<< dieser Wert scheint mir nicht richtig zu sein da ja Rolladen offen = 0% ist

{"@type":"ActionsToDirective","actions":["Alexa.Actions.Lower"],
"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":-10,"rangeValueDeltaDefault":false}}}, <<<< also bei Runter den aktuellen Wert -10 was ja Rolladen hoch bedeutet

{"@type":"ActionsToDirective","actions":["Alexa.Actions.Raise"],
"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":10,"rangeValueDeltaDefault":false}}}],  <<<< also bei Rauf den aktuellen Wert +10 was ja Rolladen runter bedeutet

"stateMappings":[{"@type":"StatesToValue","states":["Alexa.States.Closed"],"value":0},
{"@type":"StatesToRange","states":["Alexa.States.Open"],"range":{"minimumValue":1,"maximumValue":100}}]}}]


#### zweiter Fall mit invert ####

Nun mit Invert im homebridgeMapping
ZitatCurrentPosition=posstatus TargetPosition=position::position,invert=1

Ich sage
ZitatAlexa fahre KNXDev ganz runter
aber der Rolladen fährt hoch und die Anzeige in der Alexa App funktioniert.
Ich sage
ZitatAlexa fahre KNXDev runter
aber der Rolladen fährt 10% runter

Mit Invert

found 32 device(s)
{"endpointId":"","manufacturerName":"KNX",
"description":"n: KNX_0301004, r: dg_mi->buero chris",
"friendlyName":"büro christian",
"displayCategories":["EXTERIOR_BLIND"],


"configuration":{"supportedRange":{"minimumValue":0,"maximumValue":100,"precision":1},
"unitOfMeasure":"Alexa.Unit.Percent"},
"semantics":{"actionMappings":

[{"@type":"ActionsToDirective","actions":["Alexa.Actions.Close"],
"directive":{"name":"SetRangeValue","payload":{"rangeValue":100}}},   <<<<<<<<<<< dieser Wert scheint mir richtig zu sein da ja Rolladen geschlossen = 100% ist

{"@type":"ActionsToDirective","actions":["Alexa.Actions.Open"],
"directive":{"name":"SetRangeValue","payload":{"rangeValue":0}}},      <<<<<<<<<<< dieser Wert scheint mir richtig zu sein da ja Rolladen offen = 0% ist

{"@type":"ActionsToDirective","actions":["Alexa.Actions.Lower"],
"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":10,"rangeValueDeltaDefault":false}}}, <<<< also bei Runter den aktuellen Wert +10 was ja Rolladen runter bedeutet

{"@type":"ActionsToDirective","actions":["Alexa.Actions.Raise"],
"directive":{"name":"AdjustRangeValue","payload":{"rangeValueDelta":-10,"rangeValueDeltaDefault":false}}}],  <<<< also bei Rauf den aktuellen Wert -10 was ja Rolladen hoch bedeutet

"stateMappings":[{"@type":"StatesToValue","states":["Alexa.States.Closed"],"value":0},
{"@type":"StatesToRange","states":["Alexa.States.Open"],"range":{"minimumValue":1,"maximumValue":100}}]}}],


Jetzt ist mir schon die Idee gekommen wenn ich die Richtung am Aktor drehe. Mal sehen was da dann passiert.

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 19 Januar 2021, 17:29:27
Hi,
habe ich jetzt auch getestet. Letzendlich ist dann mit invert bei ganz rauf bzw. ganz runter die richtige Richtung aber dann mal nur rauf oder nur runter und die Prozente nicht mehr.

Irgendwo ist da eine Drehung drin.

Im moment sieht es für die Richtung rauf so aus:
Zitatganz rauf & runter
und für runter
Zitatganz runter & rauf

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 20 Januar 2021, 14:46:07
Hi,
wenn ich es mir so recht überlege müsste ich in der https://github.com/justme-1968/alexa-fhem/blob/master/lib/server.js (https://github.com/justme-1968/alexa-fhem/blob/master/lib/server.js)
in den Zeilen 3199-3203, genauer in Zeile 3203 minValue || 0 und maxValue || 100 setzen (für close)
und in Zeile 3213 umgedreht.
Damit müsste sich das
Zitatganz rauf
bzw.
Zitatganz runter
drehen lassen.

Ich habe die Datei auch auf dem Pi gefunden unter
Zitat/usr/local/lib/node_modules/alexa-fhem/lib/server.js

Kann ich die Werte dort einfach drehen um zu sehen was passiert?

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 20 Januar 2021, 15:06:43
Wüsste nicht was dagegen spricht. Bei einem Update würde es wieder raus fliegen aber zum testen kein Problem.

Aber ist das nicht genau das, was eigentlich das Mapping machen sollte?
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 20 Januar 2021, 17:00:17
Hi,
irgendwie blicke ich es nicht.
Also 0% ist Offen
100% ist geschlossen
Sage ich "Alexa fahre KNXDev auf 10%" fährt er von auf 10% zu
Sage ich "Alexa fahre KNXDev runter" fährt er weitere 10% nach unten
Sage ich "Alexa fahre KNXDev ganz runter" fährt er ganz nach oben

Wenn ich also auf %te fahre passt es.
Wenn ich nur runter benutze passt auch die Richtung
Nur wenn ich ganz runter benutze fährt er in die falsche Richtung

Es muss doch möglich sein nur das ganz runter und ganz rauf umzudrehen.

Leider bringt das auch nichts die Änderung in der server.js bzw wenn man etwas später noch die Werte tauscht finde alexa das Gerät überhaupt nicht mehr.
:'(

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Kohle77 am 04 Februar 2021, 11:54:50
Hi,
ich weiß nichtz ob ich den Thread offen lassen soll.
Mir fehlt es einfach an der Zeit und es scheint damit immer wieder probleme zugeben und nicht nur mit KNX.

Vielleicht findet irgendwann jemand dazu eine Lösung.

Gruß
Christian
Titel: Antw:KNX Rolladen und Alexa
Beitrag von: Amenophis86 am 04 Februar 2021, 12:00:51
Lass offen, habe es auch aufgegeben. Vielleicht findet sich irgendwann einer und schließen macht keinen Sinn