[Modul] VELUX KLF200

Ich habe leider auch immer wieder mal Abbrüche. Bei mir reicht es schon den SocketClient zu schließen und gleich wieder zu öffnen

Hallo Nall-chan,

habe mir nun auch mal ein KLF200 geleistet und dort zwei Velux-Rolladen eingelernt.

Dein Modul funktionierte auf Anhieb ( Klasse Arbeit ! ) :slight_smile:

Einzig wenn ich die Rollade über IPS „erfolgreich“ bewege, kommen folgende Meldungen:

07.11.2020, 15:43:31 | FlowHandler | Kann Daten nicht zur Instanz #39353 weiterleiten: <br />
<b>Deprecated</b>: Function restore_include_path() is deprecated in <b>/var/lib/symcon/modules/.store/de.nall.chan.velux/KLF200Gateway/module.php</b> on line <b>40</b><br />
<br />
<b>Deprecated</b>: Function restore_include_path() is deprecated in <b>/var/lib/symcon/modules/.store/de.nall.chan.velux/KLF200Gateway/module.php</b> on line <b>40</b><br />
<br />

… ca. 45x …

<b>Deprecated</b>: Function restore_include_path() is deprecated in <b>/var/lib/symcon/modules/.store/de.nall.chan.velux/KLF200Gateway/module.php</b> on line <b>40</b><br />
RESULT:

ID39353 ist die Gateway-Instanz.
IP-Symcon 5.5, Raspberry Pi, 15.10.2020, e7d6ee85b48e (RC1)

Schönes Wochenende
Gruß
lueralba

Bin leider noch nicht dazu gekommen das Modul für die 5.5 zu aktualisieren.
Ich hoffe morgen habe ich dazu endlich Zeit.
Auch andere meiner Module muss ich noch mal mit der 5.5 gegenprüfen.
Michael
PS: Da Symcon 5.5 jetzt TLS ab Werk kann, sollte das Modul in Zukunft auch schneller/besser laufen. Und der Fehler ist damit automatisch weg :smiley:

Es gibt eine neue Version, welche ab sofort im Store zur Verfügung steht und die Probleme mit Symcon 5.5. behebt.

Diese Version ist nicht abwärtskompatible.

Nach dem Update müssen die Einstellungen des ClientSocket in der Konsole geöffnet und einmalig übernommen werden!

Über folgende Rückmeldungen würde ich mich freuen:
a) Ob die Verbindung zum KLF stabiler ist (in Symcon)
b) Das Neuverbinden zum KLF ohne Neustart desselbigen gelingt (z.B. bei Symcon Update/Reboot)
c) Die Reaktionsgeschwindigkeit bei Schaltvorgängen spürbar schneller ist.

Michael

Hallo Nall-chan,

habe eben das Update eingespielt.
ClientSocket kontrolliert und bestätigt.

Erster Test:
Rückmeldungen meiner beiden Jalousien von KLF200 ok.
Senden aus der Instanz (mit dem Schieber) ok.

Aber :eek: :
Senden an KLF200 geht nicht (mehr) durch „beschreiben“ der Variable „Position“ mit Wert zwischen 0 und 51200 (0-100%).
Im Debug des Sockets erscheinen dann auch keine TRANSMIT Meldungen.
Das hat vorher noch funktioniert. Habe mir einen abgebrochen, dass schön zum laufen zu bekommen…
Hast DU da etwas gemacht oder hab ich etwas überlesen ?

Über folgende Rückmeldungen würde ich mich freuen:
a) Ob die Verbindung zum KLF stabiler ist (in Symcon)
b) Das Neuverbinden zum KLF ohne Neustart desselbigen gelingt (z.B. bei Symcon Update/Reboot)
c) Die Reaktionsgeschwindigkeit bei Schaltvorgängen spürbar schneller ist.

Prüfe das gern in den nächsten Tagen :slight_smile:

Gruß
lueralba

Wenn es aus der Instanz funktioniert, dann sollte es nicht am Modul liegen.
Was meinste du mit beschreiben der Variable?
Michael

@Nall-chan:

Ich hatte den aktuellen/neuen Wert der Jalousie bei Änderung einfach „in“ die „Position“-Variable geschrieben.

setvalue(58929 (Position), 51200 - (51200 * ($_IPS['VALUE']/100) )   );

Habe aber eben erst gelesen, dass es „feine“ Funktionen gibt:rolleyes:

$ret = KLF200_ShutterMove(16355 (Büro), 51200 - (51200 * ($_IPS['VALUE']/100) ) );

Ich wollte gerne die Auf/Zu Darstellung „reversiert“ haben.
Deshalb hatte ich mir zusätzlich eine „Intensity“ Variable und eine „Status“ Variable angelegt
und diese per Aktionsscript und Ereignis mit dem aktuellen/neuen Positionswert (nach Fahrt) befüllt.
Das hatte bis vor dem Update prima funktioniert.

Werde das jetzt nochmal anpassen und prüfen.

Ich denke das ist doch mein eigenes Problem in Zusammenhang mit dem Aktionsscript und Ereignis.

Die Funktion „KLF200_ShutterMove()“ läuft -alleine getestet- einwandfrei.

War halt schon komplett lauffähig…daher meine Meldung.

Gruß
lueralba

Was treibst du da?
Du darfst niemals Variablen von Instanzen mit SetValue beschreiben.

Und wenn du anstatt der StandardAktionen ein Aktions-Skript benutzt, muss dort natürlich die Instanz Funktion zum Schalten rein. Sonst passiert nix, weil dein Aktions-Skript die StandardAktion überschreibt.
Der Sinn von deinem Aktions-Skript hat sich mir nicht erschlossen. Weil das ist zum Bedienen von Variablen und nicht um über ein Ereignis eine andere Variable zu beschreiben.

Die Werte und das Profil der Variablen richten sich nach der Hardware und dem Symcon Standard für auf/zu.
Ansonsten das Profil kopieren und .Reversed an den Namen anhängen.
Michael

Hallo,

super, das Modul funktionniert wieder. Zu deinen Punkten kann ich erst in den kommenden Tagen etwas sagen.

Viele Grüße

@Nall-chan:

Was treibst du da?
Du darfst niemals Variablen von Instanzen mit SetValue beschreiben.

Danke für den Anstoß ! (… nicht an der Tachonadel drehen um den Wagen zu beschleunigen …)
Hatte damals über deinen Spruch geschmunzelt, heute tappe ich selber in die Falle.
Hatte vorher eben funktioniert, daher hatte ich mir keine Gedanken gemacht :rolleyes:

Über folgende Rückmeldungen würde ich mich freuen:
a) Ob die Verbindung zum KLF stabiler ist (in Symcon)
b) Das Neuverbinden zum KLF ohne Neustart desselbigen gelingt (z.B. bei Symcon Update/Reboot)
c) Die Reaktionsgeschwindigkeit bei Schaltvorgängen spürbar schneller ist.

a) kann noch nicht viel dazu sagen, die Verbindung war gefühlt immer stabil…

b) Habe eben nur das Update zur aktuellen V5.5beta gemacht
-> und das Gateway steht in ROT (siehe Screenshots)

c) Für mich war ab Installation des KLF200 und deinem Modul alles gefühlt „normal schnell“.

EDIT:
Nach ClientSocket schließen/offnen geht alles sofort wieder.
Hab das Debug vom Socket hier:

