diff --git a/pkg/ambient/ambient.go b/pkg/ambient/ambient.go index 79ae733..2180734 100644 --- a/pkg/ambient/ambient.go +++ b/pkg/ambient/ambient.go @@ -124,13 +124,21 @@ func (aw *AmbientWeather) handleProviderRequest( err := aw.awnProvider.ProxyReq(ctx, update) if err != nil { 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 { err := aw.wuProvider.ProxyReq(ctx, update) if err != nil { 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") } } } diff --git a/pkg/provider/awn/provider.go b/pkg/provider/awn/provider.go index 1c8cfa2..8226c68 100644 --- a/pkg/provider/awn/provider.go +++ b/pkg/provider/awn/provider.go @@ -18,6 +18,14 @@ const ( awnURL = "http://ambientweather.net/data/report" ) +// Battery Sensors +const ( + BattOutdoorSensor = "OutdoorSensor" + BattIndoorSensor = "IndoorSensor" + BattRainSensor = "RainSensor" + BattCO2Sensor = "CO2Sensor" +) + func (awn *AWNProvider) Name() string { return providerName } @@ -66,19 +74,19 @@ func MapAwnUpdate(awnUpdate *AmbientWeatherUpdate) *weather.WeatherUpdate { TotalRainIn: awnUpdate.TotalRainIn, Batteries: []weather.BatteryStatus{ { - Component: "OutdoorSensor", + Component: BattOutdoorSensor, Status: awnUpdate.BattOut, }, { - Component: "IndoorSensor", + Component: BattIndoorSensor, Status: awnUpdate.BattIn, }, { - Component: "RainSensor", + Component: BattRainSensor, Status: awnUpdate.BattRain, }, { - Component: "CO2Sensor", + Component: BattCO2Sensor, Status: awnUpdate.BattCO2, }, }, diff --git a/pkg/provider/awn/proxy.go b/pkg/provider/awn/proxy.go index 0a1b1e2..0bbe466 100644 --- a/pkg/provider/awn/proxy.go +++ b/pkg/provider/awn/proxy.go @@ -79,5 +79,20 @@ func updateToAWNParams(update *weather.WeatherUpdate) *url.Values { weather.SetURLVal(params, "windgustmph", update.WindGustMPH) weather.SetURLVal(params, "windspeedmph", update.WindSpeedMPH) 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 }