ZoRaC Skrevet 2. mai 2019 Skrevet 2. mai 2019 Når neste versjon av weatherXML kommer, så kan man bytte ut Jon00DataScraper i pkt 3 og bare krysse av for at man ønsker «cloud cover»- og «pressure»-devicer fra den i stedet. https://forums.homeseer.com/forum/weather-plug-ins/weather-discussion/weatherxml-cfguy/1302303-dark-sky-cloud-cover 1 Siter
ZoRaC Skrevet 2. mai 2019 Skrevet 2. mai 2019 Hmm... nå som sola har stått opp, så tror jeg kanskje noe er galt i den nye beregningen... Mulig jeg har redigert for mye på lua-scriptet og tatt vekk en vesentlig del av beregningen? Sun alt og Sun azi er i hvertfall riktig. Det samme er cloudcover/octa og pressure. Ser også ut til at lua-scriptet henter der riktige verdiene fra HS. Siter
Rogerbl Skrevet 2. mai 2019 Skrevet 2. mai 2019 2 timer siden, ZoRaC skrev: Hmm... nå som sola har stått opp, så tror jeg kanskje noe er galt i den nye beregningen... Mulig jeg har redigert for mye på lua-scriptet og tatt vekk en vesentlig del av beregningen? Sun alt og Sun azi er i hvertfall riktig. Det samme er cloudcover/octa og pressure. Ser også ut til at lua-scriptet henter der riktige verdiene fra HS. Ifølge wikipedia så er det innenfor hvis du har direkte sollys: Illuminance (lux) Surfaces illuminated by 0.0001 Moonless, overcast night sky (starlight)[3] 0.002 Moonless clear night sky with airglow[3] 0.05–0.3 Full moon on a clear night[4] 3.4 Dark limit of civil twilight under a clear sky[5] 20–50 Public areas with dark surroundings[6] 50 Family living room lights (Australia, 1998)[7] 80 Office building hallway/toilet lighting[8][9] 100 Very dark overcast day[3] 150 Train station platforms[10] 320–500 Office lighting[7][11][12][13] 400 Sunrise or sunset on a clear day. 1000 Overcast day;[3] typical TV studio lighting 10,000–25,000 Full daylight (not direct sun)[3] 32,000–100,000 Direct sunlight Siter
ZoRaC Skrevet 2. mai 2019 Skrevet 2. mai 2019 25 minutter siden, Rogerbl skrev: Ifølge wikipedia så er det innenfor hvis du har direkte sollys: Ja, men jeg sjekket mai 2018 og da var jeg ikke over 10.000 lux på hele mai - nå har jeg over 50.000 lux med "halvtett" skydekke, så jeg tror det er noe galt. Scriptet du fant var ganske omskrevet/forenklet, så selv jeg som ikke kan VB.net klarte å "oversette" det i lunsjen. Den gir også enorme verdier (83.000 lux nå), så jeg har sendte det over til VB.net-mesteren (@Moskus) i en PM, for å se om han kan finne noe feil. Tenkte jeg ikke trengte å "spamme ned" denne tråden noe mer før en endelig løsning var klar... Med det scriptet trenger man bare å hente "cloud cover" og "pressure" fra en eller annen kilde, alt annet beregnes i det scriptet. Siter
Rogerbl Skrevet 2. mai 2019 Skrevet 2. mai 2019 (endret) Her er et python script som henter data fra Darksky og publiserer de til en MQTT broker. La også inn en octa beregning og da får man octa, pressure og alle de andre værdata. For de med HomeSeer benyttes mcsMqtt plugin til å få dette inn i devicer. For de andre, bruk MQTT import. Så prøver jeg å skrive om LUA scriptet til et vb script siden vi nå har alle verdiene vi trenger inne i Hs devicer... Kanskje 'noen' kan hjelpe til med det? ? darksky2mqtt.py darksky2mqtt1.cfg Endret 2. mai 2019 av Rogerbl Siter
ZoRaC Skrevet 3. mai 2019 Skrevet 3. mai 2019 (endret) Etter å ha rettet et par bugs i går kveld, så tror jeg scriptet nå fungerer som det skal. Det gir fortsatt en del høyere verdier enn LUA-scriptet gjorde, men jeg kan ikke se annet enn at det er riktig likevel. Siden det uansett ikke virker hos noen nå, så legger jeg ut scriptet her sånn at flere kan teste og se om det "gir mening". Spoiler Sub Main(parm as object) ' @Author: ZoRaC @ hjemmeautomasjon.no ' @Changelog: ' v1 (2019-05-02): Initial version ' Converted from Lua to VB.net and adjusted for HomeSeer ' Based on: http://www.domoticz.com/forum/viewtopic.php?t=19220 ' and https://forums.homeseer.com/forum/developer-support/scripts-plug-ins-development-and-libraries/script-plug-in-library/1286064-solar-position-script ' Thanks to Sébastien Joly, Neutrino, Jmleglise, xces, BakSeeDaa, Bram Vreugdenhil and Sparkman! ' Only input needed is "cloud cover" (usually a value from 0-1 or 0-100) and "relative pressure" ' Both "cloud cover" and "pressure" can be obtained from the Dark Sky API. ' Those values will soon be available to fetch with the weatherXML-plugin (from v3.0.1.8, see https://forums.homeseer.com/forum/weather-plug-ins/weather-discussion/weatherxml-cfguy/1302303-dark-sky-cloud-cover?p=1302383#post1302383) ' ================================================ ' SETTINGS START Dim debugging As Boolean = True ' True or False. If True it will print detailed logging in the HS-log. Dim altitude As Integer = 176 ' (Integer) Meters above sea level ' Read data from these devices Dim dvBarometer As Integer = 1697 ' (Integer) Device ref of device holding barometric pressure Dim dvCloudCover As Integer = 1696 ' (Integer) Device ref of device holding cloudcoverage (usually values ranging 0-1) ' If "cloud coverage" is in range 0-1, use 100 as multiplier. ' If range is 0-100, use 1 as multiplier ' If "cloud cover" is "Octa", use 12.5 as multiplier (also, you need to create two octa-devices, as the script will write the calculated octa to the "dvOcta"-device). Dim cloudCoverMultiplier As Double = 100 ' Store data to these devices Dim dvSolarAzimuth As Integer = 198 ' (Integer) Virtual azimuth device ref Dim dvSolarAltitude As Integer = 191 ' (Integer) Virtual solar altitude device ref Dim dvOcta As Integer = 187 ' (Integer) Virtual Octa device ref Dim dvLux As Integer = 186 ' (Integer) Lux device ref Dim dvDirectRadiation As Integer = 188 ' (Integer) Virtual directradiation device ref Dim dvScatteredRadiation As Integer = 189 ' (Integer) Virtual indirect/scattered radiation device ref Dim dvTotalRadiation As Integer = 190 ' (Integer) Virtual total radiation device ref ' SETTINGS END ' NO NEED TO CHANGE BELOW THIS LINE ' ================================================ ' Fetch position from HS->Setup Dim strLat As String = hs.GetINISetting("Settings", "gLatitude", "0") Dim strLon As String = hs.GetINISetting("Settings", "gLongitude", "0") Dim latitude As Double = CDbl(Val(strLat)) Dim longitude As Double = math.abs(CDbl(Val(strLon))) ' HS-bug stores longitude as a negative number... Fixing it with math.abs! ' CONSTANTS Dim arbitraryTwilightLux As Double = 6.32 ' W/m² egal 800 Lux (the theoritical value is 4.74 but I have more accurate result with 6.32...) Dim constantSolarRadiation As Integer = 1361 ' Solar Constant W/m² Dim angularSpeed As Double = 360/365.25 ' Fetch values Dim relativePressure As Double = hs.DeviceValueEx(dvBarometer) Dim Cloudpercentage As Integer = hs.DeviceValueEx(dvCloudCover)*cloudCoverMultiplier Dim dtNow As DateTime = DateTime.UtcNow Dim year As Integer = dtNow.Year Dim numOfDay As Integer = dtNow.DayOfYear Dim nbDaysInYear As Integer = 365 If (DateTime.isLeapYear(year)) Then nbDaysInYear = 366 End If Dim declination As Double = RadiansToDegrees(math.asin(0.3978 * math.sin(DegreesToRadians(angularSpeed) *(numOfDay - (81 - 2 * math.sin((DegreesToRadians(angularSpeed) * (numOfDay - 2)))))))) Dim timeDecimal As Double = (dtNow.Hour + dtNow.Minute / 60) ' Coordinated Universal Time (UTC) Dim solarHour As Double = timeDecimal + (4 * longitude / 60 ) ' The solar Hour Dim hourlyAngle As Double = 15 * ( 12 - solarHour ) ' hourly Angle of the sun Dim sunAltitude As Double = RadiansToDegrees(math.asin(math.sin(DegreesToRadians(latitude))* math.sin(DegreesToRadians(declination)) + math.cos(DegreesToRadians(latitude)) * math.cos(DegreesToRadians(declination)) * math.cos(DegreesToRadians(hourlyAngle)))) ' the height of the sun in degree, compared with the horizon ' This gave wrong azimuth for my location, had to replace the calculation with the Function "calcAzimuth" to get it right... ' Dim azimuth As Integer = math.acos((math.sin(DegreesToRadians(declination)) - math.sin(DegreesToRadians(latitude)) * math.sin(DegreesToRadians(sunAltitude))) / (math.cos(DegreesToRadians(latitude)) * math.cos(DegreesToRadians(sunAltitude) ))) * 180 / math.pi ' deviation of the sun from the North, in degree Dim azimuth As Double = calcAzimuth(dtNow, latitude, longitude, debugging) Dim sinAzimuth As Double = (math.cos(DegreesToRadians(declination)) * math.sin(DegreesToRadians(hourlyAngle))) / math.cos(DegreesToRadians(sunAltitude)) If(sinAzimuth < 0) Then azimuth=360-azimuth End If Dim sunstrokeDuration As Double = RadiansToDegrees(2/15 * math.acos(- math.tan(DegreesToRadians(latitude)) * math.tan(DegreesToRadians(declination)))) ' duration of sunstroke in the day . Not used in this calculation. Dim RadiationAtm As Double = constantSolarRadiation * (1 +0.034 * math.cos( DegreesToRadians( 360 * numOfDay / nbDaysInYear ))) ' Sun radiation (in W/m²) in the entrance of atmosphere. ' Coefficient of mitigation M Dim absolutePressure As Double = relativePressure - math.round((altitude/ 8.3),1) ' hPa Dim sinusSunAltitude As Double = math.sin(DegreesToRadians(sunAltitude)) Dim M0 As Double = math.sqrt(1229 + math.pow(614 * sinusSunAltitude,2)) - 614 * sinusSunAltitude Dim M As Double = M0 * relativePressure/absolutePressure Dim okta As Integer = Cloudpercentage/12.5 Dim Kc As Double = 1-0.75*math.pow(okta/8,3.4) ' Factor of mitigation for the cloud layer Dim directRadiation As Integer Dim scatteredRadiation As Integer Dim totalRadiation As Integer Dim Lux As Integer Dim weightedLux As Integer If (sunAltitude > 1) Then ' Below 1° of Altitude , the formulae reach their limit of precision. directRadiation = RadiationAtm * math.pow(0.6,M) * sinusSunAltitude scatteredRadiation = RadiationAtm * (0.271 - 0.294 * math.pow(0.6,M)) * sinusSunAltitude totalRadiation = scatteredRadiation + directRadiation Lux = totalRadiation / 0.0079 ' Radiation in Lux. 1 Lux = 0,0079 W/m² weightedLux = Lux * Kc ' radiation of the Sun with the cloud layer ElseIf (sunAltitude <= 1 and sunAltitude >= -7) Then ' apply theoretical Lux of twilight directRadiation = 0 scatteredRadiation = 0 arbitraryTwilightLux=arbitraryTwilightLux-(1-sunAltitude)/8*arbitraryTwilightLux totalRadiation = scatteredRadiation + directRadiation + arbitraryTwilightLux Lux = totalRadiation / 0.0079 ' Radiation in Lux. 1 Lux = 0,0079 W/m² weightedLux = Lux * Kc ' radiation of the Sun with the cloud layer Elseif (sunAltitude < -7) Then ' no management of nautical and astronomical twilight... directRadiation = 0 scatteredRadiation = 0 totalRadiation = 0 Lux = 0 weightedLux = 0 ' should be around 3,2 Lux for the nautic twilight. Nevertheless. End If totalRadiation=totalRadiation*Kc directRadiation=directRadiation*Kc scatteredRadiation=scatteredRadiation*Kc ' Update HS-devices hs.setDeviceValueByRef(dvLux, weightedLux, True) hs.setDeviceValueByRef(dvOcta, okta, True) hs.setDeviceValueByRef(dvSolarAzimuth, azimuth, True) hs.setDeviceValueByRef(dvSolarAltitude, sunAltitude, True) hs.setDeviceValueByRef(dvTotalRadiation, totalRadiation, True) hs.setDeviceValueByRef(dvScatteredRadiation, scatteredRadiation, True) hs.setDeviceValueByRef(dvDirectRadiation, directRadiation, True) If (debugging) Then hs.WriteLog("Solar", "============== SUN LOG ==================") hs.WriteLog("Solar", "Lat = " & latitude & " Lon = " & longitude) hs.WriteLog("Solar", "Angular Speed = " & math.round(angularSpeed,5) & " per day") hs.WriteLog("Solar", "Universal Coordinated Time (UTC) "& timeDecimal & " H.dd") hs.WriteLog("Solar", "Altitude of the sun = " & math.round(sunAltitude,1) & "°") hs.WriteLog("Solar", "Angular hourly = " & math.round(hourlyAngle,1) & "°") hs.WriteLog("Solar", "Azimuth of the sun = " & math.round(azimuth,1) & "°") hs.WriteLog("Solar", "Duration of the sun stroke of the day = " & math.round(sunstrokeDuration,2) & " H.dd") hs.WriteLog("Solar", "Radiation max in atmosphere = " & math.round(RadiationAtm,2) & " W/m²") hs.WriteLog("Solar", "Local relative pressure = " & math.round(relativePressure,1) & " hPa") hs.WriteLog("Solar", "Absolute pressure in atmosphere = " & math.round(absolutePressure,1) & " hPa") hs.WriteLog("Solar", "Coefficient of mitigation M = " & math.round(M,5) & " M0 = " & math.round(M0,5)) hs.WriteLog("Solar", "Okta = " & okta & " Cloud coverage = " & Cloudpercentage & "%") hs.WriteLog("Solar", "Kc = " & math.round(Kc,5)) hs.WriteLog("Solar", "Direct Radiation = " & math.round(directRadiation,2) & " W/m²") hs.WriteLog("Solar", "Scattered Radiation = " & math.round(scatteredRadiation,2) & " W/m²") hs.WriteLog("Solar", "Total radiation = " & math.round(totalRadiation,2) & " W/m²") hs.WriteLog("Solar", "Total Radiation in lux = " & math.round(Lux,2) & " Lux") hs.WriteLog("Solar", "Total weighted lux = " & math.round(weightedLux,2) & " Lux") hs.WriteLog("Solar", "============== SUN LOG ==================") End If End Sub ' http://www.vbforums.com/showthread.php?566870-Do-you-need-to-convert-radians-to-degrees&p=3502624&viewfull=1#post3502624 ' math.deg Private Function RadiansToDegrees(ByVal radians As Double) As Double Return radians * 180 / Math.PI End Function ' http://www.vbforums.com/showthread.php?566870-Do-you-need-to-convert-radians-to-degrees&p=3502624&viewfull=1#post3502624 ' math.rad Private Function DegreesToRadians(ByVal degrees As Double) As Double Return degrees * Math.PI / 180 End Function ' https://forums.homeseer.com/forum/developer-support/scripts-plug-ins-development-and-libraries/script-plug-in-library/1286064-solar-position-script ' From c code posted here: http://www.psa.es/sdg/sunpos.htm ' VB.NET Conversion posted here: http://www.vbforums.com/showthread.php?832645-Solar-position-calculator ' converted for HomeSeer use by Sparkman v1.0 Private Function calcAzimuth(ByVal dtNow As DateTime, ByVal latitude As Double, ByVal longitude As Double, ByVal Debug As Boolean) As Double Dim rad As Double = math.pi / 180 Dim dEarthMeanRadius As Double = 6371.01 Dim dAstronomicalUnit As Double = 149597890 Dim iYear As Integer = dtNow.UtcNow.Year Dim iMonth As Integer = dtNow.UtcNow.Month Dim iDay As Integer = dtNow.UtcNow.Day Dim dHours As Double = dtNow.UtcNow.Hour Dim dMinutes As Double = dtNow.UtcNow.Minute Dim dSeconds As Double = dtNow.UtcNow.Second Dim dZenithAngle As Double Dim dAzimuth As Double Dim dElapsedJulianDays As Double Dim dDecimalHours As Double Dim dEclipticLongitude As Double Dim dEclipticObliquity As Double Dim dRightAscension As Double Dim dDeclination As Double Dim dY As Double Dim dX As Double Dim dJulianDate As Double Dim liAux1 As Integer Dim liAux2 As Integer Dim dMeanLongitude As Double Dim dMeanAnomaly As Double Dim dOmega As Double Dim dSin_EclipticLongitude As Double Dim dGreenwichMeanSiderealTime As Double Dim dLocalMeanSiderealTime As Double Dim dLatitudeInRadians As Double Dim dHourAngle As Double Dim dCos_Latitude As Double Dim dSin_Latitude As Double Dim dCos_HourAngle As Double If Debug Then hs.WriteLog("Solar", "============== calcAzimuth ==================") ' Calculate difference in days between the current Julian Day and JD 2451545.0, which is noon 1 January 2000 Universal Time ' Calculate time of the day in UT decimal hours dDecimalHours = dHours + (dMinutes + dSeconds / 60.0) / 60.0 ' Calculate current Julian Day liAux1 = (iMonth - 14) \ 12 liAux2 = (1461 * (iYear + 4800 + liAux1)) \ 4 + (367 * (iMonth - 2 - 12 * liAux1)) \ 12 - (3 * ((iYear + 4900 + liAux1) \ 100)) \ 4 + iDay - 32075 dJulianDate = CDbl(liAux2) - 0.5 + dDecimalHours / 24.0 ' Calculate difference between current Julian Day and JD 2451545.0 dElapsedJulianDays = dJulianDate - 2451545.0 If Debug Then hs.writelog("Solar","Elapsed Julian Days Since 2000/01/01: " & CStr(math.round(dElapsedJulianDays,1))) ' Calculate ecliptic coordinates (ecliptic longitude and obliquity of the ecliptic in radians but without limiting the angle to be less than 2*Pi ' (i.e., the result may be greater than 2*Pi) dOmega = 2.1429 - 0.0010394594 * dElapsedJulianDays dMeanLongitude = 4.895063 + 0.017202791698 * dElapsedJulianDays ' Radians dMeanAnomaly = 6.24006 + 0.0172019699 * dElapsedJulianDays dEclipticLongitude = dMeanLongitude + 0.03341607 * Math.Sin(dMeanAnomaly) + 0.00034894 * Math.Sin(2 * dMeanAnomaly) - 0.0001134 - 0.0000203 * Math.Sin(dOmega) dEclipticObliquity = 0.4090928 - 0.000000006214 * dElapsedJulianDays + 0.0000396 * Math.Cos(dOmega) If Debug Then hs.writelog("Solar","Ecliptic Longitude: " & CStr(math.round(dEclipticLongitude,1))) If Debug Then hs.writelog("Solar","Ecliptic Obliquity: " & CStr(math.round(dEclipticObliquity,5))) ' Calculate celestial coordinates ( right ascension and declination ) in radians but without limiting the angle to be less than 2*Pi (i.e., the result may be greater than 2*Pi) dSin_EclipticLongitude = Math.Sin(dEclipticLongitude) dY = Math.Cos(dEclipticObliquity) * dSin_EclipticLongitude dX = Math.Cos(dEclipticLongitude) dRightAscension = Math.Atan2(dY, dX) If dRightAscension < 0.0 Then dRightAscension = dRightAscension + (2 * math.pi) End If dDeclination = Math.Asin(Math.Sin(dEclipticObliquity) * dSin_EclipticLongitude) If Debug Then hs.writelog("Solar","Declination: " & CStr(math.round(dDeclination,5))) ' Calculate local coordinates ( azimuth and zenith angle ) in degrees dGreenwichMeanSiderealTime = 6.6974243242 + 0.0657098283 * dElapsedJulianDays + dDecimalHours dLocalMeanSiderealTime = (dGreenwichMeanSiderealTime * 15 + longitude) * rad dHourAngle = dLocalMeanSiderealTime - dRightAscension If Debug Then hs.writelog("Solar","Hour Angle: " & CStr(math.round(dHourAngle,1))) dLatitudeInRadians = latitude * rad dCos_Latitude = Math.Cos(dLatitudeInRadians) dSin_Latitude = Math.Sin(dLatitudeInRadians) dCos_HourAngle = Math.Cos(dHourAngle) dZenithAngle = (Math.Acos(dCos_Latitude * dCos_HourAngle * Math.Cos(dDeclination) + Math.Sin(dDeclination) * dSin_Latitude)) dY = -Math.Sin(dHourAngle) dX = Math.Tan(dDeclination) * dCos_Latitude - dSin_Latitude * dCos_HourAngle dAzimuth = Math.Atan2(dY, dX) If dAzimuth < 0.0 Then dAzimuth = dAzimuth + (2 * math.pi) End If dAzimuth = dAzimuth / rad If Debug Then hs.WriteLog("Solar", "============== calcAzimuth ==================") Return dAzimuth End Function 1. Sett opp devicene slik som beskrevet her: På 7.12.2016 den 17.53, DiderikFrom skrev: Start med å lage virtuelle devicer som under: For hver av devicene, noteres "Reference ID", under "Advanced". Og slik har jeg (f.eks. for LUX) satt opp "Status graphics" for at det skal være mulig å oppdatere via skriptet (dvs. JSON som skriptet bruker). Obs! Under Status-Control kan det gå galt, devicen oppdateres ikke dersom denne står på en spesiell måte. Edit 2: Jeg har satt en vid value range slik at jeg er sikker på at oppdatering ikke feiler fordi verdien ikke er tillatt for devicen. For LUX, som over, For Solar Altidue/Azimuth: -360 til 360 °, for Radiation 0-200000 (aner ikke hvilken verdi man når på en solrik sommerdag, men sannsynligvis langt under 200000 W/m2 -- det skader ikke å ha litt høy maxverdi), og Octa:0-8. For Radiation-devicene samt Solar Altitude og Azimuth, kan du vise decimaler dersom du vil, men det tror jeg er et unødvendig presisjonsnivå. På 7.12.2016 den 17.53, DiderikFrom skrev: Edit: Og slik kan det se ut i bruk på en desemberdag: Jeg har brukt disse ikonene: LUX/radiation: /images/HomeSeer/status/luminance-00.png octa: images/HomeSeer/status/cyan.png Sun, *: images/HomeSeer/status/yellow.png Men det fins sikkert mye bedre ikoner der ute et sted dersom man gidder lete. 2. Registrer deg og finn API-key hos Dark Sky: https://darksky.net/dev Bruk metoden i A eller B: A (Jon00DataScraper): Spoiler 3. Bruk denne i Jon00DataScraper: [Grab15] Devicemode=2 Path=https://api.darksky.net/forecast/API-KEY/71.123,11.123 Encoding=UTF-8 Pattern1=(?s)"currently".*?"cloudCover":(.*?), Pattern2=(?s)"currently".*?"pressure":(.*?), DeviceName1=CloudCover (DarkSky API) DeviceValue1=[0] DeviceText1=[0] DeviceName2=Pressure (DarkSky API) DeviceValue2=[100] DeviceText2=[100] PS! Etter at «cloud cover»-devicen har blitt opprettet, så må du inn på «status graphics» og definere at den har to desimaler! 4. Sett opp eventet: PS: Bytt ut "parameters" med ditt "Grab-nummer". 5. Da bør du få data hvert 15. minutt. B (WeatherXML-plugin): Spoiler 3. i) Installer WeatherXML-plugin. ii) Konfigurer lokasjon med DarkSky API. iii) Gå på devices under WeatherXML og kryss av for "barometer" og "cloud cover". iv) Slå av schedules i WeatherXML. v) I scriptet må du endre "cloudCoverMultiplier" til 1. 4. Sett opp eventet: 5. Da bør du få data hvert 15. minutt. Endret 8. mai 2019 av ZoRaC WeatherXML lagt til 1 2 Siter
Rogerbl Skrevet 3. mai 2019 Skrevet 3. mai 2019 Det funka fint! Ser at Lux verdien er i samsvar med tidligere verdier, og faktisk så var den på 363 når ytterlyset slo seg på ihht dag/natt verdier. Med WU lua scriptet brukte jeg en luxverdi på 350. Kanskje en tilfeldighet, men lover bra! ? Måtte bare skrive det litt om da jeg ikke benytter Jon00s datascraper men python og mcsMqtt for å få inn octa og pressure fra darksky. Bra jobba Zorac!! Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 8 timer siden, Rogerbl skrev: Måtte bare skrive det litt om da jeg ikke benytter Jon00s datascraper men python og mcsMqtt for å få inn octa og pressure fra darksky. Da var det vel nok å endre devIDene i scriptet? Eller måtte du endre noe i tillegg? Siter
Rogerbl Skrevet 4. mai 2019 Skrevet 4. mai 2019 4 timer siden, ZoRaC skrev: Da var det vel nok å endre devIDene i scriptet? Eller måtte du endre noe i tillegg? ja og i tillegg tok jeg vekk octa beregningen og lastet den inn fra Homeseer devicen opprettet av mcsMqtt. Takk for god jobb! ? Siter
Rufus Skrevet 4. mai 2019 Skrevet 4. mai 2019 Har lagt inn scriptet ditt ZoRaC, samt henter octa og pressure fra DarkSky, men lux verdi og W/m2 er urealistisk høye. Tror ikke det er reelt i Norge med verdier noe særlig over 100 W/m2, men min viser lux på over 60000 og radiation total på bortimot 500 W/m2 ? er det sånn å forstå at scriptet ikke fungerer helt enda? Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 (endret) 3 minutter siden, Rufus skrev: Har lagt inn scriptet ditt ZoRaC, samt henter octa og pressure fra DarkSky, men lux verdi og W/m2 er urealistisk høye. Tror ikke det er reelt i Norge med verdier noe særlig over 100 W/m2, men min viser lux på over 60000 og radiation total på bortimot 500 W/m2 ? er det sånn å forstå at scriptet ikke fungerer helt enda? Jeg registrerer også at verdiene er mye høyere enn i LUA-scriptet... Basert på dette så tenker jeg det kanskje kan være riktig med 500 W/m2? Sitat Average annual solar radiation arriving at the top of the Earth's atmosphere is roughly 1361 W/m2.[25] The Sun's rays are attenuated as they pass through the atmosphere, leaving maximum normal surface irradiance at approximately 1000 W /m2 at sea level on a clear day. When 1361 W/m2 is arriving above the atmosphere (when the sun is at the zenith in a cloudless sky), direct sun is about 1050 W/m2, and global radiation on a horizontal surface at ground level is about 1120 W/m2.[26]The latter figure includes radiation scattered or reemitted by atmosphere and surroundings. The actual figure varies with the Sun's angle and atmospheric circumstances. Ignoring clouds, the daily average insolation for the Earth is approximately 6 kWh/m2 = 21.6 MJ/m2. Ref: https://en.m.wikipedia.org/wiki/Solar_irradiance EDIT: Jeg tror kanskje verdiene for radiation som legges i devicene er uvektet - altså ikke korrigerer for skydekke. Lux er derimot beregnet med skydekke. Hva får du pm du tar radiation * Kc (se i loggen)? Endret 4. mai 2019 av ZoRaC Siter
Rufus Skrevet 4. mai 2019 Skrevet 4. mai 2019 34 minutter siden, ZoRaC skrev: Jeg tror kanskje verdiene for radiation som legges i devicene er uvektet - altså ikke korrigerer for skydekke. Lux er derimot beregnet med skydekke. Hva får du pm du tar radiation * Kc (se i loggen)? Nå har det blitt noe mer overskyet Jeg får 295 W/m2 dersom jeg tar 0,71799(Kc) * 411 W/m2 (Radiation,total). Det er mulig at verdiene er riktig, men jeg er usikker på hva de representerer. For meg er det kanskje mest vesentlig å kunne vite hvor mye huset potensielt kan bli oppvarmet av sola. Og jeg kan ikke skjønne at man her i Norge på denne tiden av året kan bli tilført så mye varme som 300-400 W/m2. Finnes det noen forklaring på hva de Radiation verdiene representerer? Har du noen formler for hvordan scriptet regner ut verdiene? Jeg kan eventuelt høre med en bekjent som er forsker og som muligens kan ha litt peiling på dette temaet. Siter
Rufus Skrevet 4. mai 2019 Skrevet 4. mai 2019 44 minutter siden, ZoRaC skrev: Jeg tror kanskje verdiene for radiation som legges i devicene er uvektet - altså ikke korrigerer for skydekke. Lux er derimot beregnet med skydekke. Hva får du pm du tar radiation * Kc (se i loggen)? Vet du forresten om verdiene blir justert for hvor langt gjennom atmosfæren strålingen må gå gjennom? Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 1 minutt siden, Rufus skrev: Finnes det noen forklaring på hva de Radiation verdiene representerer? Har du noen formler for hvordan scriptet regner ut verdiene? Tja, det er direkte sol og indirekte («scattered»)... formlene står i scriptet, men hva/hvordan de beregner aner jeg ikke - jeg bare «oversatte» formlene fra Lua-scriptet @Rogerbl delte for et par sider siden. 3 minutter siden, Rufus skrev: Jeg kan eventuelt høre med en bekjent som er forsker og som muligens kan ha litt peiling på dette temaet. Gjør gjerne det! Dette er alt for komplisert fysikk/matte til at jeg skjønner nok til å vite om tallene som kommer frem er tilsynelatende riktige eller ikke... 2 minutter siden, Rufus skrev: Vet du forresten om verdiene blir justert for hvor langt gjennom atmosfæren strålingen må gå gjennom? Ingen anelse... Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 5 minutter siden, Rufus skrev: Nå har det blitt noe mer overskyet Jeg får 295 W/m2 dersom jeg tar 0,71799(Kc) * 411 W/m2 (Radiation,total). Det er mulig at verdiene er riktig, men jeg er usikker på hva de representerer. For meg er det kanskje mest vesentlig å kunne vite hvor mye huset potensielt kan bli oppvarmet av sola. Og jeg kan ikke skjønne at man her i Norge på denne tiden av året kan bli tilført så mye varme som 300-400 W/m2. Mulig jeg skulle endret scriptet til å bruke vektede verdier for radiation også. Blir litt rart å bare gjøre det på Lux. Radiation vil jo nå bli veldig høye på overskyet (8 Octa), siden radiation ikke tar hensyn til skydekket, mens Lux gjør det. Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 11 minutter siden, Rufus skrev: Og jeg kan ikke skjønne at man her i Norge på denne tiden av året kan bli tilført så mye varme som 300-400 W/m2. Fra http://www.renewable-energy-concepts.com/solarenergy/solar-basics/insolation-weather.html Sitat Average solar radiation for a location on the northern hemisphere with a latitude angle of 47° - 55°. sunny, clear sky summer: 600 - 1000 W/m² winter: 300 - 500 W/m² sunny, skattered clouds or partly cloudy summer: 300 - 600 W/m² winter: 150 - 300 W/m² cloudy, fog summer: 100 - 300 W/m² winter: 50 - 150 W/m² Nå ligger vi litt lengre nord, men vi er vel mellom vinter og sommer nå, så 250-450 w/m2 et kanskje realistisk ved lettskyet vær? Siter
Rufus Skrevet 4. mai 2019 Skrevet 4. mai 2019 Jeg leser også mange steder at man regner med at ca 30% av all stråling blir reflektert ut av atmosfæren igjen. Jeg skal se gjennom scriptet i kveld og prøve å forstå hvordan man beregner de forskjellige verdiene, og så skal jeg se til uka om jeg får tak i forsker-vennen min som sikkert kan bidra med noe nyttig informasjon. Nøyaktigheten på verdiene kommer selvfølgelig an på hva man skal bruke verdiene til. Jeg har lyssensor ute som jeg heller bruker til f.eks lysstyring. Det fungerer utmerket uavhengig om Lux-verdi er helt korrekt eller ikke Eventuelle unøyaktigheter ser ut til å være likt hver gang, så resultatet blir det samme hver gang. Det er også veldig snedig å ha en device som sier i hvilken himmelretning sola kommer fra. Det kan jeg bruke til varsling på om jeg skal kjøre ned persienner eller ikke (har ikke motordrift). Samtidig kunne det vært kjekt med en device som viser mest mulig reel verdi for potensial oppvarming av huset. Det kan jo brukes i temperaturstyring f.eks. Siter
Rogerbl Skrevet 4. mai 2019 Skrevet 4. mai 2019 Solar azimuth gir retning hvor sola kommer fra... Siter
Rufus Skrevet 4. mai 2019 Skrevet 4. mai 2019 6 minutter siden, ZoRaC skrev: Sitat Average solar radiation for a location on the northern hemisphere with a latitude angle of 47° - 55°. sunny, clear sky summer: 600 - 1000 W/m² winter: 300 - 500 W/m² sunny, skattered clouds or partly cloudy summer: 300 - 600 W/m² winter: 150 - 300 W/m² cloudy, fog summer: 100 - 300 W/m² winter: 50 - 150 W/m² Nå ligger vi litt lengre nord, men vi er vel mellom vinter og sommer nå, så 250-450 w/m2 et kanskje realistisk ved lettskyet vær? Kan godt være at det stemmer Bare syns det høres mye ut. Samtidig som at flere andre sider viser til lavere tall. Det kan kanskje ha noe med definisjoner og hvor mye av denne stråleenergien som er mulig å utnytte. https://ndla.no/nb/node/8257?fag=7 Siter
Rufus Skrevet 4. mai 2019 Skrevet 4. mai 2019 2 minutter siden, Rogerbl skrev: Solar azimuth gir retning hvor sola kommer fra... Jeg vet Og det er helt tipp topp til mitt formål. Det ser også ut til å stemme. Siter
Rogerbl Skrevet 4. mai 2019 Skrevet 4. mai 2019 54 minutter siden, Rogerbl skrev: Solar azimuth gir retning hvor sola kommer fra... Forøvrig så ser jeg at azimuth fra scriptet er ca 100 grader feil så jeg går tilbake til det scriptet som bare regnet ut altitude og azimuth, for disse verdiene, der stemmer verdiene med RL. Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 9 minutter siden, Rogerbl skrev: Forøvrig så ser jeg at azimuth fra scriptet er ca 100 grader feil så jeg går tilbake til det scriptet som bare regnet ut altitude og azimuth, for disse verdiene, der stemmer verdiene med RL. Hos meg stemmer azimuth og altitude med det jeg får på suncalc.org. Gjør det ikke det hos deg? Jeg har jo kopiert inn det scriptet inn i «hovedscriptet» (se nederst «Function calcAzimuth»). Så begge burde gi samme verdi... Siter
Rogerbl Skrevet 4. mai 2019 Skrevet 4. mai 2019 5 minutter siden, ZoRaC skrev: Hos meg stemmer azimuth og altitude med det jeg får på suncalc.org. Gjør det ikke det hos deg? Jeg har jo kopiert inn det scriptet inn i «hovedscriptet» (se nederst «Function calcAzimuth»). Så begge burde gi samme verdi... Nei, fikk nesten 100 grader avvik.. pussig.. Siter
ZoRaC Skrevet 4. mai 2019 Skrevet 4. mai 2019 1 minutt siden, Rogerbl skrev: Nei, fikk nesten 100 grader avvik.. pussig.. Nå er den ca 100 grader feil hos meg også! Fint om noen kan se over scriptet og formlene og se hva jeg kan ha gjort feil... tror jeg må ha sett meg blind på det... Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.