TXT: 12.11.2020, 20:45:58 | TRANSMIT | �<NUL><ETX><NUL><FF><SI>�
HEX: 12.11.2020, 20:45:58 | TRANSMIT | C0 00 03 00 0C 0F C0
TXT: 12.11.2020, 20:46:17 | TRANSMIT | �<NUL>#0<NUL>8LdQDS9E6S<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL>\�
HEX: 12.11.2020, 20:46:17 | TRANSMIT | C0 00 23 30 00 38 4C 64 51 44 53 39 45 36 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5C C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL>#0<NUL>8LdQDS9E6S<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL>\�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 23 30 00 38 4C 64 51 44 53 39 45 36 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5C C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><EOT>0<SOH><NUL>5�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 04 30 01 00 35 C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL><ETX><NUL><LF><HT>�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 03 00 0A 09 C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><BEL><NUL><VT><NUL><ETX><NUL><SO><SOH>�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 07 00 0B 00 03 00 0E 01 C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL><ETX><STX><STX><ETX>�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 03 02 02 03 C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><ENQ><STX><ETX><NUL><STX><ACK>�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 05 02 03 00 02 06 C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><DEL><STX><EOT><NUL><NUL><NUL><NUL>Büro<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><SOH><NUL>�<SOH><SOH><NUL><NUL><ETX>V#=&<BS><BS><ENQ><FS><ENQ><RS><NUL><RS><NUL>��������<NUL><NUL>_��"<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL>��
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 7F 02 04 00 00 00 00 42 C3 BC 72 6F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 80 01 01 00 00 03 56 23 3D 26 08 08 05 1C 05 1E 00 1E 00 F7 FF F7 FF F7 FF F7 FF 00 00 5F AD 91 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL><BEL> <NUL>_��<US>[�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 07 20 00 5F AD 91 1F 5B C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><DEL><STX><EOT><SOH><NUL><SOH><NUL>Miriam<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><SOH><NUL>�<SOH><SOH><NUL><NUL><ETX>V#=&<BS><HT><EOT>�<ENQ>!�!���������<NUL><NUL>_��"<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL>I�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 7F 02 04 01 00 01 00 4D 69 72 69 61 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 80 01 01 00 00 03 56 23 3D 26 08 09 04 AE 05 21 97 21 97 F7 FF F7 FF F7 FF F7 FF 00 00 5F AD 91 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><ETX><STX><ENQ><EOT>�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 03 02 05 04 C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><ETX> <SOH>"�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 03 20 01 22 C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL><ETX><NUL><FF><SI>�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 03 00 0C 0F C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><HT><NUL><CR><STX><NUL><NUL><NUL><NUL><NUL><ACK>�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 09 00 0D 02 00 00 00 00 00 06 C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL><ETX><NUL><BS><VT>�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 03 00 08 0B C0
TXT: 12.11.2020, 20:46:39 | RECEIVED | �<NUL><FF><NUL><HT><NUL><STX><NUL><NUL>G<NUL><ACK><SO><ETX>K�
HEX: 12.11.2020, 20:46:39 | RECEIVED | C0 00 0C 00 09 00 02 00 00 47 00 06 0E 03 4B C0
TXT: 12.11.2020, 20:46:39 | TRANSMIT | �<NUL><ETX><STX>@A�
HEX: 12.11.2020, 20:46:39 | TRANSMIT | C0 00 03 02 40 41 C0
TXT: 12.11.2020, 20:46:40 | RECEIVED | �<NUL><ETX><STX>A@�
HEX: 12.11.2020, 20:46:40 | RECEIVED | C0 00 03 02 41 40 C0

Gruß
lueralba

Wenn die Verbindung abbricht, bitte einmal in das logfile schauen, ob der Dienst versucht die Verbindung selber zu reparieren.
Da steht dann so etwas wie ClientSocket Einstellungen gespeichert. Oder erfolgreich wieder verbunden.
Sollte im Fehlerfall nach 60 Sekunden passieren.
Michael

@Nall-chan:

Noch Mal ein Neustart:

ClientSocket aus/ein hilft sofort :slight_smile:

EDIT: Hatte deinen Post eben erst gesehen…
Kommt bei nächsten Neustart :wink:
Da lasse ich ihn mal selber machen !

lueralba

Oh, beim Neustart passiert das?
Okay, da kann ich ja noch Mal schauen.
Im laufenden Betrieb passiert das nicht?
Michael

Aktuelle Beta behebt zwei Fehler:

  • Falsche Fehlermeldung wenn Timeout beim Verbindungsaufbau auftrat.
  • Gateway zeigte beim starten von Symcon verbunden an, auch wenn ClientSocket gestört war.

Hinweis:
Das KLF hat ein größeres Verbindungstimout als ein Neustart von Symcon benötigt. Entsprechend dauert es nach den Neustart vom Dienst noch einmal 60 Sekunden bis die Verbindung neu aufgebaut wird.

@Nall-chan:

Oh, beim Neustart passiert das?
Okay, da kann ich ja noch Mal schauen.
Im laufenden Betrieb passiert das nicht?

Bisher nur beim Neustart. Soooo lange läuft es ja noch nicht bei mir.

Danke für das Update, hab es gleich ausprobiert:

Nach Neustart:

Dann per Hand Socket aus/ein (sofort wieder verbunden):

Hoffe das hilft …

LG
lueralba

Warum ist der bei dir verbunden beim Neustart und funktioniert dann nicht?
Welches OS?
Michael

IPS läuft auf Pi3 unter Buster

EDIT:
Das Gateway stand auf ROT !

lueralba

Was korrekt ist. Da keine Antwort kommt (Timeout).
Was ich nicht verstehe… spätestens dann müsste eine kaputte TCP Verbindung doch erkannt werden, und der ClientSocket auch in Fehler gehen…
@paresy
Verhalten sich Linux und Windows Sockets hier anders innerhalb Symcon?
Michael

Linux kann da manchmal länger brauchen. Aber generell merkt der Socket sobald du sendest, dass er es nicht los wird weil die Gegenseite/Socket kaputt ist.

paresy

Ja genau. Muss auch sein, fällt mir gerade auf; weil das transmit im Screenshot ist der Verbindungsaufbau.
Und die Abstände dazwischen kommen ja mit dem reconnect durch das Event Control hin.
Kann es dann sein, dass es einen Unterschied macht wenn man den IO einmalig deaktiviert als wenn das Event Control ‚nur‘ ein applychanges macht?

Unter Windows funktioniert das zumindest problemlos.
Michael