Berechnung der Innenausleuchtung durch die Sonne

Begonnen von Greeny, 18 Mai 2020, 18:36:43

Vorheriges Thema - Nächstes Thema

Greeny

Hallo liebe Rollladenfreunde.

Ich habe ein Problem, immer zu einem ganz bestimmten Sonnenstand ist mein Schreibtisch hell von der Sonne erleuchtet, so dass ich weder auf dem Bildschirm, noch auf Papier ordentlich lesen kann. Klar könnte man jetzt berechnen zu welcher Sonnenhöhe und zu welchen Azimut die Sonne herein scheint, aber gerade bei mehreren Dachfenstern und verschiedenen Sonnenständen zu verschiedenen Jahreszeiten ist mir das zu umständlich.

Leider hab ich mir Perl noch gar keine Erfahrung, also hab ich mir Python geschnappt und ein kleines Konzept gemacht, wie man das ganze in ein Modul packen könnte.

Es wäre schön, wenn jemand, der Ahnung von Perl hat das ganze in ein Modul packen könnte. Ich sehe viele Vorteile in diesem Ansatz, man kann z.B. helle oder dunkle Gegenden festlegen, in die Sonne scheinen soll oder halt nicht. Auch Beschränkungen wie "Sonne darf nur maximal 0,5m in das Zimmer hinein scheinen sind möglich. Und man muss sich nicht mit Sonnenwinkelberechnungen herumschlagen. Und zu guter letzt lässt sich das ganze so erweitern, dass auch Bedeckungen z.B. durch Hochhäuser berücksichtigt werden könnten.

Es wär cool, hier diesen Ansatz diskutieren zu können,  ihn zu verbessern und letzendlich in FHEM zu integrieren  :)

Zum mathematischen Hintergrund:
Ein Fenster wird durch (1 bis viele) Polygone definiert, durch die das Licht scheinen kann (gerade bei Dachfenstern lässt sich ein Fenster nicht ordentlich durch ein einfaches Rechteck definieren).
Dann wird der 'Lichtschatten' anhand des Sonnenvektors durch die Eckpunkte der Polygone durch die X-Y Ebene berechnet. (theoretisch sind auch andere beliebige Ebenen möglich)
Jetzt nimmt man die Schnittfläche der gerade berechneten projezierten Flächen und erhällt so die reale Fläche, wie sie im Zimmer aussieht.
- Ein Blick auf die angehängten Bilder sollte wahrscheinlich mehr Klarheit schaffen  ;)

Hier der Python-Code zum spielen: https://github.com/LimitlessGreen/SonneDurchFenster

Viele Grüße - Green

Gisbert

Hallo Green(y),

meine Unterstützung hast du auf jeden Fall für das Testen, Ausprobieren und Diskutieren.

Ich hätte noch eine Abwandlung für folgenden Fall, der für die Lichtmenge wichtig wäre. Wieviel Licht (Energie) fällt auf eine senkrechte Fläche, die eine definierte Ausrichtung (am besten in Grad Himmelsrichtung) hat im Laufe eines Tages und im Laufe des Jahres? Wichtig wäre mir der Maximalwert (ohne Schatten, Dunst Wolken, ...) zu jeder Tageszeit im gesamten Jahr.

Hast du dafür eventuell auch eine Idee? Auf jeden Fall wüsste man dann wieviel Licht (Energie) maximal auf eine senkrechte Fensterfläche fällt, und könnte dann in Relation zu einem Messwert entscheiden, ob man verschatten will oder nicht.

Wegen besonderem Interesse bin ich zu jeder Schandtat bereit, dieses Projekt zu unterstützen - nur Programmieren und Module schreiben ist nicht meins.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Greeny

#2
Hallo Gisbert​,

danke schön und, ja klar ist das möglich   ;)

Wichtig dafür ist die s.g. Solarkonstante (https://de.wikipedia.org/wiki/Solarkonstante), welche im Mittel 1361 W/m² beträgt.
Für den richtungsabhängigen Einfallswinkel ist der Hauptansatz die Vektorrechnung.
Schau mal hier hinein: https://learnattack.de/schuelerlexikon/mathematik/schnittwinkel-zwischen-gerade-und-ebene
Falls du es nicht verstehst helfe ich gerne weiter  ;)

Wenn du diesen Winkel dann hast brauchst du nur noch:  Leistungsdichte = Solarkonstante * sin ( α ) zu rechnen - fertig
Du du von einem Verlauf sprichst kann man das ganze auch plotten. Am einfachsten zieht man sich da eine von zahlreichen Sonnenstand-APIs hinzu.

Mich interessiert dein Anwendungsfall, kannst du diesen evtl. genauer beschreiben? :)

Viele Grüße - Green

Gisbert

Hallo Green,

