Add support for editing individual lock code slots
Some checks failed
/ build-container (push) Has been cancelled
Some checks failed
/ build-container (push) Has been cancelled
This commit is contained in:
parent
6ec7434ab6
commit
cafbd63f98
7 changed files with 44 additions and 8 deletions
|
@ -111,9 +111,27 @@ func lockCodeEditHandler(c echo.Context) error {
|
|||
return err
|
||||
}
|
||||
|
||||
newCode := c.FormValue("code")
|
||||
|
||||
zwaveClient := c.Get(contextKeyZWaveClient).(*zwavejs.Client)
|
||||
|
||||
enabled := c.FormValue("enabled") == "on"
|
||||
enabledInt := 0
|
||||
if enabled {
|
||||
enabledInt = 1
|
||||
}
|
||||
err = zwaveClient.SetNodeValue(ctx, int(lock.ZwaveDeviceID), zwavejs.NodeValue{
|
||||
CCVersion: 1,
|
||||
CommandClassName: zwavejs.CommandClassNameUserCode,
|
||||
CommandClass: zwavejs.CommandClassUserCode,
|
||||
Endpoint: 0,
|
||||
Property: zwavejs.AnyType{Type: zwavejs.AnyTypeString, String: string(zwavejs.PropertyUserIDStatus)},
|
||||
PropertyName: zwavejs.AnyType{Type: zwavejs.AnyTypeString, String: string(zwavejs.PropertyUserIDStatus)},
|
||||
PropertyKey: zwavejs.AnyType{Type: zwavejs.AnyTypeInt, Int: int(slot)},
|
||||
}, zwavejs.AnyType{Type: zwavejs.AnyTypeInt, Int: enabledInt})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error pushing enabled state to lock %s (ZWaveDeviceID=%d ID=%d): %v", lock.Name, lock.ZwaveDeviceID, lock.ID, err)
|
||||
}
|
||||
|
||||
newCode := c.FormValue("code")
|
||||
err = zwaveClient.SetNodeValue(ctx, int(lock.ZwaveDeviceID), zwavejs.NodeValue{
|
||||
CCVersion: 1,
|
||||
CommandClassName: zwavejs.CommandClassNameUserCode,
|
||||
|
@ -131,7 +149,8 @@ func lockCodeEditHandler(c echo.Context) error {
|
|||
Lock: lockID,
|
||||
Slot: slot,
|
||||
Code: newCode,
|
||||
Enabled: true,
|
||||
Name: c.FormValue("name"),
|
||||
Enabled: enabled,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue