Reboot Nuki

This commit is contained in:
iranl
2024-11-17 20:43:08 +01:00
parent e67cd92aa7
commit b55164919b
10 changed files with 131 additions and 30 deletions

View File

@@ -1423,7 +1423,7 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
Nuki::CmdResult cmdResult;
const char *basicKeys[16] = {"name", "latitude", "longitude", "autoUnlatch", "pairingEnabled", "buttonEnabled", "ledEnabled", "ledBrightness", "timeZoneOffset", "dstMode", "fobAction1", "fobAction2", "fobAction3", "singleLock", "advertisingMode", "timeZone"};
const char *advancedKeys[22] = {"unlockedPositionOffsetDegrees", "lockedPositionOffsetDegrees", "singleLockedPositionOffsetDegrees", "unlockedToLockedTransitionOffsetDegrees", "lockNgoTimeout", "singleButtonPressAction", "doubleButtonPressAction", "detachedCylinder", "batteryType", "automaticBatteryTypeDetection", "unlatchDuration", "autoLockTimeOut", "autoUnLockDisabled", "nightModeEnabled", "nightModeStartTime", "nightModeEndTime", "nightModeAutoLockEnabled", "nightModeAutoUnlockDisabled", "nightModeImmediateLockOnStart", "autoLockEnabled", "immediateAutoLockEnabled", "autoUpdateEnabled"};
const char *advancedKeys[23] = {"unlockedPositionOffsetDegrees", "lockedPositionOffsetDegrees", "singleLockedPositionOffsetDegrees", "unlockedToLockedTransitionOffsetDegrees", "lockNgoTimeout", "singleButtonPressAction", "doubleButtonPressAction", "detachedCylinder", "batteryType", "automaticBatteryTypeDetection", "unlatchDuration", "autoLockTimeOut", "autoUnLockDisabled", "nightModeEnabled", "nightModeStartTime", "nightModeEndTime", "nightModeAutoLockEnabled", "nightModeAutoUnlockDisabled", "nightModeImmediateLockOnStart", "autoLockEnabled", "immediateAutoLockEnabled", "autoUpdateEnabled", "rebootNuki"};
bool basicUpdated = false;
bool advancedUpdated = false;
@@ -1794,7 +1794,7 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
}
}
for(int j=0; j < 22; j++)
for(int j=0; j < 23; j++)
{
if(json[advancedKeys[j]])
{
@@ -2257,6 +2257,19 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
jsonResult[advancedKeys[j]] = "invalidValue";
}
}
else if(strcmp(advancedKeys[j], "rebootNuki") == 0)
{
const uint8_t keyvalue = atoi(jsonchar);
if(keyvalue == 1)
{
cmdResult = _nukiLock.requestReboot();
}
else
{
jsonResult[advancedKeys[j]] = "invalidValue";
}
}
if(cmdResult != Nuki::CmdResult::Success)
{