Velux KLF200 mit Firmware 2.0.0.71 für io-homecontrol

Begonnen von buennerbernd, 06 November 2018, 16:43:00

Vorheriges Thema - Nächstes Thema

der-Lolo

Hat eigentlich irgendjemand kompatible kontakte für offen und geschlossen an seinem Dachfenster? Oder vielleicht passende Fenstergriffe mit Meldung?
Ich würde doch gerne noch den Fensterzustand der Dachfenster in FHEM haben.

pejonp

@der-lolo
Ich habe max! Fensterkontakte weil ich darüber meine heizungsthermostate steuere. Diese wahren zuerst da und dann kamen velux fensterheber.

Pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

der-Lolo

Ja, hatte ich auch früher... Max habe ich aber mittlerweile verbannt - so wie die meisten Funk-Protokolle, bis auf Velux - ich hatte gehofft es gibt Kontakte die sich mit Velux koppeln lassen...


ingohz

Zitat von: scooty am 10 Juli 2020, 11:17:10
Ja, verwende es erfolgreich so mit Google Assistant (RAW definition):
attr DG_FENSTER genericDeviceType window
attr DG_FENSTER homebridgeMapping TargetPosition=pct,cmd=pct,minValue=0,maxValue=100\
CurrentPosition=pct,minValue=0,maxValue=100


Andreas

Hallo,

mit diesen Einstellungen lassen sich meine Velux Integra GPU an einer KLF200 nun auch per Homebridge steuern (Bisher nur öffnen, Sonnenschutz kommt noch)  8). Allerdings erhalte ich in Eve konstant die Ausgabe Position: SCHLIESSEND(20%). Sollte da nicht der jeweilige Status angezeigt werden? Hat jemand eine Idee, wie ein entsprechendes Mapping aussehen muss?

Viele Grüße
Ingo

ingohz

Zitat von: ingohz am 24 August 2020, 16:14:20
Hallo,

mit diesen Einstellungen lassen sich meine Velux Integra GPU an einer KLF200 nun auch per Homebridge steuern (Bisher nur öffnen, Sonnenschutz kommt noch)  8). Allerdings erhalte ich in Eve konstant die Ausgabe Position: SCHLIESSEND(20%). Sollte da nicht der jeweilige Status angezeigt werden? Hat jemand eine Idee, wie ein entsprechendes Mapping aussehen muss?

Viele Grüße
Ingo

Ich hab es nun selbst hinbekommen. Hilfreich waren vor allem die Definitionen der Charakteristiken und Services in der sich die möglichen und optionalen Eigenschaften für den Service "Window" finden. Die notwendigen Eigenschaften sind CurrentPosition, TargetPosition und PositionState. Dabei ist der PositionState für die Anzeige des aktuellen Status zuständig. In der Datei finden sich auch die möglichen Werte. Daher auch die vorher konstante Anzeige von "SCHLIESSEND..." als Interpretation der 0:

DECREASING = 0 // ("down")
INCREASING = 1 // ("up")
STOPPED = 2 // ("stop")


Das Reading "execution" enthält die Bewegungsangaben als String ("down", "up", "stop"). Diese Angabe kann mit einem userReading in die entsprechende Ziffer umgewandelt werden:

exec_num {if(ReadingsVal($name,"execution","") eq "down") {return 0} elsif (ReadingsVal($name,"execution","") eq "up") {return 1} elsif (ReadingsVal($name,"execution","") eq "stop") {return 2} else {return -1}}

Nun noch das homeBridgeMapping ergänzen und die Ausgabe ist wie erwartet:

TargetPosition=pct,cmd=pct,minValue=0,maxValue=100\
CurrentPosition=pct,minValue=0,maxValue=100\
PositionState=exec_num


Vielleicht hilft es jemandem. Übrigens wird bei meinen Fenstern "limitationMin" bei Regen auf 0 und nicht wie dokumentiert auf 7 gesetzt. Ensprechend muss das Attribut devStateIcon angepasst werden, damit die Regenwolke angezeigt wird.

Viele Grüße

buennerbernd

@ingohz
Interessante Infos!

Sag mal, was steht denn in deinen Velux Integra GPU als model-Reading?

Gruß, Stefan.
Modulentwickler von KLF200 und KLF200Node

ingohz

Zitat von: buennerbernd am 25 August 2020, 16:46:42
@ingohz
Interessante Infos!

Sag mal, was steht denn in deinen Velux Integra GPU als model-Reading?

Gruß, Stefan.

model: VELUX Window opener with integrated rain sensor Type 4.1-12

Viele Grüße

buennerbernd