ich möchte mit einem Lichtsensor eine Verschattungsanlage in Form einer großen Senkrechtmarkise (ca. 6 qm) steuern. Im Moment mache ich das mit Wetterdaten aus dem Internet. Das funktioniert recht passabel, kann aber nur so gut sein wie die gelieferten Daten.

Es gibt 2 Aufgaben:

  • Runterfahren der Markise, wenn Sonneneinstrahlung da ist, neben einigen anderen Bedingungen
  • Diese Aufgabe ist fast noch wichtiger, Hochfahren der Anlage, wenn die Sonne weg ist, und Regen und Sturm aufzieht

Ich nutze das Reading azimuth des Moduls Twilight als weitere Bedingung, um die Markise dann runterzufahren, wenn die Fensterfläche in der Sonne steht.

In der Sonne stehen ist eigentlich das Stichwort. Das Fenster ist ziemlich genau westwärts gerichtet. Ab ca. 14:00 fallen die ersten Lichstrahlen seitlich auf das Fenster, bis abends steht dann die Sonne voll auf diesem Fenster.

Wenn ich jetzt einen fixen Wert eines Lichtsensors (BH1750) nehme, bei der die Anlage wegen Regen/Sturm (=dunkel) hochfahren soll, dann muss der nachmittags viel höher sein als um bspw. 20:00. Meine Befürchtung ist, dass wenn ich zu vorsichtig bin, die Sonne reinbruzzelt, oder aber in anderer Richtung die Markise bei aufziehendem Sturm Schaden nimmt. Die Sensorik ist vorhanden, aber noch nicht an die richtige Stelle verbaut, deshalb noch ungetestet.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

KölnSolar

Ja, durchaus interessant das Thema. Wäre wohl was, um es in das jetzt schon sehr komplexe AutoShuttersControl einfließen zu lassen. Vielleicht kommunizierst Du da mal mit Cooltux.
Mir persönlich ist das aber immer alles viel zu komplex(fehleranfällig,initialer Installationsaufwand,Parameterbeschaffung....)und ich bevorzuge die einfachen Lösungen(u. wenn es nur eine Fernbedienung ist  ;D), die dann IMMER funktionieren. Auch wenn FHEM mal hängt. ;)

ZitatKlar könnte man jetzt berechnen zu welcher Sonnenhöhe und zu welchen Azimut die Sonne herein scheint
Machst Du aber doch dann auch, oder wie kommst Du an die Daten für den im Tagesverlauf "wandernden" Lichteinfall ?  :-\
Und ich versteh Dich richtig, dass Dein Schnipsel das für den Idealfall bereitstellt, also dann mit einem Messwert(wie Gisbert das schon äußerte) verheiratet werden muss ?  :-\

ZitatWieviel Licht (Energie) fällt auf eine senkrechte Fläche
Da müsste der Chemiker sich jetzt mal entscheiden, was er will. Licht oder Energie ?  ;D
Deshalb ist es eben auch die 1. Frage was man misst und die 2. wie man das dann ggfs. umrechnet.
ZitatWert eines Lichtsensors (BH1750)
Ist halt nur Licht(ungleich u. nicht proportional Energie) Für Energie müsstest Du schon ein Pyranometer haben oder eine PV-Anlage missbrauchen. (Dazu gibt es ja meinen Codeschnipsel, der über die PV-Anlage die Strahlung auf jede beliebig geneigte u. ausgerichtete Fläche (grob) ermittelt. Mit einem Pyranometer als Input könnte man den Codeschnipsel auch nutzen) Die Werte wären dann noch umzurechnen bzgl. der physikalischen Eigenschaften der Gebäudeteile(bei Fenstern: Absorption, Reflexion.... je nach Winkel)
Also wesentlich komplexer als Greenys Thema, denn bei Licht u. Fenstern ist das viel einfacher. Da kann man von 100% Durchlässigkeit ausgehen. Es sei denn man hat hochmodernes Fensterglas mit Selbstverdunklung....

Zitats.g. Solarkonstante
Vorsicht. Die gilt jahres-,tageszeitenunabhängig nur im Weltall(außerhalb der Atmosphäre). Was dann bei uns ankommt, ist etwas ganz anderes. Deshalb ist es eben einfacher das ankommende zu messen, als zu versuchen es irgendwie theoretisch zu berechnen. Wie berechnet man die Augenblicksbewölkung ?  ::)

@Gisbert: Greenys Ansatz ist meines Erachtens too much für Dich(mit nur Helligkeitssensor). Du willst ja "nur" die Energie im Sommer bei ALLEN Fenstern einer Gebäudefläche draußen lassen, während sie im Winter sogar ins Haus soll.
Greenys Ansatz hilft, wenn z.B. der TV an ist und die Sonne dummerweise auf den Bildschirm leuchet-> mieser TV-Genuss. Aber wie gesagt, ich greif dann zur Fb.  ;)

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Greeny

