UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[TIPP] Winkel zwischen Sonnenstand und Kollektorausrichtung berechnen (ab V2.0 IP4)

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

Winkel zwischen Sonnenstand und Kollektorausrichtung berechnen (ab V2.0 IP4)

#1

Beitrag von Robosoc »

Folgendes Modul berechnet den Eintreffwinkel der Sonne auf Solarkollektoren und sendet auf einem zusätzlichen Augang "Schaltkontakt" einen boolschen Wert, ob der Eintreffwinkel kleiner als ein vorgebbarer Grenzwert ist.

Damit lässt sich beispielsweise eine Solartermineanlage abschalten, wenn der Sonnenstand ohnehin nicht genug Energie auf einem Kollektor erzeugen könnte. In den meisten Fällen wird dieser Wert aber rein informativen Charakter haben.

Mein Anwendungsfall: Meine Remehea-Kollektoren sind vermutlich durch thermische Verformung derart beschädigt, dass die internen Temperaturfühlerpunkte der Kollektoren die Messung der aktuellen Temperatur der Solarflüssigkeit nicht mehr ermöglichen. Es hat sich gezeigt dass die Messung der Temperatur an der Solarleitung unmittelbar vor den Kollektoren leider erst zu einem Zeitpunkt erfolgt, an dem sich bereits eine zu große Gasblase in den Kollektoren gebildet hat, die von der dafür zu geringen Pumpenleisten dann nicht mehr aus den Kollektoren gedrückt werden konnte...Ich habe mir daher eine Solar-Kollektor-Regelung geschaffen, die ausschließlich auf Sonnenwerte (Helligkeit, Richtung und Höhe) reagiert. Damit habe ich sehr zufriedenstellene Ergebnisse erreicht und ich brauch die Kollektoren nicht zu tauschen!

Bisher hatte ich die Primärpumpe (Kollektorkreislauf) immer laufen, wenn ich aus der Helligkeit der Wetterstation "Sonnenschein" ermittelt hatte (auch das ist noch suboptimal). Zusätzlich hatte ich maximale und minale Himmelsrichtungen für den Sonnenstand berücksichtigt um die Primärpumpe zu schalten. Aber durch gesunden Menschenverstand und durch eine Analyse in Grafana war klar, dass die Pumpe damit noch immere viel zu häufig läuft. Über eine Grafana-Auswertung mit dem Plugin Plotly habe ich ermittelt, dass in meinem Fall oberhalb eines Eintreffwinkels von 55° zu wenig Energie im Kollektor erreicht wird.

Eingänge
  • Die ersten zwei Eingänge muss der User selber ermitteln und als Parameter vorgeben.
  • Der zweite und dritte Eingangsparamenter lässt sich problemlos mit dem "Astro local" Standardmodul ermitteln, den man ja beispielsweise für Rolladen / Jallousiensteuerungen vielleicht eh schon im Einsatz hat.
  • Der 5 Eingangsparamenter ist ein optionaler Grenzwinkeln, bei dem man vorgeben kann, unnterhalb welchen Winkels auf dem zweiten Ausgang true gesendet wird.
Screenshot 2021-05-03 103558.jpg

Code: Alles auswählen

/**
* Dieses Module berechnet den Einfallswinkel der Sonne auf Solarkollektoren
*/

/** Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") 
die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. */
{
  "Input":[
    ["Kollektorrichtung ","Azimut Kollektor: Himmelsrichtung der Ausrichtung des Kollektores in Grad; 0° = NORD","$ColDirection","u"],
    ["Kollektorhöhe ","Elevation Kollektor: Höhenwinkel der Ausrichtung des Kollektores in Grad ; 0° = Horizontebene","$ColHeight","u"],
    ["Sonnenrichtung ","Azimut Sonne: Himmelsrichtung der Sonne in Grad; 0° = NORD","$SunDirection","ai"],
    ["Sonnenhöhe ","Elevation Sonne: Höhenwinkel der Sonne in Grad; 0° = Horizontebene","$SunHeight","ui"],
    ["Grenzwinkel ","maximaler Winkel, bei der der Schaltkontakt-Ausgang aktiv ist","$Limit","u"]
  ],
  "Output":[
    ["Eintreffwinkel","Winkel zwischen Sonnen und Kollektorausrichtung","$Result","a"],
    ["Schaltkontakt","Schaltkontakt, der bei einem Eintreffwinkel < als Grenzwinkel (Eingangsparameter) = true gesetzt wird","$Switch","a"]
  ],
  "Level":[
    ["$ColDirection","float",190.0],
    ["$ColHeight","float",43.0],
    ["$SunDirection","float",0.0],
    ["$SunHeight","float",0.0],
    ["$Limit","float",55.0],
    ["$Switch","bool",false],
    ["$Formular","string","(180/_pi)*(acos(sin((_pi/180)*X4) * sin((_pi/180)*X2) + cos((_pi/180)*X4) * cos((_pi/180)*X2) * cos((_pi/180)*X3-(_pi/180)*X1)))"],
    ["$Result","float",0.0]
  ],
  "Module":[ 
    ["CalcFormula",["$ColDirection","$ColHeight","$SunDirection","$SunHeight"], "$Result", "$Formular"],
    ["Comparator" , "$Limit" , "$Switch" , "$Result"]
  ]
}
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Robosoc am Di Mai 04, 2021 6:12 am, insgesamt 7-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

gbglace
Reactions:
Beiträge: 3585
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1253 Mal
Danksagung erhalten: 1649 Mal

#2

Beitrag von gbglace »

Hi Sven, interessantes Anwendungsszenario.

