More fixes

This commit is contained in:
2026-06-24 01:03:13 -04:00
parent aac3486dd3
commit 70372a23cf
2 changed files with 14 additions and 13 deletions

View File

@@ -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 ───────────────────────────────────────────────────────────────────