Seite 1 von 4

Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufrufe)

Verfasst: 24.04.2012, 21:29
von JPS
Ich versuche, dieses Thema parallel auf meiner Hausautomations-Internetseite (Sonnenstand) bzw. (Sonnensensor) aktuell zu halten.

Zur sonnenstands- und sonnenscheinabhängigen Steuerung von Rollläden habe ich hier um Forum viel gelesen und mich inspirieren lassen (es gibt ja wirklich schon viele gute Ideen und Lösungen). Meine Lösung ist nun eine Kombination aus verschiedenen Ansätzen.

1. Sonnensensor

Zum Erkennen von Sonnenschein gibt es im Forum im Wesentlichen zwei verschiedene Vorgehensweisen. Eine Idee ist die Ermittlung der Differenztemperatur zwischen zwei unterschiedlich positionierten Temperaturmesser, wie sie z.B. hier http://homematic-forum.de/forum/viewtop ... 793#p45725 oder auch hier http://homematic-forum.de/forum/viewtop ... =31&t=6919 beschrieben ist.

Die zweite Variante wertet die Spannung einer Solarzelle aus. Ich habe mich für diese Art eines Sonnensensors entschieden und ihn nach folgender Idee gebaut: http://homematic-forum.de/forum/viewtop ... =27&t=5059, die hier detailliert beschrieben ist: http://maximilian-roth.de/?p=399

Allerdings verwende ich abweichend als Optokoppler den Typ SFH615A-2 und 25k-Potis, womit ich zwei unterschiedlich Schaltkanäle des HM-SCI-3-FM ansteuere (Sonnenschein und Dämmerung bzw. "trübes Wetter").

Fertig aufgebaut sieht der Sonsor so aus...
Forum01.jpg
und liefert folgende Zustände:
Forum07.jpg
2. Sonnenstand

Zur Ermittlung des Sonnenstandes gibt es z.B. hier http://homematic-forum.de/forum/viewtop ... onnenstand oder auch hier
http://homematic-forum.de/forum/viewtop ... =31&t=6035 schon interessante Lösungen.

Meine CCU hat aber inzwischen recht viele Komponen zu bedienen und da ich mit ähnlichen Lösungen im Bereich der Taupunktberechnung vermehrt Abstürze hatte, wollte ich ohne SystemExec-Aufrufe auskommen. Für die Steuerung der Rollladen war dabei für mich eine "hinreichende Näherung" durchaus akzeptabel.

Den Sonnenstand habe ich zunächst auf der Kompassrose wie folgt unterteilt:
Ost: < 110°
Süd/Ost: 110° - 150°
Süd: 150° - 210°
Süd/West: 210° - 250°
West: > 250 °

