PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rollladensteuerungs Baustein für HS2



Gaston
17.03.06, 12:12
Hallo,

Ich bin dabei einen Baustein zur Rollladensteuerung zu entwickeln. Dieser orientiert sich an dem Baustein von Tilo den ich zuerst benutzen wollte. Dieser erwies sich dann für meine Zwecke nicht passend da er zuviele fest verdrahtete (programierte) Funktionen hat.

Ich mach also einen ähnlichen Baustein aber ohne Sonnenschutz (kann extern gemacht werden) oder Schlafsimulation.

Da derbaustein sehr Konfigurabel ist ergibt sich daraus eine ziemlich grosse Komplexität, die sich sowohl in der umständlichen Programierweise der Bausteine im HS als auch in der Funktionalität selbst wiederspiegelt.

Um die grösstmögliche Funktionalität dieses Bausteins zu gewährleisten und dabei keine Unvorhergesehenen Resultat zu produzieren (siehe "Ausnahmen" im Text) will ich hier mal meine Entwickelungsdoku veröfentlichen die sowohl die ganze Funktionalität wie auch die berücksichtigten "Ausnahmen" aufzeigt.

Ich hoffe somit dass ich Input bekomme, z.B. über andere Ausnahmen, oder (noch) weitere Funktionalität. Aber auch Aussagen wie "Die Funktione xyz ist Sinnlos", oder ähnliches sind willkommen, soweit sie begründet werden. Denn ich möchte absolut vermeiden dass ich mich bei einer Funktion in etwas verrenne was so nicht brauchbar ist oder zu zuvielen Ausnahmen führt die ich etwa übersehen hätte. Dies wäre bei der gegebenen Komplexität durchaus denkbar.:rolleyes:

Viel Spass beim lesen (nächster Beitrag) :D

Gruss,
Gaston

Gaston
17.03.06, 12:15
Rollladensteuerungsbaustein

Baustein ID: 17564
Autor: Gaston Gloesener

Zweck

Automatische Steuerung eines Rollladens in einer Vielzahl von Situationen mit einem sehr hohen Mass an Konfigurationsmöglichkeiten

Voraussetzung

Rollladenaktoren die die IST-Position senden können, zusätzlich muss er auch die neue Soll-Position per Bytetelegram annehmen.
Notiz: Bei bedarf könnte man sich hier durch ein weiteres Modul behelfen.

Funktion

1. Automatisches Positionieren

Der Baustein unterscheidet zwischen Anwesend/Abwesend, Dunkel/Hell, Schlafen/nicht Schlafen und Fenster/Tür gekippt/geschlossen und Geöffnet/nicht geöffnet
Für jede Kombination dieser Einstellungen kann man eine Rollladenposition festlegen (18 Positionen insgesamt). Man kann allerdings auch verschiedenen Kombinationen ignorieren, d.h. die Rollladenposition beibehalten.
Zusätzlich ist es möglich dem Baustein mitzuteilen dass eine bestimmte Position nicht einer Absoluten Positionsangabe entspricht sondern einen Minimum oder Maximum wert. Nehmen wir dazu das Beispiel "Anwesend & Hell & Gekippt". Hier möchte ich mit Sicherheit nicht die Rollladen runterfahren (z.B. auf 85%) jedoch wäre es Sinnvoll dass die Rollladen auf diese Position fahren falls sie schon geschlossen sind. Hier kann man dann festlegen dass für diese Kombination der Wert 85% nicht der Position sondern einem Maximum entspricht. Somit wird der Rollladen nur auf 85% gefahren wenn er vorher tiefer (also %-Wert grösser) stand. Das gleiche gilt für Minimum.

2. Manuellerkennung

Eine weitere Funktionalität ist die Erkennung einer Manuellen Betätigung. Diese Erkennung kann pro Position eingeschaltet werden. Ist diese Funktion für die aktuelle Kombination (Anwesend/Dunkel/Schlafen/...) eingeschaltet und die Rollladenposition wird manuell verändert schaltet der Baustein in den manuellen Modus. In diesem Modus wird er keine mehr senden bis er wieder in den Automatikmodus wechselt. Das wechseln in den Automatikbetrieb ist auch konfigurierbar, und zwar sozusagen Flanken-getriggert auf den Eingang oder Ausgang einer jeden Position, aber auch auf die einzelnen Modi Eingänge. So kann man z.B. einstellen das der Automatikmodus beim Eintritt der "Anwesend/Dunkel" Kombination wieder hergestellt wird. Genau so kann man sagen dass die Automatik wieder aktiviert wird wenn der Dunkel/Hell Eingang von Hell auf Dunkel schaltet. Auch beim Verlassen einer bestimmten Kombination kann man den Automatikmodus einschalten.
Es ist durchaus damit auch Möglich unsinnige Kombinationen zu erstellen. Ist z.B. die Manuellerkennung in der Kombination "Anwesend/Dunkel" eingeschaltet und wird gleichzeitig der Automatikbetrieb beim veranlassen dieser Kombination wieder aktiviert so bewirkt die Erkennung der manuellen Betätigung gar nichts.

