buennerbernd / fhem

Modules for FHEM smart home: KLF200, KLF200Node.
GNU General Public License v3.0
7 stars 2 forks source link

Winkelsteuerung Somfy Exterior Venetian blind Type 17 #5

Open virusbrain opened 5 years ago

virusbrain commented 5 years ago

Hi,

ich habe mir ein KLF200 Gateway angeschafft. Die Rollos mit Somfy OXIMO IO Motoren kann ich damit perfekt über FHEM ansteuern.

Die Raffstore lassen sich allerdings nur rauf- und runterfahren. Der Winkel der Lamellen lässt sich nicht steuern. Ich habe die API kurz überflogen, bin aber nicht so recht schlau daraus geworden. Kann mir evtl. jemand einen Hinweis oder Tipp geben, wie ich den Winkel der Lamellen steuern kann? Die Prozentangabe scheint keinen Einfluss auf den Winkel der Lamellen zu haben. Nach meine Verständnis gibt die Prozentangabe den Wert an, wie weit der Raffstore unten bzw. oben ist. Für den Winkel müsste es einen separaten Parameter geben, oder?

 2019-10-14 08:16:52   MP              51200
 2019-10-14 08:16:52   MPtarget        51200
 2019-10-09 19:24:35   actuatorAddress 01898b
 2019-10-09 19:24:35   backboneReferenceNumber 01898b
 2019-10-11 07:44:24   execution       stop
 2019-10-09 19:24:35   ioManufacturer  Somfy
 2019-10-14 08:26:15   lastCommandOriginator USER
 2019-10-14 08:26:15   lastControl     KLF200 Input
 2019-10-14 08:26:15   lastMasterExecutionAddress 1dfeb8
 2019-10-11 17:34:23   lastRunStatus   EXECUTION COMPLETED
 2019-10-11 17:34:23   lastStatusReply COMMAND COMPLETED OK
 2019-10-09 19:24:35   model           Somfy Exterior Venetian blind Type 17
 2019-10-09 19:24:55   name            Raffstor West
 2019-10-09 19:24:35   nodeTypeSubType Exterior Venetian blind
 2019-10-09 19:24:55   nodeVariation   NOT SET
 2019-10-14 08:16:53   operatingState  Done
 2019-10-11 07:44:24   pct             0
 2019-10-09 19:24:55   powerMode       ALWAYS ALIVE
 2019-10-11 07:44:24   remaining       0
 2019-10-14 08:29:15   sessionID       1378
 2019-10-11 17:34:23   sessionInformationCode 20800500
 2019-10-11 19:59:44   sessionStatusOwner USER
 2019-10-11 07:44:24   state           off
 2019-10-11 07:43:22   target          0
 2019-10-11 07:43:22   targetArrival   2019-10-11 07:44:23
 2019-10-09 19:24:55   velocity        Supported
buennerbernd commented 5 years ago

Mit dem API kann man den Winkel höchstwahrscheinlich definieren und auch auslesen. Ich habe das aber noch nicht ins FHEM-Modul aufgenommen, weil sich noch nie jemand mit einem solchen Gerät gemeldet hat. Mein erster Vorschlag wäre, im KLF-Web-UI Szenen(Programme) aufzuzeichnen, wo du die Lamellen in bestimmte Positionen bringst. Diese Szenen kannst du dann mal mit FHEM testen. Wenn das klappt, wären Logs (Verbose 5) von dem KLF200Node und der KLF200 interessant.

virusbrain commented 5 years ago

Wow, das wäre echt genial, wenn wir das hinbekommen :-).

Ich habe zwei Programme erzeugt. ID 0: Dreht die Lamellen ein bisschen auf ID 1: Dreht die Lamellen zu

Leider kann ich die Programme nicht starten. Im WebUI vom KLF200 erhalte ich nach einen Klick auf "Ausführen" die Meldung: image

