Rollläden über xBlind (mal wieder)

Begonnen von erdbeerschaeler, 13. Oktober 2014, 15:33:02

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 5 Gäste betrachten dieses Thema.

erdbeerschaeler

Hallo,

ich bin einfach noch nicht mit meiner Rollladensteuerung zufrieden und bevor ich meine schon recht umfangreiche Struktur um die Blindbausteine erweitere möchte ich die Xblind jetzt einfach mal zum laufen bekommen.

Welcher XBlind was machen soll ist mir grob klar, aber wie bringe ich die Bausteine zusammen?
Wollen die sich gar nicht Unterhalten? Laufen die alle Stand alone?
Die "normalen" Blinds kann ich aneinander hängen und Hinten dann die Ausgänge für Rauf und Runter dran bauen.
Wie sieht das hier aus?

Wenn mir das jemand kurz erklären könnte wäre das toll.
Ich will auch gerne später mal eine Doku zu den XBlind schreiben, aber ganz ohne Schupps komme ich mit den Dingern nicht an den Start.

Bitte nicht hauen aber ich weiß, dass viele von Euch Interesse an den kleine XBlind hätten, und es wäre doch Schade, wenn sie dann als Datenmüll enden   ;)
Wenn schon jemand Erfahrung mit den Bausteinen würde ich mich auch über Informationen freuen.

Gruß
erdbeerschaeler


[gelöscht durch Administrator]

Majaestix

Hallo erdbeerschaeler,

da hast Du Dir aber 'was vorgenommen!
Wenn ich das richtig sehe, sind die XBLIND Bausteine im aplpha - Stadium hängen geblieben, weil niemand sie fortentwickeln wollte. Soweit ich das erkennen konnte, sind sie vollständig neu "erschaffen" worden und haben wenig (sehr wenig) mit den Vorghängerbausteinen gemeinsam. Um diese Bausteine zum stabilen Laufen zu bringen ist m. E. noch sehr viel Arbeit nötig, plus das Schreiben der bisher nicht vorhandenen Doku.
Für meinen Teil habe ich die vorhandenen, "klassischen" Bausteine so ergänzt/umgeschrieben, dass es jetzt bei mir super läuft. Dazu gibt es hier im Forum eine Menge Hinweise/Code, wie man 'was besser machen kann.

Gruss

Rainer

erdbeerschaeler

Hallo Rainer,

das sich die Bausteine in einer Alphaphase befinden würden hab ich jetzt nicht gewusst.
Ich bin davon ausgegangen, dass nur noch ein wenig herumgetastet werden muss.

Zu meinem Projekt:
Ich habe 16 Rolladen am Haus welche alle vollautomatisch laufen.

Bisher haben wir nur für 3 Rolladen Hardwaretaster installiert (KNX).
Der Rest wird wenn überhaupt über XHome hervorragend gesteuert.

Die Steuerung ist seit dem Frühjahr aktiv und hat mit Beschattung Super funktioniert.
Jetzt kommt aber die Jahreszeit, in der man und auch Frau gerne mal die Rolladen Abends etwas länger oben lassen will.

Dafür möchte ich gerne Sperrzeiten an jeden Rollladen einbauen.
Allerdings so, dass er morgens trotzdem noch alleine hochfährt ohne das ein Tag gewartet werden muss.

Ein weiteres Problem habe ich auch noch mit dem Nightbaustein, dass wenn die Rolladen geschlossen sind und ich das Fenster öffnen, der Rolladen zwar auf Lüftungsposition fährt, aber dann am Morgen nach Sonnenaufgang und Nachlaufzeit nicht wieder öffnen.

Im Großen und Ganzen stelle ich immer wieder fest, dass mein Problem der Blind_Night Baustein ist.


...... um aber noch mal zum Anfang dieses Threads zu kommen.
Wenn es Möglichkeiten gibt den Night etwas zu modifizieren, dann würde ich das gerne vorziehen.
Allerdings habe ich das so noch nie gemacht und bin mal gespannt wie das funktioniert.

Was hast Du denn so an Deinen Bausteinen für Funktionen eingebaut und wie hast Du das realisiert?

Gruß
Sven

NightWatcher

Hi Sven, dein Problem mit dem nicht mehr morgens hochfahren nach einem manuellen Eingriff habe ich auch. Dafür müsste es doch eigentlich eine Einstellung geben, sodass der Baustein spätestens nach einer Zeit X wieder in den Automatik Modus wechselt?

erdbeerschaeler

Guten Morgen,

@Nightwatcher
Das ist der eine Punkt. Allerdings wäre ein Freigabebit sowie ein Zeitbereich von Frühestens Rauf oder Runter für Morgens und Abends auch interessant.

Ich werd mal versuchen, den Originalbaustein zu verbiegen, wobei ich noch nicht weiß, wie ich an den Code komme.

Gruß Sven

mattsches

Das sollte relativ einfach zu ändern sein. Schaut mal in den Quellcode des BLIND_NIGHT, gleich die ersten Zeilen bewirken, dass ein manueller Eingriff bei Nacht das automatische Öffnen deaktiviert:

IF NOT (up AND dn) AND night THEN
(* manual operation at night will cancel operation for one night *)
night := FALSE;
ELSIF [...]


Wenn ihr diese erste IF-Abfrage rauslöscht (und aus dem ELSIF natürlich ein IF macht), sollte es so funktionieren, wie ihr euch das wünscht.

Ich würde dazu ganz pragmatisch den Baustein aus der Bibliothek ins eigene Projekt kopieren, dort modifizieren und z. B. als BLIND_NIGHT2 speichern und aufrufen. Sache gegessen.

erdbeerschaeler

Mahlzeit,

vielleicht eine blöde Frage, aber wie komme ich am besten an den Quellcode der Bausteine dran.
Einfach die Lib in einem Editor des Vertrauen öffnen und dann drin herummachen ist doch wohl der falsche Weg, oder??

Sonnigen Wochenende

Der Schwenn

erdbeerschaeler

#7
Okay...
Lib als Datei öffnen und ab geht die wilde Reise ;-)

Aber wenn ich die Lib dann mit dem kopierten und geändertem Baustein speichere, dann ist der nach erneutem Import der Datei nicht dabei.

Was mache ich falsch?!?

mattsches

Also der Editor des Vertrauens sollte klar sein - Codesys. Darin kann man nicht nur Projekte bearbeiten, sondern auch Bibliotheken, sofern sie nicht verschlossen wurden. Was bei den OSCAT-Bibliotheken ("Open Source Community...") dankenswerterweise nicht der Fall ist.

Drei Möglichkeiten fallen mir auf die Schnelle ein:

1. In Codesys also "Datei öffnen", Dateiart "Bibliothek *.lib" auswählen und die gewünschte Bibliothek öffnen. Zweite Instanz von Codeys öffnen mit dem Zielprojekt, dort neuen Baustein unter beliebigem Namen anlegen und per Copy & Paste Deklarations- und Codeteil kopieren. Im Zielprojekt dann anpassen und die Instanzen auf den neuen Bausteinnamen ändern.

2. Wie oben Bibliothek in Codesys öffnen, dann aber als Projekt abspeichern. Schließen. Zielprojekt öffnen, "Projekt/Kopieren...", Quellprojekt auswählen und im folgenden Dialog den gewünschten Baustein. Eine Kopie wird im Zielprojekt angelegt, diese umbenennen, modifizieren und die Instanzen anpassen an den neuen Namen.

3. Vielleicht am einfachsten: Bibliothek öffnen, "Projekt/Exportieren...", gewünschten Baustein auswählen, Dateiname für (temporäre) Exportdatei angeben. Zielprojekt öffnen, "Projekt/Importieren...", Datei auswählen, anpassen, etc. pepe.

Sucht euch eine Variante aus.

Direkt in der Bibliothek ändere ich nichts, weil ein Debuggen vom Zielprojekt aus dann nicht möglich ist.

Grüße,
mattsches

erdbeerschaeler

Hallo Mattsches,

bei meiner Bastelei habe ich mich für die .exp Favriante entschieden.
Dadurch habe ich auch Deinen Dark Baustein testen können.

Leider funktioniert der nicht mit dem Shadebaustein, daher muss ich jetzt wirklich mal selbst ran.

Eine Frage hätte ich noch... Kann ich wohl eine Art Zeitfenster wir beim Timer_EXT in den Blind_Night mit hinein bauen?

Gruß
Sven

mattsches

Servus Sven,

jetzt verwirrst Du mich. Welchen Dark-Baustein meinst Du?  ???

Ich habe mal meine Varianten der bestehenden BLIND_*-Bausteine vorgestellt. Ein *DARK war da aber nicht dabei. Richtig ist, dass meine Bausteine nur miteinander tun - weil ich die Analogwerte für Position und Lamellenwinkel von größenlosen 0..255 auf 0..100 bzw. Winkel in Grad geändert habe.

Was Deine Frage angeht: Können kannst Du nahezu alles. Mir ist nur nicht ganz klar, was der Timer bewirken soll (ohne den TIMER_EXT jetzt genau zu kennen, ich setze ihn nicht ein).

Was soll denn genau wie funktionieren? Komst Du mit meinem Vorschlag oben nicht zum Ziel?

Gruß,
mattsches

erdbeerschaeler

