add barometric pressure

This commit is contained in:
2026-02-02 16:10:29 +11:00
parent 6f9eee5dc0
commit 08bd117eb8
7 changed files with 146 additions and 62 deletions

View File

@@ -16,8 +16,10 @@ const (
type Latest struct {
mu sync.RWMutex
lastTS time.Time
last *WS90Payload
lastTS time.Time
last *WS90Payload
baroTS time.Time
baroHPA *float64
// Rain tracking
mode rainMode
@@ -144,6 +146,7 @@ type Snapshot struct {
RainLastHourMM float64
DailyRainMM float64
PressureHPA *float64
}
func (l *Latest) Snapshot() (Snapshot, bool) {
@@ -162,10 +165,25 @@ func (l *Latest) Snapshot() (Snapshot, bool) {
daySum += rp.mm
}
var pressure *float64
if l.baroHPA != nil {
v := *l.baroHPA
pressure = &v
}
return Snapshot{
TS: l.lastTS,
P: *l.last,
RainLastHourMM: hourSum,
DailyRainMM: daySum,
PressureHPA: pressure,
}, true
}
func (l *Latest) UpdateBarometer(ts time.Time, pressureHPA float64) {
l.mu.Lock()
defer l.mu.Unlock()
l.baroTS = ts
l.baroHPA = &pressureHPA
}