Hauptmenü

KNX Rolladen und Alexa

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

Vorheriges Thema - Nächstes Thema

Amenophis86

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.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

TomLee

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. 

Kohle77

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

Kohle77

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

Kohle77

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

Kohle77

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

Amenophis86

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?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Kohle77

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

Kohle77

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

Amenophis86

Lass offen, habe es auch aufgegeben. Vielleicht findet sich irgendwann einer und schließen macht keinen Sinn
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...