Wer den Vortrag als Video anschauen möchte , bitteschön: https://www.youtube.com/watch?v=kLuUA9yjvbQ
Und hier ist das Sonnenstands-Skript:
[codesyntax lang=“php“]
!berechnung sonne_elevation, sonne_azimut; stand 07.08.2016 verfasser: eugen stall, stall.biz !dieses skript alle 4min aufrufen real temp; real sin_phi; real cos_phi; integer sonnenzeit; boolean nachmittag; real sin_tau; real cos_tau; real tau1; real sin_delta; real cos_delta; boolean vorzeichen; integer temp = system.Date("%M").ToInteger() + 60*system.Date("%H").ToInteger(); integer sonnenzeit =temp + 720 - 0.5 *((system.SunriseTime("%M").ToInteger() + 60*system.SunriseTime("%H").ToInteger()) +system.SunsetTime("%M").ToInteger() + 60* system.SunsetTime("%H").ToInteger()); if (sonnenzeit > 1440) {sonnenzeit = sonnenzeit -1440;} if (sonnenzeit < 1) {sonnenzeit = 1440 + sonnenzeit;} if (sonnenzeit > 720) {sonnenzeit =sonnenzeit - 720; nachmittag = true; } else {sonnenzeit =720 -sonnenzeit;nachmittag =false;} temp = 0.00436332313 * sonnenzeit; if (temp < 1.570796327) {real sin_tau =temp * ((temp * temp * temp * temp * 0.0083334) +1.0 - (temp * temp *0.1666667)); temp= 1.570796327 - temp; cos_tau =temp * ((temp * temp * temp * temp * 0.0083334) +1.0 - (temp * temp * 0.1666667));} else {real tau1 =3.141592654 - temp; sin_tau =tau1 * ((tau1 * tau1 * tau1 * tau1 * 0.0083334) +1.0 - (tau1 * tau1 * 0.1666667)); temp = temp - 1.570796327; real cos_tau = (temp) *(-1.0)* ((temp * temp * temp * temp * 0.0083334) +1.0 - (temp * temp * 0.1666667));} temp = system.Date("%j").ToInteger() +10; if (temp > 365) {temp = temp - 365;} if (temp < 92) {real tag = 0.0172142 *temp; tau1 = (-0.410152) *((tag * tag *tag * tag *0.041666) + 1.0 - (tag * tag * 0.5));} if ((temp >91) && (temp < 184)) {temp = 183 - temp; real tag = 0.0172142 *temp; tau1 = (0.410152) *((tag * tag *tag * tag *0.041666) + 1.0 - (tag * tag * 0.5));} if ((temp >183) && (temp < 275)) {temp = temp - 183; real tag = 0.0172142 *temp; tau1 = (0.410152) *((tag * tag *tag * tag *0.041666) + 1.0 - (tag * tag * 0.5));} if ((temp >274) && (temp < 366)) {temp = 365 - temp; real tag = 0.0172142 *temp; tau1 = (-0.410152) *((tag * tag *tag * tag *0.041666) + 1.0 - (tag * tag * 0.5));} sin_delta =tau1 * ((tau1 * tau1 * tau1 * tau1 * 0.0083334) +1.0 - (tau1 * tau1 * 0.1666667)); !sinus-naeherung cos_delta = (tau1 * tau1 * tau1 * tau1 *0.0416667) + 1.0 - (tau1 * tau1 * 0.5); !cosinus-naeherung if (tau1 < 0.0) {vorzeichen = false; tau1 = (-1.0) * tau1;} else {vorzeichen = true;} temp = 0.017453292*system.Latitude(); sin_phi =(temp * ((temp * temp * temp * temp * 0.0083334) +1.0 - (temp * temp * 0.1666667))); cos_phi = ((temp * temp *temp * temp *0.0416667) + 1.0 - (temp * temp * 0.5)); temp = (sin_phi * sin_delta) +( cos_phi * cos_delta * cos_tau); temp = temp * (1.0 + (0.1666667 * temp * temp) + (0.075 * temp * temp * temp * temp)); temp = 57.29577951 * temp; temp= 0.1 *((temp *10.0) .ToInteger()); dom.GetObject("sonne_elevation").State(temp); WriteLine(temp); if (tau1 >=0.2618) {tau1 = (1.1822 * tau1) - 0.0416;}else {tau1 = 1.0233 * tau1;} if (vorzeichen == false) {tau1 = (-1.0) * tau1;} temp = (sin_phi*cos_tau) - (cos_phi * tau1); if (temp < 0.0) {boolean plus180 = true;} temp = sin_tau / temp; vorzeichen = true; if (temp < 0.0) {vorzeichen = false; temp = (-1.0)*temp;} tau1 = 0.97723 * temp; if ((temp >= 0.2679)&&(temp < 0.5774)) {tau1 = (0.84588* temp) + 0.035189;} if ((temp >= 0.5774)&&(temp < 1.0)) {tau1 = (0.6195* temp) + 0.1659;} if ((temp >= 1.0)&&(temp < 1.3032)) {tau1 = (0.43173* temp) + 0.3537;} if ((temp >= 1.3032)&&(temp < 1.7321)) {tau1 = (0.3052* temp) + 0.51856;} if ((temp >= 1.7321)&&(temp < 2.4142)) {tau1 = (0.1919* temp) + 0.7148;} if ((temp >= 2.4142)&&(temp < 2.9459)) {tau1 = (0.123* temp) + 0.88115;} if ((temp >= 2.9459)&&(temp < 3.7321)) {tau1 = (0.083312* temp) + 0.9981;} if ((temp >= 3.7321)&&(temp < 5.0)) {tau1 = (0.050792* temp) + 1.1194;} if ((temp >= 5.0)&&(temp <7.0)) {tau1 = (0.02775* temp) + 1.23465;} if ((temp >= 7.0)&&(temp <12.0)) {tau1 = (0.01175117*temp) + 1.346641;} if ((temp >= 12.0)&&(temp <20.0)) {tau1 = (0.004147854* temp) + 1.437881;} if ((temp >= 20.0)&&(temp <50.0)) {tau1 = (0.0009987*temp) + 1.5008639;} if (temp >= 50.0) {tau1 = (0.000099983* temp) + 1.54579974;} if (tau1> 1.5707963278) {tau1 = 1.5707963278;} if (vorzeichen == false) {tau1 = (-1.0) * tau1;} tau1 = 57.29577951 * tau1; if (plus180 == true) {tau1 = tau1 + 180.0;} if (nachmittag == false) {tau1 = 180.0 - tau1; sonnenzeit = 720 - sonnenzeit;} else {tau1 = tau1 + 180.0;sonnenzeit = 720 + sonnenzeit;} tau1 = 0.1 *((tau1*10.0) .ToInteger()); dom.GetObject("sonne_azimut").State(tau1); WriteLine(tau1);
[/codesyntax]
hier ist der Link zum Anklicken: https://www.stall.biz/project/robuster-sonnensensor-ganz-einfach
Hier ist der Link zum Anklicken:https://www.stall.biz/produkt/sonnensensor-glaskuppel
Hier ist der Link zum Anklicken: https://www.stall.biz/project/sonnensensor-fur-jalousien-und-rolladensteuerung
Hier ist der Link zum Anklicken: https://www.stall.biz/project/weatherman-die-perfekte-wetterstation-fuer-die-hausautomation