Schön, dass sich Leute dafür interessieren  8)

Zitat von: KölnSolar am 19 Mai 2020, 09:12:48
Machst Du aber doch dann auch, oder wie kommst Du an die Daten für den im Tagesverlauf "wandernden" Lichteinfall ?  :-\
Und ich versteh Dich richtig, dass Dein Schnipsel das für den Idealfall bereitstellt, also dann mit einem Messwert(wie Gisbert das schon äußerte) verheiratet werden muss ?  :-\
Ich habs manchmal nicht so mit dem formulieren  :-X
Gedacht war das Ganze aus Nutzersicht, denn dieser muss effektiv nur Höhe, Richtung und Kontur seines Fensters angeben. Klar wird der Sonnenstand für die Berechnung benötigt, aber der liegt irgendwo intern in Fhem herrum und der Benutzer muss sich damit nicht den Kopf zerbrechen  :)
Und ja, der Ansatz ist gedacht für nicht-diffuses Licht, also den Fall "Aaaargh, die Sonne blendet mich"   ::)
Ob sich mit einem ähnlichen Ansatz auch die Ausleuchtung mit diffusem Licht berechnen lässt weiß ich nicht (dafür kenne ich die physikalischen Eigenschaften zu wenig).

Zitat von: KölnSolar am 19 Mai 2020, 09:12:48
Da müsste der Chemiker sich jetzt mal entscheiden, was er will. Licht oder Energie ?  ;D
Zitat von: Greeny am 18 Mai 2020, 23:34:36
Energie = Solarkonstante * sin ( α )
*hust*, ich meinte natürlich Leistungsdichte  ;D

Zitat von: KölnSolar am 19 Mai 2020, 09:12:48
Vorsicht. Die gilt jahres-,tageszeitenunabhängig nur im Weltall(außerhalb der Atmosphäre). Was dann bei uns ankommt, ist etwas ganz anderes. Deshalb ist es eben einfacher das ankommende zu messen, als zu versuchen es irgendwie theoretisch zu berechnen. Wie berechnet man die Augenblicksbewölkung ?  ::)

Haha, naja Giesbert wollte das maximal mögliche  ::) ;D
Aber klar, im Weltall sind wir natürlich nicht  ;)

Zitat von: KölnSolar am 19 Mai 2020, 09:12:48
Greenys Ansatz hilft, wenn z.B. der TV an ist und die Sonne dummerweise auf den Bildschirm leuchet-> mieser TV-Genuss.
Ja, genau das ist der Punkt, besser hätte ich es nicht beschreiben können  :)

KölnSolar

Der "Chemiker" war natürlich ein Insider u. an Gisbert adressiert.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Gisbert

#7
Hallo Green(y) und Markus,

es ist schön, wenn ich dazu beitragen konnte, dass ihr euch auf Anhieb gut versteht ;D

Nur leider komme ich mich mit meinem Problem(chen) nicht wirklich weiter. Dabei habe ich den Eindruck, dass ihr genau wisst, was ich als Info benötige ;D
Ich habe mal ein Diagramm eines Sensors angehängt, der an der gegenüberliegenden Giebelseite (Ostseite) montiert ist.
Da ich da Strom hatte, dachte ich, ich könnte ihn als Signalgeber verwenden, aber Pustekuchen, denn irgendwann wird der durch das ostseitig stehende Haus verschattet.
Ich hab mal einen Tag mit "voller" Sonne ausgewählt und beschreibe in Worten wie die Hellichtkeit/Licht/Energie/Ablesewert ;D des BH1750 sich über den Tag ändert:

Die Sonne geht auf gegen 5:40 - und scheint, was soll sie auch sonst machen 8)
Der Wert beträgt ca. 2000 Lux und wird schnell größer, bis der Wert in die Sättigung bei 54000 Lux geht (ein Schöntheitsfehler, aber das kann ich gut akzeptieren) - ich interpretiere das mal so: die Sonne geht weiter auf und es wird heller
Nachmittags scheint die Sonne natürlich weiter, da wir uns aber auf der Ostseite befinden, nimmt die Intensität ab ca. 11.30 volle Lotte ab, wobei die Sonne aber alles gibt, was sie zu exakt dieser Zeit zu geben imstande ist. Wir haben dann einen Wert von ca. 26000 Lux, der immer weiter fällt, je weiter die Sonne westwärts strebt.
Ich fasse zusammen: morgens gibt es weing Lux, mittags viel Lux, abends wenig Lux - und das alles bei maximalem Sonnenschein.

Da ich noch kein wetterfestes Konstrukt für den Lichtsensor auf der Westseite habe, kann ich meinen eigentlichen Punkt, dass die Lichtinsensität (ohne Wolken und Gedöns) sich tageszeitlich ändert, nicht so demonstrieren, wie ich es gerne hätte - deshalb der Exkurs zur Ostseite.
Es kommen bald ein paar freie Tage, da zimmere ich ein Gehäuse und hänge es in die (West)sonne und - ich schwöre ;D - ich liefere dann Daten, sobald die Sonne wieder volle Lotte scheint.