Zitat von: postman am 10 Juni 2020, 10:50:54
Hallo zusammen,
kann mir vielleicht jemand helfen?
Ich habe eine KLF 200 in FHEM eingerichtet. Soweit erst einmal gut. Ich habe aber 2 VELUX Dual Roller Shutter Type 13-4, bei denen ich etwas Hilfe bei der Ansteuerung benötige.
Meine Frage: Wie kann ich bei diesen Rollladen z.B. nur den oberen Rollladen steuern?
Die Ansteuerung; wie über die einfache Fernbedienung funktioniert.
Ich hab auch schon ein wenig gelesen und bin dabei im Wiki auf set Velux_3 raw xxx gestoßen.

Danke schon mal im Vorraus
Gruß postman

Neuer Versuch:

Für FP1:
set VELUX_1 raw ParameterActive=1 FP1=0 MP=55304 FP2=53504
bis
set VELUX_1 raw ParameterActive=1 FP1=51200 MP=55304 FP2=53504

Für FP2:
set VELUX_1 raw ParameterActive=2 FP2=0 MP=55304 FP1=53504
bis
set VELUX_1 raw ParameterActive=2 FP2=51200 MP=55304 FP1=53504

Teste mal!
Modulentwickler von KLF200 und KLF200Node

postman

#593
Moin, so ich habe getestet.
Hier das Ergebnis aus dem Log:
2020-08-27_09:11:51 Velux_1 raw ParameterActive=1 FP1=38400 MP=55304 FP2=53504
2020-08-27_09:11:51 Velux_1 MPtarget: 63487
2020-08-27_09:11:51 Velux_1 sessionID: 28
2020-08-27_09:11:51 Velux_1 sessionInformationCode: 06000300
2020-08-27_09:11:51 Velux_1 lastRunStatus: EXECUTION ACTIVE
2020-08-27_09:11:51 Velux_1 lastStatusReply: NODE WAITING FOR POWER
2020-08-27_09:11:52 Velux_1 operatingState: Waiting for power
2020-08-27_09:11:52 Velux_1 remaining: 36
2020-08-27_09:11:52 Velux_1 targetArrival: 2020-08-27 09:12:28
2020-08-27_09:11:52 Velux_1 operatingState: Executing
2020-08-27_09:12:06 Velux_1 remaining: 21
2020-08-27_09:12:06 Velux_1 targetArrival: 2020-08-27 09:12:27
2020-08-27_09:12:27 Velux_1 remaining: 0
2020-08-27_09:12:28 Velux_1 FP1: 38400
2020-08-27_09:12:28 Velux_1 sessionInformationCode: 20000500
2020-08-27_09:12:28 Velux_1 lastRunStatus: EXECUTION COMPLETED
2020-08-27_09:12:28 Velux_1 lastStatusReply: COMMAND COMPLETED OK
2020-08-27_09:12:28 Velux_1 MP: 44800
2020-08-27_09:12:28 Velux_1 pct: 13
2020-08-27_09:12:28 Velux_1 13
2020-08-27_09:12:28 Velux_1 MPtarget: 44800
2020-08-27_09:12:28 Velux_1 target: 13
2020-08-27_09:12:28 Velux_1 operatingState: Done
2020-08-27_09:12:28 Velux_1 sessionID: 29
2020-08-27_09:12:28 Velux_1 sessionStatusOwner: USER

So funktioniert es ;D
Es bewegen sich nur noch die Rollläden, die auch angesteuert werden sollen, also FP1 = oberer Rollladen, FP2 = der untere.
Jetzt muss das Ganze nur noch in FHEM integriert werden, damit die entsprechenden Positionen angefhren werden können.
Eine Frage noch: Es gibt ja das Attribut "directionon", wirkt sich das auf die Funktionsparameter aus?
Danke.
Kannst Du mir eventuell noch mal erklären, wo der Fehler lag?

Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...

buennerbernd

Zitat von: pschlaeppi am 29 Juli 2020, 16:08:47
...
Habe dann mal die folgenden beiden Befehle zeitlich versetzt abgesetzt:

{fhem("set [a-zA-Z]{2}.[a-zA-Z]{2}.MA.* limitationMax 70")}
{fhem("set [a-zA-Z]{2}.[a-zA-Z]{2}.DF.* limitationMax 70")}


So haben dann alle Aktoren die Einstellungen auch übernommen. Ich werde das nun mal auf
zwei verschiedene Befehle aufteilen und Sie so absetzen.

Worin lag das Problem aus deiner Sicht eher?
- zuviele gleichzeitige Sessions (Gibt es da ne bekannte Limite)
- müssten die beiden Befehle nun noch zeitlich versetzt werden?
- Falls ja, welchen Ansatz und welche Zeitspanne empfiehlst du?
     * Verwendung von sleep, da das aber so weit ich weiss blocking ist, würde ich das
        nur so mit 0.1 oder 0.2 Sekunden nutzen wollen.
     * Verwendung von at


Herzlichen Dank für deine Unterstützung.

Grüsse und weiterhin einen schönen Urlaub

Philipp

Hallo Philipp,

ich denke, das Problem waren bei dir zu viele gleichzeitige Sessions.
Um dieses Problem zu vermeiden ist ja in diesem Modul eine Queue implementiert. Die meisten Befehle, die an die KLF-Box gesendet werden, werden so abgearbeitet, dass der vorhergehende Befehl erst abgeschlossen sein muss.
Eine Ausnahme davon sind die Fahrbefehle. Davon werden mehrere angenommen, auch wenn die Session noch nicht beendet ist.
Das Setzen der Limitation funktioniert intern zweistufig:

  • Das Setzen der Limitation. (Wird in der Queue komplett abgearbeitet.)
  • Ein Fahrbefehl, falls die aktuelle Position der Limitation widerspricht. (Erlaubt sofort weitere Befehle)

Wenn du jetzt viele Limitations gleichzeitig setzt, dann können die Fahrbefehle mehrere gleichzeitige Sessions erzeugen.
Wo da die Grenzen sind, kann ich dir gar nicht sagen. Ich habe nur 5 Geräte.

Auf der sicheren Seite bist du, wenn die Befehle in Gruppen aufteilst, die funktionieren, und weitere Befehle erst absetzt, wenn die Fahrbefehle abgeschlossen sind. Ein kurzes sleep bringt gar nichts, da dafür die Queue implementiert ist.
Die Gruppen würde ich so testen, dass für jedes Gerät intern ein langer Fahrbefehl ausgeführt werden muss.

Gruß, Stefan.


Modulentwickler von KLF200 und KLF200Node

buennerbernd

Zitat von: postman am 27 August 2020, 09:24:38
So funktioniert es ;D
Es bewegen sich nur noch die Rollläden, die auch angesteuert werden sollen, also FP1 = oberer Rollladen, FP2 = der untere.
Jetzt muss das Ganze nur noch in FHEM integriert werden, damit die entsprechenden Positionen angefhren werden können.
Eine Frage noch: Es gibt ja das Attribut "directionon", wirkt sich das auf die Funktionsparameter aus?
Danke.
Kannst Du mir eventuell noch mal erklären, wo der Fehler lag?

Gruß Uwe

Cool, dass es jetzt geht!
Das Problem war, die richtige Parameter-Kombination herauszufinden, die zuvor getesteten waren es einfach nicht.
Das Attribut directionOn hat keine Auswirkungen auf die raw-Werte. Es wird für die Skalierung von den raw-Werten auf 0 - 100 Prozent verwendet.
Mir schwebt noch eine Verbesserung des Moduls vor. Jeder benötigte Funktionsparameter soll ein extra Device mit Werten von 0 bis 100 werden. Das würde ich aber auf den Winter verschieben.

Gruß, Stefan.
Modulentwickler von KLF200 und KLF200Node

eurofinder

@buennerbernd:
Hättest du zu meiner Frage hier https://forum.fhem.de/index.php/topic,92907.msg1065555.html#msg1065555 noch einen Hinweis,
wie die Logs von KLF200 ins Logfile kommen und nicht in jedes einzelne FileLog zum Rollo?

Danke und Gruß
eurofinder

RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

buennerbernd

Zitat von: eurofinder am 27 August 2020, 11:20:01
...
wie die Logs von KLF200 ins Logfile kommen und nicht in jedes einzelne FileLog zum Rollo?

Logfile und FileLog sind zwei unterschiedliche Dinge.
Im Logfile landed, was im Modul-Code so geloggt wird. Mehr landet dort, wenn du das verbose-Attribut hochdrehst. Das verbose-Attribut gibt es an KLF200 und KLF200Node.
Das FileLog ist ein Event-Log. Das lauscht auf Events vom Device und schreibt die weg. Events sind, wenn sich Readings ändern.
Wenn du am FileLog nicht interessiert bist, kannst du es einfach löschen oder umkonfigurieren.

Ich hoffe, das beantwortet deine Frage.
Modulentwickler von KLF200 und KLF200Node

eurofinder

@buennerbernd:
Danke für die Klarstellung.

Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

postman

Hallo Stefan,
es funktioniert, das war mir wichtig. Verbesserungen sind immer gern gesehen  ;D, hat aber wirklich Zeit bis in die kalte Jahreszeit.
Gruß Uwe
Raspberry Pi Version 2 QUAD-CORE CPU und 1 GB RAM, CUL V3 868 MHz,  stapelbarer CC1101 (SCC) 433 MHz, Enocean-Stick,Jeelink-Stick, BSB-Lanadapter

Spruch eines Ausbilders: Theorie ist, wenn man alles weiss und nichts funktioniert; Praxis ist, wenn alles funktioniert und keiner weiss warum...