Hallo,

ich komme mit Deinem Vorschlag schon einen ganzen Schritt weiter, und bin jetzt gerade etwas verunsichert bezüglich des Darkbausteines.
Könnte sein, dass der von jemand anderem kam.. Sorry!

Timer_Ext.... Den nutze ich sehr häufig.
Der Baustein reagiert auf Sunrise und Sunset mit Offsets und es kann ein "Fenster" für start und Stop eingestellt werden.

Bezogen auf die Blindbausteine bedeutet das: Die Jalousien sollen im Sommer nicht nach der Offsetzeit von z.B. 11 Minuten schon um 4:44h hoch fahren, sondern frühestens um 7 Uhr.

Für den Winter würde ich die Jalousien nicht schon um 16:30h runter fahren lassen, sondern erst um 19 Uhr.
Alles in Abhängigkeit davon, ob wir zuhause sind oder nicht ;-)

Ich werd mich mal ran setzten und ein wenig basteln... vielleicht bekomme ich es ja hin!

Schicken Abend noch....

mattsches

Das sollte einfach sein, dazu brauchst Du keinen TIMER_EXT.

Einfach ein paar zusätzliche Parameter definieren, z. B.:

FUNCTION_BLOCK BLIND_NIGHT
VAR_INPUT
[...]
ENABLE_MINMAXTIMES : BOOL;
END_VAR
VAR_INPUT CONSTANT
[...]
EARLIEST_OPENING_TIME : TIME_OF_DAY;
EARLIEST_CLOSING_TIME : TIME_OF_DAY;
[...]
END_VAR

Und dann die Bedingungen für das automatische Schließen und öffnen erweitern:

[code][...]
ELSIF (DT_TO_TOD(dtin) > sunset + sunset_offset) AND (last_night < DT_TO_DATE(dtin)) AND NOT night AND e_night DN AND (DT_TO_TOD(dtin)>=EARLIEST_CLOSING_TIME OR NOT ENABLE_MINMAXTIMES) THEN
[...]
ELSIF (DT_TO_TOD(dtin) > sunrise + sunrise_offset) AND (last_day < DT_TO_DATE(dtin)) AND night AND e_day AND (last_night < DT_TO_DATE(dtin))  AND (DT_TO_TOD(dtin)>=EARLIEST_OPENING_TIME OR NOT ENABLE_MINMAXTIMES) THEN
[...]
END_IF;


Jetzt werden die Rolläden erst geschlossen, wenn EARLIEST_CLOSING_TIME erreicht oder diese Blockierung/Verzögerung per ENABLE_MINMAXTIMES=FALSE deaktiviert ist (z. B. wenn Du nicht zuhause bist).

Du solltest nur noch prüfen, ob die aktuelle Uhrzeit an DTIN als Lokalzeit oder UTC übergeben wird. Falls Letzteres der Fall ist, würde ich einen weiteren Parameter machen, mit dem Lokalzeit übergeben wird und in den beiden zusätzlichen Bedingungen darauf zugreifen (und nicht auf DTIN). Sonst bewegen sich die Läden doch ein oder zwei Stunden früher als gewünscht.

Grüße,
mattsches

erdbeerschaeler

Mahlzeit

Coole Sache...was Du da mal eben aus dem Ärmel geschüttelt hast....
Das sollte die ganze Sache doch schon erheblich beschleunigen.

Ich hab mir aber auch nochmal die XBlind Bausteine angesehen, da ich ja jetzt weiß, wie ich an den Quellcode komme war das kein Problem mehr.
Die bieten diese Funktion nämlich schon...
Ich werde in den nächsten Tagen einfach mal beides einbauen und sehen, wo es noch klemmen könnte.

Vielen Dank auf jeden Fall schon mal ....

Gruß
Sven

erdbeerschaeler

Soooo, jetzt aber nochmal zu Mattsches Code.

Der verbogenen Blind_Night läuft SUUUUPER.  :)
Ich hab's erst an einem Fenster ein paar Tage getestet und jetzt alle anderen (16 Rollläden) umgestrickt.
In Verbindung mit der Anwesenheitserkennung von Xhome ist das eine TOP Lösung.

VIELEN DANK

Einen Hab ich aber noch  ;)
Auf den Blind_Input habe ich den jeweiligen Fensterkontakt gelegt. (IN)
Wenn die Rolladen die Position Null haben und der IN negativ durch das Öffnen des Fensters wird, dann fährt der Rolladen auf die eingestellte Lüftungsposition.
Was könnte ich machen, dass der Rolladen beim schließen des Fensters auch wieder zu fährt? Master Mode ist auf "1".
Sollte ich mit Flanken arbeiten?

Gruß
Sven