implement lightning_time in grpc
All checks were successful
Build and Publish / check-chart (push) Successful in 12s
Build and Publish / helm-release (push) Has been skipped
Build and Publish / release (push) Successful in 4m6s

This commit is contained in:
2025-04-03 15:31:43 -04:00
parent 82ae3e4ba4
commit 15dd74d6ab
9 changed files with 38 additions and 12 deletions

View File

@ -61,6 +61,7 @@ func UpdateToPbUpdate(u *weather.WeatherUpdate) *pb.WeatherUpdate {
UpdateTimestamp: timestamppb.New(*u.DateUTC),
LightningDay: util.Int32ptr(u.LightningDay),
LightningDistance: util.Int32ptr(u.LightningDistance),
LightningLastTime: util.TimestampFromIntPtr(u.LightningLastTime),
}
}

View File

@ -145,7 +145,7 @@ func MapAwnUpdate(awnUpdate *AmbientWeatherUpdate) *weather.WeatherUpdate {
},
LightningDay: awnUpdate.LightningDay,
LightningDistance: awnUpdate.LightningDistance,
LightningTime: awnUpdate.LightningTime,
LightningLastTime: awnUpdate.LightningLastTime,
}
}

View File

@ -36,7 +36,7 @@ type AmbientLightningData struct {
BattLightning *int `json:"batt_lightning,omitempty" schema:"batt_lightning"`
LightningDay *int `json:"lightning_day,omitempty" schema:"lightning_day" description:"count of lightning detections"`
LightningDistance *int `json:"lightning_distance,omitempty" schema:"lightning_distance" description:"distance in kilometers"`
LightningTime *int `json:"lightningTime,omitempty" schema:"lightningTime" description:"last lightning detection time"`
LightningLastTime *int `json:"lightning_time,omitempty" schema:"lightning_time" description:"last lightning detection time"`
}
type AmbientTempHumiditySensors struct {

View File

@ -5,8 +5,10 @@ import (
"encoding/hex"
"fmt"
"slices"
"time"
"gitea.libretechconsulting.com/rmcguire/go-app/pkg/config"
"google.golang.org/protobuf/types/known/timestamppb"
"k8s.io/utils/ptr"
pb "gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/api/v1alpha1/weather"
@ -29,6 +31,13 @@ func Int32ptr(i *int) *int32 {
return ptr.To(int32(*i))
}
func TimestampFromIntPtr(i *int) *timestamppb.Timestamp {
if i == nil {
return nil
}
return timestamppb.New(time.Unix(int64(*i), 0))
}
// Generates a hash that will be consistent
// across all running replicas
func GetAppHash(conf *config.AppConfig) string {

View File

@ -82,7 +82,7 @@ func (wm *WeatherMetrics) Update(u *WeatherUpdate) {
wm.recorder.Record(&RecordOpts{Int64Gauge: wm.LightningLastDistance, IntVal: u.LightningDistance, Field: FieldLightningDistance, Attributes: attributes, Station: u.StationConfig})
wm.recorder.Record(&RecordOpts{Int64Gauge: wm.LightningCountDay, IntVal: u.LightningDay, Field: FieldLightningDay, Attributes: attributes, Station: u.StationConfig})
wm.recorder.Record(&RecordOpts{Int64Gauge: wm.LightningLastTime, IntVal: u.LightningTime, Field: FieldLightningLastTime, Attributes: attributes, Station: u.StationConfig})
wm.recorder.Record(&RecordOpts{Int64Gauge: wm.LightningLastTime, IntVal: u.LightningLastTime, Field: FieldLightningLastTime, Attributes: attributes, Station: u.StationConfig})
wm.RecordBatteries(u, attributes)
wm.RecordTempHumiditySensors(u, attributes)

View File

@ -43,7 +43,7 @@ type WeatherUpdate struct {
// Lightning Data
LightningDay *int `json:"lightningDay,omitempty"` // Count of detections
LightningDistance *int `json:"lightningDistance,omitempty"` // Last detection distance [kilometers]
LightningTime *int `json:"lightningTime,omitempty"` // Last detection time
LightningLastTime *int `json:"lightningLastTime,omitempty"` // Last detection time
}
type TempHumiditySensor struct {