Skip to content

Commit 9d69336

Browse files
committed
New function GetQuickModeExpiresAt()
1 parent 98625de commit 9d69336

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

connection.go

+20-6
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@ import (
77

88
// Connection is the SensonetEbus connection
99
type Connection struct {
10-
logger Logger
11-
ebusdConn *EbusConnection
12-
currentQuickmode string
13-
quickmodeStarted time.Time
14-
quickmodeStopped time.Time
15-
relData VaillantRelData
10+
logger Logger
11+
ebusdConn *EbusConnection
12+
currentQuickmode string
13+
quickmodeStarted time.Time
14+
quickmodeStopped time.Time
15+
quickModeExpiresAt string
16+
relData VaillantRelData
1617
}
1718

1819
// NewConnection creates a new Sensonet device connection.
1920
func NewConnection(ebusdAddress string, opts ...ConnOption) (*Connection, error) {
2021
conn := &Connection{}
2122
conn.currentQuickmode = ""
2223
conn.quickmodeStarted = time.Now()
24+
conn.quickModeExpiresAt = ""
2325

2426
for _, opt := range opts {
2527
opt(conn)
@@ -44,6 +46,10 @@ func (c *Connection) GetCurrentQuickMode() string {
4446
return c.currentQuickmode
4547
}
4648

49+
func (c *Connection) GetQuickModeExpiresAt() string {
50+
return c.quickModeExpiresAt
51+
}
52+
4753
func (c *Connection) GetSystem(refresh bool) (VaillantRelData, error) {
4854
err := c.ebusdConn.getSystem(&c.relData, refresh)
4955
c.refreshCurrentQuickMode()
@@ -176,13 +182,19 @@ func (c *Connection) StartStrategybased(strategy int, heatingPar *HeatingParStru
176182
c.currentQuickmode = QUICKMODE_HOTWATER
177183
c.quickmodeStarted = time.Now()
178184
c.debug("Starting hotwater boost")
185+
c.quickModeExpiresAt = ""
179186
}
180187
case 2:
181188
err = c.StartZoneQuickVeto(heatingPar.ZoneIndex, heatingPar.VetoSetpoint, heatingPar.VetoDuration)
182189
if err == nil {
183190
c.currentQuickmode = QUICKMODE_HEATING
184191
c.quickmodeStarted = time.Now()
185192
c.debug("Starting zone quick veto")
193+
if heatingPar.VetoDuration < 0.0 {
194+
c.quickModeExpiresAt = (time.Now().Add(time.Duration(int64(ZONEVETODURATION_DEFAULT*60) * int64(time.Minute)))).Format("15:04")
195+
} else {
196+
c.quickModeExpiresAt = (time.Now().Add(time.Duration(int64(heatingPar.VetoDuration*60) * int64(time.Minute)))).Format("15:04")
197+
}
186198
}
187199
default:
188200
if c.currentQuickmode == QUICKMODE_HOTWATER {
@@ -201,6 +213,7 @@ func (c *Connection) StartStrategybased(strategy int, heatingPar *HeatingParStru
201213
}
202214
c.currentQuickmode = QUICKMODE_NOTHING
203215
c.quickmodeStarted = time.Now()
216+
c.quickModeExpiresAt = (time.Now().Add(time.Duration(10 * time.Minute))).Format("15:04")
204217
c.debug("Enable called but no quick mode possible. Starting idle mode")
205218
}
206219

@@ -237,6 +250,7 @@ func (c *Connection) StopStrategybased(heatingPar *HeatingParStruct) (string, er
237250
c.debug("Nothing to do, no quick mode active")
238251
}
239252
c.currentQuickmode = ""
253+
c.quickModeExpiresAt = ""
240254
c.quickmodeStopped = time.Now()
241255

242256
c.relData.LastGetSystem = time.Time{} // reset the cache

example/main.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,11 @@ func main() {
283283
fmt.Println("")
284284
fmt.Printf(" HotWaterTemperature: %.1f°C (Setpoint=%.1f°C)\n", state.Hotwater.HwcStorageTemp, state.Hotwater.HwcTempDesired)
285285
zoneData := sensonetEbus.GetZoneData(state.Zones, heatingPar.ZoneIndex)
286-
fmt.Printf(" Quickmodes: internal: \"%s\" heat pump: Dhw: \"%s\" Zone: \"%s\"\n", conn.GetCurrentQuickMode(), state.Hotwater.HwcSFMode, zoneData.SFMode)
286+
quickModeExpiresAt := conn.GetQuickModeExpiresAt()
287+
if quickModeExpiresAt == "" {
288+
quickModeExpiresAt = "(unknown)"
289+
}
290+
fmt.Printf(" Quickmodes: internal: \"%s\" until %s. Heat pump: Dhw: \"%s\" Zone: \"%s\"\n", conn.GetCurrentQuickMode(), quickModeExpiresAt, state.Hotwater.HwcSFMode, zoneData.SFMode)
287291
fmt.Println("---------------------------------------------------------------------------------------------------------------------")
288292
lastPrint = time.Now()
289293

0 commit comments

Comments
 (0)