Forum

Forum Index -> Tipps & Tricks -> Logik: Rollladen in Lüftungsposition fahren wenn Fenster off
Hannes <p>Logik: Rollladen in Lüftungsposition fahren wenn Fenster off</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

Hallo

Ich hänge bei folgendem Problem:
Ich möchte meine Rollläden automatisch bei öffnen der Fenster auf Lüftungsposition fahren lassen, wenn diese geschlossen waren.

Eigentlich nicht so ein Problem, denn wenn Fenster offen und Rolladen = True (geschlossen)... starte Sequenz (fährt 2 sek den Rollladen hoch) bzw wenn geschlossen, wieder runter.

Das Problem ist nun, wenn der Fenster offen ist und ich den Rollladen runterfahren möchte. Das geht dann nicht, weil sobald die Bedingung erfüllt ist, die Sequenz anspringt.

Was ich brauche:
Ich muss unterscheiden, ob das Fenster offen war, bevor ich Rollladen = True bekommen habe, oder ob der Rollladen bereits geschlossen war, und das Fenster danach geöffnet wurde.

Hat jemand eine Idee wie ich das lösen könnte?
Denn wenn der Rolladen bei geöffnetem Fenster runterfährt, soll eine andere Sequenz starten. Diese startet das Lüften mit 10 sek Verzögerung. Damit der Rollladen erst ganz runterfahren kann und dann erst die 2sek wieder hoch.

Eine Endlagenbenachrichtigung des Rollladens habe ich nicht.

Danke schon mal für Ideen

Hannes

24.02.2007 08:59
User abgemeldet <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit:
Nachrichten:

hallo hannes,
ich glaube das problem ist, das du nie den richtigen status von --rolladen zu--,also wirklich zu bis untenhin ohne schlitz und nicht halb unten hin bekommst.
es sei denn du fährst rollo runter nur über aktorobjekt
--position--, und dann diesen status mit --fenster auf--
verknüpfen und sequenz starten.könntest du ja machen,um z. b. abends die rollos über zeitschalt runter zu fahren.
aber wenn du von hand ganz zufährst funktionierts wohl nicht mehr.

gruß daniel

24.02.2007 14:55
Hannes <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

Hallo Daniel

Ja, ich wollte sowieso schon einmal eine Positionslogik machen.

Inzwischen bin ich etwas weiter. Habe gleich nach dem Rolladen Fahren eingang einen Timer eingebunden.
Wenn ich hier eine Verzögerung (die Laufzeit des Rollladen) vergebe, klappt das schon mal für den Anfang nicht gar so schlecht:

Wenn Rollladen runter gedrückt wird, und innerhalb des ganzen Fahrbefehls kein Stop gedrückt, wird nach der Zeit die Schaltung aktiv.
Unterbricht man während des Fahrens den Timer, beendet dieser.

Nachteil:
Ich fahre den Rollladen runter und beende die Fahrt bei 50%

Wenn ich nun später ganz zu fahre, bräuchte ich eigentlich nur mehr die Halbe Zeit prüfen, ob manuell gestoppt wurde.
Hier wird die Schaltung wieder erst nach der ganzen Fahrzeit aktiv.

Ich muss noch einige kleinere VEränderungen an der Logik machen ... dann stelle ich es hier wieder rein. Vielleicht bekommt das ja komlett zufriedenstellend hin. Ansonsten muss ich mal in vb.net und einer Extension testen.
Aber das ist halt umständlich, sofern noch nichts im EisBär eingebaut ist.

Aber habe vor das auf jeden Fall zu realisieren ... können hier es ja bis zum bitteren Ende ausdiskutieren :-D

Schöne Grüße

Hannes

24.02.2007 16:53
User abgemeldet <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit:
Nachrichten:

hallo hannes,
um wieviel rollos handelt es sich eigendlich?

24.02.2007 19:10
Hannes <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

Hallo Daniel

In Summe sind es "nur" 3 Stk.
Nur würde ich gerne bei geschlossenem Rollladen die Lüftungsschlitze nutzen, wenn ein Fenster offen ist.
Dafür sind die ja eingebaut.