Viele Grüße Gisbert

Edit: hab vergessen das Diagramm anzuhängen
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Greeny

#8
Hallo Giesbert,

ich habe vielleicht eine Idee.

Dein Dilemma scheint zu sein, dass du einfach nur wissen möchtest, ob die Sonne scheint oder nicht. Nur hat die Sonne die dumme Angewohnheit zu verschiedenen Zeiten, verschieden stark auf die Erde zu treffen  ;D, also kann man nicht einfach einen Schwellwert dafür nehmen.

Mal vorweg, das aller einfachste wäre natürlich, den Lichtsensor genau am Sonnensegel zu haben  ;)

Ich habe persönlich noch nichts mit Lichtsensoren gemacht...aber der zeigt nach oben und nicht zum Horizont, oder?
(was sich laut Diagramm von selber klären sollte, denn der Lichteinfall dort ist definitiv über 90°, aber man kann ja mal fragen  ;))

Diese ganzen Einbrüche und die niedrigen Werte ab 12:50Uhr werte ich mal als Schatten.
Bedeutet, du brauchst vor allem die Möglichkeit, aus diffusem Licht abzulesen ob die Sonne scheint, denn bei deinem Fenster bruzelt es ja ab 14Uhr erst richtig los.

Und jetzt die wahrscheinlich blödeste Idee: was, wenn man den Sensor Richtung Horizont oder gar nach unten ausrichtet und nur diffuses Licht einfängt?  :o
Dann sollte der Graph keine Sättigung mehr haben, Sonne/Wolken aber dennoch erkennbar sein und du hättest diese ständige hin und her mit Licht und Schatten nicht...zumindest in meinem Kopf, ohne das praktisch mal probiert zu haben  :-X

Bis dahin erst mal,

Viele Grüße - Green

KölnSolar

ZitatUnd jetzt die wahrscheinlich blödeste Idee: was, wenn man den Sensor Richtung Horizont oder gar nach unten ausrichtet und nur diffuses Licht einfängt?
So blöde finde ich die nicht. Müsste dann aber trotzdem in Abhängigkeit von der Zeit(besser: Azimuth) ausgewertet werden, da es morgens im Osten immer noch heller ist als nachmittags. Will heißen: Eigentlich egal wie der Sensor ausgerichtet ist, nachmittags sollte ein Unterschied der Helligkeitswerte zwischen sonnig u. bewölkt(heute ist ein guter Tag zur Analyse) feststellbar sein.
Ist halt die Alternative zu
ZitatMal vorweg, das aller einfachste wäre natürlich, den Lichtsensor genau am Sonnensegel zu haben
Aber das scheint ja "technisch" (im Augenblick) nicht machbar.
Grüße Markus
PS: Ggfs. solltest Du einen neuen Thread aufmachen, da das hier ja dann doch etwas OT ist.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Ich gebe auch mal einen OT Kommentar ab, hilft vielleicht Gisbert beim nachdenken. Klingt vielleicht doof, aber ich steuere meine Beschattung nicht über Helligkeitswerte, sondern über Temperaturunterschiede. Da ich nur Ost- und Westseite abdecken muß habe ich Aussen-Thermometer, je eines im Osten, eines im Westen - so positioniert dass sie bei Sonne schön in der Sonne stehen und ein weiteres in einer versteckten Ecke im im Schatten. Ich berechne nun über ein userreading die Differenz zwischen Ostseite und Schatten bzw. Westseite und Schatten. Ab 12 Grad Temperaturunterschied (da war ein bisschen ausprobieren nötig) wird beschattet (sofern Aussentemperatur > 22 Grad). Das funktioniert ziemlich zuverlässig und - da die Thermometer relativ träge sind - muss eine recht große Wolke kommen um die Beschattung an einem sonnigen Tag "versehentlich" auszuschalten.
       
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Greeny

Langsam ist es WIRKLICH an der Zeit, dieses Thema in einen eigenen Thread abzuhandeln, denn hier wird es sowas von Offtopic!
Also Giesbert, mach mal bitte ein eigenes Thema auf, denn hier hat gar nichts mit dem eigentlichen Kern zu tun...
Ich helfe da natürlich gerne weiter  :), aber bitte nichts mehr dazu hier.
- Danke

Gisbert

Hallo Green,

wegen offtopic geht es mit meinem Problem der Steuerung einer Verschattungsanlage hier weiter.
Bitte melde dich, wenn du Testkandidaten für dein Vorhaben benötigst; ich werde dann aber deine Anleitung bzw. Anweisungen benötigen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY