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

buennerbernd

Ich habe gerade herausgefunden, dass mein Fix für deinen Sonderfall nicht funktioniert. die fhem.pl macht mir einen Strich durch die Rechnung.

Ich kann nicht allgemeingültig unterscheiden, ob ein Gerät noch UNDEFINED ist und angelegt werden soll oder wie bei Dir ignoriert werden soll.

Ich denke weiter darüber nach.
Modulentwickler von KLF200 und KLF200Node

sn0000py

wie siehst du das da ein Gerät ignoriert werden soll?
Ich selber hätte da nix eingestellt das da was ignoriert werden soll?

buennerbernd

Die Node ID ist über 200.
Laut API Doku ist das ein Beacon und kein steuerbares Gerät. Hast du eine Idee, um was es sich da handeln könnte?
Modulentwickler von KLF200 und KLF200Node

sn0000py

Hmmm nein nicht wirklich.
Ich habe hier zwei so Velux Dachfenster (die haben einen Regensensor) und einen elektrischen Rollo.
dann eine Markisse für die Terrasse, da haben die Monteuere damals einen Wind und Sonnensensor dazu montiert (die funktionieren per Funk) - die habe ich aber dann nie eingebunden da ich nicht wusste wie ich die einbinden kann, und eigentlich auch nicht wirklich brauche (habe noch eine "richtige" Wetterstation auch hier)

buennerbernd

Zitat von: sn0000py am 19 Mai 2023, 16:05:40Hallo ich habe eine Frage ich bekomme im Log ständig ein
023.05.18 15:14:52.818 1: KLF200 (Velux) - new Node found, updateAll
2023.05.18 15:15:14.692 1: KLF200 (Velux) - new Node found, updateAll
2023.05.18 15:15:35.369 1: KLF200 (Velux) - new Node found, updateAll
2023.05.18 15:16:00.247 1: KLF200 (Velux) - new Node found, updateAll
Hab schon paar Sachen beim KLF200 probiert, aber die Meldungen kommen immer wieder - kann mir wer Tipps geben wie ich drauf komme was das ist - funktionieren tut eigentlich alles

Ich habe einen zweiten Anlauf gemacht, dieses Problem zu beheben.
Mach mal bitte ein Update des Moduls und teste mal.
Modulentwickler von KLF200 und KLF200Node

globus243

#950
Hey Zusammen,

ich suche einen Weg die Fenster nach einem Regenschauer automatisch wieder zu öffnen, idealerweise wieder auf den pct Wert, den sie vorher hatten. Ist so eine Funktion irgendwo bereits eingebaut?

Meine aktuelle Lösung ist recht grobschlächtig, das geht bestimmt eleganter.

sub keepWindowsOpen($) {
    my ($obj) = @_;
    my @param = split ' ', $obj;
    my $notifyDevice = @param[0]; # zb. dummy_Fenster_Badezimmer_keepOpen

    Log 1, "keepWindowsOpen started, device:" . $notifyDevice . " state:" . ReadingsVal($notifyDevice, "state", "null");

    if (ReadingsVal($notifyDevice, "state", "null") eq "on") { # wurde der dummy zwischenzeitlich auf off gestellt, endet es hier, keine neuen at werden erstellt, die schleife endet.

        if ($notifyDevice =~ /(links)/ && ReadingsVal("Fenster_Schlafzimmer_links", "pct", "0") == 11) {
            my $wishValue = ReadingsVal("dummy_Fenster_Schlafzimmer_links_keepOpen", "pct", "null");
            fhem("set Fenster_Schlafzimmer_links pct " . $wishValue);

        }
        elsif ($notifyDevice =~ /(rechts)/ && ReadingsVal("Fenster_Schlafzimmer_rechts", "pct", "0") == 11) {
            my $wishValue = ReadingsVal("dummy_Fenster_Schlafzimmer_rechts_keepOpen", "pct", "null");
            fhem("set Fenster_Schlafzimmer_rechts pct " . $wishValue);

        }
        elsif ($notifyDevice =~ /(Bad)/ && ReadingsVal("Fenster_Badezimmer", "pct", "0") == 11) {
            my $wishValue = ReadingsVal("dummy_Fenster_Badezimmer_keepOpen", "pct", "null");
            fhem("set Fenster_Badezimmer pct " . $wishValue);
        }

        my $deviceName = "keepWindowsOpenNextTry_" . $notifyDevice;
        my @existingDevices = defInfo('NAME=' . $deviceName . '_.*', 'NAME');

        if (scalar @existingDevices > 1) {
            Log 1, "keepWindowsOpen: more than one devices returned, stopping";
            return;
        }

        my $fullDeviceName = $deviceName . "_" . time;
        fhem("define " . $fullDeviceName . " at +00:00:30 {keepWindowsOpen(\"$notifyDevice\")}");
        fhem("attr " . $fullDeviceName . " room System");
    }
}

####### Windows ########
define Fenster_Badezimmer KLF200Node VELUX_KLF_XXX.myNetwork:51200 0
setuuid Fenster_Badezimmer 5ee369b0-f33f-538e-86a4-7fe6f2b3b9322ad4
attr Fenster_Badezimmer alexaName Badezimmerfenster
attr Fenster_Badezimmer alexaRoom Badezimmer
attr Fenster_Badezimmer alias Badezimmerfenster
attr Fenster_Badezimmer devStateIcon .*up:control_arrow_up:toggle .*down:control_arrow_down:toggle .*-.11\).*:weather_rain:toggle \d.\(.*:fts_window_roof:toggle [1-5]\d.\(.*:fts_window_roof_open_1:toggle [6-9]\d.\(.*:fts_window_roof_open_2:toggle 100.\(.*:fts_window_roof_open_2:toggle
attr Fenster_Badezimmer genericDeviceType blind
attr Fenster_Badezimmer group Fenster
attr Fenster_Badezimmer room Badezimmer,Fenster
attr Fenster_Badezimmer stateFormat pct (limitationMin - limitationMax) execution
attr Fenster_Badezimmer webCmd on:off:pct

# Keep Window open - der dummy
define dummy_Fenster_Badezimmer_keepOpen dummy
setuuid dummy_Fenster_Badezimmer_keepOpen 72420c8c-f63e-4d05-b2f9-c363985f2040
attr dummy_Fenster_Badezimmer_keepOpen alexaName Halte Badezimmerfenster offen
attr dummy_Fenster_Badezimmer_keepOpen alias Halte Badezimmerfenster offen
attr dummy_Fenster_Badezimmer_keepOpen devStateIcon ([0-9]):fts_window_roof ([1-5]\d):fts_window_roof_open_1 ([6-9]\d):fts_window_roof_open_2 (100):fts_window_roof_open_2 .*off:fts_window_roof .*on:fts_window_roof_open_2
attr dummy_Fenster_Badezimmer_keepOpen genericDeviceType switch
attr dummy_Fenster_Badezimmer_keepOpen group Fenster offen halten
attr dummy_Fenster_Badezimmer_keepOpen readingList pct
attr dummy_Fenster_Badezimmer_keepOpen room Fenster,Badezimmer
attr dummy_Fenster_Badezimmer_keepOpen setList pct:slider,0,1,100 state:on,off
attr dummy_Fenster_Badezimmer_keepOpen stateFormat state
attr dummy_Fenster_Badezimmer_keepOpen webCmd on:off:pct
set dummy_Fenster_Badezimmer_keepOpen off

# startet die "endlos"-schleife
define notify_Fenster_Badezimmer_keepOpen notify dummy_Fenster_Badezimmer_keepOpen:on {keepWindowsOpen($NAME)}
setuuid notify_Fenster_Badezimmer_keepOpen 5cb69c0d-6707-4f49-87cd-53a0c0eb0b37
attr notify_Fenster_Badezimmer_keepOpen room System
attr notify_Fenster_Badezimmer_keepOpen group logic

# wird das fenster gänzlich geschlossen, kann der dummy auch off
define notify_Fenster_Badezimmer_off notify Fenster_Badezimmer:(off|pct\s0) set dummy_Fenster_Badezimmer_keepOpen off
setuuid notify_Fenster_Badezimmer_off b8396a04-5d9e-44b6-8b84-1f4e463887b1
attr notify_Fenster_Badezimmer_off room System
attr notify_Fenster_Badezimmer_off group logic

# notify der den dummy auf den selben wert setzt wie das Fenster, sollte es bewegt werden aber nicht bei 11 (regenposition)
define notify_Fenster_Badezimmer_target notify Fenster_Badezimmer:(target:(?!.11).*) set dummy_Fenster_Badezimmer_keepOpen pct $EVTPART1
setuuid notify_Fenster_Badezimmer_target 44c48946-83ed-4039-ad1d-a4d43839fb8d
attr notify_Fenster_Badezimmer_target room System
attr notify_Fenster_Badezimmer_target group logic

ganz grob:
- pro fenster gibt es einen dummy mit state:on,off und pct-slider den man einstellen kann, bzw der auf die aktuellen target wert vom fenster gesetzt, falls es bewegt, wird.
- beim on setzen des dummys läuft eine endloseschleife los, keepWindowsOpen() erstellt einen at, der wiederum keepWindowsOpen() aufruft, usw.
- wird das fenster, wegen regen, automatisch angeklappt (auf 11), erfüllt das die bedingung in der keepWindowsOpen() und das fenster wird versucht zu öffnen.

wie gesagt, nicht sehr elegant, gerade den perl code könnte man ordentlich eindampfen. aber bevor ich mir weiter Mühe mache, wollte ich nach Alternativen fragen.

Edit: ja oder nach 5 Minuten nachdenken halt per DOIF, der part ist schon älter und damals hatte ich scheinbar echte keine Ahnung von FHEM ^^

define doif_Fenster_Badezimmer_keeOpen DOIF  ( [+01:00] and [dummy_Fenster_Badezimmer_keepOpen] eq "on" and [Fenster_Badezimmer:pct] eq "11" ) {fhem("set Fenster_Badezimmer pct ". ReadingsVal("dummy_Fenster_Badezimmer_keepOpen","pct","0"))}

so fällt der Perl-Code und ein Notify weg.

BOFH

Hab mich mit dem Regenschützen noch gar nicht beschäftigt, aber würde doch hier komplett mit erschlagen ?
Zumindest funktioniert es bei der Beschattung....
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

globus243

#952
Zitat von: BOFH am 13 Juni 2023, 16:17:36Hab mich mit dem Regenschützen noch gar nicht beschäftigt, aber würde doch hier komplett mit erschlagen ?
Zumindest funktioniert es bei der Beschattung....

Ach Fhem und seine random module ^^
Wusste nicht das es das gibt, scheint als ob man das damit auch regeln könnte (ASC_rainSensor - DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS:[WAITINGTIME]]).
Frage ist noch, versucht das modul es immer wieder, bis es aufgeht?
Bei meiner lösung habe ich ja einen dummy, den ich entsprechend einstellen kann (wie weit soll das fenster nach dem regen wieder aufgehen), scheint als ob das bei diesem modul nicht ginge.
Mir geht es auch weniger um das automatische schließen (das machen die fenster eh von alleine), sondern um das öffnen nach dem Regen.
Insgesamt würde ich sagen das dieses Modul nicht exakt den use-case trifft den ich hier versuche zu lösen und am ende komplizierter und weniger nutzerfreundlich sein dürfte als meine bastellösung.

Um die Beispiellosen docs zu verstehen/überblicken brauche ich allerdings erstmal eine weile.

buennerbernd

Ich würde nicht mit einer Endlosschleife arbeiten.
Lies mal im Wiki zum Thema KLF200 und Regensensor. Wenn du das richtig eingerichtet hast, kannst du Event-basiert arbeiten, also mit doif oder notify.
Modulentwickler von KLF200 und KLF200Node

BOFH

ich glaube, dass das Modul genau das alles erfüllt und noch mehr.
Es kann Beschatten, auf und zu fahren bei Anwesenheit/Verlassen, Kippsensoren am Fenster usw. für jedes Rollo. Zusätzlich sind alle Funktionen auch via perl aufrufbar, da es komplett modular aufgebaut ist.

z.B. Rollos Hochfahren auf X % bei einer Helligkeit von y spätestens aber um xx:xx Uhr. (nur wenn jemand zu Hause)
Es gibt Blockierungszeiten die nach manuellen Fahrten berücksichtigt werden usw.
https://wiki.fhem.de/wiki/AutoShuttersControl

Du könntest deine funktionen umschreiben um gezielte funktionen vom ASC zu triggern ...

Das ist alles allerdings zu viel Offtopic; ich behaupt der Block ins Moduls lohnt sich!

RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

globus243

Ich habe mir es einmal angesehen und ich bin nicht überzeugt, dass dieses Modul wirklich das kann, was ich hier versuche.

nochmal Zusammengefasst:
- Velux-Dachfenster haben einen eigenen, festverbauten Regensensor
- und gehen bei Regen, von alleine, auf Position 11/100 und können dann nur noch von 0-11 bewegt werden
- irgendwann gibt der Regensensor das Fenster wieder frei und es kann wieder über die Position 11/100 hinaus bewegt werden.

Beim ASC-Modul wüsste ich jetzt auf anhieb nicht wie das gehen sollte.
"ASC_rainSensor" ist dafür da um einen dedizierten Regensensor für die Steuerung zu benutzen - brauch ich nicht, machen die Fenster ja schon von alleine.
Ich könnte jetzt Zeiträume definieren in denen die Fenster offen sein sollen, aber wenn es regnet und die Fenster automatisch schließen, sieht das für ASC ja aus wie ein von mir abgesetzter Befehl (es kann ja nicht unterscheiden, ob das Fenster jetzt auf 11 geht, weil ich das so will, oder weil es die Regenposition ist).

Versteht mich nicht falsch, ich hänge nicht an meiner Lösung und ersetze es gern durch native Fhem-Funktionen, aber ich sehe einfach nicht, wie das ASC Modul das lösen soll.

ZitatIch würde nicht mit einer Endlosschleife arbeiten.
Lies mal im Wiki zum Thema KLF200 und Regensensor. Wenn du das richtig eingerichtet hast, kannst du Event-basiert arbeiten, also mit doif oder notify.

Jap ließ nochmal meinen vorhergehenden Post und den Edit, genau so mache ichs grad. Keine Endlosschleifen mehr.

BOFH

Ok dann gibt's ja 2 Ansätze. Denn das fahren bei regen und danach beherrscht das asc meines Wissens! Ich selbst beschatte nur.

Also Variante 1 das Klf Modul kann ein Reading vom veluxfenster abbilden für isRainig  und erschlägt damit alles andere. Oder

Variante 2. 
du checkst onChange der velux Fenster ob % 11 ist. Sind mehrere/alle auf 11 regnet es und setzt nur 1 dummy welches quasi Hauptfunktion der Regenprognose übernimmt.
Und brauchst dann nur 1 Fenster alle x Sekunden versuchen zu fahren. Sobald das dann != 11 ist wird hauptdummy geschaltet und Rest fährt.

Im klf Modul wäre natürlich am Besten 
Gibt's im webinterface dazu eine Visualisierungen so dass die Chancen eines readings existieren?
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

curt

#957
Ich zitiere das mal, brauchen wir vielleicht:
Zitat von: buennerbernd am 09 März 2019, 15:21:37Der SSL-Handshake sollte eigentlich ebenfalls nonblocking sein, nur DNS-Abfragen sind weiterhin blockierend. Insbesondere wenn der DNS-Name nicht aufgelöst werden kann.
Vielleicht liegt da irgendwo dein Problem?

Ich habe hier "Velux disconnected" und habe keine Ahnung, wie ich mir das eingefangen habe und wie ich es beheben könnte. Velux ist V.0.2.0.0.71.0. Das System und FHEM sind aktuell, im fraglichen zeitraum wurden auch keine Updates eingespielt. Wegen verschiedener Arbeiten mit fhem.cfg (u.a. autocreate) habe ich das System mehrfach rebootet, selbstverständlich ohne laufenden fhemd.

In Bezug auf o.g. Zitat: Will Velux nach Hause telefonieren? Tatsächlich habe ich den DNS-Verweis in fhem.cfg auf meinen Pi-Hole umgebogen...

Also ich will nicht mehr kaputtmachen als jetzt schon ist: Ich habe nichts mehr angefasst und hoffe auf freundliche Hilfe. Ok, ich habe verbose=5 für Device "Velux" nun angestellt.

Auszug aus fhem.log, bei noch nicht gesetztem verbose-Level:
2023.07.25 23:43:39.939 1: Velux: Can't connect to 192.168.128.15:51200: start_SSL https://192.168.128.15:51200 timed out
2023.07.25 23:44:14.767 1: 192.168.128.15:51200 reappeared (Velux)
2023.07.25 23:44:14.986 1: KLF200 (Velux) - reboot started, reconnect in 30 seconds
2023.07.25 23:44:49.823 1: 192.168.128.15:51200 reappeared (Velux)
2023.07.25 23:50:49.139 1: Velux: Can't connect to 192.168.128.15:51200: start_SSL https://192.168.128.15:51200 timed out
2023.07.25 23:51:23.969 1: 192.168.128.15:51200 reappeared (Velux)
2023.07.25 23:51:24.189 1: KLF200 (Velux) - reboot started, reconnect in 30 seconds
2023.07.25 23:51:59.001 1: 192.168.128.15:51200 reappeared (Velux)
2023.07.26 00:27:05.218 1: Velux: Can't connect to 192.168.128.15:51200: start_SSL https://192.168.128.15:51200 timed out
2023.07.26 00:29:28.271 1: Velux: Can't connect to 192.168.128.15:51200: Operation now in progress
2023.07.26 00:29:28.274 1: Velux: Can't connect to 192.168.128.15:51200: 192.168.128.15: Verbindungsaufbau abgelehnt (111)
2023.07.26 01:35:08.175 5: KLF200 (Velux) - error while connecting: 192.168.128.15: Verbindungsaufbau abgelehnt (111)
2023.07.26 01:35:38.187 5: KLF200 (Velux) - error while connecting: 192.168.128.15: Verbindungsaufbau abgelehnt (111)
2023.07.26 01:36:08.212 5: KLF200 (Velux) - error while connecting: 192.168.128.15: Verbindungsaufbau abgelehnt (111)

Nachtrag:
Gleich der erste Test war es: Netzstecker gezogen, Netzstecker gesteckt. Sofort lief alles wieder.

Die Frage ist nun: Woran lag das denn? Tut sich KLF200 schwer, wenn mehrere/zu viele Kommandos gleichzeitig kommen?
Und - löst "disconnected" nun ein Event aus?
RPI 4 - Jeelink HomeMatic Z-Wave

BOFH

Ich glaube er kann nicht so viele Befehle aufeinander abarbeiten. Das Modul denkt dann reagiert nicht richtig und leitet Neustart ein. Darum kann man den spool auch leeren ?
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

fhemjcm

Hallo zusammen,

ich hoffe mal, ich bekomme hier den richtigen Tip/Denkanstoß, denn langsam verzweifle ich an der Velux KLF200. Hintergrund: Ich habe über FHEM mit der KLF200 2 Velux Solaroaden, ein Velux Lichtband (über KUX100, 2 Rolläden), 3 Somfy IO Rolläden und 2 Markilux Denkrechtmarkisen gesteuert. Das System lief problemlos, die Geräte kamen nach und nach dazu, alles prima. Dann kam der Blitz... lief alles, nur die Kux100 nicht mehr. Ausgetauscht, Rolläden wurden nicht gefunden... immer mehr probiert (ich depp), dann irgendwann die KLF200 auf Werkseinstellungen gesetzt... dann ging nix mehr.. trotz reset aller Motoren... also neue KLF200... diese findet genau die 2 Velux Solar, sonst nix... das wäre die erste Idee die ich bräuchte (probiere es wenn ich eines bekomme über das KLR200 Pad, aber verstehe einfach nicht wieso es nicht mehr geht... das 2. Problem, die neue KLF200 bleibt trotz LAN Anschluss und WLAN nach 10min aus im WLAN... somit natürlich auch nix FHEM... hier suche ich also verzweifelt den nächsten Denkanstoß.... Vielleicht hat ja jemand ähnliche Erfahrungen und eine Idee... danke vorab und viele Grüße, Jan