Werde nächste Woche da weiter testen ... eigentlich brauche ich nur eine Logik oder Counter, der die Fahrtzeit auf und ab berechnet.

Nur stört mich es gar nicht, wenn der Rolladen einmal angehalten wurde und dann wieder weitergefahren wird. Das würde ja 7 Sek Verzögerung bedeuten, bis die Funktion ausgelöst wird. Aber wäre für mich OK.

Stelle dann die Logik hier rein, falls ich es zusammen habe ... oder mir kommt jemand zuvor :-P

Gruß

Hannes

24.02.2007 22:01
User abgemeldet <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit:
Nachrichten:

hallo hannes,
mit der anzahl von rollos meinte ich , das es ja auch noch die möglichkeit gibt einen anderen jalousieaktor zu verwenden, wenn es nicht gerade 10 stück sind. neuere aktoren können die position in wert 0-255 anfahren und status anzeigen.meine können das leider auch nicht :-(
vielleicht bekommst du es ja mit der logik hin.

gruß daniel

24.02.2007 22:33
Hannes <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

Hallo Daniel

Dann geht es dir ja gleich wie mir: Keine direkte Positionierung mit dem Aktor möglich.

Habe aber nun doch begonnen, mir das in vb.net zu programmieren, weil ich einfach hier den vollen Funktionsumfang des Framework nutzen kann.
Vielleicht ist es mit der Logik auch möglich, aber ich denk ich bin schneller wenn ich gleich eine Extension dafür entwickle.

Extension´s sind ja noch nicht herausen, aber GottLob kann ich kleine Sachen hier schon als Alpha und Beta für mich erstellen :-)
Wenn sich die dann so verhält, wie es soll, bitte ich die Fa. Maier wieder, meine DLL einzubinden.
Dann hat jeder, so wie wir beide, eine Angabe zur tatsächlichen Position.
Eventuell erweitere ich das dann als Positionierung in %.
Sofern keine grooosen Verzögerungen aus dem EisBär über den Bus zum Aktor kommen, sollte das klappen.

Dann kann man die Jalousie oder Rollladen auf 50% fahren. Man muss ja nur nach 50% der Gesamtlaufzeit das Stop Telegramm senden. Dass sollte schon klappen.

Bist du eigentlich an einer Ausgabe der tatsächlichen Position interessiert?
Das Problem bleibt aber, das wenn du die Visu startest, keine Referenz hast. Erst wenn einmal der Rollladen in eine Endposition gefahren wurde, arbeitet die Extension korrekt. Aber das soll ja kein problem werden.

Gruß

Hannes

EDIT: Also in vb.net wars nun kein Problem ... habs nu erstellet und als Ausgabe habe ich mir Prozent gewählt. Beim Starten der Fahrt läuft ein Timer, erreich der Timer bei auf oder ab die Gesamtlaugzeit, wird der Timer beendet und 0% bzw 100% ausgegeben.
Wird ein Stop während der Fahrt gesendet, stopt der Timer und die derzeitige Position wird ausgegeben. Bei Wiederaufnahme der Fahrt (auf oder ab) zählt der Timer wieder und reagiert wie am Anfang.
Das Lüftenfeature habe ich eingebaut. Als Eingang sind:
Geschlossen
Gekippt

zur Verfügung. Wird das Fenster geöffnet oder gekippt und der Rolladen ist ganz unten, wird auf den Ausgang "Lüften" ein True gesendet. Um eine Sequenz zu starten.

Jedoch fürchte ich, ich muss gleich das öffnen zum Lüften in neimem Code einbauen, denn:
Rollladen unten - Fenster auf - Lüften Ein
Drücke ich während des Lüftens den Rollladen nach oben, muss ich Lüften auf False stellen, damit beim erneuten abfahren das Lüften wieder ausgeführt wird. Nur wenn ich während des Auffahren die Sequenz beende, startet diese die Abschaltsequenz und würde wieder die lüfterschlitze schließen.
Es würde nur mit 2 getrennten Sequenzen gehen ... aber das wären 6 Stk bei mir. Da hat man keine Übersicht mehr.
Also werden ich wohl das Lüften auch im Code einbauen.