Wenn ich über FHEM eine der beiden Szenen starte, wird folgendes geloggt:

  2019.10.14 21:22:33 5: KLF200 (klf200) - Set sceneID
  2019.10.14 21:22:33 5: KLF200 (klf200) KLF200_GW_ACTIVATE_SCENE_REQ SessionID 1717 SceneID 0 Velocity 0
  2019.10.14 21:22:33 5: KLF200 klf200: unwrapped bytes     041206b508050000
  2019.10.14 21:22:33 5: KLF200 klf200: wrapped bytes c00009041206b508050000a1c0
  2019.10.14 21:22:33 5: KLF200 (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000caf80000
  2019.10.14 21:22:33 5: klf200: dispatch \002\021\003\005?\000?\000????????\000\000??\000\000
  2019.10.14 21:22:33 5: KLF200Node (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000caf80000
  2019.10.14 21:22:33 5: KLF200Node (klf200_3) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 3 5 MP:51200 T:51200 FP1:63487 0 3405250560
  2019.10.14 21:22:33 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 Done
  2019.10.14 21:22:33 5: KLF200 (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000caf80000
  2019.10.14 21:22:33 5: klf200: dispatch \002\021\003\005?\000?\000????????\000\000??\000\000
  2019.10.14 21:22:33 5: KLF200Node (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000caf80000
  2019.10.14 21:22:33 5: KLF200Node (klf200_3) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 3 5 MP:51200 T:51200 FP1:63487 0 3405250560
  2019.10.14 21:22:33 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 Done
  2019.10.14 21:22:43 5: KLF200 (klf200) - received: 000000
  2019.10.14 21:22:43 5: KLF200 (klf200) GW_ERROR_NTF 0000 0
  2019.10.14 21:22:43 1: KLF200 (klf200) - Gateway Error: Not further defined error.
  2019.10.14 21:22:43 5: KLF200 (klf200) Dequeue: 041206b508050000
  2019.10.14 21:22:43 5: KLF200 (klf200) Dequeue: mached
buennerbernd commented 5 years ago

Oh, das ist, was ich mit "höchstwahrscheinlich" meinte. Die KLF200-Firmware scheint nur für die Haupt-Use-Cases gut getestet zu sein. Ich hätte erwartet, das Szenen zumindest funktionieren. War die Box evtl. noch im Recording-Modus? Läuft es nach einem Neustart der Box besser? Ich werde mir mal was ausdenken, wie man sich an die Lamellensteuerung herantasten könnte. Dafür muss ich aber auch erst einmal Zeit finden. Achte mal darauf, ob bei deinen Geräten das Reading FP4 auftaucht. Das würde den internen Wert der Lamellenposition enthalten.

Gruß, Stefan.

virusbrain commented 5 years ago

Reboot des KLF200 hatte ich bereits versucht - gleiches Verhalten weiterhin. Wohl ein sehr ausgereiftes Ding...

Keine Ahnung ob das was nützt: Ich habe mit dem Tahoma Pad die Lamellen ein wenig bewegt, das führte zu folgender Ausgabe:

2019.10.15 13:09:39 5: KLF200 (klf200) - received: 02110302c800c800f7fff7fff7fff7ff0000a8f40000
2019.10.15 13:09:39 5: klf200: dispatch \002\021\003\002?\000?\000????????\000\000??\000\000
2019.10.15 13:09:39 5: KLF200Node (klf200) - received: 02110302c800c800f7fff7fff7fff7ff0000a8f40000
2019.10.15 13:09:39 5: KLF200Node (klf200_3) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 3 2 MP:51200 T:51200 FP1:63487 0 2834563072
2019.10.15 13:09:39 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 'Not used'
2019.10.15 13:09:39 5: KLF200 (klf200) - received: 02110304c800c800f7fff7fff7fff7ff0000a8f40000
2019.10.15 13:09:39 5: klf200: dispatch \002\021\003\004?\000?\000????????\000\000??\000\000
2019.10.15 13:09:39 5: KLF200Node (klf200) - received: 02110304c800c800f7fff7fff7fff7ff0000a8f40000
2019.10.15 13:09:39 5: KLF200Node (klf200_3) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 3 4 MP:51200 T:51200 FP1:63487 0 2834563072
2019.10.15 13:09:39 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 Executing
2019.10.15 13:09:40 5: KLF200 (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000a8f40000
2019.10.15 13:09:40 5: klf200: dispatch \002\021\003\005?\000?\000????????\000\000??\000\000
2019.10.15 13:09:40 5: KLF200Node (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000a8f40000
2019.10.15 13:09:40 5: KLF200Node (klf200_3) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 3 5 MP:51200 T:51200 FP1:63487 0 2834563072
2019.10.15 13:09:40 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 Done
2019.10.15 13:09:43 5: KLF200 (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000a8f70000
2019.10.15 13:09:43 5: klf200: dispatch \002\021\003\005?\000?\000????????\000\000??\000\000
2019.10.15 13:09:43 5: KLF200Node (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000a8f70000
2019.10.15 13:09:43 5: KLF200Node (klf200_3) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 3 5 MP:51200 T:51200 FP1:63487 0 2834759680
2019.10.15 13:09:43 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 Done
buennerbernd commented 5 years ago

Die Logs sind schon hilfreich, nur was sie anzeigen, ist ernüchternd. Eigentlich sollte der Wert für die Lamellen hier stehen: 2019.10.15 13:09:40 5: KLF200Node (klf200) - received: 02110305c800c800f7fff7fff7fff7ff0000a8f40000 Der Wert f7ff bedeutet aber, dass der Wert nicht gefüllt ist. Es gibt noch andere Möglichkeiten, wie man an die Lamellenposition herankommen könnte, aber das macht es nicht einfacher.

Ein paar Fragen:

  1. Ich bin überrascht, dass du die Bewegung mit dem Tahoma Pad sofort auch in den FHEM - Logs siehst: 2019.10.15 13:09:39 5: KLF200Node (klf200_3) BulkUpdateMain MP:51200 T:51200 R:0 Executing Bei meinen einfachen Fernbedienungen kommt die Aktualisierung meist etwas später. Ist das bei dir immer so?
  2. Kannst du mir den Somfy Produktnamen nennen?
buennerbernd commented 5 years ago

Ich habe schon Ideen zur Umsetzung, brauche aber noch etwas Input: Handelt es sich um Somfy J4 io Protect?

Wie erfolgt den die Steuerung der Lamellen normalerweise? Gleichzeitig mit hoch oder runter oder getrennt davon (erst die Höhe, dann die Lamellen)?

buennerbernd commented 5 years ago

Es gibt eine neue Version zum Testen der Lamellensteuerung. Siehe commandref von set raw set updateCurrentPosition

virusbrain commented 4 years ago

Sorry für die späte Rückmeldung. Aber das scheint zu funktionieren. Über den FP3 kann man gezielt im Bereich 0-65535 die Orientierung der Lammen beeinflussen - das ist ja cool! Vielen Dank!

buennerbernd commented 4 years ago

Cool, dass es klappt. Der Wertebereich skaliert normalerweise zwischen 0 bis 51200. Werte darüber können Konstanten für Spezialwerte sein. Schreib mal funktionierende Beispielaufrufe und was die tun. Die könnte ich in die Doku übernehmen.

Nicks57 commented 3 years ago

Hallo Buennerbernd,

Vielen Dank für die Implementierung. In meinem Fall funktionieren die Funktionen set raw und set updateCurrentPosition sehr gut für den Main Parameter und den Fonctionnal Parameter 3, aber das Lesen der Informationen aus FP3 liefert immer falsche Werte. Egal, welche Position ich für die Jalousielamellen einstelle, ergibt sich entweder der Wert 13289 oder 30754. Im Log erhalte ich den Fehler "KLF200 Velux_2: Unknown OperatingState ID: 45". Hättest du eine Idee, woher das Problem kommen könnte? Ich stehe für Tests und Fehlersuche zur Verfügung. Danke!

buennerbernd commented 3 years ago

Meine Vermutung ist, dass die Jalousie einfach keine ordentlichen Werte liefert und man somit auch nichts machen kann. Es lohnt sich aber vielleicht noch ein Blick auf das Logfile zu werfen. Setze sowohl beim KLF-Gerät als auch bei der Jalousie das Attribute verbose auf 5. Dann ändere mal den Winkel und versuche mal den Winkel auszulesen. Dann schicke mal den Ausschnitt aus dem Logfile. Vielleicht habe ich noch eine Erleuchtung, wenn ich die Logs sehe,

Nicks57 commented 3 years ago

Hallo,

Vielen Dank für deine Antwort. Mit Verbose = 5 konnte ich die Details in den Protokollen sehen. Sehr interessant ist der Erste Wert von BulkUpdate FP3, der den korrekten Wert der Lamellenposition wiedergibt. Ich habe mehrere Tests durchgeführt, und indem ich den Wert in einen Prozentsatz umrechnete, stimmte er mit der Position der Lamellen überein. Testvorgang: Ich habe die Lamellenposition immer mit der Jalousienfernbedienung verändert. Dann habe ich die Funktion updateCurrentPosition aufgerufen Hier sind die Protokolle:

Position 0% (BulkUpdate FP3:0 ist korrekt) 2021.08.03 21:49:42 5: KLF200 (Velux) GW_GET_STATE_REQ 2021.08.03 21:49:42 5: KLF200 Velux: unwrapped bytes 000c 2021.08.03 21:49:42 5: KLF200 Velux: wrapped bytes c00003000c0fc0 2021.08.03 21:49:42 5: SW: c00003000c0fc0 2021.08.03 21:49:42 5: KLF200 (Velux) - received: 000d020000000000 2021.08.03 21:49:42 5: KLF200 (Velux) GW_GET_STATE_CFM 000d 2 0 0 2021.08.03 21:49:48 5: KLF200Node (Velux_2) KLF200Node_GW_STATUS_REQUEST_REQ SessionID 145 StatusType 1 2021.08.03 21:49:48 5: KLF200 Velux: unwrapped bytes 0305009101020000000000000000000000000000000000000001fe00 2021.08.03 21:49:48 5: KLF200 Velux: wrapped bytes c0001d0305009101020000000000000000000000000000000000000001fe0076c0 2021.08.03 21:49:48 5: SW: c0001d0305009101020000000000000000000000000000000000000001fe0076c0 2021.08.03 21:49:48 5: KLF200 (Velux) - received: 0306009101 2021.08.03 21:49:48 5: KLF200 (Velux) - ignored: 0306009101 2021.08.03 21:49:48 5: KLF200 (Velux) - received: 030700910102000101020024f6030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2021.08.03 21:49:48 5: Velux: dispatch \003\a\000�\001\002\000\001\001\002\000$�\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 2021.08.03 21:49:48 5: KLF200Node (Velux) - received: 030700910102000101020024f6030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2021.08.03 21:49:48 5: KLF200Node (Velux_2) GW_STATUS_REQUEST_NTF 0307 145 1 2 0 1 1 2021.08.03 21:49:48 5: KLF200Node (Velux_2) BulkUpdate FP3:0 2021.08.03 21:49:48 5: KLF200 (Velux) - received: 03040091 2021.08.03 21:49:48 5: KLF200 (Velux) GW_SESSION_FINISHED_NTF 0304 145 2021.08.03 21:49:48 5: KLF200 (Velux) Dequeue: regex = (?^:^(\x04\x12|\x03\x05|\x03\x12|\x03\x10)) 2021.08.03 21:49:48 5: KLF200 (Velux) Dequeue: SessionID = 145 2021.08.03 21:49:48 5: KLF200 (Velux) Dequeue: 0305009101020000000000000000000000000000000000000001fe00 2021.08.03 21:49:48 5: KLF200 (Velux) Dequeue: mached 2021.08.03 21:49:48 5: KLF200 (Velux) - received: 0211022d24f624f6f7fff7ff03d0f7ff0000e10f0000 2021.08.03 21:49:48 5: Velux: dispatch \002\021\002-$�$�����\003���\000\000�\017\000\000 2021.08.03 21:49:48 5: KLF200Node (Velux) - received: 0211022d24f624f6f7fff7ff03d0f7ff0000e10f0000 2021.08.03 21:49:48 5: KLF200Node (Velux_2) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 2 45 MP:9462 T:9462 FP1:63487 0 3775856640 2021.08.03 21:49:48 3: KLF200 Velux_2: Unknown OperatingState ID: 45 2021.08.03 21:49:48 5: KLF200Node (Velux_2) BulkUpdateMain MP:9462 T:9462 R:0 Done 2021.08.03 21:49:48 5: KLF200Node (Velux_2) BulkUpdate FP3:976


Position 100% (BulkUpdate FP3:51200 ist korrekt) 2021.08.03 21:53:05 5: KLF200 (Velux) - received: 02110005c7e5c800f7fff7fff7fff7ff0000e1d40000 2021.08.03 21:53:05 5: Velux: dispatch \002\021\000\005���\000��������\000\000��\000\000 2021.08.03 21:53:05 5: KLF200Node (Velux) - received: 02110005c7e5c800f7fff7fff7fff7ff0000e1d40000 2021.08.03 21:53:06 5: KLF200 (Velux) - received: 02110105c7e5c800f7fff7fff7fff7ff0000e1d50000 2021.08.03 21:53:06 5: Velux: dispatch \002\021\001\005���\000��������\000\000��\000\000 2021.08.03 21:53:06 5: KLF200Node (Velux) - received: 02110105c7e5c800f7fff7fff7fff7ff0000e1d50000 2021.08.03 21:53:07 5: KLF200 (Velux) - received: 0211030500000000f7fff7fff7fff7ff0000e1d60000 2021.08.03 21:53:07 5: Velux: dispatch \002\021\003\005\000\000\000\000��������\000\000��\000\000 2021.08.03 21:53:07 5: KLF200Node (Velux) - received: 0211030500000000f7fff7fff7fff7ff0000e1d60000 2021.08.03 21:53:11 5: KLF200Node (Velux_2) KLF200Node_GW_STATUS_REQUEST_REQ SessionID 146 StatusType 1 2021.08.03 21:53:11 5: KLF200 Velux: unwrapped bytes 0305009201020000000000000000000000000000000000000001fe00 2021.08.03 21:53:11 5: KLF200 Velux: wrapped bytes c0001d0305009201020000000000000000000000000000000000000001fe0075c0 2021.08.03 21:53:11 5: SW: c0001d0305009201020000000000000000000000000000000000000001fe0075c0 2021.08.03 21:53:11 5: KLF200 (Velux) - received: 0306009201 2021.08.03 21:53:11 5: KLF200 (Velux) - ignored: 0306009201 2021.08.03 21:53:11 5: KLF200 (Velux) - received: 030700920102000101020024f603c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2021.08.03 21:53:11 5: Velux: dispatch \003\a\000�\001\002\000\001\001\002\000$�\003�\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 2021.08.03 21:53:11 5: KLF200Node (Velux) - received: 030700920102000101020024f603c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2021.08.03 21:53:11 5: KLF200Node (Velux_2) GW_STATUS_REQUEST_NTF 0307 146 1 2 0 1 1 2021.08.03 21:53:11 5: KLF200Node (Velux_2) BulkUpdate FP3:51200 2021.08.03 21:53:11 5: KLF200 (Velux) - received: 03040092 2021.08.03 21:53:11 5: KLF200 (Velux) GW_SESSION_FINISHED_NTF 0304 146 2021.08.03 21:53:11 5: KLF200 (Velux) Dequeue: regex = (?^:^(\x04\x12|\x03\x05|\x03\x12|\x03\x10)) 2021.08.03 21:53:11 5: KLF200 (Velux) Dequeue: SessionID = 146 2021.08.03 21:53:11 5: KLF200 (Velux) Dequeue: 0305009201020000000000000000000000000000000000000001fe00 2021.08.03 21:53:11 5: KLF200 (Velux) Dequeue: mached 2021.08.03 21:53:11 5: KLF200 (Velux) - received: 0211022d24f624f6f7fff7ff7822f7ff0000e1da0000 2021.08.03 21:53:11 5: Velux: dispatch \002\021\002-$�$�����x"��\000\000��\000\000 2021.08.03 21:53:11 5: KLF200Node (Velux) - received: 0211022d24f624f6f7fff7ff7822f7ff0000e1da0000 2021.08.03 21:53:11 5: KLF200Node (Velux_2) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 2 45 MP:9462 T:9462 FP1:63487 0 3789160448 2021.08.03 21:53:11 3: KLF200 Velux_2: Unknown OperatingState ID: 45 2021.08.03 21:53:11 5: KLF200Node (Velux_2) BulkUpdateMain MP:9462 T:9462 R:0 Done 2021.08.03 21:53:11 5: KLF200Node (Velux_2) BulkUpdate FP3:30754


Position +-50% (BulkUpdate FP3:23726 ist korrekt) 2021.08.03 21:55:23 5: KLF200Node (Velux_2) KLF200Node_GW_STATUS_REQUEST_REQ SessionID 147 StatusType 1 2021.08.03 21:55:23 5: KLF200 Velux: unwrapped bytes 0305009301020000000000000000000000000000000000000001fe00 2021.08.03 21:55:23 5: KLF200 Velux: wrapped bytes c0001d0305009301020000000000000000000000000000000000000001fe0074c0 2021.08.03 21:55:23 5: SW: c0001d0305009301020000000000000000000000000000000000000001fe0074c0 2021.08.03 21:55:24 5: KLF200 (Velux) - received: 0306009301 2021.08.03 21:55:24 5: KLF200 (Velux) - ignored: 0306009301 2021.08.03 21:55:24 5: KLF200 (Velux) - received: 030700930102000101020024f6035cae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2021.08.03 21:55:24 5: Velux: dispatch \003\a\000�\001\002\000\001\001\002\000$�\003\�\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 2021.08.03 21:55:24 5: KLF200Node (Velux) - received: 030700930102000101020024f6035cae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2021.08.03 21:55:24 5: KLF200Node (Velux_2) GW_STATUS_REQUEST_NTF 0307 147 1 2 0 1 1 2021.08.03 21:55:24 5: KLF200Node (Velux_2) BulkUpdate FP3:23726 2021.08.03 21:55:24 5: KLF200 (Velux) - received: 03040093 2021.08.03 21:55:24 5: KLF200 (Velux) GW_SESSION_FINISHEDNTF 0304 147 2021.08.03 21:55:24 5: KLF200 (Velux) Dequeue: regex = (?^:^(\x04\x12|\x03\x05|\x03\x12|\x03\x10)) 2021.08.03 21:55:24 5: KLF200 (Velux) Dequeue: SessionID = 147 2021.08.03 21:55:24 5: KLF200 (Velux) Dequeue: 0305009301020000000000000000000000000000000000000001fe00 2021.08.03 21:55:24 5: KLF200 (Velux) Dequeue: mached 2021.08.03 21:55:24 5: KLF200 (Velux) - received: 0211022d24f624f6f7fff7ff25c8f7ff0000e25f0000 2021.08.03 21:55:24 5: Velux: dispatch \002\021\002-$�$�����%���\000\000�\000\000 2021.08.03 21:55:24 5: KLF200Node (Velux) - received: 0211022d24f624f6f7fff7ff25c8f7ff0000e25f0000 2021.08.03 21:55:24 5: KLF200Node (Velux_2) GW_NODE_STATE_POSITION_CHANGED_NTF 0211 2 45 MP:9462 T:9462 FP1:63487 0 3797876736 2021.08.03 21:55:24 3: KLF200 Velux_2: Unknown OperatingState ID: 45 2021.08.03 21:55:24 5: KLF200Node (Velux_2) BulkUpdateMain MP:9462 T:9462 R:0 Done 2021.08.03 21:55:24 5: KLF200Node (Velux_2) BulkUpdate FP3:9672


Es scheint ein Unterschied zwischen den Ergebnissen von Funktion GW_STATUS_REQUEST_NTF und Funktion GW_NODE_STATE_POSITION_CHANGED_NTF zu bestehen.

Hättest du eine Idee?

buennerbernd commented 3 years ago

Es scheint so, dass GW_NODE_STATE_POSITION_CHANGED_NTF einen falschen Wert für FP3 liefert. Nun weiß ich nicht, ob da bei allen Nutzern ein falscher Wert kommt oder nur bei deinem Gerät. Bisher hat sich kein anderer beschwert, aber es gab generell nur sehr spärlich Feedback zur Lamellensteuerung.

Was du mal probieren kannst: Finde in der Datei 83_KLF200Node.pm Zeile 791: KLF200Node_BulkUpdateFP($hash, 3, $FP3CurrentPosition); und kommentiere sie aus: # KLF200Node_BulkUpdateFP($hash, 3, $FP3CurrentPosition);

Danach musst du FHEM neu starten.

Nicks57 commented 3 years ago

Hallo,

Ich habe die Änderung gestern vorgenommen und es hat funktioniert. Danke! Mit "Set pct" wird jedoch die Funktion GW_NODE_STATE_POSITION_CHANGED_NTF aufgerufen und der FP3-Parameter wird natürlich nicht aktualisiert. Die Funktion KLF200Node_BulkUpdateFP() wird zwei mal aufgerufen: einmal in KLF200Node_GW_STATUS_REQUEST_NTF und einmal in KLF200Node_GW_NODE_STATE_POSITION_CHANGED_NTF. Ist es möglich, dass der Parameter $hash in KLF200Node_GW_STATUS_REQUEST_NTF und KLF200Node_GW_NODE_STATE_POSITION_CHANGED_NTF nicht gleich ist?

Ich verwende auch Home Assistant. Ich habe auch dieses Problem mit der Lamellenstellung. Da es noch ein paar mehr Home Assistant-Nutzer gibt, gibt es auch andere Leute, die das gleiche Problem haben wie ich. Siehe: https://github.com/Julius2342/pyvlx/issues/44

buennerbernd commented 3 years ago

Mit "Set pct" wird jedoch die Funktion GW_NODE_STATE_POSITION_CHANGED_NTF aufgerufen und der FP3-Parameter wird natürlich nicht aktualisiert.

Hast du dadurch irgendwelche Nachteile? Kam vorher bei set pct oder set raw über GW_NODE_STATE_POSITION_CHANGED_NTF der richtige FP3 Wert?

Nicks57 commented 3 years ago

Mit Set pct wird die Position der Jalousie verändert. In meinem Fall (Warema-Außenjalousie) fahren die Lamellen der Jalousie beim Hoch- oder Herunterfahren in die geschlossene oder offene Position (0 oder 51200). Die Position, die vor der Jalousiefahrt festgelegt wurde, wird also nicht aktualisiert. Ich kann jedoch eine updateCurrentPosition durchführen, nachdem der Jalousie seine Bewegung beendet hat.

buennerbernd commented 3 years ago

Wurde vor dem Auskommentieren der Zeile nach einem set-Befehl die neue FP3 Position richtig gemeldet? Oder ist es neu, dass du nun updateCurrentPosition rufen musst?

Nicks57 commented 3 years ago

Nein, auch vorher hat es nicht funktioniert. Der Auskommentieren der Zeile hat nur dafür gesorgt, dass die Funktion updateCurrentPosition ein korrektes FP3-Ergebnis liefert.

buennerbernd commented 3 years ago

Tja, nun ist es schwer, zu sagen, ob diese Änderung für andere Nutzer/Geräte etwas verschlechtert. Meine Vermutung ist, dass der Bug in der KLF-Box ist und nicht in der Jalousie. Daher würde ich spekulieren, dass noch niemand vernünftige FP3-Werte mit dem FHEM-Modul hatte, aber es gab auch keine Beschwerden. Was steht bei dir im model-Reading?

Nicks57 commented 3 years ago

Ja, es ist in der Tat schwierig, die Folgen zu erkennen, ohne ein Feedback der Nutzer zu haben. Bei mir ist der model = Somfy Exterior Venetian blind Type 17

buennerbernd commented 3 years ago

Ich habe mal ein offizielles Update gemacht. Wer Probleme hat, soll sich melden.

Nicks57 commented 3 years ago

Super, danke!