hoffmation-base 3.0.0-alpha.9 → 3.0.0-alpha.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +5 -1
- package/lib/index.js +28 -25
- package/lib/liquid-pid.d.ts +2 -5
- package/lib/liquid-pid.js +3 -5
- package/lib/models/action/baseAction.d.ts +4 -0
- package/lib/models/action/baseAction.js +10 -0
- package/lib/models/action/batteryLevelChangeAction.d.ts +13 -0
- package/lib/models/action/batteryLevelChangeAction.js +14 -0
- package/lib/models/action/humiditySensorChangeAction.d.ts +16 -0
- package/lib/models/action/humiditySensorChangeAction.js +15 -0
- package/lib/models/action/index.d.ts +9 -0
- package/lib/models/action/index.js +29 -0
- package/lib/models/action/motionSensorAction.d.ts +16 -0
- package/lib/models/action/motionSensorAction.js +15 -0
- package/lib/models/action/presenceGroupAnyMovementAction.d.ts +7 -0
- package/lib/models/action/presenceGroupAnyMovementAction.js +13 -0
- package/lib/models/action/presenceGroupFirstEnterAction.d.ts +7 -0
- package/lib/models/action/presenceGroupFirstEnterAction.js +13 -0
- package/lib/models/action/presenceGroupLastLeftAction.d.ts +7 -0
- package/lib/models/action/presenceGroupLastLeftAction.js +13 -0
- package/lib/models/action/shutterPositionChangedAction.d.ts +13 -0
- package/lib/models/action/shutterPositionChangedAction.js +15 -0
- package/lib/models/action/temperatureSensorChangeAction.d.ts +16 -0
- package/lib/models/action/temperatureSensorChangeAction.js +15 -0
- package/lib/models/base64Image.d.ts +0 -1
- package/lib/models/blockAutomaticSettings.d.ts +23 -0
- package/lib/models/blockAutomaticSettings.js +19 -0
- package/lib/models/command/ShutterSetLevelCommand.d.ts +9 -1
- package/lib/models/command/ShutterSetLevelCommand.js +9 -1
- package/lib/models/command/WindowRestoreDesiredPositionCommand.d.ts +7 -1
- package/lib/models/command/WindowRestoreDesiredPositionCommand.js +7 -1
- package/lib/models/command/WindowSetDesiredPositionCommand.d.ts +11 -2
- package/lib/models/command/WindowSetDesiredPositionCommand.js +11 -2
- package/lib/models/command/WindowSetRolloByWeatherStatusCommand.d.ts +7 -1
- package/lib/models/command/WindowSetRolloByWeatherStatusCommand.js +7 -1
- package/lib/models/command/actuatorSetStateCommand.d.ts +18 -3
- package/lib/models/command/actuatorSetStateCommand.js +15 -6
- package/lib/models/command/actuatorToggleCommand.d.ts +7 -2
- package/lib/models/command/actuatorToggleCommand.js +7 -4
- package/lib/models/command/actuatorWriteStateToDeviceCommand.d.ts +8 -1
- package/lib/models/command/actuatorWriteStateToDeviceCommand.js +12 -1
- package/lib/models/command/baseCommand.d.ts +23 -2
- package/lib/models/command/baseCommand.js +41 -1
- package/lib/models/command/blockAutomaticCommand.d.ts +32 -0
- package/lib/models/command/blockAutomaticCommand.js +40 -0
- package/lib/models/command/blockAutomaticLiftBlockCommand.d.ts +18 -0
- package/lib/models/command/blockAutomaticLiftBlockCommand.js +23 -0
- package/lib/models/command/blockAutomaticUntilCommand.d.ts +27 -0
- package/lib/models/command/blockAutomaticUntilCommand.js +32 -0
- package/lib/models/command/commandSource.d.ts +19 -0
- package/lib/models/command/commandSource.js +20 -0
- package/lib/models/command/commandType.d.ts +11 -0
- package/lib/models/command/commandType.js +11 -0
- package/lib/models/command/dimmerSetLightCommand.d.ts +13 -8
- package/lib/models/command/dimmerSetLightCommand.js +20 -14
- package/lib/models/command/floorSetAllShuttersCommand.d.ts +6 -5
- package/lib/models/command/floorSetAllShuttersCommand.js +6 -5
- package/lib/models/command/index.d.ts +3 -0
- package/lib/models/command/index.js +7 -1
- package/lib/models/command/lampSetLightCommand.d.ts +13 -2
- package/lib/models/command/lampSetLightCommand.js +15 -4
- package/lib/models/command/lampSetTimeBasedCommand.d.ts +15 -8
- package/lib/models/command/lampSetTimeBasedCommand.js +9 -11
- package/lib/models/command/lampToggleLightCommand.d.ts +7 -6
- package/lib/models/command/lampToggleLightCommand.js +7 -6
- package/lib/models/command/ledSetLightCommand.d.ts +21 -11
- package/lib/models/command/ledSetLightCommand.js +27 -17
- package/lib/models/command/lightGroupSwitchTimeConditionalCommand.d.ts +8 -1
- package/lib/models/command/lightGroupSwitchTimeConditionalCommand.js +8 -1
- package/lib/models/command/restoreTargetAutomaticValueCommand.d.ts +7 -2
- package/lib/models/command/restoreTargetAutomaticValueCommand.js +7 -4
- package/lib/models/command/roomRestoreLightCommand.d.ts +7 -1
- package/lib/models/command/roomRestoreLightCommand.js +7 -1
- package/lib/models/command/roomRestoreShutterPositionCommand.d.ts +8 -1
- package/lib/models/command/roomRestoreShutterPositionCommand.js +8 -1
- package/lib/models/command/roomSetLightTimeBasedCommand.d.ts +5 -4
- package/lib/models/command/roomSetLightTimeBasedCommand.js +5 -4
- package/lib/models/command/shutterSunriseUpCommand.d.ts +7 -1
- package/lib/models/command/shutterSunriseUpCommand.js +7 -1
- package/lib/models/command/shutterSunsetDownCommand.d.ts +7 -1
- package/lib/models/command/shutterSunsetDownCommand.js +7 -1
- package/lib/models/command/wledSetLightCommand.d.ts +16 -2
- package/lib/models/command/wledSetLightCommand.js +23 -7
- package/lib/models/connectionCallbacks.d.ts +4 -4
- package/lib/models/connectionCallbacks.js +1 -0
- package/lib/models/deviceConfig.d.ts +3 -3
- package/lib/models/deviceSettings/acSettings.d.ts +23 -5
- package/lib/models/deviceSettings/acSettings.js +28 -8
- package/lib/models/deviceSettings/actuatorSettings.d.ts +13 -4
- package/lib/models/deviceSettings/actuatorSettings.js +19 -9
- package/lib/models/deviceSettings/cameraSettings.d.ts +12 -0
- package/lib/models/deviceSettings/cameraSettings.js +12 -0
- package/lib/models/deviceSettings/dachsSettings.d.ts +37 -1
- package/lib/models/deviceSettings/dachsSettings.js +47 -3
- package/lib/models/deviceSettings/deviceSettings.d.ts +10 -0
- package/lib/models/deviceSettings/deviceSettings.js +16 -0
- package/lib/models/deviceSettings/dimmerSettings.d.ts +20 -0
- package/lib/models/deviceSettings/dimmerSettings.js +20 -0
- package/lib/models/deviceSettings/garageDoorOpenerSettings.d.ts +0 -1
- package/lib/models/deviceSettings/garageDoorOpenerSettings.js +0 -1
- package/lib/models/deviceSettings/handleSettings.d.ts +9 -0
- package/lib/models/deviceSettings/handleSettings.js +9 -0
- package/lib/models/deviceSettings/heaterSettings.d.ts +21 -9
- package/lib/models/deviceSettings/heaterSettings.js +21 -9
- package/lib/models/deviceSettings/ledSettings.d.ts +66 -0
- package/lib/models/deviceSettings/ledSettings.js +76 -18
- package/lib/models/deviceSettings/motionSensorSettings.d.ts +5 -1
- package/lib/models/deviceSettings/motionSensorSettings.js +5 -1
- package/lib/models/deviceSettings/sceneSettings.d.ts +4 -0
- package/lib/models/deviceSettings/shutterSettings.d.ts +11 -3
- package/lib/models/deviceSettings/shutterSettings.js +11 -3
- package/lib/models/deviceSettings/sonosDeviceSettings.d.ts +4 -0
- package/lib/models/deviceSettings/sonosDeviceSettings.js +4 -0
- package/lib/models/deviceSettings/tvSettings.d.ts +4 -0
- package/lib/models/deviceSettings/victronDeviceSettings.d.ts +51 -0
- package/lib/models/deviceSettings/victronDeviceSettings.js +65 -9
- package/lib/models/deviceSettings/wledSettings.d.ts +48 -0
- package/lib/models/deviceSettings/wledSettings.js +37 -13
- package/lib/models/groupSettings/heatGroupSettings.d.ts +12 -1
- package/lib/models/groupSettings/heatGroupSettings.js +12 -1
- package/lib/models/iIdHolder.d.ts +18 -0
- package/lib/models/iJsonOmitKeys.d.ts +9 -0
- package/lib/models/index.d.ts +3 -1
- package/lib/models/index.js +4 -1
- package/lib/models/objectSettings.d.ts +5 -2
- package/lib/models/objectSettings.js +2 -2
- package/lib/models/persistence/EnergyCalculation.d.ts +27 -0
- package/lib/models/persistence/EnergyCalculation.js +30 -4
- package/lib/models/persistence/index.d.ts +0 -2
- package/lib/models/persistence/index.js +0 -2
- package/lib/models/rooms/RoomBase.d.ts +12 -1
- package/lib/models/rooms/RoomBase.js +17 -8
- package/lib/models/rooms/RoomSettings/RoomInitializationSettings.d.ts +2 -1
- package/lib/models/rooms/RoomSettings/RoomInitializationSettings.js +2 -2
- package/lib/models/rooms/RoomSettings/RoomSettingsController.d.ts +10 -1
- package/lib/models/rooms/RoomSettings/RoomSettingsController.js +2 -2
- package/lib/models/rooms/RoomSettings/iRoomDefaultSettings.d.ts +53 -3
- package/lib/models/rooms/RoomSettings/iRoomInitializationSettings.d.ts +10 -1
- package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.d.ts +4 -1
- package/lib/models/rooms/RoomSettings/roomDeviceAddingSettings.js +3 -0
- package/lib/models/rooms/RoomSettings/roomSettings.d.ts +55 -0
- package/lib/models/rooms/RoomSettings/roomSettings.js +55 -0
- package/lib/models/rooms/iRoomBase.d.ts +39 -0
- package/lib/models/rooms/iRoomImportEnforcer.d.ts +8 -0
- package/lib/models/timeCallback.d.ts +7 -0
- package/lib/models/timeCallback.js +16 -6
- package/lib/server/config/heatingMode.d.ts +2 -1
- package/lib/server/config/heatingMode.js +2 -1
- package/lib/server/config/iAsusConfig.d.ts +15 -0
- package/lib/server/config/iBlockAutomaticHandlerDefaults.d.ts +23 -0
- package/lib/server/config/iBlockAutomaticHandlerDefaults.js +2 -0
- package/lib/server/config/iBlueIrisSettings.d.ts +14 -0
- package/lib/server/config/iBluetoothTrackingSettings.d.ts +9 -0
- package/lib/server/config/iConfig.d.ts +94 -6
- package/lib/server/config/iDachsSettings.d.ts +16 -0
- package/lib/server/config/iDaikinSettings.d.ts +17 -0
- package/lib/server/config/iEnergyManagerSettings.d.ts +13 -0
- package/lib/server/config/iEspresenseSettings.d.ts +10 -0
- package/lib/server/config/iGoveeSettings.d.ts +9 -0
- package/lib/server/config/iGoveeSettings.js +2 -0
- package/lib/server/config/iHeaterSettings.d.ts +8 -0
- package/lib/server/config/iIobrokerSettigns.d.ts +8 -0
- package/lib/server/config/iLogSettings.d.ts +40 -1
- package/lib/server/config/iMp3Settings.d.ts +10 -0
- package/lib/server/config/iMuellSettings.d.ts +7 -0
- package/lib/server/config/iNewsSettings.d.ts +13 -0
- package/lib/server/config/iPersistenceSettings.d.ts +10 -0
- package/lib/server/config/iPollySettings.d.ts +22 -0
- package/lib/server/config/iRestSettings.d.ts +10 -0
- package/lib/server/config/iSonosSettings.d.ts +14 -0
- package/lib/server/config/iTelegramSettings.d.ts +17 -0
- package/lib/server/config/iTibberSettings.d.ts +10 -0
- package/lib/server/config/iTimePair.d.ts +9 -0
- package/lib/server/config/iTimeSettings.d.ts +9 -0
- package/lib/server/config/iTranslationSettings.d.ts +10 -0
- package/lib/server/config/iUnifiConnectionOptions.d.ts +31 -0
- package/lib/server/config/iUnifiSettings.d.ts +8 -0
- package/lib/server/config/iVictronSettings.d.ts +14 -0
- package/lib/server/config/iWeatherSettings.d.ts +13 -0
- package/lib/server/config/index.d.ts +2 -0
- package/lib/server/devices/DeviceCapability.d.ts +1 -0
- package/lib/server/devices/DeviceCapability.js +1 -0
- package/lib/server/devices/DeviceInfo.d.ts +9 -0
- package/lib/server/devices/DeviceInfo.js +6 -0
- package/lib/server/devices/Griffe.js +1 -2
- package/lib/server/devices/Heizgruppen.js +2 -2
- package/lib/server/devices/IoBrokerBaseDevice.d.ts +38 -20
- package/lib/server/devices/IoBrokerBaseDevice.js +40 -22
- package/lib/server/devices/IoBrokerDeviceInfo.d.ts +8 -6
- package/lib/server/devices/IoBrokerDeviceInfo.js +50 -46
- package/lib/server/devices/baseDeviceInterfaces/iAcDevice.d.ts +41 -3
- package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +18 -0
- package/lib/server/devices/baseDeviceInterfaces/iBaseDevice.d.ts +26 -1
- package/lib/server/devices/baseDeviceInterfaces/iBatteryDevice.d.ts +15 -7
- package/lib/server/devices/baseDeviceInterfaces/iBluetoothDetector.d.ts +15 -7
- package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +42 -0
- package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +46 -3
- package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +17 -2
- package/lib/server/devices/baseDeviceInterfaces/iEnergyManager.d.ts +36 -2
- package/lib/server/devices/baseDeviceInterfaces/iExcessEnergyConsumer.d.ts +30 -2
- package/lib/server/devices/baseDeviceInterfaces/iGarageDoorOpener.d.ts +21 -0
- package/lib/server/devices/baseDeviceInterfaces/iHandleSensor.d.ts +34 -0
- package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -5
- package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +19 -4
- package/lib/server/devices/baseDeviceInterfaces/iIlluminationSensor.d.ts +11 -0
- package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +7 -2
- package/lib/server/devices/baseDeviceInterfaces/iLedRgbCct.d.ts +20 -0
- package/lib/server/devices/baseDeviceInterfaces/iLoadMeter.d.ts +5 -0
- package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.d.ts +31 -0
- package/lib/server/devices/baseDeviceInterfaces/iMagnetSensor.js +2 -0
- package/lib/server/devices/baseDeviceInterfaces/iMotionSensor.d.ts +23 -3
- package/lib/server/devices/baseDeviceInterfaces/iRoomDevice.d.ts +6 -0
- package/lib/server/devices/baseDeviceInterfaces/iScene.d.ts +31 -2
- package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +25 -1
- package/lib/server/devices/baseDeviceInterfaces/iSmokeDetectorDevice.d.ts +12 -0
- package/lib/server/devices/baseDeviceInterfaces/iSpeaker.d.ts +30 -0
- package/lib/server/devices/baseDeviceInterfaces/iTemperatureSensor.d.ts +30 -5
- package/lib/server/devices/baseDeviceInterfaces/iTemporaryDisableAutomatic.d.ts +13 -0
- package/lib/server/devices/baseDeviceInterfaces/iTvDevice.d.ts +20 -0
- package/lib/server/devices/baseDeviceInterfaces/iVibrationSensor.d.ts +24 -5
- package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
- package/lib/server/devices/blueIris/cameraDevice.d.ts +49 -34
- package/lib/server/devices/blueIris/cameraDevice.js +75 -75
- package/lib/server/devices/button/button.d.ts +0 -1
- package/lib/server/devices/button/button.js +0 -4
- package/lib/server/devices/button/buttonCallback.d.ts +5 -0
- package/lib/server/devices/button/buttonCallback.js +10 -0
- package/lib/server/devices/button/buttonCapabilities.d.ts +12 -0
- package/lib/server/devices/button/buttonCapabilities.js +12 -0
- package/lib/server/devices/button/index.d.ts +1 -0
- package/lib/server/devices/button/index.js +3 -0
- package/lib/server/devices/dachs/dachs.d.ts +51 -11
- package/lib/server/devices/dachs/dachs.js +136 -23
- package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +23 -10
- package/lib/server/devices/dachs/dachsTemperatureSensor.js +28 -32
- package/lib/server/devices/dachs/interfaces/DachsClientOptions.d.ts +30 -0
- package/lib/server/devices/dachs/interfaces/KeyListEntity.d.ts +0 -8
- package/lib/server/devices/dachs/interfaces/KeyListEntity.js +0 -8
- package/lib/server/devices/dachs/interfaces/dachsInfluxDataPoint.d.ts +12 -0
- package/lib/server/devices/dachs/interfaces/influxDbConnectionOptions.d.ts +21 -1
- package/lib/server/devices/dachs/lib/dachsHttpClient.d.ts +5 -2
- package/lib/server/devices/dachs/lib/dachsHttpClient.js +5 -4
- package/lib/server/devices/device-cluster.d.ts +4 -1
- package/lib/server/devices/device-cluster.js +9 -4
- package/lib/server/devices/deviceType.d.ts +6 -0
- package/lib/server/devices/deviceType.js +6 -0
- package/lib/server/devices/deviceUpdater.d.ts +0 -3
- package/lib/server/devices/deviceUpdater.js +26 -4
- package/lib/server/devices/devices.d.ts +53 -7
- package/lib/server/devices/devices.js +83 -19
- package/lib/server/devices/espresense/detectedBluetoothDevice.d.ts +13 -0
- package/lib/server/devices/espresense/detectedBluetoothDevice.js +14 -1
- package/lib/server/devices/espresense/espresenseDevice.d.ts +31 -1
- package/lib/server/devices/espresense/espresenseDevice.js +29 -5
- package/lib/server/devices/espresense/trackedDistanceData.d.ts +12 -0
- package/lib/server/devices/espresense/trackedDistanceData.js +3 -0
- package/lib/server/devices/espresense/trilateration.d.ts +7 -0
- package/lib/server/devices/espresense/trilateration.js +7 -0
- package/lib/server/devices/espresense/trilaterationBasePoint.d.ts +6 -0
- package/lib/server/devices/espresense/trilaterationBasePoint.js +3 -0
- package/lib/server/devices/espresense/trilaterationPoint.d.ts +1 -1
- package/lib/server/devices/espresense/trilaterationPoint.js +3 -1
- package/lib/server/devices/groups/Window.d.ts +16 -6
- package/lib/server/devices/groups/Window.js +31 -14
- package/lib/server/devices/groups/base-group.d.ts +4 -0
- package/lib/server/devices/groups/base-group.js +3 -0
- package/lib/server/devices/groups/heatGroup.d.ts +8 -6
- package/lib/server/devices/groups/heatGroup.js +11 -11
- package/lib/server/devices/groups/lightGroup.d.ts +10 -2
- package/lib/server/devices/groups/lightGroup.js +20 -39
- package/lib/server/devices/groups/presenceGroup.d.ts +17 -6
- package/lib/server/devices/groups/presenceGroup.js +73 -63
- package/lib/server/devices/groups/tasterGroup.js +18 -9
- package/lib/server/devices/groups/windowGroup.d.ts +16 -1
- package/lib/server/devices/groups/windowGroup.js +24 -9
- package/lib/server/devices/hmIPDevices/hmIpAccessPoint.d.ts +1 -0
- package/lib/server/devices/hmIPDevices/hmIpAccessPoint.js +1 -0
- package/lib/server/devices/hmIPDevices/hmIpBewegung.d.ts +9 -6
- package/lib/server/devices/hmIPDevices/hmIpBewegung.js +10 -11
- package/lib/server/devices/hmIPDevices/hmIpDevice.d.ts +1 -2
- package/lib/server/devices/hmIPDevices/hmIpDevice.js +2 -3
- package/lib/server/devices/hmIPDevices/hmIpGriff.d.ts +23 -18
- package/lib/server/devices/hmIPDevices/hmIpGriff.js +39 -140
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +29 -18
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +51 -74
- package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +6 -6
- package/lib/server/devices/hmIPDevices/hmIpHeizung.js +8 -20
- package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +7 -1
- package/lib/server/devices/hmIPDevices/hmIpLampe.js +11 -7
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.d.ts +11 -10
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +12 -22
- package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
- package/lib/server/devices/hmIPDevices/hmIpRoll.js +27 -25
- package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +19 -5
- package/lib/server/devices/hmIPDevices/hmIpTaster.js +16 -19
- package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +5 -5
- package/lib/server/devices/hmIPDevices/hmIpTherm.js +8 -20
- package/lib/server/devices/hmIPDevices/hmIpTuer.d.ts +9 -1
- package/lib/server/devices/hmIPDevices/hmIpTuer.js +17 -4
- package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +27 -0
- package/lib/server/devices/hmIPDevices/hmIpWippe.js +3 -0
- package/lib/server/devices/iDeviceUpdater.d.ts +14 -0
- package/lib/server/devices/index.d.ts +8 -2
- package/lib/server/devices/index.js +11 -2
- package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
- package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -3
- package/lib/server/devices/models/WindowPosition.d.ts +3 -3
- package/lib/server/devices/models/WindowPosition.js +3 -3
- package/lib/server/devices/nameAmountValuePair.d.ts +5 -0
- package/lib/server/devices/nameAmountValuePair.js +10 -0
- package/lib/server/devices/scene/room-scene.d.ts +23 -7
- package/lib/server/devices/scene/room-scene.js +18 -4
- package/lib/server/devices/sharedFunctions/battery.d.ts +31 -0
- package/lib/server/devices/sharedFunctions/battery.js +65 -0
- package/lib/server/devices/sharedFunctions/handleSensor.d.ts +45 -0
- package/lib/server/devices/sharedFunctions/handleSensor.js +150 -0
- package/lib/server/devices/sharedFunctions/humiditySensor.d.ts +18 -0
- package/lib/server/devices/sharedFunctions/humiditySensor.js +46 -0
- package/lib/server/devices/sharedFunctions/index.d.ts +4 -0
- package/lib/server/devices/sharedFunctions/index.js +4 -0
- package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
- package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
- package/lib/server/devices/sharedFunctions/temperatureSensor.d.ts +31 -0
- package/lib/server/devices/sharedFunctions/temperatureSensor.js +57 -0
- package/lib/server/devices/shelly/index.d.ts +1 -0
- package/lib/server/devices/shelly/index.js +3 -1
- package/lib/server/devices/shelly/shellyActuator.d.ts +33 -0
- package/lib/server/devices/shelly/shellyActuator.js +84 -0
- package/lib/server/devices/shelly/shellyDevice.d.ts +2 -1
- package/lib/server/devices/shelly/shellyDevice.js +2 -1
- package/lib/server/devices/shelly/shellyTrv.d.ts +27 -19
- package/lib/server/devices/shelly/shellyTrv.js +39 -52
- package/lib/server/devices/smartGarden/index.d.ts +6 -0
- package/lib/server/devices/smartGarden/index.js +22 -0
- package/lib/server/devices/smartGarden/smartGardenDevice.d.ts +21 -0
- package/lib/server/devices/smartGarden/smartGardenDevice.js +63 -0
- package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.d.ts +9 -0
- package/lib/server/devices/smartGarden/smartGardenDeviceRegistrationInfo.js +13 -0
- package/lib/server/devices/smartGarden/smartGardenMower.d.ts +35 -0
- package/lib/server/devices/smartGarden/smartGardenMower.js +107 -0
- package/lib/server/devices/smartGarden/smartGardenSensor.d.ts +32 -0
- package/lib/server/devices/smartGarden/smartGardenSensor.js +76 -0
- package/lib/server/devices/smartGarden/smartGardenService.d.ts +7 -0
- package/lib/server/devices/smartGarden/smartGardenService.js +52 -0
- package/lib/server/devices/smartGarden/smartGardenValve.d.ts +36 -0
- package/lib/server/devices/smartGarden/smartGardenValve.js +105 -0
- package/lib/server/devices/tuya/tuyaDevice.d.ts +2 -1
- package/lib/server/devices/tuya/tuyaDevice.js +2 -1
- package/lib/server/devices/tuya/tuyaGarageOpener.d.ts +3 -0
- package/lib/server/devices/tuya/tuyaGarageOpener.js +3 -0
- package/lib/server/devices/tv/samsungTv.d.ts +1 -0
- package/lib/server/devices/tv/samsungTv.js +1 -0
- package/lib/server/devices/tv/tvDevice.d.ts +7 -1
- package/lib/server/devices/tv/tvDevice.js +4 -3
- package/lib/server/devices/velux/index.d.ts +4 -0
- package/lib/server/devices/velux/index.js +11 -0
- package/lib/server/devices/velux/veluxDevice.d.ts +13 -0
- package/lib/server/devices/velux/veluxDevice.js +43 -0
- package/lib/server/devices/velux/veluxDeviceRegistrationInfo.d.ts +9 -0
- package/lib/server/devices/velux/veluxDeviceRegistrationInfo.js +13 -0
- package/lib/server/devices/velux/veluxService.d.ts +7 -0
- package/lib/server/devices/velux/veluxService.js +44 -0
- package/lib/server/devices/velux/veluxShutter.d.ts +27 -0
- package/lib/server/devices/velux/veluxShutter.js +124 -0
- package/lib/server/devices/wledDevice.d.ts +15 -3
- package/lib/server/devices/wledDevice.js +42 -16
- package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +17 -4
- package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +30 -15
- package/lib/server/devices/zigbee/BaseDevices/index.d.ts +2 -0
- package/lib/server/devices/zigbee/BaseDevices/index.js +5 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +8 -17
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +25 -60
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +23 -13
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +34 -41
- package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.d.ts +16 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeLamp.js +35 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.d.ts +7 -7
- package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +14 -14
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +16 -8
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +25 -28
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +20 -16
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +35 -45
- package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -4
- package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +30 -21
- package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +9 -1
- package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +8 -1
- package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.d.ts +36 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeWindowHandle.js +82 -0
- package/lib/server/devices/zigbee/index.d.ts +1 -0
- package/lib/server/devices/zigbee/index.js +1 -0
- package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeAqaraMagnetContact.js +1 -0
- package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.d.ts +16 -0
- package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +16 -0
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.d.ts +6 -0
- package/lib/server/devices/zigbee/zigbeeAquaraMotion.js +7 -3
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.d.ts +47 -12
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +87 -33
- package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +16 -9
- package/lib/server/devices/zigbee/zigbeeAquaraWater.js +27 -37
- package/lib/server/devices/zigbee/zigbeeBlitzShp.d.ts +15 -5
- package/lib/server/devices/zigbee/zigbeeBlitzShp.js +22 -14
- package/lib/server/devices/zigbee/zigbeeEuroHeater.d.ts +10 -4
- package/lib/server/devices/zigbee/zigbeeEuroHeater.js +16 -10
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.d.ts +24 -10
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +33 -29
- package/lib/server/devices/zigbee/zigbeeIkeaShutter.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeIkeaShutter.js +2 -1
- package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.d.ts +2 -0
- package/lib/server/devices/zigbee/zigbeeIkeaSteckdose.js +3 -1
- package/lib/server/devices/zigbee/zigbeeIlluActuator.d.ts +1 -2
- package/lib/server/devices/zigbee/zigbeeIlluActuator.js +2 -11
- package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +1 -1
- package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +1 -1
- package/lib/server/devices/zigbee/zigbeeIlluLampe.d.ts +3 -10
- package/lib/server/devices/zigbee/zigbeeIlluLampe.js +3 -32
- package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.d.ts +1 -1
- package/lib/server/devices/zigbee/zigbeeIlluLedRGBCCT.js +1 -1
- package/lib/server/devices/zigbee/zigbeeIlluShutter.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeIlluShutter.js +5 -4
- package/lib/server/devices/zigbee/zigbeeInnr142C.d.ts +1 -1
- package/lib/server/devices/zigbee/zigbeeInnr142C.js +1 -1
- package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.d.ts +1 -1
- package/lib/server/devices/zigbee/zigbeeLinkindLedRgbCct.js +1 -1
- package/lib/server/devices/zigbee/zigbeeOsramDimmer.d.ts +1 -1
- package/lib/server/devices/zigbee/zigbeeOsramDimmer.js +1 -1
- package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeSMaBiTMagnetContact.js +1 -0
- package/lib/server/devices/zigbee/zigbeeSodaHandle.d.ts +34 -0
- package/lib/server/devices/zigbee/zigbeeSodaHandle.js +96 -0
- package/lib/server/devices/zigbee/zigbeeSonoffMotion.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +24 -19
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +38 -74
- package/lib/server/devices/zigbee/zigbeeTuyaValve.d.ts +10 -3
- package/lib/server/devices/zigbee/zigbeeTuyaValve.js +11 -6
- package/lib/server/devices/zigbee/zigbeeUbisysActuator.d.ts +9 -2
- package/lib/server/devices/zigbee/zigbeeUbisysActuator.js +10 -8
- package/lib/server/devices/zigbee/zigbeeUbisysLampe.d.ts +8 -9
- package/lib/server/devices/zigbee/zigbeeUbisysLampe.js +14 -24
- package/lib/server/devices/zigbee/zigbeeUbisysShutter.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeUbisysShutter.js +2 -1
- package/lib/server/ioBroker/connection.d.ts +21 -22
- package/lib/server/ioBroker/connection.js +50 -33
- package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
- package/lib/server/ioBroker/ioBroker.main.js +12 -5
- package/lib/server/ioBroker/iobrokerConnectionLogging.d.ts +3 -0
- package/lib/server/ioBroker/iobrokerConnectionLogging.js +4 -0
- package/lib/server/ioBroker/socketIOConnectOptions.d.ts +2 -2
- package/lib/server/ioBroker/socketIOConnectOptions.js +1 -0
- package/lib/server/ioBroker/socketIOVisCommand.d.ts +5 -1
- package/lib/server/ioBroker/socketIOVisCommand.js +1 -0
- package/lib/server/services/ShutterService.js +7 -6
- package/lib/server/services/Sonos/OwnSonosDevices.d.ts +3 -0
- package/lib/server/services/Sonos/OwnSonosDevices.js +3 -0
- package/lib/server/services/Sonos/mp3-server.d.ts +3 -1
- package/lib/server/services/Sonos/mp3-server.js +3 -1
- package/lib/server/services/Sonos/own-sonos-device.d.ts +4 -1
- package/lib/server/services/Sonos/own-sonos-device.js +4 -4
- package/lib/server/services/Sonos/polly-service.d.ts +7 -1
- package/lib/server/services/Sonos/polly-service.js +10 -8
- package/lib/server/services/Sonos/sonos-service.d.ts +1 -5
- package/lib/server/services/Sonos/sonos-service.js +19 -18
- package/lib/server/services/Telegram/telegram-Commands.js +5 -5
- package/lib/server/services/Telegram/telegram-service.d.ts +2 -1
- package/lib/server/services/Telegram/telegram-service.js +8 -3
- package/lib/server/services/Translation/IRessourceObject.d.ts +13 -0
- package/lib/server/services/Translation/IRessourceObject.js +2 -0
- package/lib/server/services/Translation/iRessources.d.ts +1 -4
- package/lib/server/services/Translation/index.d.ts +1 -0
- package/lib/server/services/Translation/res.d.ts +34 -19
- package/lib/server/services/Translation/res.js +34 -19
- package/lib/server/services/ac/ac-device.d.ts +50 -9
- package/lib/server/services/ac/ac-device.js +121 -41
- package/lib/server/services/ac/daikin-service.js +4 -3
- package/lib/server/services/ac/own-ac-devices.d.ts +3 -0
- package/lib/server/services/ac/own-ac-devices.js +3 -0
- package/lib/server/services/ac/own-daikin-device.d.ts +25 -0
- package/lib/server/services/ac/own-daikin-device.js +40 -7
- package/lib/server/services/api/api-service.d.ts +118 -53
- package/lib/server/services/api/api-service.js +170 -80
- package/lib/server/services/blockAutomaticHandler.d.ts +13 -8
- package/lib/server/services/blockAutomaticHandler.js +34 -15
- package/lib/server/services/calendar/index.d.ts +1 -0
- package/lib/server/services/calendar/index.js +3 -0
- package/lib/server/services/calendar/muell-tonne.d.ts +11 -1
- package/lib/server/services/calendar/muell-tonne.js +10 -0
- package/lib/server/services/calendar/m/303/274ll-service.d.ts +23 -8
- package/lib/server/services/calendar/m/303/274ll-service.js +11 -5
- package/lib/server/services/calendar/name-date-pair.d.ts +5 -0
- package/lib/server/services/calendar/name-date-pair.js +10 -0
- package/lib/server/services/dbo/iPersist.d.ts +103 -0
- package/lib/server/services/dbo/postgreSqlPersist.d.ts +23 -0
- package/lib/server/services/dbo/postgreSqlPersist.js +29 -6
- package/lib/server/services/file-info.d.ts +5 -0
- package/lib/server/services/file-info.js +10 -0
- package/lib/server/services/govee/govee-device-data.d.ts +25 -0
- package/lib/server/services/govee/govee-device-data.js +2 -0
- package/lib/server/services/govee/govee-service.d.ts +7 -9
- package/lib/server/services/govee/govee-service.js +73 -48
- package/lib/server/services/govee/own-govee-device.d.ts +20 -17
- package/lib/server/services/govee/own-govee-device.js +72 -58
- package/lib/server/services/govee/own-govee-devices.d.ts +3 -0
- package/lib/server/services/govee/own-govee-devices.js +3 -0
- package/lib/server/services/https-service.d.ts +3 -2
- package/lib/server/services/https-service.js +4 -3
- package/lib/server/services/index.d.ts +1 -0
- package/lib/server/services/index.js +3 -0
- package/lib/server/services/log-service/index.d.ts +1 -0
- package/lib/server/services/log-service/index.js +3 -0
- package/lib/server/services/log-service/log-debug-type.d.ts +13 -0
- package/lib/server/services/log-service/log-debug-type.js +17 -0
- package/lib/server/services/log-service/log-filter-data.d.ts +21 -12
- package/lib/server/services/log-service/log-filter-data.js +6 -15
- package/lib/server/services/log-service/log-service.d.ts +17 -4
- package/lib/server/services/log-service/log-service.js +30 -17
- package/lib/server/services/news-service.d.ts +9 -7
- package/lib/server/services/news-service.js +14 -15
- package/lib/server/services/room-service/room-service.d.ts +20 -4
- package/lib/server/services/room-service/room-service.js +26 -10
- package/lib/server/services/settings-service.d.ts +6 -2
- package/lib/server/services/settings-service.js +3 -2
- package/lib/server/services/time-callback-service.js +1 -1
- package/lib/server/services/utils/RGB.d.ts +6 -0
- package/lib/server/services/utils/RGB.js +11 -0
- package/lib/server/services/utils/catchEmResult.d.ts +5 -0
- package/lib/server/services/utils/catchEmResult.js +10 -0
- package/lib/server/services/utils/energy-consumer-state-change.d.ts +6 -0
- package/lib/server/services/utils/energy-consumer-state-change.js +10 -0
- package/lib/server/services/utils/energy-manager-utils.d.ts +3 -14
- package/lib/server/services/utils/energy-manager-utils.js +2 -2
- package/lib/server/services/utils/iDisposeable.d.ts +6 -0
- package/lib/server/services/utils/index.d.ts +4 -1
- package/lib/server/services/utils/index.js +8 -1
- package/lib/server/services/utils/{ringstorage.d.ts → ringStorage.d.ts} +1 -1
- package/lib/server/services/utils/{ringstorage.js → ringStorage.js} +3 -3
- package/lib/server/services/utils/utils.d.ts +9 -14
- package/lib/server/services/utils/utils.js +5 -1
- package/lib/server/services/victron/victron-device.d.ts +21 -10
- package/lib/server/services/victron/victron-device.js +69 -25
- package/lib/server/services/weather/index.d.ts +2 -0
- package/lib/server/services/weather/index.js +3 -0
- package/lib/server/services/weather/rain-next-minutes-info.d.ts +5 -0
- package/lib/server/services/weather/rain-next-minutes-info.js +10 -0
- package/lib/server/services/weather/weather-current.d.ts +0 -2
- package/lib/server/services/weather/weather-feelsLike.d.ts +15 -0
- package/lib/server/services/weather/weather-response.d.ts +16 -0
- package/lib/server/services/weather/weather-response.js +2 -0
- package/lib/server/services/weather/weather-service.d.ts +16 -18
- package/lib/server/services/weather/weather-service.js +39 -24
- package/lib/server/services/weather/weather-temp.d.ts +21 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +31 -31
- package/lib/models/iTemperaturDataPoint.d.ts +0 -9
- package/lib/models/persistence/RoomDetailInfo.d.ts +0 -6
- package/lib/models/persistence/RoomDetailInfo.js +0 -11
- package/lib/models/persistence/temperaturDataPoint.d.ts +0 -10
- package/lib/models/persistence/temperaturDataPoint.js +0 -14
- /package/lib/models/{iTemperaturDataPoint.js → iJsonOmitKeys.js} +0 -0
|
@@ -1,64 +1,82 @@
|
|
|
1
1
|
import { iRoomDevice } from './baseDeviceInterfaces';
|
|
2
2
|
import { LogDebugType } from '../services';
|
|
3
|
-
import { DeviceSettings, LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
|
|
3
|
+
import { DeviceSettings, iJsonOmitKeys, LogLevel, RoomBase, RoomDeviceAddingSettings } from '../../models';
|
|
4
4
|
import { IOBrokerConnection } from '../ioBroker';
|
|
5
5
|
import { DeviceType } from './deviceType';
|
|
6
6
|
import { IoBrokerDeviceInfo } from './IoBrokerDeviceInfo';
|
|
7
7
|
import { DeviceCapability } from './DeviceCapability';
|
|
8
|
-
export declare abstract class IoBrokerBaseDevice implements iRoomDevice {
|
|
8
|
+
export declare abstract class IoBrokerBaseDevice implements iRoomDevice, iJsonOmitKeys {
|
|
9
9
|
protected _info: IoBrokerDeviceInfo;
|
|
10
10
|
deviceType: DeviceType;
|
|
11
|
-
|
|
11
|
+
/** @inheritDoc */
|
|
12
|
+
readonly jsonOmitKeys: string[];
|
|
13
|
+
/**
|
|
14
|
+
* The settings for adding devices to Rooms
|
|
15
|
+
*/
|
|
12
16
|
static roomAddingSettings: {
|
|
13
17
|
[id: string]: RoomDeviceAddingSettings;
|
|
14
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* @inheritDoc
|
|
21
|
+
* @default undefined (no Settings)
|
|
22
|
+
*/
|
|
23
|
+
settings: DeviceSettings | undefined;
|
|
15
24
|
private _room;
|
|
25
|
+
/** @inheritDoc */
|
|
16
26
|
readonly deviceCapabilities: DeviceCapability[];
|
|
27
|
+
protected _debounceStateDelay: number;
|
|
28
|
+
protected _lastWrite: number;
|
|
29
|
+
protected stateMap: Map<string, ioBroker.State>;
|
|
30
|
+
/** @inheritDoc */
|
|
17
31
|
get customName(): string;
|
|
32
|
+
/** @inheritDoc */
|
|
18
33
|
get room(): RoomBase;
|
|
19
34
|
protected readonly individualStateCallbacks: Map<string, Array<(val: ioBroker.StateValue) => void>>;
|
|
20
35
|
protected constructor(_info: IoBrokerDeviceInfo, deviceType: DeviceType);
|
|
36
|
+
/** @inheritDoc */
|
|
21
37
|
get id(): string;
|
|
22
38
|
/**
|
|
23
39
|
* Getter info
|
|
24
|
-
* @
|
|
40
|
+
* @returns The device info
|
|
25
41
|
*/
|
|
26
42
|
get info(): IoBrokerDeviceInfo;
|
|
27
|
-
/**
|
|
28
|
-
* Setter info
|
|
29
|
-
* @param {IoBrokerDeviceInfo} value
|
|
30
|
-
*/
|
|
31
|
-
set info(value: IoBrokerDeviceInfo);
|
|
32
|
-
/**
|
|
33
|
-
* Getter ioConn
|
|
34
|
-
* @return {IOBrokerConnection}
|
|
35
|
-
*/
|
|
36
43
|
get ioConn(): IOBrokerConnection | undefined;
|
|
37
44
|
static addRoom(shortName: string, settings: RoomDeviceAddingSettings): void;
|
|
38
45
|
static checkMissing(): void;
|
|
46
|
+
/** @inheritDoc */
|
|
39
47
|
loadDeviceSettings(): void;
|
|
40
48
|
/**
|
|
41
49
|
* Allows to react on the state change of a given state with the passed cb
|
|
42
|
-
* @param
|
|
43
|
-
* @param
|
|
50
|
+
* @param stateName - Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
|
|
51
|
+
* @param cb - Desired Callback Action, with passed ioBroker.StateValue
|
|
44
52
|
*/
|
|
45
53
|
addIndividualStateCallback(stateName: string, cb: (val: ioBroker.StateValue) => void): void;
|
|
46
54
|
/**
|
|
47
55
|
* Returns whether a connection to ioBroker is established or not
|
|
48
|
-
* @param showError If true, an error message will be written to the log if the connection is not established
|
|
56
|
+
* @param showError - If true, an error message will be written to the log if the connection is not established
|
|
57
|
+
* @returns Whether a connection exists
|
|
49
58
|
*/
|
|
50
59
|
checkIoConnection(showError?: boolean): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Updates the state of a given data point
|
|
62
|
+
* @param {string[]} idSplit - ID of the data point
|
|
63
|
+
* @param {ioBroker.State} state - New state
|
|
64
|
+
* @param {boolean} initial - Whether this is during the initial update
|
|
65
|
+
* @param {boolean} pOverride - Whether the child class did override this method
|
|
66
|
+
*/
|
|
51
67
|
abstract update(idSplit: string[], state: ioBroker.State, initial: boolean, pOverride: boolean): void;
|
|
52
68
|
log(level: LogLevel, message: string, logDebugType?: LogDebugType): void;
|
|
69
|
+
/** @inheritDoc */
|
|
53
70
|
toJSON(): Partial<IoBrokerBaseDevice>;
|
|
71
|
+
/** @inheritDoc */
|
|
54
72
|
persistDeviceInfo(): void;
|
|
55
73
|
protected addToCorrectRoom(): void;
|
|
56
74
|
/**
|
|
57
75
|
* Sets the state of a given data point and returns true if that was successful.
|
|
58
|
-
* @param pointId Data point to write to
|
|
59
|
-
* @param state Data to write
|
|
60
|
-
* @param onSuccess Callback to run on successfully written data
|
|
61
|
-
* @param onError Callback to run if an error has occurred during writing the data
|
|
76
|
+
* @param pointId - Data point to write to
|
|
77
|
+
* @param state - Data to write
|
|
78
|
+
* @param onSuccess - Callback to run on successfully written data
|
|
79
|
+
* @param onError - Callback to run if an error has occurred during writing the data
|
|
62
80
|
*/
|
|
63
81
|
protected setState(pointId: string, state: string | number | boolean | ioBroker.State | ioBroker.SettableState | null, onSuccess?: (() => void) | undefined, onError?: ((error: Error) => void) | undefined): void;
|
|
64
82
|
}
|
|
@@ -5,9 +5,11 @@ const services_1 = require("../services");
|
|
|
5
5
|
const models_1 = require("../../models");
|
|
6
6
|
const ioBroker_1 = require("../ioBroker");
|
|
7
7
|
class IoBrokerBaseDevice {
|
|
8
|
+
/** @inheritDoc */
|
|
8
9
|
get customName() {
|
|
9
10
|
return this.info.customName;
|
|
10
11
|
}
|
|
12
|
+
/** @inheritDoc */
|
|
11
13
|
get room() {
|
|
12
14
|
if (this._room === undefined) {
|
|
13
15
|
this._room = services_1.Utils.guard(services_1.API.getRoom(this.info.room));
|
|
@@ -17,14 +19,26 @@ class IoBrokerBaseDevice {
|
|
|
17
19
|
constructor(_info, deviceType) {
|
|
18
20
|
this._info = _info;
|
|
19
21
|
this.deviceType = deviceType;
|
|
22
|
+
/** @inheritDoc */
|
|
23
|
+
this.jsonOmitKeys = ['individualStateCallbacks'];
|
|
24
|
+
/**
|
|
25
|
+
* @inheritDoc
|
|
26
|
+
* @default undefined (no Settings)
|
|
27
|
+
*/
|
|
20
28
|
this.settings = undefined;
|
|
21
29
|
this._room = undefined;
|
|
30
|
+
/** @inheritDoc */
|
|
22
31
|
this.deviceCapabilities = [];
|
|
32
|
+
// If configured > 0, this indicates the minimum time between state writes in ms
|
|
33
|
+
this._debounceStateDelay = 0;
|
|
34
|
+
this._lastWrite = 0;
|
|
35
|
+
this.stateMap = new Map();
|
|
23
36
|
this.individualStateCallbacks = new Map();
|
|
24
37
|
this.addToCorrectRoom();
|
|
25
38
|
this.persistDeviceInfo();
|
|
26
39
|
services_1.Utils.guardedTimeout(this.loadDeviceSettings, 300, this);
|
|
27
40
|
}
|
|
41
|
+
/** @inheritDoc */
|
|
28
42
|
get id() {
|
|
29
43
|
const result = services_1.Utils.guard(this.info.allDevicesKey);
|
|
30
44
|
if (result === '0' || result === '1') {
|
|
@@ -34,28 +48,17 @@ class IoBrokerBaseDevice {
|
|
|
34
48
|
}
|
|
35
49
|
/**
|
|
36
50
|
* Getter info
|
|
37
|
-
* @
|
|
51
|
+
* @returns The device info
|
|
38
52
|
*/
|
|
39
53
|
get info() {
|
|
40
54
|
return this._info;
|
|
41
55
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Setter info
|
|
44
|
-
* @param {IoBrokerDeviceInfo} value
|
|
45
|
-
*/
|
|
46
|
-
set info(value) {
|
|
47
|
-
this._info = value;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Getter ioConn
|
|
51
|
-
* @return {IOBrokerConnection}
|
|
52
|
-
*/
|
|
53
56
|
get ioConn() {
|
|
54
57
|
return ioBroker_1.ioBrokerMain.iOConnection;
|
|
55
58
|
}
|
|
56
59
|
static addRoom(shortName, settings) {
|
|
57
60
|
if (this.roomAddingSettings[shortName] !== undefined) {
|
|
58
|
-
services_1.ServerLogService.writeLog(models_1.LogLevel.Alert, `Es gibt bereits ein Registrat für
|
|
61
|
+
services_1.ServerLogService.writeLog(models_1.LogLevel.Alert, `Es gibt bereits ein Registrat für Roomsetings für den Raumnamen "${shortName}"`);
|
|
59
62
|
return;
|
|
60
63
|
}
|
|
61
64
|
this.roomAddingSettings[shortName] = settings;
|
|
@@ -65,14 +68,15 @@ class IoBrokerBaseDevice {
|
|
|
65
68
|
this.roomAddingSettings[rName].checkMissing();
|
|
66
69
|
}
|
|
67
70
|
}
|
|
71
|
+
/** @inheritDoc */
|
|
68
72
|
loadDeviceSettings() {
|
|
69
73
|
var _a;
|
|
70
74
|
(_a = this.settings) === null || _a === void 0 ? void 0 : _a.initializeFromDb(this);
|
|
71
75
|
}
|
|
72
76
|
/**
|
|
73
77
|
* Allows to react on the state change of a given state with the passed cb
|
|
74
|
-
* @param
|
|
75
|
-
* @param
|
|
78
|
+
* @param stateName - Last part of the id e.g. "available" not "zigbee.0.00158d00053d3e4b.available"
|
|
79
|
+
* @param cb - Desired Callback Action, with passed ioBroker.StateValue
|
|
76
80
|
*/
|
|
77
81
|
addIndividualStateCallback(stateName, cb) {
|
|
78
82
|
let arr = this.individualStateCallbacks.get(stateName);
|
|
@@ -86,7 +90,8 @@ class IoBrokerBaseDevice {
|
|
|
86
90
|
}
|
|
87
91
|
/**
|
|
88
92
|
* Returns whether a connection to ioBroker is established or not
|
|
89
|
-
* @param showError If true, an error message will be written to the log if the connection is not established
|
|
93
|
+
* @param showError - If true, an error message will be written to the log if the connection is not established
|
|
94
|
+
* @returns Whether a connection exists
|
|
90
95
|
*/
|
|
91
96
|
checkIoConnection(showError = false) {
|
|
92
97
|
if (!this.ioConn && showError) {
|
|
@@ -102,9 +107,11 @@ class IoBrokerBaseDevice {
|
|
|
102
107
|
debugType: logDebugType,
|
|
103
108
|
});
|
|
104
109
|
}
|
|
110
|
+
/** @inheritDoc */
|
|
105
111
|
toJSON() {
|
|
106
|
-
return services_1.Utils.jsonFilter(this,
|
|
112
|
+
return services_1.Utils.jsonFilter(this, this.jsonOmitKeys, ['_room']);
|
|
107
113
|
}
|
|
114
|
+
/** @inheritDoc */
|
|
108
115
|
persistDeviceInfo() {
|
|
109
116
|
services_1.Utils.guardedTimeout(() => {
|
|
110
117
|
var _a;
|
|
@@ -142,23 +149,31 @@ class IoBrokerBaseDevice {
|
|
|
142
149
|
}
|
|
143
150
|
/**
|
|
144
151
|
* Sets the state of a given data point and returns true if that was successful.
|
|
145
|
-
* @param pointId Data point to write to
|
|
146
|
-
* @param state Data to write
|
|
147
|
-
* @param onSuccess Callback to run on successfully written data
|
|
148
|
-
* @param onError Callback to run if an error has occurred during writing the data
|
|
152
|
+
* @param pointId - Data point to write to
|
|
153
|
+
* @param state - Data to write
|
|
154
|
+
* @param onSuccess - Callback to run on successfully written data
|
|
155
|
+
* @param onError - Callback to run if an error has occurred during writing the data
|
|
149
156
|
*/
|
|
150
157
|
setState(pointId, state, onSuccess = undefined, onError = undefined) {
|
|
151
158
|
var _a;
|
|
152
159
|
if (!this.checkIoConnection(true)) {
|
|
153
160
|
return;
|
|
154
161
|
}
|
|
162
|
+
if (this._debounceStateDelay > 0 && services_1.Utils.nowMS() - this._lastWrite < this._debounceStateDelay) {
|
|
163
|
+
services_1.Utils.guardedTimeout(() => {
|
|
164
|
+
this.log(models_1.LogLevel.Trace, `Debounced write for ${pointId} to ${state}`);
|
|
165
|
+
this.setState(pointId, state, onSuccess, onError);
|
|
166
|
+
}, this._debounceStateDelay, this);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
this._lastWrite = services_1.Utils.nowMS();
|
|
155
170
|
(_a = this.ioConn) === null || _a === void 0 ? void 0 : _a.setState(pointId, state, (err) => {
|
|
156
171
|
if (err) {
|
|
157
172
|
if (onError) {
|
|
158
173
|
onError(err);
|
|
159
174
|
}
|
|
160
175
|
else {
|
|
161
|
-
|
|
176
|
+
this.log(models_1.LogLevel.Error, `Error occured while setting state "${pointId}" to "${state}": ${err}`);
|
|
162
177
|
}
|
|
163
178
|
return;
|
|
164
179
|
}
|
|
@@ -169,4 +184,7 @@ class IoBrokerBaseDevice {
|
|
|
169
184
|
}
|
|
170
185
|
}
|
|
171
186
|
exports.IoBrokerBaseDevice = IoBrokerBaseDevice;
|
|
187
|
+
/**
|
|
188
|
+
* The settings for adding devices to Rooms
|
|
189
|
+
*/
|
|
172
190
|
IoBrokerBaseDevice.roomAddingSettings = {};
|
|
@@ -6,17 +6,19 @@ export declare class IoBrokerDeviceInfo extends DeviceInfo {
|
|
|
6
6
|
deviceRoomIndex: number;
|
|
7
7
|
type: 'device' | 'channel' | 'state';
|
|
8
8
|
fullID: string;
|
|
9
|
-
channel?: number;
|
|
10
|
-
valueName?: string;
|
|
11
9
|
devConf: deviceConfig;
|
|
12
10
|
static idSplitter(id: string): string[];
|
|
13
11
|
private static replaceInvalidIdChars;
|
|
14
12
|
/**
|
|
15
13
|
* Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
*
|
|
14
|
+
* @param pDevConf - The device Config based on the extracted devices.json from ioBroker
|
|
15
|
+
* @param deviceId - The id of the device
|
|
16
|
+
* @param deviceType - The type of the device
|
|
17
|
+
* @param room - The room id of the device
|
|
18
|
+
* @param deviceRoomIndex - Index of this device in regards to the devicetype.
|
|
19
19
|
*/
|
|
20
|
-
constructor(pDevConf: deviceConfig,
|
|
20
|
+
constructor(pDevConf: deviceConfig, deviceId: string, deviceType: string, room: string, deviceRoomIndex: number);
|
|
21
|
+
static byStateJsSplit(pDevConf: deviceConfig): IoBrokerDeviceInfo;
|
|
22
|
+
static byDeviceConfig(pDevConf: deviceConfig): IoBrokerDeviceInfo;
|
|
21
23
|
toJSON(): Partial<IoBrokerDeviceInfo>;
|
|
22
24
|
}
|
|
@@ -19,59 +19,63 @@ class IoBrokerDeviceInfo extends DeviceInfo_1.DeviceInfo {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Extracts the relevant infos from the passed deviceConfig and combines them in a new Info object
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
*
|
|
22
|
+
* @param pDevConf - The device Config based on the extracted devices.json from ioBroker
|
|
23
|
+
* @param deviceId - The id of the device
|
|
24
|
+
* @param deviceType - The type of the device
|
|
25
|
+
* @param room - The room id of the device
|
|
26
|
+
* @param deviceRoomIndex - Index of this device in regards to the devicetype.
|
|
25
27
|
*/
|
|
26
|
-
constructor(pDevConf,
|
|
28
|
+
constructor(pDevConf, deviceId, deviceType, room, deviceRoomIndex) {
|
|
27
29
|
super();
|
|
28
30
|
this.devConf = pDevConf;
|
|
29
31
|
this.type = pDevConf.type;
|
|
30
|
-
const idSplit = IoBrokerDeviceInfo.idSplitter(pDevConf._id);
|
|
31
32
|
this.fullID = pDevConf._id;
|
|
32
|
-
this.devID =
|
|
33
|
+
this.devID = deviceId;
|
|
33
34
|
this.fullName = pDevConf.common.name;
|
|
35
|
+
this.deviceType = deviceType;
|
|
36
|
+
this.deviceRoomIndex = deviceRoomIndex;
|
|
37
|
+
this.room = room;
|
|
38
|
+
}
|
|
39
|
+
static byStateJsSplit(pDevConf) {
|
|
34
40
|
const nameSplit = pDevConf.common.name.split('-');
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
this.deviceRoomIndex = nameSplit.length >= 4 ? Number(nameSplit[3]) : 0;
|
|
74
|
-
}
|
|
41
|
+
const idSplit = IoBrokerDeviceInfo.idSplitter(pDevConf._id);
|
|
42
|
+
/**
|
|
43
|
+
* Name-Split
|
|
44
|
+
* 0: Indikator own "00"
|
|
45
|
+
* 1: "EnergyManager"
|
|
46
|
+
* 2: Raum
|
|
47
|
+
* 3: Was für ein Gerät
|
|
48
|
+
* 4: Index dieses Gerätes im Raum (ggf. + :Channel)
|
|
49
|
+
* 5?: Name des Wertes
|
|
50
|
+
*/
|
|
51
|
+
const deviceType = nameSplit[1];
|
|
52
|
+
const room = nameSplit.length >= 3 ? nameSplit[2] : '';
|
|
53
|
+
const deviceRoomIndex = nameSplit.length >= 4 ? Number(nameSplit[3]) : 0;
|
|
54
|
+
return new IoBrokerDeviceInfo(pDevConf, idSplit[2], deviceType, room, deviceRoomIndex);
|
|
55
|
+
}
|
|
56
|
+
static byDeviceConfig(pDevConf) {
|
|
57
|
+
const nameSplit = pDevConf.common.name.split('-');
|
|
58
|
+
const idSplit = IoBrokerDeviceInfo.idSplitter(pDevConf._id);
|
|
59
|
+
/**
|
|
60
|
+
* 0: hm-rpc
|
|
61
|
+
* 1: rcpInstance
|
|
62
|
+
* 2: Device ID
|
|
63
|
+
* 3?: Channel
|
|
64
|
+
* 4?: ValueName
|
|
65
|
+
*/
|
|
66
|
+
/**
|
|
67
|
+
* Name-Split
|
|
68
|
+
* 0: Indikator own "00"
|
|
69
|
+
* 1: "HmIP"
|
|
70
|
+
* 2: Raum
|
|
71
|
+
* 3: Was für ein Gerät
|
|
72
|
+
* 4: Index dieses Gerätes im Raum (ggf. + : Channel)
|
|
73
|
+
* 5?: Name des Wertes
|
|
74
|
+
*/
|
|
75
|
+
const room = nameSplit[2];
|
|
76
|
+
const deviceType = nameSplit[3];
|
|
77
|
+
const deviceRoomIndex = Number(nameSplit[4].split(':')[0]);
|
|
78
|
+
return new IoBrokerDeviceInfo(pDevConf, idSplit[2], deviceType, room, deviceRoomIndex);
|
|
75
79
|
}
|
|
76
80
|
toJSON() {
|
|
77
81
|
return lodash_1.default.omit(this, ['devConf']);
|
|
@@ -1,18 +1,56 @@
|
|
|
1
1
|
import { AcSettings } from '../../../models';
|
|
2
2
|
import { AcMode } from '../../services';
|
|
3
3
|
import { iBaseDevice } from './iBaseDevice';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for normal air-conditioning devices
|
|
6
|
+
*
|
|
7
|
+
* For devices with {@link DeviceCapability.ac} capability.
|
|
8
|
+
* TODO: Migrate to new Command-Based System
|
|
9
|
+
* TODO: Extend from iActuator
|
|
10
|
+
*/
|
|
4
11
|
export interface iAcDevice extends iBaseDevice {
|
|
12
|
+
/**
|
|
13
|
+
* The settings of the air-conditioning device
|
|
14
|
+
*/
|
|
5
15
|
settings: AcSettings;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the air-conditioning device is currently on
|
|
18
|
+
*/
|
|
6
19
|
readonly on: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The temperature of the room where this device is located
|
|
22
|
+
*/
|
|
23
|
+
readonly roomTemperature: number;
|
|
24
|
+
/**
|
|
25
|
+
* The current temperature of the air-conditioning device in degrees Celsius
|
|
26
|
+
*/
|
|
7
27
|
readonly temperature: number;
|
|
28
|
+
/**
|
|
29
|
+
* The current state of the air-conditioning device
|
|
30
|
+
*/
|
|
8
31
|
readonly mode: AcMode;
|
|
9
32
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @param
|
|
33
|
+
* This function should be called to inform the air-conditioning device about a change of the room temperature
|
|
34
|
+
* @param newTemperatur - The new temperature of the room in degrees Celsius
|
|
12
35
|
*/
|
|
13
|
-
deactivateAutomaticChange(timeout: number): void;
|
|
14
36
|
onTemperaturChange(newTemperatur: number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Updates the desired mode of the air-conditioning device and writes it to the device if desired
|
|
39
|
+
* @param mode - The new desired mode
|
|
40
|
+
* @param writeToDevice - Whether to write the new mode to the device
|
|
41
|
+
*/
|
|
15
42
|
setDesiredMode(mode: AcMode, writeToDevice: boolean): void;
|
|
43
|
+
/**
|
|
44
|
+
* Turns the air-conditioning device on without changing the settings
|
|
45
|
+
*/
|
|
16
46
|
turnOn(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Turns the air-conditioning device off
|
|
49
|
+
*/
|
|
17
50
|
turnOff(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Calculates the desired mode based on the current settings and the room temperature
|
|
53
|
+
* @returns The desired mode
|
|
54
|
+
*/
|
|
55
|
+
calculateDesiredMode(): AcMode;
|
|
18
56
|
}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { ActuatorSetStateCommand, ActuatorSettings, ActuatorToggleCommand, ActuatorWriteStateToDeviceCommand } from '../../../models';
|
|
2
2
|
import { iRoomDevice } from './iRoomDevice';
|
|
3
3
|
import { iTemporaryDisableAutomatic } from './iTemporaryDisableAutomatic';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for Actuators.
|
|
6
|
+
* An actuator can be any device whos primary function is to be on or off e.g a light, an outlet, a fan, etc.
|
|
7
|
+
*
|
|
8
|
+
* For devices with {@link DeviceCapability.actuator} capability.
|
|
9
|
+
*/
|
|
4
10
|
export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
|
|
5
11
|
/**
|
|
6
12
|
* The settings for this Actuator primarily for controlling its automatic actions
|
|
7
13
|
*/
|
|
8
14
|
settings: ActuatorSettings;
|
|
15
|
+
/**
|
|
16
|
+
* The target automatic state of the device.
|
|
17
|
+
* This is used to store the state the device should be in to fall back to it after automatic was blocked e.g. by a user.
|
|
18
|
+
*/
|
|
9
19
|
targetAutomaticState: boolean;
|
|
10
20
|
/**
|
|
11
21
|
* The state value of the device
|
|
@@ -25,6 +35,14 @@ export interface iActuator extends iRoomDevice, iTemporaryDisableAutomatic {
|
|
|
25
35
|
* @param command
|
|
26
36
|
*/
|
|
27
37
|
setActuator(command: ActuatorSetStateCommand): void;
|
|
38
|
+
/**
|
|
39
|
+
* Toggles the power state of this actuator
|
|
40
|
+
* @param command
|
|
41
|
+
*/
|
|
28
42
|
toggleActuator(command: ActuatorToggleCommand): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Writes the desired actuator state to the device
|
|
45
|
+
* @param command
|
|
46
|
+
*/
|
|
29
47
|
writeActuatorStateToDevice(command: ActuatorWriteStateToDeviceCommand): void;
|
|
30
48
|
}
|
|
@@ -3,12 +3,37 @@ import { DeviceType } from '../deviceType';
|
|
|
3
3
|
import { DeviceInfo } from '../DeviceInfo';
|
|
4
4
|
import { DeviceCapability } from '../DeviceCapability';
|
|
5
5
|
import { iIdHolder } from '../../../models/iIdHolder';
|
|
6
|
+
/**
|
|
7
|
+
* This is the main interface for all devices as it ensures certain base functionality.
|
|
8
|
+
*/
|
|
6
9
|
export interface iBaseDevice extends iIdHolder {
|
|
10
|
+
/**
|
|
11
|
+
* The settings of the device which are overridden by the specific device implementation
|
|
12
|
+
*/
|
|
7
13
|
readonly settings: DeviceSettings | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* The hardware-type of the device.
|
|
16
|
+
*/
|
|
8
17
|
deviceType: DeviceType;
|
|
9
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Some basic information about the device (mainly its name, id, room, etc.)
|
|
20
|
+
*/
|
|
21
|
+
readonly info: DeviceInfo;
|
|
22
|
+
/**
|
|
23
|
+
* The capabilities of the device thus referencing other interfaces which then can be used to treat devices regardless of their hardware-type.
|
|
24
|
+
*/
|
|
10
25
|
readonly deviceCapabilities: DeviceCapability[];
|
|
26
|
+
/**
|
|
27
|
+
* This method writes the device Info to the configured persistence layer, to ensure having foreign keys for all other persisted data.
|
|
28
|
+
*/
|
|
11
29
|
persistDeviceInfo(): void;
|
|
30
|
+
/**
|
|
31
|
+
* This method loads the device settings from the configured persistence layer.
|
|
32
|
+
* Whilst this is normally used during startup, it can be called at any time to refresh the settings in case of manual changes within the database.
|
|
33
|
+
*/
|
|
12
34
|
loadDeviceSettings(): void;
|
|
35
|
+
/**
|
|
36
|
+
* This mainly enforces all devices to have a toJSON method to ensure a consistent way of serializing devices.
|
|
37
|
+
*/
|
|
13
38
|
toJSON(): Partial<iBaseDevice>;
|
|
14
39
|
}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { iBaseDevice } from './iBaseDevice';
|
|
2
|
+
import { Battery } from '../sharedFunctions';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for Battery Devices.
|
|
5
|
+
* A battery device can be any device that is powered by a battery e.g. a remote, a sensor, etc.
|
|
6
|
+
*
|
|
7
|
+
* For devices with {@link DeviceCapability.battery} capability.
|
|
8
|
+
*/
|
|
9
|
+
export interface iBatteryDevice extends iBaseDevice {
|
|
4
10
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @type {number}
|
|
11
|
+
* Common battery handling like persisting
|
|
7
12
|
*/
|
|
8
|
-
readonly battery:
|
|
9
|
-
|
|
13
|
+
readonly battery: Battery;
|
|
14
|
+
/**
|
|
15
|
+
* The battery status of the device in percentage (0 empty - 100 full)
|
|
16
|
+
*/
|
|
17
|
+
readonly batteryLevel: number;
|
|
10
18
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { iRoomDevice } from './iRoomDevice';
|
|
2
2
|
import { ProximityCallback, TrilaterationBasePoint } from '../espresense';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for Bluetooth detector devices, providing proximity information for tracked devices
|
|
5
|
+
*
|
|
6
|
+
* For devices with {@link DeviceCapability.bluetoothDetector} capability.
|
|
7
|
+
*/
|
|
3
8
|
export interface iBluetoothDetector extends iRoomDevice {
|
|
9
|
+
/**
|
|
10
|
+
* The position of the device to allow for trilateration-calculations
|
|
11
|
+
*/
|
|
4
12
|
position: TrilaterationBasePoint;
|
|
5
13
|
/**
|
|
6
14
|
* Add callback to react on a specified device entering/leaving a given zone
|
|
@@ -9,17 +17,17 @@ export interface iBluetoothDetector extends iRoomDevice {
|
|
|
9
17
|
addProximityCallback(cb: ProximityCallback): void;
|
|
10
18
|
/**
|
|
11
19
|
* Gets the distance of a currently present device
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @returns
|
|
20
|
+
* @param deviceName - The mapped Device name
|
|
21
|
+
* @param maxAge - The maximum age in seconds to still respect that device
|
|
22
|
+
* @returns Distance in meters or undefined if currently not present
|
|
15
23
|
*/
|
|
16
24
|
distanceOfDevice(deviceName: string, maxAge: number): number | undefined;
|
|
17
25
|
/**
|
|
18
26
|
* Check if a device is currently present and below the given Distance
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
22
|
-
* @returns
|
|
27
|
+
* @param deviceName - The mapped Device name
|
|
28
|
+
* @param maxDistance - The maximum distance in meters
|
|
29
|
+
* @param maxAge - The maximum age in seconds to still respect that device
|
|
30
|
+
* @returns
|
|
23
31
|
*/
|
|
24
32
|
isDevicePresent(deviceName: string, maxDistance: number, maxAge: number): boolean;
|
|
25
33
|
}
|
|
@@ -1,15 +1,57 @@
|
|
|
1
1
|
import { Button, ButtonPosition, ButtonPressType } from '../button';
|
|
2
2
|
import { iRoomDevice } from './iRoomDevice';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for Button Switch devices, providing e.g. access to the buttons and their assignments.
|
|
5
|
+
*
|
|
6
|
+
* For devices with {@link DeviceCapability.buttonSwitch} capability.
|
|
7
|
+
*/
|
|
3
8
|
export interface iButtonSwitch extends iRoomDevice {
|
|
9
|
+
/**
|
|
10
|
+
* The Top-Left Button which can be found on normale 4-6 Button switches
|
|
11
|
+
*/
|
|
4
12
|
buttonTopLeft: Button | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The Top-Right Button which can be found on normale 4-6 Button switches
|
|
15
|
+
*/
|
|
5
16
|
buttonTopRight: Button | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* The vertically Middle and horicontally Left Button which can be found on 6 Button switches
|
|
19
|
+
*/
|
|
6
20
|
buttonMidLeft: Button | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* The vertically Middle and horicontally Right Button which can be found on 6 Button switches
|
|
23
|
+
*/
|
|
7
24
|
buttonMidRight: Button | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* The Bottom-Left Button which can be found on normale 4-6 Button switches
|
|
27
|
+
*/
|
|
8
28
|
buttonBotLeft: Button | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* The Bottom-Right Button which can be found on normale 4-6 Button switches
|
|
31
|
+
*/
|
|
9
32
|
buttonBotRight: Button | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The Bottom Button which can be found on vertical 2 Button switches
|
|
35
|
+
*/
|
|
10
36
|
buttonBot: Button | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* The Top Button which can be found on vertical 2 Button switches
|
|
39
|
+
*/
|
|
11
40
|
buttonTop: Button | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Persist the button press to the persistent storage
|
|
43
|
+
* @param buttonName - The name of the button
|
|
44
|
+
* @param pressType - The type of the button press
|
|
45
|
+
*/
|
|
12
46
|
persist(buttonName: string, pressType: ButtonPressType): void;
|
|
47
|
+
/**
|
|
48
|
+
* @returns An description of all configured assignments
|
|
49
|
+
*/
|
|
13
50
|
getButtonAssignment(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Method to simulate a button press (e.g. for testing or to use a specific logic which is bound to this button)
|
|
53
|
+
* @param position - The position of the button
|
|
54
|
+
* @param pressType - The type of the button press
|
|
55
|
+
*/
|
|
14
56
|
pressButton(position: ButtonPosition, pressType: ButtonPressType): Error | null;
|
|
15
57
|
}
|