[ Geändert von Hannes an 25.02.2007 13:09 ]

25.02.2007 12:15
User abgemeldet <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit:
Nachrichten:

hallo hannes,
vb.net hab ich null plan,ich weiß von nix.was nicht ist kann noch werden.
bin schon interessiert an der sache, weil ich hatte mal was ähnliches vor , was auch nicht so ganz funzte.
ich wollte bzw. immer noch bei gekipptem fenster,wenn es anfängt zu regnen den jeweiligen rollo 30-50% runterfahren. dazu ist aber dann auch der genaue status erforderlich.
wie auch schon gesagt, das funktioniert bisher nur wenn der rollo ganz oben ist.
mit deiner lösung würds natürlich richtig funktionieren.

gruß daniel

25.02.2007 20:14
Hannes <p>Re: Logik: Rollladen in Lüftungsposition fahren wenn Fenster</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

daniel76 schrieb:
hallo hannes,
vb.net hab ich null plan,ich weiß von nix.was nicht ist kann noch werden.

Du, ich habe selbst auch nie programmieren gelernt. Jedoch schaffe ich so einiges ... und für so manch nützliches reicht es eben :-D

bin schon interessiert an der sache, weil ich hatte mal was ähnliches vor , was auch nicht so ganz funzte.
ich wollte bzw. immer noch bei gekipptem fenster,wenn es anfängt zu regnen den jeweiligen rollo 30-50% runterfahren. dazu ist aber dann auch der genaue status erforderlich.
wie auch schon gesagt, das funktioniert bisher nur wenn der rollo ganz oben ist.
mit deiner lösung würds natürlich richtig funktionieren.

Ja, damit sollte das dann ohne grosse Probleme funktionieren.
Eigentlich erfolgt eine Positionierung bei den Aktoren ja durch zeitlich korrektes ein/aus schalten.
Bei 20sek Laufzeit, schaltet ein Aktor, wenn 50% gestellt werden soll, ja "nur" nach 10sek ab.
Das selbe kann man ja im EisBär machen ... nur hat man eben Verzögerungen, die wie ich hoffe, irgendwo im Millisekundenbereich liegen.

Außerdem:
Die Illusion, das bei einem Aktor mit direkter Stellposition, der Rollladen bei 50% auch genau bei der hälfte der Höhe stehen bleibt kann man gleich verwerfen.
Wenn du einem Aktor 50% sendets, hast zwar 50% der Laufzeit aber das ist nicht 50% der Höhe, weil durch die Aufwicklung, fährt der Rollladen bei gleicher Umdrehungsgeschwindigkeit, anfangs schneller (bzw. Wickelt mehr ab) als im unteren Bereich.
Bei mir war der Rolladen bei 100cm Höhe, bei 50% bei einer Höhe von 40m. Was theortisch eine Höhe von 60% ist.

Daher denk ich das das im EisBär zufrieden funktioniert ... wird sich dann ja zeigen ;-)

Schöne Grüße aus Österreich

Hannes

26.02.2007 12:23
Hannes <p>Alpha Version</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

Hallo Daniel

Habe dir/euch eine Zip angehängt. Mit diesem projekt kannst einmal testen, ob die Lüftefunktion und die Ausgabe der Behanghöhe so einigermassen funktioniert.

Wichtig: Dieses Demo ist nur zum testen gedacht. Das einfügen in ein bestehendes Projekt führt zweifelsohne zu einem Fehler. Kann soweit gehen das das Projekt nimmer ladbar ist.Daher bitte nur im Editor testen!

Zur Erklärung:
Kopiere die Datei "Extension.Reload.DLL" in dein EisBär Verzeichnis. Die Bezeichnung der Datei ignoriere bitte, ich als User kann keine eigenen Komponenten erstellen, die nicht von der Fa. Maier integriert worden sind. So kann ich nur bestehende überschreiben. In diesem Fall eine Reload Komponente die als Beta bei mir liegt.