In der Kommentierung des Bausteins im Code scheint mir die Beschreibung zum Parameter Kollektorhöhe nicht ganz zu passen (Das ist doch bestimmt eher 0-90°als Sinnvoller Wert mit 0 = waagerecht?).
Grüße
Göran

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension
Benutzeravatar

starwarsfan
Reactions:
Beiträge: 1152
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 744 Mal
Danksagung erhalten: 923 Mal

#3

Beitrag von starwarsfan »

Hallo miteinander
Robosoc hat geschrieben: Mo Mai 03, 2021 10:46 am

Code: Alles auswählen

    ["Kollektorrichtung ","Himmelsrichtung der Ausrichtung des Kollektores in Grad; 0° = NORD","$ColDirection","u"],
    ["Kollektorhöhe ","Höhenwinkel der Ausrichtung des Kollektores in Grad; 0° = NORD","$ColHeight","u"],
    ["Sonnenrichtung ","Himmelsrichtung der Sonne in Grad; 0° = NORD","$SunDirection","ai"],
    ["Sonnenhöhe ","Höhenwinkel der Sonne in Grad; 0° = NORD","$SunHeight","ui"],
Der Vollständigkeit halber und damit alle vom Gleichen sprechen, könntest Du hier bei den Richtungen noch "(Azimut)" und bei den Winkeln "(Elevation)" ergänzen. Ausserdem stimmt der Kommentar "0=NORD" bei den Winkeln nicht. Das wäre dann eher "0=Waagerecht".

Edit: Wie Göran auch schon angemerkt hat. :handgestures-thumbupright:
Zuletzt geändert von starwarsfan am Mo Mai 03, 2021 12:53 pm, insgesamt 2-mal geändert.
Kind regards,
Yves

- TWS 2500 ID:159 (VPN offen, Reboot nach Rücksprache) - PBM ID:401 - TWS 3500 ID:618 (VPN offen, Reboot nach Rücksprache) - ControlPro - ProxMox - Edomi (LXC / Docker) - ... -

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

Vielen Dank Yves und Göran für die Hinweis.

Ich habe den Begriff Elevation und die Definition des Höhenwinkl 0° angepasst.

Aber ich glaube dass Azimut hier der falsche Begriff wäre, weil meines Erachtes ein Azimutwinkel so definiert ist, dass Süden = 0° ist. Das benutzt man zwar im Zusammenhang von Sonnenkollektoren häufig und damit würde es zum Thema gut passen, aber da der "Astro Lokal" Baustein die Sonnenrichtung in Form der Himmelsrichtig mit 0° = NORD auswirft, war es für mich einfacher meine Logik nicht mit einem Azimutwinkel aufzubauen.
Zuletzt geändert von Robosoc am Fr Mär 04, 2022 6:49 am, insgesamt 3-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#5

Beitrag von StefanW »

Wow Sven,

tolle Arbeit und Danke fürs teilen

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

tger977
Reactions:
Beiträge: 740
Registriert: So Aug 12, 2018 9:25 am
Hat sich bedankt: 205 Mal
Danksagung erhalten: 274 Mal

#6

Beitrag von tger977 »

Vielen Dank für ein erstes Beispiel der freien Formelanwendung in einer custom logik!
Gruß
Andi

TW2500 #440 (ex Timberwolf 2400 #111) mit PBM #124, Support VPN nur auf Anfrage, Reboot bitte nur nach Absprache
Benutzeravatar

starwarsfan
Reactions:
Beiträge: 1152
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 744 Mal
Danksagung erhalten: 923 Mal

#7

Beitrag von starwarsfan »

Hi
Robosoc hat geschrieben: Mo Mai 03, 2021 1:01 pm Ich habe den Begriff Elevation und die Definition des Höhenwinkl 0° angepasst.
:handgestures-thumbupright:
Robosoc hat geschrieben: Mo Mai 03, 2021 1:01 pm Aber ich glaube dass Azimut hier der falsche Begriff wäre, weil meines Erachtes ein Azimutwinkel so definiert ist, dass Sünden = 0° ist. Das benutzt man zwar im Zusammenhang von Sonnenkollektoren häufig und damit würde es zum Thema gut passen, aber da der "Astro Lokal" Baustein die Sonnenrichtung in Form der Himmelsrichtig mit 0° = NORD auswirft, war es für mich einfacher meine Logik nicht mit einem Azimutwinkel aufzubauen.
Nunja, "definiert" ist es wohl gar nicht, da das auch davon abhängig ist, ob man sich auf der Nord- oder der Südhalbkugel befindet. Die Süd-Zählweise ist die ursprüngliche Form, wird aber heute nicht mehr verwendet. In Zusammenhang mit der Beschattungssteuerung von EFHs ist mir diese Zählweise noch nie untergekommen, da war bisher immer 0° = Norden. Genauso, wie das auch jeder Astro-Baustein macht.

Mir ging es vielmehr darum, dass man mit Azimut den jeweiligen Vollkreiswinkel bei Betrachtung "von oben" meint, wohingegen die Elevation den Blickwinkel gegenüber der Waagerechten definiert. Also schon allein durch die Begrifflichkeiten klar ist, worum es jeweils geht.

PS: Siehe auch Wikipedia, dort wird's auch schön erklärt.

But anyway, war nur ein Hinweis zur Verständlichkeit. Alles gut! :clap:
Kind regards,
Yves

- TWS 2500 ID:159 (VPN offen, Reboot nach Rücksprache) - PBM ID:401 - TWS 3500 ID:618 (VPN offen, Reboot nach Rücksprache) - ControlPro - ProxMox - Edomi (LXC / Docker) - ... -

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#8

Beitrag von Robosoc »

Yves, Du hast mich überzeugt:-)
Danke!
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Zusätzliche Logikbausteine“