3. Positionsspeicherung

Mit der Positionsspeicherung kann pro Kombination festgelegt werden ob die vorherige Position des Rollladens gespeichert werden soll bevor die neue Position angefahren wird.
Ist z.B. bei "Anwesend/Dunkel/Kipp" die Speicherung aktiv, so wird die vorherige Position gespeichert egal welcher der vorherige Modus war. Die alte Kombination (z.B. "Anwesend/Dunkel") wird auch gespeichert. Wird die alte Kombination wieder erreicht ("Anwesend/Dunkel") wird die alte Position wieder hergestellt.
Soweit zur einfachen Einführung :) , denn dieser Modus hat es in sich. So ist es z.B. Sinnlos eine Position zu speichern die vorher automatisch angefahren wurde. Die Speicherung der Position erfolgt also nur im Manuellen Modus. Hat die vorherige Kombination also keine Manuellerkennung aktiviert dann ist die Speicherung wirkungslos.
Was passiert denn Bube wenn die Kombination nochmal verändert wird, und zwar nicht zurück in die Originalstellung. Z.b man geht inzwischen schlafen "Dunkel->Schlafen" (Anwesend/Schlafen/Kipp). Ist in diesem neuen Modus die Speicherung nicht aktiviert, wird die gespeicherte Position gelöscht. Ist sie aktiviert dann hängt das Resultat von verschiedenen Bedingungen ab:

a) im vorherigen Modus aktiv & Position wurde geändert -> Diese neue Position wird gespeichert wenn manuell->auto Transfer (wie oben beschrieben) (Baustein ist im Manuell Modus)

b) Baustein ist nicht im Manuell Modus (entweder keine Erkennung im vorherigen Modus oder keine Betätigung erfolgt) -> Alter Positionspeicher wird beibehalten (wieder hergestellt wird die Position aber erst wenn die ursprüngliche Kombination wieder erreicht wird)

4. Min/Max/Zwang

Zusätzlich stehen für externe Anwendungen noch 3 Eingänge zu Verfügung mit denen man u.a. die absoluten minimalen und maximalen Positionen festlegen kann. Diese wirken sich nur auf die alle Automatik- und die Zwangsposition aus, nicht jedoch auf manuelle Betätigungen.
Ausserdem kann eine Zwangsposition extern angelegt werden die jegliche Automatik des Bausteins ausgrabt setzt (z.B. Sonnenschutz).

5. Zusätzlich mögliche Funktionen

- Sperrung: Sperrung des Rollladens in einzelnen Kombinationen um manuelles verändern zu vermeiden. Die Sperrung wird während einer Automatikfahrt aufgehoben.

Aktivieren der einzelnen Funktionen

Um die Anzahl der Eingänge nicht ins unermessliche zu treiben werden die Funktionen die man pro Kombination ein-/ausschalten kann (Min/Max/Manuellerkennung/Manuell->Auto Transfer) per Bitmap aktiviert. Das heisst jedes Bit entspricht einem anderen Eingang. Zu diesem Zweck steht bei jedem Möglichen Eingang eine Nummer. ("Dunkel (30)" oder "Pos 6: Anwesend & Hell & Offen") will man nun eine bestimmte Funktion aktivieren muss man das entsprechende Bit in dieser Maske setzten. Soll z.B. der Wert der Position 6 als Maximalwert interpretiert werden so ist in der "Max-Bitmaske" das Bit 6 (2^Bitnummer=2^6=64) zu setzen. Soll dies zusätzlich für die Position 3 der Fall sein (2^3=8) so sind beide Werte einfach zu addieren (64+8=72).
Zusätzlich wird jedoch ein Excelspreadsheet mitgeliefert in dem man durch simple Anwahl der Funktionen den Wert bequem errechnen kann.

Zu berücksichtigende Ausnahmesituationen

Viele = Grosse Komplexität = Ausnahmen sind zu erwarten :)

a) Fensterposition

Die erste zu berücksichtigende Tatsache ist die "Fenster offen" Erkennung. Diese wird i.d.R über 2 Magnetkontakte ermittelt (bei und unten). Dabei wird der obere als "gekippt" und der untere als "offen" bewertet. In der Realität ist es aber natürlich so dass beim Öffnen des Fensters beide Kontakte auslösen. Der Baustein behandelt zwar "offen" vorrangig gegenüber "gekippt" so dass dies augenscheinlich kein Problem darstellt. Jedoch werden auf dem EIB die Werte der beiden Kontakte nicht miteinander versendet sondern hintereinander, was wiederum bedeutet dass der Baustein für einen kurzen Augenblick denken könnte das Fenster sei gekippt, falls dieser Kontakt zuerst sendet. Gleiches gilt wenn das Fenster geschlossen wird und sofort gekippt wird.
Dies kann zu Problemen führen (unerwartetes Verhalten des Bausteins) bei verschiedenen Kombinationen von Optionen.
Ein Beispiel : Kombination "..../Gekippt" hat nicht aktiviert, Position ".../ Offen" hat sie jedoch aktiviert. In diesem Fall besteht, abhängig in welcher Reihenfolge die Kontakte auf den EIB senden, die Möglichkeit dass der Baustein die Position beim öffnen des Fensters nicht speichert weil er ggf. zuerst ein kippen erkennt.
Um dies zu vermeiden ist der Einsatz eines anderen Modules "Fensterposition" als Vorschaltmodul zu empfehlen. Dieser Baustein Verzögert die "Kipp" Erkennung um 2 Sekunden, die "Schliessen" (unterer Kontakt) Erkennung um 4 Sekunden um solche "Verwechslungen" zu vermeiden.
Ausserdem erlaubt das Modul eine Einfache Visualisierung der Fensterposition da es die Position als Wert ausgibt (0=Geschlossen, 1=Gekippt, 2=ganz Geöffnet). Die anderen Ausgänge geben den binären Status "Gekippt", "Geöffnet" (Unterer Magentkontakt), und "Offen" (entweder gekippt oder offen). Das heisst "gekippt" entspricht nicht dem Status des Oberen Kontaktes sondern zeit wirklich an dass das Fenster gekippt ist (d.h. Obere Kontakt=offen, unterer=zu). Der Status "Offen" würde dem oberen Kontakt entsprechen und z.B. für die Heizungsumstellung auf Frostschutz benutzt werden.

b) Kipp/Offen Ausnahmen

Würde jeder Position eine Absolute Rollladenposition zugeordnet wäre dieser Punkt kein Problem. Nehmen wir aber folgendes Beispiel: "Anwesend/Hell=0%", "Anwesend/Hell/Kipp=0% (ganz offen)", "Anwesend/Dunkel=100% (zu)", "Anwesend/Dunkel/Gekippt=maximal 85%". Die letzte Kombination gibt also nur einen Maximalwert.
Was also wenn wir z.B. im Moment in der Kombination "Anwesend/Hell" sind und es wird dunkel. Der Rollladen wird ganz zu fahren "Anwesend/Dunkel". Wenn nun jemand das Fenster kippt wird der Rollladen auf 85% fahren da dies ja als Maximalwert festgelegt ist. Was aber wenn das Fenster am Tag schon gekippt war, also Rollladen ist wieder Offen (0%). Wird es jetzt Dunkel wechselt das Modul in den "Anwesend/Dunkel/Kipp" Modus. Hier ist der Maximalwert 85%, da der Rollladen noch auf ist vom Tag wird er es auch bleiben.
Wir haben also eine Ausnahmesituation wo die gleiche Bedingung zu verschiedenen Resultaten führt nur weil beim ersten das Fenster nachträglich (nach Punktwerten) gekippt wurde.
Auflösung der Ausnahme: Die Frage ist was der Anwender hier erwartet hätte. Wahrscheinlich jedes mal 85%, da der Maximalwert 85% wohl eher dazu dient etwaige Manuelle Veränderung zu berücksichtigen. Die würde heissen dass der Baustein bei Veränderungen der Bedingungen "Anwesend", "Dunkel" und "Schlafen" in Kombination mit einem geöffneten oder gekippten Fenster den Wert der Kombination ohne "kipp" und "offen" ach berücksichtigen muss. Das heisst in dem konkreten Beispiel zuerst den Wert 100% annehmen und ihn dann wegen "kipp" auf 85% maximalisieren. Also ein kippen nach der Änderung der anderen Bedingung simulieren.

RoWo
23.03.06, 14:01
Hallo Gaston,

super Idee - klingt alles ganz gut - nur verstanden hab ich das nicht:
kann ich mit dem Baustein dann eine bestimmte Postition anfahren, obwohl der Aktor es nicht kann? Und: speichert der Baustein dann die Position und gibt sie auf Anfrage preis? Mein Problem: Aktoren kennen keine Positionierung - will aber, dass der Rollo, wenn er zu ist, und das Fenster aufgemacht wird, ein Stückchen nach oben geht (Lüften). Das krieg ich einfach nicht gebacken.
Wann gibt es deinen Baustein? Stünde als "BetaTester" zur Verfügung :D
Robert

viceversa
23.03.06, 14:35
Es wundert mich das das Interesse der User bisher so gering ist. Ich selbst habe großes Interesse an diesem Baustein und freue mich darauf ihn zu testen. Viel Erfolg beim Entwickeln!

Deine Beschreibung deckt meine Wünsche ab. Meistens kommen jedoch die Fragen und Wünsche erst beim Betatest.

Gaston
23.03.06, 17:09
Hallo Gaston,

kann ich mit dem Baustein dann eine bestimmte Postition anfahren, obwohl der Aktor es nicht kann? Und: speichert der Baustein dann die Position und gibt sie auf Anfrage preis? Mein Problem: Aktoren kennen keine Positionierung - will aber, dass der Rollo, wenn er zu ist, und das Fenster aufgemacht wird, ein Stückchen nach oben geht (Lüften). Das krieg ich einfach nicht gebacken.
Wann gibt es deinen Baustein? Stünde als "BetaTester" zur Verfügu
ng :D

Robert

Hallo Robert,

Nein der Bustein berechnet die Position nicht und setzt einen Aktor voraus der sowohl die Position senden (IST) als auch empfangen (SOLL) kann. Ich hatte daran gedacht wie oben beschrieben diese Funktion ggf. per Baustein zu simulieren, also über die Zeit. Aber ich bin nun zum Schluss gekommen dass die Zeitauflösung des HS2, und die ganze HS2 Umgebung selbst dafür nicht geeignet sind. Nich falsch verstehen, es liegt nicht daran dass am HS irgendwas schlecht wäre, es ist nur so wie bei einem Auto, ein Porsche 911 (Serie) ist ein sehr guter Wagen, nur nicht unbeding für Geländefahrten geeignet ;)

Das heisst, bei Aktoren die besagten Features nicht haben sehe ich immo schwarz. Eine Mölglichkeit dies zu implementieren wäre vieleicht das Funktionsmodul (das grosse), da dessen realtimeumgebung eine garantierte Zeitauflösung zulässt. Aber da das Teil nich tmehr entwickelt wird und eh einen stolzen Preis hat...

Das mit dem Hochfahren der Rolladen bei Fenster öffnung oder Kipp (verschiedene optionen möglich) das funktioniert mit meinem Baustein und habe ich z.Zt schon in Betrieb.

Al nächstes kommt die Manuell/Automatik erkennung dran, und schliesslich die Positionsspeicherung., allerdings wie oben beschrieben muss ich noch tmit der richtigen Handhabung der Ausnehmen kämpfen. Der Baustein hat z.Zei 35 Eingänge, und es sollen auch nicht mehr werden ;)

Gruss,
Gaston

Gaston
23.03.06, 17:14
Meistens kommen jedoch die Fragen und Wünsche erst beim Betatest.

Ja, das ist richtig, weshalb ich die Bausteine auch hier nie vorab ankündige, aber in diesem fall ist es so dass die Ausnahmen zu unerwünschten Ergebnissen führen könnte und ich wollte den Leuten die Möglichkeit geben micht vorrab auf Sachen aufmerksam zu machen die ich ggf. vergessen hätte um zu vermeiden den Baustein später wieder neu entwickelen zu müssen, was bei der Struktur der HS Module durchaus denkbar ist.

Der erste Betatest kann noch etwas dauern, ich muss schleunigst meinen "Sommerzeit" Baustein schreiben ;) Diesen brauch ich wiederum für meinen Sonnen auf-/untergangs Baustein. Letzterer scheint einwandfrei zu funzen so dass ich Ihn wohl die Tage an Dacom schicke.

Gruss,
Gaston

Twix
23.03.06, 20:07
Hallo Gaston,
ich denke das wird ein super Baustein und ich werde Ihn auch testen.
"Sommerzeit" Baustein hört sich auch gut an, was wird er können ?

Gruß Twix

Gaston
23.03.06, 21:19
Hallo Gaston,
"Sommerzeit" Baustein hört sich auch gut an, was wird er können ?


In kurzform: Sommerzeit anzeigen: 0=Winterzeit 1=Sommerzeit

Der Grund für diesen Baustein liegt in meinem Sonnenuntergang und aufgangs Baustein der dafür einen spziellen Pin hat. Der astronomische Untergang ist ja immer gleich, nur während der Sommerzeit it er für uns ja eine Stunde später. Deshalb brauch ich diesen Baustein. Ich werde Ihn so gestallten dass man die Sommer-Winterzeitzeit Uebergänge frei programieren kann so dass auch bei einer etwaigen Gesetzesänderung oder im Einsatzt in einem anderen Land der gleiche Baaustein verwendbar sein sollte.

Der Sonnen auf/und Untergangs baustein errechnet aus Längen- und Breitengrad mit einer vereinfachten Formel den Sonnenuntergang (die komplette Formel ist vieleicht für später geplant). Daneben kann man wie bei den Originalbausteienne einen Offset (+ oder -) angeben nach welchem der entsprechnde Impuls ausgelöst wird. (z.B. Offset Aufgang -60, bedeutet dass der Impuls eine Stunde vor Sonnenaufgang kommt)

Wie bei meinen "intelligenten" Zeiutbausteinen, gibt es auch bei diesem Baustein einem "Präzisions" pin der angibt mit welcher Präzision der Impuls kommen soll. Ist der auf 1 (minimum) so sollte der Impuls spätestens eine Sekunde nach der Zeit kommen.

ALs Augänge stehen dann zur verfügung:

