More fixes
This commit is contained in:
@@ -352,10 +352,13 @@ def classify_clouds(c, lux, solar_el):
|
||||
|
||||
return cloud_pct, label, volatility
|
||||
|
||||
def visibility_estimate(lux, humidity):
|
||||
def visibility_estimate(lux, humidity, solar_el=None):
|
||||
base_km = 50.0
|
||||
hum_factor = max(0, 1 - ((humidity - 40) / 60)) if humidity > 40 else 1.0
|
||||
lux_factor = min(lux / 10000, 1.0)
|
||||
if solar_el is not None and solar_el > 5:
|
||||
lux_factor = min(lux / 10000, 1.0)
|
||||
else:
|
||||
lux_factor = 1.0
|
||||
return round(base_km * hum_factor * lux_factor, 1)
|
||||
|
||||
def read_ltr(c, sensor, solar_el, humidity=None):
|
||||
@@ -365,7 +368,7 @@ def read_ltr(c, sensor, solar_el, humidity=None):
|
||||
null = {
|
||||
'lux': None, 'uv_index': None, 'solar_wm2': None,
|
||||
'uv_dose': None, 'clouds': None, 'daily_light_integral': None,
|
||||
'daylight': None, 'visibility': None, 'cloud_volatility': None,
|
||||
'daylight': None, 'visibility': None,
|
||||
}
|
||||
|
||||
if not sensor: write(c, 'light', null); return
|
||||
@@ -398,11 +401,9 @@ def read_ltr(c, sensor, solar_el, humidity=None):
|
||||
daylight_start = now
|
||||
daylight_hours = round((now - daylight_start) / 3600, 2) if daylight_start else 0.0
|
||||
|
||||
update_cloud_baseline(c, solar_el, lux)
|
||||
cloud_pct, cloud_label, volatility = classify_clouds(c, lux, solar_el)
|
||||
|
||||
if cloud_label == 'Clear':
|
||||
update_cloud_baseline(c, solar_el, lux)
|
||||
|
||||
write(c, 'light', {
|
||||
'lux': lux,
|
||||
'uv_index': uvi,
|
||||
@@ -411,7 +412,7 @@ def read_ltr(c, sensor, solar_el, humidity=None):
|
||||
'clouds': cloud_pct,
|
||||
'daily_light_integral': dli,
|
||||
'daylight': daylight_hours,
|
||||
'visibility': visibility_estimate(lux, humidity) if humidity else None,
|
||||
'visibility': visibility_estimate(lux, humidity, solar_el) if humidity else None,
|
||||
}, tags={'clouds_label': cloud_label or ''})
|
||||
|
||||
# ── TF-Luna ───────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user