Proxy updates for AWN
All checks were successful
Build and Publish / release (push) Successful in 2m53s

This commit is contained in:
Ryan McGuire 2025-01-12 17:49:54 -05:00
parent 19823ea08f
commit e8fbacfe6d
3 changed files with 35 additions and 4 deletions

View File

@ -124,13 +124,21 @@ func (aw *AmbientWeather) handleProviderRequest(
err := aw.awnProvider.ProxyReq(ctx, update) err := aw.awnProvider.ProxyReq(ctx, update)
if err != nil { if err != nil {
zerolog.Ctx(aw.appCtx).Err(err).Msg("failed to proxy to ambient weather") zerolog.Ctx(aw.appCtx).Err(err).Msg("failed to proxy to ambient weather")
return
} }
zerolog.Ctx(aw.appCtx).Debug().
Str("station", station.Name).
Msg("proxied weather update to awn")
} }
if station.ProxyToWunderground { if station.ProxyToWunderground {
err := aw.wuProvider.ProxyReq(ctx, update) err := aw.wuProvider.ProxyReq(ctx, update)
if err != nil { if err != nil {
zerolog.Ctx(aw.appCtx).Err(err).Msg("failed to proxy to ambient weather") zerolog.Ctx(aw.appCtx).Err(err).Msg("failed to proxy to ambient weather")
return
} }
zerolog.Ctx(aw.appCtx).Debug().
Str("station", station.Name).
Msg("proxied weather update to wunderground")
} }
} }
} }

View File

@ -18,6 +18,14 @@ const (
awnURL = "http://ambientweather.net/data/report" awnURL = "http://ambientweather.net/data/report"
) )
// Battery Sensors
const (
BattOutdoorSensor = "OutdoorSensor"
BattIndoorSensor = "IndoorSensor"
BattRainSensor = "RainSensor"
BattCO2Sensor = "CO2Sensor"
)
func (awn *AWNProvider) Name() string { func (awn *AWNProvider) Name() string {
return providerName return providerName
} }
@ -66,19 +74,19 @@ func MapAwnUpdate(awnUpdate *AmbientWeatherUpdate) *weather.WeatherUpdate {
TotalRainIn: awnUpdate.TotalRainIn, TotalRainIn: awnUpdate.TotalRainIn,
Batteries: []weather.BatteryStatus{ Batteries: []weather.BatteryStatus{
{ {
Component: "OutdoorSensor", Component: BattOutdoorSensor,
Status: awnUpdate.BattOut, Status: awnUpdate.BattOut,
}, },
{ {
Component: "IndoorSensor", Component: BattIndoorSensor,
Status: awnUpdate.BattIn, Status: awnUpdate.BattIn,
}, },
{ {
Component: "RainSensor", Component: BattRainSensor,
Status: awnUpdate.BattRain, Status: awnUpdate.BattRain,
}, },
{ {
Component: "CO2Sensor", Component: BattCO2Sensor,
Status: awnUpdate.BattCO2, Status: awnUpdate.BattCO2,
}, },
}, },

View File

@ -79,5 +79,20 @@ func updateToAWNParams(update *weather.WeatherUpdate) *url.Values {
weather.SetURLVal(params, "windgustmph", update.WindGustMPH) weather.SetURLVal(params, "windgustmph", update.WindGustMPH)
weather.SetURLVal(params, "windspeedmph", update.WindSpeedMPH) weather.SetURLVal(params, "windspeedmph", update.WindSpeedMPH)
weather.SetURLVal(params, "maxdailygust", update.MaxDailyGust) weather.SetURLVal(params, "maxdailygust", update.MaxDailyGust)
// Batteries
for _, status := range update.Batteries {
switch status.Component {
case BattOutdoorSensor:
weather.SetURLVal(params, "battin", status.Status)
case BattIndoorSensor:
weather.SetURLVal(params, "battout", status.Status)
case BattRainSensor:
weather.SetURLVal(params, "battrain", status.Status)
case BattCO2Sensor:
weather.SetURLVal(params, "batt_co2", status.Status)
}
}
return params return params
} }