Sonnenaufgang: Einen 1-Impuls bei Sonnenaufgang+Offset
Sonnenuntergang: Einen 1-Impuls bei Sonnenuntergang+Offset
Sonnenaufgangszeit: Dezimale Zeit vom Sonnenaufgang (z.b 6.5=6:30)
Sonnenuntergangszeit: Dezimale Zeit vom Sonnenuntergang (z.b 6.5=6:30)
Hell: 1 zwischen Sonnenaufgang und untergang, sonst 0
Dunkel: 1 zwischen Sonnenuntergang und aufgang, sonst 0

Bei der Zeit steht noch nicht fest ob ich sie nicht als Sekunden Zahl seit mitternacht ausgebe.

Achja, un din dem Zusammenhang gibts dann noch den Zeit zu Text umwandler der aus einer realen Zahl (1.5 für 01:30) oder einer Sekundenzahl (90 für 01:30) einen Text macht in der Form hh:mm:ss. Dabei kann man konfigurieren wieviele der Felder man haben möchte, z.B. nur hh:mm.

Gruss,
Gaston

RoWo
24.03.06, 07:24
Hallo Gaston,

find ich schade, weil gerade auf die Lösung Positionierung hatte ich gehofft. Ich denke, ich bin hier nicht der einzige, der die Funktion im Aktor nicht hat. Allerdings verstehe ich deine Argumentation nicht, warum du die Funktion nicht einbauen willst. Bei der Positionierung geht es ja nicht um Milimeter oder um einen oder zwei Zentimeter. Mir gehts hauptsächlich darum Sonnenschutz mit nicht komplett geschlossenem Rollo und "Lüftfunktion". Vielleicht kannst du ja doch einen Zeitfaktor mit reinbringen, oder mit erklären, wie ich den Baustein dann anpassen kann - die Aktoren umzutauschen ist mir einfach zu teuer, und die Zeitgenauigkeit des HS (finde ich) ist ungebrochen. Wie weit bewegt sich denn ein Rollo in einer Sekunde.
Danke
Grüsse
Robert

p.s. ich hatte selber man nen 911er und den kann man schon auf schlechter Wegstecke fahren ;) (Die Autobahnen sind ja auch nicht besser :D )

Michel
24.03.06, 09:52
... weil gerade auf die Lösung Positionierung hatte ich gehofft. Ich denke, ich bin hier nicht der einzige, der die Funktion im Aktor nicht hat. Hallo Robert,