Wenn du die Datei ins Verzeichnis kopiert hast, starte den Editor und lade das beigefügt Projekt.
Die Reload Komponente ist die eigentliche Komponente.
Importiere in der KNX Verbindung deine ETS Daten und füge für die Steuerung einen Rollladen in die passende Netze ein. Damit du auch korrekt am Bus hängst.

Danach bitte noch in den Eigenschaften der Reload Komponente, Gesamtlaufzeit (inkl. das schliessen der Lüftungsschlitze) und die Zeit für das öffnen der Lüftungsschlitze.

Wenn du den Rollladen runterfährst, zählt die Komponente bis ein Stop eintrifft, oder der Endpunkt (berechnet anhand der Gesamtlaufzeit inkl. 5% Sicherheit) erreicht ist. Dann wird die Höhe ausgegeben in %
Sollte das Fenster offen sein, fährt der Rollladen xSec hoch (abhängig von den Eigenschaften).
Beim schliessen wieder zu. Sobald du manuell den Rollladen hochfährst, ist die Funktion ausser Kraft.

Hoffe das es für den Anfang so einigermassen alles korrekt ist. Wenn du, oder andere, das bestätigen, werde ich weiterarbeiten für:

* Fahren in Position x %
* Positionsausgabe wahlweise ohne Lüftungsschlitze (eigentlich darf man die Zeit zum schließen der Lüftungsschlitze nicht miteinrechnen bei der Höhe, weil sobald der Rollladen unten angekommen ist, keine Änderung an der Höhe stattfindet, obwohl der Rollladen weiter läuft)
* Freigabeobjekt

Gruß

Hannes

27.02.2007 15:33
Hannes <p>Re: Alpha Version 2</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 471

Neue Version der DLL.

Habe die Zeitberechnung umgestellt was Ressourcenschonender ist und gleichzeitg exakter.

Auch habe ich einmal eine Positionsmöglichkeit eingebaut:

Im Ordner Eingang gibt das Kommunikationsobjekt "Position anfahren".
Hier wird ein WERT erwartet zwischn 0% und 100%. Wird ein Wert gesendet, der höher als 100 ist, wird dieser auf 100 reduziert.

Nochmal zur Erinnerung: 50% des Rolladen ist nicht 50% der Höhe:
Der Rolladen trifft den Endpunkt, fährt aber noch weiter um die Lüftzungsschlitze zu schließen!!
Auch durch die Abwicklung ist die Höhe niemals genau 50%

Wegen den Lüftzungsschlitzen werde ich mir noch was einfallen lassen. Eventuell 2 Eingänge, einmal auf(0%) und zu(100%)(mit schließen der Lüftungsschlitzen) und einmal auf(0%) und zu(100%)(OHNE Lüftungsschlitze)

Auch werde ich wohl für auf und ab je eine eigene Gesamtfahrzeit ermöglichen. Da auf immer länger benötigt als ab.

Die angehängt DLL ins EisBär Verzeichnis kopieren und die "alte" vom vorigen Post überschreiben. Das Projekt selbt muss nicht neu erstellt werden.

Gruß

Hannes

Edit: Durch zeitkritsiche Abläufe kann ohne weiters sein, das wenn du auf 30% schließen möchtest, der Timehandler (bis alle Befehle ausgeführt wurden) bei 30,500133% intern hält, was eine Rundung auf 31% bewirkt. Da versuche ich noch zu optimieren. Damit nicht 31% ausgegeben wird wenn du auf 30% stellen möchtest.

[ Geändert von Hannes an 28.02.2007 11:48 ]

28.02.2007 11:40
User abgemeldet <p>Re: Alpha Version 2</p>
Benutzer
Mitglied seit:
Nachrichten:

Hi,

gibt es hiervon ein Update oder ist das schon längst im Eisbär drin?

Marcus

24.07.2009 09:26
hohaimbs <p>Re: Alpha Version 2</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 60

Hallo Marcus,

nein, die DLL wurde von mir nicht mehr weiter entwickelt, das ich in der Zwischenzeit nicht mehr benötige.

Updates von Extension DLL laufen auch nicht mehr in der Runtime.

Müßtest versuchen das in der Logik irgendwie zu lösen.

Schöne Grüße

Hannes

25.07.2009 11:08
Anmelden