Die Sonne bewegt sich im Laufe eines Jahres auf einer Art "Doppelkeule" oder "Acht", der sogenannten Analemma, deren Ausrichtung sich über die Tageszeit verändert (Details hierzu kann man im Netz nachlesen, z.B. hier http://de.wikipedia.org/wiki/Analemma). Die Extrema der Analemma liegen Ende Juni und Ende Dezember, der Schnittpunkt der "Acht" Mitte April und Ende August. Die "Keulenbreite" habe ich in der nachfolgenden Auswertung vernachlässigt, man kann sie bei Bedarf aber natürlich auch einbeziehen.

Bei der Erstellung des Scriptes zur Ermittlung des Sonnenstandes habe ich daher zur Näherung die Analemma bezogen auf den Standort des Hauses über das Kalenderjahr zunächst in verschiedene Abschnitte geteilt und für diese dann die Uhrzeit ermittelt, an der die Sonne die o.a. Winkel (110°, 150°, 210°, 250°) erreicht.

Ein hervorragendes Tool hierfür findet sich auf http://www.sunearthtools.com/dp/tools/p ... hp?lang=de.

Die folgende, auf den ersten Blick vielleicht etwas verwirrende Tabelle, zeigt meine Auswertung (für den Raum Köln):
Forum02.jpg
SR=Sunrise, SS=Sunset, die Zahlen in der linken Spalte sind die jeweiligen Tage im Jahr.

Reduziert und gerundet ergeben sich bezogen auf die Tage im Jahr folgende Eckdaten für das Script:
Forum03.jpg
Für andere Regionen und Bedürfnisse sollten die Daten überprüft und ggf. angepasst bzw. präzisiert werden.

Das daraus abgeleitete Sonnenstand-Script

Code: Alles auswählen

! Sonnenstand Analemma

real sDate = system.Date("%j").ToInteger();
real c_zeit =
 (0.01 * system.Date("%M").ToInteger()) + system.Date("%H").ToInteger();
real c_tagesbeginn =
 (0.01 * system.SunriseTime("%M").ToInteger()) + system.SunriseTime("%H").ToInteger();
real c_tagesende =
 (0.01 * system.SunsetTime("%M").ToInteger()) + system.SunsetTime("%H").ToInteger();
integer v_sonnenstand = 0; ! Sonne unter Horizont
 
! Analemma 23.12. bis 10.02.
if ((sDate > 356) || ((sDate > 0) && (sDate < 41)))
{
	if (c_zeit < c_tagesende) {
		v_sonnenstand = 4; ! Süd/West
	}
	if (c_zeit < c_tagesende - 2) {
		v_sonnenstand = 3; ! Süd
	}
	if (c_zeit < c_tagesbeginn + 2) {
		v_sonnenstand = 2; ! Süd/Ost
	}
	if (c_zeit < c_tagesbeginn -1) {
		v_sonnenstand = 0; ! Sonne unter Horizont
	}
}
! Analemma 11.02. bis 07.03. und 01.11. bis 22.12.
if (((sDate > 304) && (sDate < 357)) || ((sDate > 40) && (sDate < 67)))
{
	if (c_zeit < c_tagesende) {
		v_sonnenstand = 4; ! Süd/West
	}
	if (c_zeit < c_tagesende - 3) {
		v_sonnenstand = 3; ! Süd
	}
	if (c_zeit < c_tagesbeginn + 3) {
		v_sonnenstand = 2; ! Süd/Ost
	}
	if (c_zeit < c_tagesbeginn -1) {
		v_sonnenstand = 0; ! Sonne unter Horizont
	}
}
! Analemma 08.03. bis 12.04. und 05.10. bis 31.10.
if (((sDate > 277) && (sDate < 305)) || ((sDate > 66) && (sDate < 103)))
{
	if (c_zeit < c_tagesende) {
		v_sonnenstand = 5; ! West
	}
	if (c_zeit < c_tagesende - 1) {
		v_sonnenstand = 4; ! Süd/West
	}
	if (c_zeit < c_tagesende - 4) {
		v_sonnenstand = 3; ! Süd
	}
	if (c_zeit < c_tagesbeginn + 4) {
		v_sonnenstand = 2; ! Süd/Ost
	}
	if (c_zeit < c_tagesbeginn + 1) {
		v_sonnenstand = 1; ! Ost
	}	
	if (c_zeit < c_tagesbeginn -1) {
		v_sonnenstand = 0; ! Sonne unter Horizont
	}
}
! Analemma 13.04. bis 30.04. und 30.08. bis 04.10.
if (((sDate > 241) && (sDate < 278)) || ((sDate > 102) && (sDate < 121)))
{
	if (c_zeit < c_tagesende) {
		v_sonnenstand = 5; ! West
	}
	if (c_zeit < c_tagesende - 3) {
		v_sonnenstand = 4; ! Süd/West
	}
	if (c_zeit < c_tagesende - 5) {
		v_sonnenstand = 3; ! Süd
	}
	if (c_zeit < c_tagesbeginn + 5) {
		v_sonnenstand = 2; ! Süd/Ost
	}
	if (c_zeit < c_tagesbeginn + 3) {
		v_sonnenstand = 1; ! Ost
	}	
	if (c_zeit < c_tagesbeginn -1) {
		v_sonnenstand = 0; ! Sonne unter Horizont
	}
}
! Analemma 01.05. bis 09.06. und 12.08. bis 29.08.
if (((sDate > 192) && (sDate < 242)) || ((sDate > 120) && (sDate < 161)))
{
	if (c_zeit < c_tagesende) {
		v_sonnenstand = 5; ! West
	}
	if (c_zeit < c_tagesende - 4) {
		v_sonnenstand = 4; ! Süd/West
	}
	if (c_zeit < c_tagesende - 6) {
		v_sonnenstand = 3; ! Süd
	}
	if (c_zeit < c_tagesbeginn + 6) {
		v_sonnenstand = 2; ! Süd/Ost
	}
	if (c_zeit < c_tagesbeginn + 4) {
		v_sonnenstand = 1; ! Ost
	}	
	if (c_zeit < c_tagesbeginn -1) {
		v_sonnenstand = 0; ! Sonne unter Horizont
	}
}
! Analemma 10.06. bis 11.08. und 01.11. bis 22.12.
if ((sDate > 160) && (sDate < 193))
{
	if (c_zeit < c_tagesende) {
		v_sonnenstand = 5; ! West
	}
	if (c_zeit < c_tagesende - 5) {
		v_sonnenstand = 4; ! Süd/West
	}
	if (c_zeit < c_tagesende - 7) {
		v_sonnenstand = 3; ! Süd
	}
	if (c_zeit < c_tagesbeginn + 7) {
		v_sonnenstand = 2; ! Süd/Ost
	}
	if (c_zeit < c_tagesbeginn + 5) {
		v_sonnenstand = 1; ! Ost
	}	
	if (c_zeit < c_tagesbeginn -1) {
		v_sonnenstand = 0; ! Sonne unter Horizont
	}
}
dom.GetObject("Sonnenstand").State(v_sonnenstand);
ist auf Basis des Tageszeiten-Scriptes (http://www.homematic-inside.de/tecbase. ... tem_id=148) erstellt, wird per Zeitmodul alle 10 Minuten aufgerufen und liefert die SysVar "Sonnenstand", die zuvor wie folgt definiert werden muss:
Forum04.jpg
Forum04.jpg (18.84 KiB) 14109 mal betrachtet
Das Ergebnis sieht dann z.B. wie folgt aus...
Forum05.jpg
Forum05.jpg (19.46 KiB) 14109 mal betrachtet
3. Steuerung

Hier habe ich eine Lösung in Anlehnung an diese http://maximilian-roth.de/?p=1209 gewählt, z.B. ...
Forum06.jpg
Automatisch lasse ich die Rollladen herunter, wenn die SysVar "Sonnenstand" auf "unter Horizont schaltet", z.B. so...
Forum08.jpg

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 24.04.2012, 23:29
von Mediaman2000
Hey, schöne verbesserung meiner Schaltung - ich denke da werde ich meine nochmal modifizieren wenn es wieder wärmer wird ;-)

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 12.02.2013, 12:57
von ff-haus
@JPS

Hast du einen Schaltplan der Baugruppe mit den geänderten Bauteilen gegenüber Maximilian, den du uns zur Verfügung stellen kannst? Ich würde mir es gern nachbauen und die Teile bei C..... bestellen.

DANKE!

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 12.02.2013, 17:59
von JPS
ff-haus hat geschrieben:Hast du einen Schaltplan...
Im Kern ist es die gleiche Schaltung. Welchen Optokoppler du nimmst, sollte eine untergeordnete Rolle spielen. Die Größe des Vorwiderstandes hängt im wesentlichen von der Spannung ab, die das Solarmodul liefert (bei mir ca. 3,5V). Ich würde evtl. ein etwas kleineres Poti nehmen, dann lässt es sich feiner justieren, hierbei wirst du nicht umhin kommen, ein wenig herum zu probieren.
plan.jpg

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 16.02.2013, 19:21
von ff-haus
Ich habe heute alle Bauteile bekommen und mich gleich an das Löten gesetzt.

Als Problem stellt sich nun heraus das meine Solarzelle (diese ist es:http://www.conrad.de/ce/de/product/1913 ... trom-35-mA) in der Dämmerung nur noch 0,6-0,9 V liefert und es aber noch so hell genug ist, das die Außenrollläden nicht herunterfahren müssen. Der HM Schließerkontakt reagiert aber erst bei ca.1,1V und schließt den Kontakt.

Als Potis habe ich schon bereits 1K, 10K und 25K verbaut ohne Änderung des eigentlichen Problems.
Was kann ich nun tun, mir war nicht bewusst das ich eine "spezielle" Solarzelle benötige.

Update:
Gibt es bezüglich den elektrischen Eigenschaften an die Solarzelle Empfehlungen?

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 16.02.2013, 20:11
von JPS
ff-haus hat geschrieben:Als Problem stellt sich nun heraus das meine Solarzelle in der Dämmerung nur noch 0,6-0,9 V liefert und es aber noch so hell genug ist, das die Außenrollläden nicht herunterfahren müssen.
Der Sonnensensor in der oben beschriebene Konfiguration ist nicht als Dämmerungsschalter gedacht. Er soll die Rollläden nach einiger Zeit herunterfahren, wenn die Sonne zu heftig auf die Fenster scheint. Der Optokoppler ist hierzu so abzustimmen, dass er bei Sonnenschein schaltet und wieder ausschaltet, wenn die Sonne nicht scheint. Solarmodule aus den gängigen Geräten (z.B. Solarlämpchen") werden bei direkter Sonne etwa 3,5V liefern, dann muss der Optokoppler schalten. Die von dir ausgewählte Solarzelle mit 4V Ausgangsspannung sollte dafür funktionieren. Die Hysterese, damit die Rollladen nicht beim Übergang ständig hoch und runter gehen, ist über das oben gezeigte Programm realisiert.

Wenn du einen Dämmerungsschaltung haben willst, kannst zu z.B. die Helligkeitsfunktion einen Außenbewegungsmelders nutzen. Es gibt hier im Forum aber auch noch andere Ansätze, z.B. durch Umbau eines Außentemperatursensors.

Oder du machst es so, wie ich oben beschrieben habe, indem du die Rollladen runter lässt, wenn die SysVar "Sonnenstand" auf "unter Horizont" schaltet. Das läuft aber vollkommen unabhängig vom Sonnensensor, der ist wie gesagt nur für die Abschattung bei Sonne gedacht.

Aus meiner nunmehr ca. 10 monatigen Erfahrung im Einsatz des Scripts würde ich empfehlen, die Rollladen nicht sofort nach Schalten der SysVar "Sonnenstand" auf "unter Horizont" herunter zu lassen sondern mit einer ca. 30 minütigen Verzögerung, also in etwa so...
Auto VS Rollladen runter Nacht Sommer.png
Meiner Familie ist es lieber, wenn sie erst bei deutlich beginnender Dunkelheit nach unten gehen als wenn es noch zu hell ist, aber das ist Geschmackssache.

(Die Variablen "CCU im Reboot", "Party" und "Jahreszeit Rollladen" kannst du einfach weglassen.)

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 16.02.2013, 20:18
von Sammy
Hallo,

evtl. kannst Du Deine Solarzelle trotzdem nutzen.
Geh mit einer Diode von dem SCI-Eingang auf das Solarmodul, so dass das Modul die Spannung des Eingangs bei Dunkelheit runterzieht, eine hohe Modulspannung aber den SCI-Eingang nicht zerstört. Evtl. musst Du das Modul zusätzlich mit einem Widerstand belasten, damit kräftig genug nach Masse gezogen wird. Ein Widerstand am SCI-Eingang wäre auch ok. Dann wird sicher nach Masse gezogen, wenn das Modul keine Spannung liefert.

Gruß Sammy

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 16.02.2013, 20:26
von ff-haus
@JPS

Dann hatte ich das falsch verstanden, weil oben Sonnen- und Dämmerungssensor steht.

Warum nutzt du dann 2 Eingänge am HM Schließerkontakt.

Im übrigen geht natürlich mit meiner Solarzelle die Funktion bei Sonne da dabei genügend Spannung am Solar anliegt. Mir ging es wirklich um die Dämmerungsfunktion.

Wenn ich nun aber 2 Solarzellen in Reihe schalte müsste ich jedoch diese Funktion doch auch hinbekommen oder habe ich dann einen Denkfehler?

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 17.02.2013, 00:15
von JPS
ff-haus hat geschrieben:Dann hatte ich das falsch verstanden, weil oben Sonnen- und Dämmerungssensor steht.
Verstehe, das kann tatsächlich ein wenig irreführend sein. Ich hatte damals zwei identische Zweige eingebaut, da zwei der drei Kanäle des HM-SCI-3-FM sonst ungenutzt geblieben wären. So kann man mit einem Sensor mehrere "Stufen" für die Sonneneinstrahlung realisieren, z.B. um verschiedene Fenster unterschiedlich zu behandeln. Als echten "Dämmerungssensor" habe ich das Teil nie verwendet, dafür nutze ich ja das Sonnenstand-Script. Ich formuliere das im ersten Eintrag um, damit es etwas klarer wird.

Ansonsten würde ich mal die von Sammy vorgeschlagene Lösung probieren. Oder du baust dir einen "echten" Dämmerungsschalter dazu (z.B. so was... http://www.conrad.de/ce/de/product/1913 ... -12-15-VDC). Dann hast du beide Funktionen in einem Gehäuse mit einem HM-SCI-3-FM. Allerdings wird das nicht ohne weiteres mit einer Batterie funktionieren.

Re: Noch eine Sonnen-Jalousiesteuerung (ohne SystemExec-Aufr

Verfasst: 17.02.2013, 00:23
von JPS
JPS hat geschrieben:Ich formuliere das im ersten Eintrag um, damit es etwas klarer wird.
Der Eintrag liegt schon so weit zurück, dass ich ihn nicht mehr editieren kann, daher an dieser Stelle nochmal der Hinweis...

Der Sonnensensor in der oben beschriebenen Konfiguration ist nicht als Dämmerungssensor gedacht. Er soll die Rollläden nach einiger Zeit herunterfahren, wenn die Sonne zu heftig auf die Fenster scheint. Die Abstufung in zwei Kanälen dient der Realisierung mehrerer "Stufen" für die Sonneneinstrahlung, z.B. um verschiedene Fenster unterschiedlich zu behandeln. Für "echte" Dämmerungssensoren gibt es diverse andere Lösungen, die hier im Forum an anderen Stellen beschrieben sind.