das es einen Baustein zur Rolladenpositionierung mit "dummen" Aktoren gibt, hast du schon gesehen, oder? Schau mal hier (http://www.dacom-homeautomation.de/content/logik/doku_rollade_mit_positionierung.pdf).

Allerdings gibt es eine kleine Herausforderung: Die Positionierung über Laufzeit wird ohne Referenzfahrt in eine Endlage mit der Zeit immer ungenauer. Der Grund dafür ist ein ganz einfacher: die Ablaufgeschwindigkeit der Rollade ist nicht gleichmäßig, weil z.B. beim Abfahren pro Umdrehung der Welle zu Beginn mehr Rollade abgewickelt wird, als am Ende.
Natürlich ließe sich das mathematisch und somit auch in einem Logikbaustein lösen, dafür wären aber noch ein paar individuelle Daten notwendig:

Durchmesser der Welle
Umdrehungen der Welle pro Zeiteinheit
Stärke der Rollade
Länge der Rollade, alternativ
Durchmesser der Welle +
Durchmesser der Welle inkl. Rollade in beiden EndlagenIch nutze Holger´s Baustein jetzt fast 1 Jahr und komme, mit einer zusätzlichen Referenzfahrt nach 2 Positionierungen, prima damit zurecht.

Gaston
24.03.06, 13:16
Hallo Robert,

das es einen Baustein zur Rolladenpositionierung mit "dummen" Aktoren gibt, hast du schon gesehen, oder? Schau mal hier (http://www.dacom-homeautomation.de/content/logik/doku_rollade_mit_positionierung.pdf).

Allerdings gibt es eine kleine Herausforderung: Die Positionierung über Laufzeit wird ohne Referenzfahrt in eine Endlage mit der Zeit immer ungenauer. Der Grund dafür ist ein ganz einfacher: die Ablaufgeschwindigkeit der Rollade ist nicht gleichmäßig, weil z.B. beim Abfahren pro Umdrehung der Welle zu Beginn mehr Rollade abgewickelt wird, als am Ende.

Dieser Baustein war genau das was ich vorgesehen hat, wusste nich tdass es Ihn schon gibt. Allerdings das mit der zunehmenden Ungenauigkeit hat nichts mit dem "unregelmässigen" Abrollen zu tun, sondern mit der Zeitlichen ungenauigkeit. Das Spiralförmige Abrollen bedingt nur dass bei 50% der Rollladen nicht in der Mitte des Fensters steht.

Meine Rollladen fahren in 15sek etwas 120cm. Das heisst pro Sekunde etwa 7cm. Somit ist die Auflösungsungenauigkeit bei einer Sekunde Auflösung im Mittel 3.5cm und im schlechtesten Fall 7cm. Hinzu kommen die relative messungenauigkeit bei der Fahrt (Aufläsung auch wieder eine Sekunde, mitteler Fehler 0.5sek absolut) die unbekannte genauigkeit des Timers. Die zwei Mess-Ungenauigkeiten addieren sich zu einem mittelern Fehler von 7cm pro Pisotionierung.

Gruss,
Gaston

RoWo
24.03.06, 13:20
@Michael

Danke - den Baustein hatte ich noch nicht gesehen.
Ich glaube, ich kann die Ungenauigkeit bei der Positionierung ignorieren - da mein Rollo einen elektronischen auf bzw. ab -stopp hat. Und morgens/abends werden die Rollos sowieso auf/ab gefahren.

Danke
Grüsse
Robert

RoWo
24.03.06, 13:24
@Gaston
"meiner" braucht von 0 auf 100 genau 27sec. da ist die Genauigkeit oder Auflösung noch höher. allderdings denke ich dass auch 7cm beim Sonnenschutz oder Lüftungsschlitz nicht so das grosse Problem sind, sobald man eine feste (oben/unten) Endlage hat, und die das nächste Mal wieder anfahren kann.

Grüsse
Robert

EIBJ
24.03.06, 13:47
Hallo
ich benutze diesen Baustein von Holger Schwinghammer auch schon seit einiger Zeit. Ich hätte allerdings noch einige Verbesserungsvorschläge. Vielleicht bekommen wir das ja über diesen Weg geregelt :)

Ich benutze den Baustein um den aktuellen Status in der Visu anzuzeigen, dafür würde ich mir wünschen, daß der Baustein in regelmäßigen Abständen (z.b. 5 sek.) den Status auf den Bus sendet.
Weiterhin gibt es betimmte Situationen bei dem KEIN Status gesendet wird Ich glaube das war, wenn man während der Fahrt auf STOP drückt. Und wenn der Rolladen die Endstellung erreicht (ich muß das daheim nochmals genau überprüfen).
Damit stimmt dann der Visustatus nicht mit dem Rolladenstatus überein.
Vielleicht kann das ja noch jemand ergänzen. Mit der Positionierungenauigkeit kann ich allerdings gut leben.

gruß
Hans-Jürgen

Gaston
24.03.06, 15:03
Hallo
Ich benutze den Baustein um den aktuellen Status in der Visu anzuzeigen, dafür würde ich mir wünschen, daß der Baustein in regelmäßigen Abständen (z.b. 5 sek.) den Status auf den Bus sendet.

Alle 5sek ? Das ist doch overkill. Aber man sollte nicht vesuchen alles in einen Baustein zu zwängen. EIn Baustein ist so anzusehen wie eine Funktion in der Programierung. Diese soll einen ganz bestimme immer wiederkehrende Funktion ausführen. Im fall von dem Weiderholten senden auf den Bus machst Du die entsprechnden Gruppendressen in eine Sequenz mit der funktion "Addiere Wert 0" und startest die Sequenz mit einem Telegramgenerator mit gewünschtem Zyklus.

So sende ich z.B. meine RTR Modi alle 15 Minuten auf den Bus.

Gruss,
Gaston

EIBJ
24.03.06, 15:55
Hi
Sorry wenn ich das nicht genau spezifiziert habe. Ich meinte natürlich alle 5 Sek. "während" der Baustein auf "Fahren" geschaltet hat (Dann könnte man das sogar noch öfters schicken). Sodaß man in der Visu erkennen kann, wie sich der Rolladen bewegt. Wenn alles "Steht" sollte der natürlich "nichts" senden. Immer nur bei Änderung.


gruß
Hans-Jürgen

Michel
24.03.06, 16:53
Allerdings das mit der zunehmenden Ungenauigkeit hat nichts mit dem "unregelmässigen" Abrollen zu tun, sondern mit der Zeitlichen ungenauigkeit. Das Spiralförmige Abrollen bedingt nur dass bei 50% der Rollladen nicht in der Mitte des Fensters steht.Da muß ich dich leider korrigieren:
http://www.mathe.tu-freiberg.de/~hebisch/cafe/archimedesspirale.gif
Wir haben es hier im Grunde mit einer Archimedes-Spirale zu tun. Die Bogenlänge auszurechnen würde jetzt zu tief in die Integralrechnung gehen, daher vereinfache ich einfach mal anhand von 2 Kreisen, wobei der Wellendurchmesser beispielsweise 60 mm, Rolladendicke 14 mm beträgt:

Kreisumfang der Welle -> 2*r*Pi -> 2*30*Pi -> 188,49 mm
komplett aufgerollt (Wickeldurchmesser 140 mm (http://www.nietzer.de/ballen.htm)) -> 2*70*Pi -> 439,82 mmDaraus wird deutlich, daß pro Umdrehung der Welle zu Beginn mehr Rollade abgewickelt wird (439,82 mm), als am Schluß (188,49 mm).
Da sich die Welle mit einer konstanten Geschwindigkeit dreht, ist nicht die zeitliche Ungenauigkeit entscheidend für eine exakte Positionierung. Immerhin beträgt der Unterschied ~ 25 cm pro Umdrehung.

Ich habe mal ein wenig gegoogelt und dabei Motoren zwischen 12 und 17 Umdrehungen pro Minute gefunden. Wenn die zeitliche Ungenauigkeit des HS das Problem wäre (sagen wir mal 1 Sekunde) betrüge der Fehler 1/60 des Umfangs:

abgerollt (wie oben) bei 12 U/min: 12/60*188,49 = 37,7 mm
aufgerollt bei 12 U/min: 12/60*439,82 = 87,96 mmalso maximal ~ 5 cm.

Um bei deinem Beispiel zu bleiben (15 Sekunden, 120 cm):

abgerollt: 12/60*15*188,49 = 565,47 mm
aufgerollt: 12/60*15*439,82 = 1319,46 mmErgibt einen Fehler von maximal 75,4 cm in 15 Sekunden. Ich finde, daß ist schon ein deutlicher Unterschied, auch wenn es sich wegen der Vereinfachung nur um Näherungswerte handelt.:Prost:

Gaston
24.03.06, 17:34
Also wirklich Michael, ich weiss jetzt nicht ob Du die Wahrheit überhaupt hören möchtest, oder ob Du in deinem Irrglauben gelassen werden willst.

Das was Du anhand deiner (sehr vereinfachten, und deshalb falschen) Formeln belegst ist "nur" genau das was ich geschrieben habe, näh,mlich dass nach einer Fahrt von 50% der Rolladen nicht Mittig steht.

Das andere ist deinen Vereinfachungen zum Opfer gefallen, du rechnest einfach die Abfahrt mit vollem Ballen und die Auffahrt mit leerem Ballen, was natürlich komplett falsch ist.

Wenn wir davon ausgehen dass die Motorumdrehungsgeschwindigkeit bei auf und abfahrt gleich sind , dann sind auch die Zeiten für auf und ab gleich. Das heists 15 Sekunden für auf und 15 Sekundne für zu.

Das ist auch schnell ohne die Spiralenformel zu belegen:

Der Rolladen braucht t Sekunden für die Auffahrt (bei mir 15). Ist die Geschwindigkeit (v) des Motors nun 15 U/Min dan bedeutet das der Motor hat 3 (U) Umdrehungen gemacht U=t*v/60.

Nun wirst Du es sehr schwer haben mir zu erklären dass der Motor bei der Abfahrt nicht auch genau 3 Umderhungen machen muss bis dass der Rolladen wieder ganz zu ist. DA v konstant, stellen wir um: t=U*60/v=15 sekunden

Fazit: Auf und Abfahrt sind gleich lang. Die ist whar fü rjede Position zwischen 0% und 100% und jede Zeit die man dort auf und dann wieder ab fährt. Das einzige ist dass eine Sekunde an einer Stelle nahe 0% eine grössere Distanz zurück gelegt wird als bei einer Position nahe 100% (wegen der Spirale). Aber wird die an der neuen stelle dann wieder 1 Sekunde zurückgefahren ist der Rollladen wieder an der alten stelle (in einem Perfekten System).

Gruss,
Gaston

Michel
24.03.06, 20:17
Also wirklich Michael, ich weiss jetzt nicht ob Du die Wahrheit überhaupt hören möchtest, oder ob Du in deinem Irrglauben gelassen werden willst.Lieber Gaston,

leider hast du die sachliche Ebene verlassen und wirst wieder mal persönlich. Daher beende ich das Thema an dieser Stelle.

Gaston
25.03.06, 03:09
Lieber Gaston,

leider hast du die sachliche Ebene verlassen und wirst wieder mal persönlich. Daher beende ich das Thema an dieser Stelle.

na gut, da der ganze Rest absolut sachlich war, und Du nur Augen für die zwei Zeilen hast die Du als persönlichen Angriff empfindest, dann beenden wir halt das Thema. Aber irgendwie ist damit mein Zweizeiler nicht so falsch. ;)

Gruss,
Gaston

Michel
25.03.06, 12:06
Das du auch immer noch einen nachlegen mußt :Prost: !

Michel
27.03.06, 11:28
Dieser Baustein war genau das was ich vorgesehen hat, wusste nich tdass es Ihn schon gibt. Allerdings das mit der zunehmenden Ungenauigkeit hat nichts mit dem "unregelmässigen" Abrollen zu tun, sondern mit der Zeitlichen ungenauigkeit. Das Spiralförmige Abrollen bedingt nur dass bei 50% der Rollladen nicht in der Mitte des Fensters steht.

Meine Rollladen fahren in 15sek etwas 120cm. Das heisst pro Sekunde etwa 7cm. Somit ist die Auflösungsungenauigkeit bei einer Sekunde Auflösung im Mittel 3.5cm und im schlechtesten Fall 7cm. Hinzu kommen die relative messungenauigkeit bei der Fahrt (Aufläsung auch wieder eine Sekunde, mitteler Fehler 0.5sek absolut) die unbekannte genauigkeit des Timers. Die zwei Mess-Ungenauigkeiten addieren sich zu einem mittelern Fehler von 7cm pro Pisotionierung.

Gruss,
GastonMoin Gaston,

meine "Kühlwassertemperatur" liegt jetzt wieder im grünen Bereich. Deshalb nehme ich alles zurück und behaupte das Gegenteil! :Prost:

Gaston
27.03.06, 11:39
Moin Gaston,

meine "Kühlwassertemperatur" liegt jetzt wieder im grünen Bereich. Deshalb nehme ich alles zurück und behaupte das Gegenteil!

Hi Michael,

Das ehrt dich, dass Du Dir trotz alledem noch Gedanken gemacht hast und dann auch bereit bist den Fehler hier einzuräumen.

Du kennst mich ja :D Ich reagiere halt etwas empflindlich bei solchen Sachen, aber die vermeindlichen Persönlichen attaken sind nur äusserst selten persönlich gemeint. Und in diesem Fall war sie das mit Sicherheit nicht. :Prost:

Gruss,
Gaston

RoWo
27.03.06, 12:57
@Michael, Gaston

freut mich, dass ihr euch wieder grün seid. - Und wer programmiert mir jetzt den ultimativen Rollobaustein? :p

Grüsse
Robert

Twix
09.04.06, 17:20
Hallo Gaston,
ab wann kann man Deinen Baustein testen?

Ciao,
Twix

fiddo
02.05.07, 16:34
kann mir jemand sagen wo ich den Baustein finden kann ? Hab momentan den Rollobaustein von der Dacom Seite nur krieg ich die manuelle Positionierung nicht hin... kann mir jemand helfen ?

Fiddo

Michel
02.05.07, 17:49
Ups, Beitrag doppelt :o .

Michel
02.05.07, 17:54
Hab momentan den Rollobaustein von der Dacom Seite nur krieg ich die manuelle Positionierung nicht hin... kann mir jemand helfen ?Klar könnte ich dir helfen, wenn du uns sagen würdest wobei? :mad:

Gaston´s Baustein finden, oder
den Dacom Baustein zum Laufen bringen?zu 1: nirgendwo! IMHO noch nicht veröffentlicht
zu 2: wie wär´s mit einer etwas detaillierteren Fehlerbeschreibung und Screenshots?

fiddo
06.05.07, 14:51
Eigentlich den Bausteine zu finden :o
Hab mir aber jetzt zur Aufgabe gemacht das Teil selber zu schreiben :confused:

Ich denke ich werd Eure Hilfe öfter mal brauchen.
Aber lernen beim tun !! :)

Viele Grüße

Gaston
06.05.07, 18:24
Eigentlich den Bausteine zu finden :o


Ups Thema verpasst :o

Michel hat schon recht, den Baustein gibt es niergens zur Zeit, obwohl ich Ihn schon bei mir ein Jahr lang in Betrieb habe. Dennoch sind nicht alle funktionen eingebaut. Das grösste Problem ist dass der Aufbau von Funktionsbausteinen für den Homeserver für soche komplexen Funktionen nicht geeignet ist und es sehr leicht su unerwarteten Verhalten kommt. Ausserdem wird dies noch durch den IF-THEN-ABBRUCH aufbau verstärkt der die Komplexität exponentiel zur Funktionalität steigen lässt.

Gruss,
Gaston

fiddo
16.05.07, 09:24
Ja, stimmt. Diese Erfahrtung hab ich in den letzten Tagen auch machen müssen.
Hab mich jetzt mal intensiv mit diesem Thema beschäfftigt.... Hab versucht die wichtigen Funktionen zu integrieren aber immer wieder kommt es zu unvorhergesehenen Fahrten des Rollos. :mad:

Welche Funktionen hast Du zur Zeit am laufen ?
Bzw. sollte ich schreiben zuverlässig am laufen?

Gruß
fiddo

Michel
16.05.07, 09:54
Hab versucht die wichtigen Funktionen zu integrieren aber immer wieder kommt es zu unvorhergesehenen Fahrten des Rollos. :mad: Wenn es zu unvorhergesehenem Verhalten kommt, würde ich mir als aller Erstes die Aufzeichnung der Sensordaten (Helligkeit,Wind etc.) anschauen bzw. die entsprechenden Parameter der Wetterstation.
Man erinnere sich: die HS-Logik läuft eventgesteuert! Daher heißt die Lösung in solchen Fällen, sofern die Logik auch logisch richtig ist, meist:

Schwellwert mit Hysterese und
Wert erst senden, wenn Wert für mindestens x Minuten anliegtNur so werden Wertspitzen vermieden, die unweigerlich zu solchem Verhalten führen.