hoffmation-base 3.0.0-alpha.5 → 3.0.0-alpha.51
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 +8 -0
- package/lib/models/action/index.js +27 -0
- package/lib/models/action/motionSensorAction.d.ts +16 -0
- package/lib/models/action/motionSensorAction.js +15 -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/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 +8 -1
- package/lib/models/command/WindowSetDesiredPositionCommand.js +8 -1
- 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 +10 -0
- package/lib/models/command/commandType.js +10 -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 +19 -5
- package/lib/models/deviceSettings/acSettings.js +23 -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 +11 -0
- package/lib/models/deviceSettings/dachsSettings.js +13 -1
- 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 +34 -0
- package/lib/models/deviceSettings/victronDeviceSettings.js +34 -0
- 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/index.d.ts +2 -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 +16 -7
- 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/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 +10 -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 +34 -18
- package/lib/server/devices/IoBrokerBaseDevice.js +37 -21
- package/lib/server/devices/IoBrokerDeviceInfo.d.ts +2 -2
- package/lib/server/devices/IoBrokerDeviceInfo.js +6 -4
- 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 +21 -4
- 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 +24 -0
- package/lib/server/devices/baseDeviceInterfaces/iHeater.d.ts +40 -4
- package/lib/server/devices/baseDeviceInterfaces/iHumiditySensor.d.ts +21 -1
- 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 -1
- 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 +32 -2
- 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 +37 -11
- package/lib/server/devices/dachs/dachs.js +49 -22
- package/lib/server/devices/dachs/dachsTemperatureSensor.d.ts +22 -3
- package/lib/server/devices/dachs/dachsTemperatureSensor.js +23 -5
- 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 +3 -0
- package/lib/server/devices/device-cluster.js +1 -1
- package/lib/server/devices/deviceUpdater.d.ts +0 -3
- package/lib/server/devices/deviceUpdater.js +1 -4
- package/lib/server/devices/devices.d.ts +43 -7
- package/lib/server/devices/devices.js +42 -6
- 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 +28 -4
- 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 +9 -3
- package/lib/server/devices/groups/Window.js +19 -11
- 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 +18 -37
- package/lib/server/devices/groups/presenceGroup.d.ts +11 -4
- package/lib/server/devices/groups/presenceGroup.js +57 -64
- package/lib/server/devices/groups/tasterGroup.js +6 -6
- package/lib/server/devices/groups/windowGroup.d.ts +11 -1
- package/lib/server/devices/groups/windowGroup.js +6 -6
- 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 +36 -5
- package/lib/server/devices/hmIPDevices/hmIpGriff.js +76 -33
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.d.ts +25 -5
- package/lib/server/devices/hmIPDevices/hmIpHeizgruppe.js +27 -14
- package/lib/server/devices/hmIPDevices/hmIpHeizung.d.ts +13 -3
- package/lib/server/devices/hmIPDevices/hmIpHeizung.js +33 -12
- 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 +19 -9
- package/lib/server/devices/hmIPDevices/hmIpPraezenz.js +33 -11
- package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +4 -2
- package/lib/server/devices/hmIPDevices/hmIpRoll.js +25 -23
- package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +28 -4
- package/lib/server/devices/hmIPDevices/hmIpTaster.js +37 -8
- package/lib/server/devices/hmIPDevices/hmIpTherm.d.ts +11 -1
- package/lib/server/devices/hmIPDevices/hmIpTherm.js +26 -5
- 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 +5 -2
- package/lib/server/devices/index.js +8 -2
- package/lib/server/devices/jsObject/jsObjectEnergyManager.d.ts +5 -1
- package/lib/server/devices/jsObject/jsObjectEnergyManager.js +9 -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 -6
- package/lib/server/devices/scene/room-scene.js +18 -4
- package/lib/server/devices/sharedFunctions/lampUtils.d.ts +11 -2
- package/lib/server/devices/sharedFunctions/lampUtils.js +79 -25
- 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 +37 -17
- package/lib/server/devices/shelly/shellyTrv.js +66 -45
- 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/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 +1 -0
- package/lib/server/devices/zigbee/BaseDevices/index.js +3 -0
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.d.ts +4 -5
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDevice.js +15 -22
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.d.ts +10 -25
- package/lib/server/devices/zigbee/BaseDevices/zigbeeDimmer.js +27 -62
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.d.ts +34 -13
- package/lib/server/devices/zigbee/BaseDevices/zigbeeHeater.js +60 -34
- 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 +9 -8
- package/lib/server/devices/zigbee/BaseDevices/zigbeeLedRGBCCT.js +16 -13
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.d.ts +26 -7
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMagnetContact.js +52 -22
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.d.ts +30 -14
- package/lib/server/devices/zigbee/BaseDevices/zigbeeMotionSensor.js +62 -38
- package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +12 -3
- package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +28 -19
- 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/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 +58 -11
- package/lib/server/devices/zigbee/zigbeeAquaraVibra.js +115 -27
- package/lib/server/devices/zigbee/zigbeeAquaraWater.d.ts +28 -8
- package/lib/server/devices/zigbee/zigbeeAquaraWater.js +54 -30
- 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 +34 -7
- package/lib/server/devices/zigbee/zigbeeHeimanSmoke.js +58 -20
- 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/zigbeeSonoffMotion.d.ts +1 -0
- package/lib/server/devices/zigbee/zigbeeSonoffMotion.js +1 -0
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.d.ts +34 -8
- package/lib/server/devices/zigbee/zigbeeSonoffTemp.js +50 -13
- 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 -20
- package/lib/server/ioBroker/connection.js +37 -28
- package/lib/server/ioBroker/ioBroker.main.d.ts +3 -0
- package/lib/server/ioBroker/ioBroker.main.js +4 -3
- 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 +6 -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 +0 -5
- package/lib/server/services/Sonos/sonos-service.js +6 -10
- 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 +48 -6
- package/lib/server/services/ac/ac-device.js +91 -36
- 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 +28 -5
- 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 +19 -17
- package/lib/server/services/govee/own-govee-device.js +57 -56
- 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 -13
- package/lib/server/services/victron/victron-device.d.ts +27 -10
- package/lib/server/services/victron/victron-device.js +94 -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 +15 -18
- package/lib/server/services/weather/weather-service.js +32 -22
- package/lib/server/services/weather/weather-temp.d.ts +21 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -8
- 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 → server/config/iBlockAutomaticHandlerDefaults.js} +0 -0
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { iPersist } from '../dbo';
|
|
3
|
+
import { CatchEmResult } from './catchEmResult';
|
|
4
|
+
import { iTimePair } from '../../config';
|
|
5
|
+
import { RGB } from './RGB';
|
|
3
6
|
export declare const DAYMS: number;
|
|
4
7
|
export declare class Utils {
|
|
8
|
+
/**
|
|
9
|
+
* The persitence layer object
|
|
10
|
+
*/
|
|
5
11
|
static dbo: iPersist | undefined;
|
|
6
12
|
static get anyDboActive(): boolean;
|
|
7
13
|
static get timeTilMidnight(): number;
|
|
8
|
-
static catchEm<T>(promise: Promise<T>): Promise<
|
|
9
|
-
reason: Error | null;
|
|
10
|
-
data: T | null;
|
|
11
|
-
}>;
|
|
14
|
+
static catchEm<T>(promise: Promise<T>): Promise<CatchEmResult<T>>;
|
|
12
15
|
static guardedFunction(func: (...args: unknown[]) => void, thisContext: unknown | undefined): void;
|
|
13
16
|
static nowMS(): number;
|
|
14
17
|
static delay(ms: number): Promise<void>;
|
|
@@ -23,10 +26,7 @@ export declare class Utils {
|
|
|
23
26
|
static round(number: number, digits: number): number;
|
|
24
27
|
static roundDot5(number: number): number;
|
|
25
28
|
static beetweenDays(date: Date, startDay: number, endDay: number): boolean;
|
|
26
|
-
static nowTime():
|
|
27
|
-
hours: number;
|
|
28
|
-
minutes: number;
|
|
29
|
-
};
|
|
29
|
+
static nowTime(): iTimePair;
|
|
30
30
|
static dateByTimeSpan(hours: number, minutes: number, now?: Date): Date;
|
|
31
31
|
static positiveMod(number: number, mod: number): number;
|
|
32
32
|
static degreeInBetween(minDegree: number, maxDegree: number, degreeToCheck: number): boolean;
|
|
@@ -34,9 +34,5 @@ export declare class Utils {
|
|
|
34
34
|
static nextMatchingDate(hours?: number, minutes?: number, now?: Date): Date;
|
|
35
35
|
static timeWithinBorders(minimumHours: number, minimumMinutes: number, maxHours: number, maxMinutes: number, now?: Date): boolean;
|
|
36
36
|
static formatHex(hex: string): string | null;
|
|
37
|
-
static hexToRgb(color: string):
|
|
38
|
-
r: number;
|
|
39
|
-
g: number;
|
|
40
|
-
b: number;
|
|
41
|
-
} | null;
|
|
37
|
+
static hexToRgb(color: string): RGB | null;
|
|
42
38
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { DeviceInfo, DeviceType, iEnergyManager, iExcessEnergyConsumer } from '../../devices';
|
|
2
|
-
import { LogLevel, VictronDeviceSettings } from '../../../models';
|
|
3
|
-
import { DeviceCapability } from '../../devices/DeviceCapability';
|
|
1
|
+
import { DeviceCapability, DeviceInfo, DeviceType, iBatteryDevice, iEnergyManager, iExcessEnergyConsumer } from '../../devices';
|
|
2
|
+
import { BatteryLevelChangeAction, LogLevel, VictronDeviceSettings } from '../../../models';
|
|
4
3
|
import { LogDebugType } from '../log-service';
|
|
5
4
|
import { VictronDeviceData, VictronMqttConnectionOptions, VictronMqttConsumer } from 'victron-mqtt-consumer';
|
|
6
|
-
export declare class VictronDevice implements iEnergyManager {
|
|
7
|
-
|
|
5
|
+
export declare class VictronDevice implements iEnergyManager, iBatteryDevice {
|
|
6
|
+
/** @inheritDoc */
|
|
8
7
|
readonly deviceCapabilities: DeviceCapability[];
|
|
8
|
+
/** @inheritDoc */
|
|
9
9
|
deviceType: DeviceType;
|
|
10
|
+
/** @inheritDoc */
|
|
10
11
|
readonly settings: VictronDeviceSettings;
|
|
12
|
+
protected _info: DeviceInfo;
|
|
13
|
+
private readonly _victronConsumer;
|
|
11
14
|
private _excessEnergyConsumer;
|
|
12
15
|
private blockDeviceChangeTime;
|
|
13
16
|
private _lastDeviceChange;
|
|
@@ -15,30 +18,43 @@ export declare class VictronDevice implements iEnergyManager {
|
|
|
15
18
|
private _iDatabaseLoggerInterval;
|
|
16
19
|
private _lastPersistenceCalculation;
|
|
17
20
|
private _nextPersistEntry;
|
|
21
|
+
private _lastBatteryPersist;
|
|
22
|
+
private _lastBatteryLevel;
|
|
23
|
+
private _batteryLevelCallbacks;
|
|
24
|
+
private _excessEnergy;
|
|
18
25
|
constructor(opts: VictronMqttConnectionOptions);
|
|
19
|
-
|
|
26
|
+
/** @inheritDoc */
|
|
27
|
+
get acBlocked(): boolean;
|
|
28
|
+
/** @inheritDoc */
|
|
29
|
+
get lastBatteryPersist(): number;
|
|
20
30
|
get info(): DeviceInfo;
|
|
31
|
+
/** @inheritDoc */
|
|
32
|
+
get battery(): number;
|
|
21
33
|
get victronConsumer(): VictronMqttConsumer;
|
|
22
34
|
get data(): VictronDeviceData;
|
|
23
|
-
private _excessEnergy;
|
|
24
35
|
get excessEnergy(): number;
|
|
25
36
|
get name(): string;
|
|
26
37
|
get customName(): string;
|
|
27
38
|
get id(): string;
|
|
28
|
-
addExcessConsumer(device: iExcessEnergyConsumer): void;
|
|
29
39
|
get injectingWattage(): number;
|
|
30
40
|
get drawingWattage(): number;
|
|
31
41
|
get selfConsumingWattage(): number;
|
|
32
|
-
|
|
42
|
+
/** @inheritDoc */
|
|
43
|
+
addBatteryLevelCallback(pCallback: (action: BatteryLevelChangeAction) => void): void;
|
|
44
|
+
addExcessConsumer(device: iExcessEnergyConsumer): void;
|
|
45
|
+
/** @inheritDoc */
|
|
46
|
+
dispose(): void;
|
|
33
47
|
getReport(): string;
|
|
34
48
|
recalculatePowerSharing(): void;
|
|
35
49
|
loadDeviceSettings(): void;
|
|
36
50
|
log(level: LogLevel, message: string, debugType?: LogDebugType): void;
|
|
37
51
|
persistDeviceInfo(): void;
|
|
52
|
+
/** @inheritDoc */
|
|
53
|
+
persistBatteryDevice(): void;
|
|
38
54
|
toJSON(): Partial<VictronDevice>;
|
|
39
55
|
/**
|
|
40
56
|
* Changes the grid set point of the Victron device, to the desired value.
|
|
41
|
-
* @param
|
|
57
|
+
* @param setPoint - The desired watt point the system should aim for.
|
|
42
58
|
*/
|
|
43
59
|
setGridSetPoint(setPoint: number): void;
|
|
44
60
|
private calculateExcessEnergy;
|
|
@@ -46,4 +62,5 @@ export declare class VictronDevice implements iEnergyManager {
|
|
|
46
62
|
private turnOffAdditionalConsumer;
|
|
47
63
|
private persist;
|
|
48
64
|
private calculatePersistenceValues;
|
|
65
|
+
private checkForBatteryChange;
|
|
49
66
|
}
|
|
@@ -4,31 +4,39 @@ exports.VictronDevice = void 0;
|
|
|
4
4
|
const devices_1 = require("../../devices");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
const models_1 = require("../../../models");
|
|
7
|
-
const DeviceCapability_1 = require("../../devices/DeviceCapability");
|
|
8
7
|
const log_service_1 = require("../log-service");
|
|
9
8
|
const victron_mqtt_consumer_1 = require("victron-mqtt-consumer");
|
|
10
9
|
const time_callback_service_1 = require("../time-callback-service");
|
|
11
10
|
class VictronDevice {
|
|
12
11
|
constructor(opts) {
|
|
13
|
-
|
|
12
|
+
/** @inheritDoc */
|
|
13
|
+
this.deviceCapabilities = [
|
|
14
|
+
devices_1.DeviceCapability.energyManager,
|
|
15
|
+
devices_1.DeviceCapability.batteryDriven,
|
|
16
|
+
];
|
|
17
|
+
/** @inheritDoc */
|
|
14
18
|
this.deviceType = devices_1.DeviceType.Victron;
|
|
15
19
|
this._excessEnergyConsumer = [];
|
|
16
20
|
this.blockDeviceChangeTime = -1;
|
|
17
21
|
this._iCalculationInterval = null;
|
|
18
22
|
this._iDatabaseLoggerInterval = null;
|
|
19
23
|
this._lastPersistenceCalculation = utils_1.Utils.nowMS();
|
|
24
|
+
this._lastBatteryPersist = 0;
|
|
25
|
+
this._lastBatteryLevel = -1;
|
|
26
|
+
this._batteryLevelCallbacks = [];
|
|
20
27
|
this._excessEnergy = 0;
|
|
21
28
|
this.settings = new models_1.VictronDeviceSettings();
|
|
22
29
|
this._info = new devices_1.DeviceInfo();
|
|
23
|
-
this._info.fullName =
|
|
24
|
-
this._info.customName =
|
|
25
|
-
this._info.allDevicesKey =
|
|
26
|
-
devices_1.Devices.alLDevices[
|
|
30
|
+
this._info.fullName = 'Victron Device';
|
|
31
|
+
this._info.customName = 'Victron';
|
|
32
|
+
this._info.allDevicesKey = 'victron';
|
|
33
|
+
devices_1.Devices.alLDevices['victron'] = this;
|
|
27
34
|
devices_1.Devices.energymanager = this;
|
|
28
35
|
this.persistDeviceInfo();
|
|
29
36
|
this.loadDeviceSettings();
|
|
30
37
|
this._victronConsumer = new victron_mqtt_consumer_1.VictronMqttConsumer(opts);
|
|
31
38
|
this._iCalculationInterval = utils_1.Utils.guardedInterval(() => {
|
|
39
|
+
this.checkForBatteryChange();
|
|
32
40
|
this.calculateExcessEnergy();
|
|
33
41
|
}, 5 * 1000, this);
|
|
34
42
|
this._iDatabaseLoggerInterval = utils_1.Utils.guardedInterval(() => {
|
|
@@ -36,9 +44,36 @@ class VictronDevice {
|
|
|
36
44
|
}, 15 * 60 * 1000, this);
|
|
37
45
|
this._nextPersistEntry = new models_1.EnergyCalculation(utils_1.Utils.nowMS());
|
|
38
46
|
}
|
|
47
|
+
/** @inheritDoc */
|
|
48
|
+
get acBlocked() {
|
|
49
|
+
if (this.settings.hasBattery) {
|
|
50
|
+
const hours = new Date().getHours();
|
|
51
|
+
if (hours < 6 || hours > 18) {
|
|
52
|
+
return this.battery < 70;
|
|
53
|
+
}
|
|
54
|
+
if (hours < 10 || hours > 16) {
|
|
55
|
+
return this.battery < 60;
|
|
56
|
+
}
|
|
57
|
+
return this.battery < 50;
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
/** @inheritDoc */
|
|
62
|
+
get lastBatteryPersist() {
|
|
63
|
+
return this._lastBatteryPersist;
|
|
64
|
+
}
|
|
39
65
|
get info() {
|
|
40
66
|
return this._info;
|
|
41
67
|
}
|
|
68
|
+
/** @inheritDoc */
|
|
69
|
+
get battery() {
|
|
70
|
+
const level = this.data.battery.soc;
|
|
71
|
+
if (level == null) {
|
|
72
|
+
this.log(models_1.LogLevel.Debug, 'No battery data available from Victron device.');
|
|
73
|
+
return -1;
|
|
74
|
+
}
|
|
75
|
+
return level;
|
|
76
|
+
}
|
|
42
77
|
get victronConsumer() {
|
|
43
78
|
return this._victronConsumer;
|
|
44
79
|
}
|
|
@@ -58,9 +93,6 @@ class VictronDevice {
|
|
|
58
93
|
var _a;
|
|
59
94
|
return (_a = this.info.allDevicesKey) !== null && _a !== void 0 ? _a : `victron-${this.info.room}-${this.info.customName}`;
|
|
60
95
|
}
|
|
61
|
-
addExcessConsumer(device) {
|
|
62
|
-
this._excessEnergyConsumer.push(device);
|
|
63
|
-
}
|
|
64
96
|
get injectingWattage() {
|
|
65
97
|
var _a;
|
|
66
98
|
return Math.min((_a = this.victronConsumer.data.grid.power) !== null && _a !== void 0 ? _a : 0, 0) * -1;
|
|
@@ -73,7 +105,15 @@ class VictronDevice {
|
|
|
73
105
|
var _a;
|
|
74
106
|
return Math.max((_a = this.victronConsumer.data.system.power) !== null && _a !== void 0 ? _a : 0, 0) - this.drawingWattage;
|
|
75
107
|
}
|
|
76
|
-
|
|
108
|
+
/** @inheritDoc */
|
|
109
|
+
addBatteryLevelCallback(pCallback) {
|
|
110
|
+
this._batteryLevelCallbacks.push(pCallback);
|
|
111
|
+
}
|
|
112
|
+
addExcessConsumer(device) {
|
|
113
|
+
this._excessEnergyConsumer.push(device);
|
|
114
|
+
}
|
|
115
|
+
/** @inheritDoc */
|
|
116
|
+
dispose() {
|
|
77
117
|
this._victronConsumer.disconnect();
|
|
78
118
|
if (this._iDatabaseLoggerInterval !== null) {
|
|
79
119
|
clearInterval(this._iDatabaseLoggerInterval);
|
|
@@ -117,12 +157,32 @@ class VictronDevice {
|
|
|
117
157
|
(_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.addDevice(this);
|
|
118
158
|
}, 5000, this);
|
|
119
159
|
}
|
|
160
|
+
/** @inheritDoc */
|
|
161
|
+
persistBatteryDevice() {
|
|
162
|
+
var _a;
|
|
163
|
+
const now = utils_1.Utils.nowMS();
|
|
164
|
+
if (this._lastBatteryPersist + 60000 > now) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
(_a = utils_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistBatteryDevice(this);
|
|
168
|
+
this._lastBatteryPersist = now;
|
|
169
|
+
}
|
|
120
170
|
toJSON() {
|
|
121
|
-
return
|
|
171
|
+
return {
|
|
172
|
+
...{
|
|
173
|
+
battery: this.battery,
|
|
174
|
+
acBlocked: this.acBlocked,
|
|
175
|
+
excessEnergy: this.excessEnergy,
|
|
176
|
+
drawingWattage: this.drawingWattage,
|
|
177
|
+
injectingWattage: this.injectingWattage,
|
|
178
|
+
selfConsumingWattage: this.selfConsumingWattage,
|
|
179
|
+
},
|
|
180
|
+
...utils_1.Utils.jsonFilter(this, ['_victronConsumer', '_excessEnergyConsumer']),
|
|
181
|
+
};
|
|
122
182
|
}
|
|
123
183
|
/**
|
|
124
184
|
* Changes the grid set point of the Victron device, to the desired value.
|
|
125
|
-
* @param
|
|
185
|
+
* @param setPoint - The desired watt point the system should aim for.
|
|
126
186
|
*/
|
|
127
187
|
setGridSetPoint(setPoint) {
|
|
128
188
|
this._victronConsumer.setGridSetPoint(setPoint);
|
|
@@ -131,7 +191,7 @@ class VictronDevice {
|
|
|
131
191
|
var _a;
|
|
132
192
|
this._excessEnergy = 0;
|
|
133
193
|
if (this.data == undefined) {
|
|
134
|
-
this.log(models_1.LogLevel.Debug,
|
|
194
|
+
this.log(models_1.LogLevel.Debug, 'No data available from Victron device.');
|
|
135
195
|
return;
|
|
136
196
|
}
|
|
137
197
|
// Step 1: Calculate battery need
|
|
@@ -139,11 +199,11 @@ class VictronDevice {
|
|
|
139
199
|
let neededBatteryWattage = 0;
|
|
140
200
|
const timeOfDay = time_callback_service_1.TimeCallbackService.dayType(new time_callback_service_1.SunTimeOffsets());
|
|
141
201
|
if (this.settings.hasBattery && timeOfDay !== models_1.TimeOfDay.AfterSunset && timeOfDay !== models_1.TimeOfDay.Night) {
|
|
142
|
-
if (this.
|
|
143
|
-
this.log(models_1.LogLevel.Debug,
|
|
202
|
+
if (this.battery < 0) {
|
|
203
|
+
this.log(models_1.LogLevel.Debug, 'No battery data available from Victron device.');
|
|
144
204
|
return;
|
|
145
205
|
}
|
|
146
|
-
neededBatteryWattage = ((1 - this.
|
|
206
|
+
neededBatteryWattage = ((1 - this.battery / 100.0) * this.settings.batteryCapacityWattage) / hoursTilSunset;
|
|
147
207
|
// Step 2: Calculate expected solar output
|
|
148
208
|
const solarOutput = (_a = this.data.pvInverter.power) !== null && _a !== void 0 ? _a : 0;
|
|
149
209
|
// Step 3: Calculate expected base consumption
|
|
@@ -152,22 +212,22 @@ class VictronDevice {
|
|
|
152
212
|
this._excessEnergy = solarOutput - neededBatteryWattage - baseConsumption;
|
|
153
213
|
}
|
|
154
214
|
let isSocTooLow = false;
|
|
155
|
-
if (this.data.battery.dcPower !== null && this.
|
|
215
|
+
if (this.data.battery.dcPower !== null && this.battery > -1) {
|
|
156
216
|
if (timeOfDay === models_1.TimeOfDay.Night) {
|
|
157
|
-
isSocTooLow = this.
|
|
217
|
+
isSocTooLow = this.battery < 50;
|
|
158
218
|
}
|
|
159
219
|
else if (timeOfDay === models_1.TimeOfDay.AfterSunset) {
|
|
160
|
-
isSocTooLow = this.
|
|
220
|
+
isSocTooLow = this.battery < 75;
|
|
161
221
|
}
|
|
162
222
|
else if (hoursTilSunset > 4) {
|
|
163
|
-
isSocTooLow = this.
|
|
223
|
+
isSocTooLow = this.battery < 70;
|
|
164
224
|
}
|
|
165
225
|
else {
|
|
166
|
-
isSocTooLow = this.
|
|
226
|
+
isSocTooLow = this.battery < 80;
|
|
167
227
|
}
|
|
168
228
|
}
|
|
169
229
|
// Whilst calculated spare energy is more precise, we don't mind using the battery as a buffer, if it is full enough.
|
|
170
|
-
if (this.data.battery.dcPower !== null && this.
|
|
230
|
+
if (this.data.battery.dcPower !== null && this.battery > -1 && !isSocTooLow) {
|
|
171
231
|
this._excessEnergy = this.settings.maximumBatteryDischargeWattage - Math.max(this.data.battery.dcPower, 0);
|
|
172
232
|
}
|
|
173
233
|
this.calculatePersistenceValues();
|
|
@@ -193,14 +253,13 @@ class VictronDevice {
|
|
|
193
253
|
}
|
|
194
254
|
if (!result.newState) {
|
|
195
255
|
this.blockDeviceChangeTime = utils_1.Utils.nowMS() + result.device.energySettings.powerReactionTime;
|
|
196
|
-
result.device.log(models_1.LogLevel.Info,
|
|
256
|
+
result.device.log(models_1.LogLevel.Info, "Turning off, as we don't have energy to spare...");
|
|
197
257
|
result.device.turnOffDueToMissingEnergy();
|
|
198
258
|
this._lastDeviceChange = result;
|
|
199
259
|
}
|
|
200
260
|
}
|
|
201
261
|
persist() {
|
|
202
|
-
|
|
203
|
-
this._nextPersistEntry.batteryLevel = ((_a = this.data.battery.soc) !== null && _a !== void 0 ? _a : 0) / 100;
|
|
262
|
+
this._nextPersistEntry.batteryLevel = this.battery / 100;
|
|
204
263
|
this._nextPersistEntry.batteryStoredKwH =
|
|
205
264
|
(this._nextPersistEntry.batteryLevel * this.settings.batteryCapacityWattage) / 1000;
|
|
206
265
|
const obj = JSON.parse(JSON.stringify(this._nextPersistEntry));
|
|
@@ -217,5 +276,15 @@ class VictronDevice {
|
|
|
217
276
|
this._nextPersistEntry.selfConsumedKwH += utils_1.Utils.kWh(this.selfConsumingWattage, duration);
|
|
218
277
|
this._lastPersistenceCalculation = now;
|
|
219
278
|
}
|
|
279
|
+
checkForBatteryChange() {
|
|
280
|
+
const newLevel = this.battery;
|
|
281
|
+
if (newLevel == this._lastBatteryLevel) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
for (const cb of this._batteryLevelCallbacks) {
|
|
285
|
+
cb(new models_1.BatteryLevelChangeAction(this));
|
|
286
|
+
}
|
|
287
|
+
this._lastBatteryLevel = newLevel;
|
|
288
|
+
}
|
|
220
289
|
}
|
|
221
290
|
exports.VictronDevice = VictronDevice;
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.RainNextMinutesInfo = void 0;
|
|
17
18
|
__exportStar(require("./weather-alert"), exports);
|
|
18
19
|
__exportStar(require("./weather-current"), exports);
|
|
19
20
|
__exportStar(require("./weather-daily"), exports);
|
|
@@ -23,3 +24,5 @@ __exportStar(require("./weather-item"), exports);
|
|
|
23
24
|
__exportStar(require("./weather-minutes"), exports);
|
|
24
25
|
__exportStar(require("./weather-service"), exports);
|
|
25
26
|
__exportStar(require("./weather-temp"), exports);
|
|
27
|
+
var rain_next_minutes_info_1 = require("./rain-next-minutes-info");
|
|
28
|
+
Object.defineProperty(exports, "RainNextMinutesInfo", { enumerable: true, get: function () { return rain_next_minutes_info_1.RainNextMinutesInfo; } });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RainNextMinutesInfo = void 0;
|
|
4
|
+
class RainNextMinutesInfo {
|
|
5
|
+
constructor(minutes, precipitation) {
|
|
6
|
+
this.minutes = minutes;
|
|
7
|
+
this.precipitation = precipitation;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.RainNextMinutesInfo = RainNextMinutesInfo;
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temperature data how its recognized by a human for the different times of the day.
|
|
3
|
+
*/
|
|
1
4
|
export interface WeatherFeelsLike {
|
|
5
|
+
/**
|
|
6
|
+
* Day temperature in Celsius
|
|
7
|
+
*/
|
|
2
8
|
day: number;
|
|
9
|
+
/**
|
|
10
|
+
* Night temperature in Celsius
|
|
11
|
+
*/
|
|
3
12
|
night: number;
|
|
13
|
+
/**
|
|
14
|
+
* Evening temperature in Celsius
|
|
15
|
+
*/
|
|
4
16
|
eve: number;
|
|
17
|
+
/**
|
|
18
|
+
* Morning temperature in Celsius
|
|
19
|
+
*/
|
|
5
20
|
morn: number;
|
|
6
21
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WeatherCurrent } from './weather-current';
|
|
2
|
+
import { WeatherMinutes } from './weather-minutes';
|
|
3
|
+
import { WeatherHourly } from './weather-hourly';
|
|
4
|
+
import { WeatherDaily } from './weather-daily';
|
|
5
|
+
import { WeatherAlert } from './weather-alert';
|
|
6
|
+
export interface WeatherResponse {
|
|
7
|
+
lat: number;
|
|
8
|
+
lon: number;
|
|
9
|
+
timezone: string;
|
|
10
|
+
timezone_offset: number;
|
|
11
|
+
current: WeatherCurrent;
|
|
12
|
+
minutely: WeatherMinutes[];
|
|
13
|
+
hourly: WeatherHourly[];
|
|
14
|
+
daily: WeatherDaily[];
|
|
15
|
+
alerts?: WeatherAlert[];
|
|
16
|
+
}
|
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
import { WeatherHourly } from './weather-hourly';
|
|
2
|
-
import { WeatherCurrent } from './weather-current';
|
|
3
|
-
import { WeatherMinutes } from './weather-minutes';
|
|
4
|
-
import { WeatherAlert } from './weather-alert';
|
|
5
1
|
import { iWeatherSettings } from '../../config';
|
|
6
2
|
import { LogLevel, ShutterSettings } from '../../../models';
|
|
7
3
|
import { LogDebugType } from '../log-service';
|
|
8
|
-
import { WeatherDaily } from './weather-daily';
|
|
9
4
|
import { iSpeaker } from '../../devices';
|
|
10
|
-
|
|
11
|
-
lat: number;
|
|
12
|
-
lon: number;
|
|
13
|
-
timezone: string;
|
|
14
|
-
timezone_offset: number;
|
|
15
|
-
current: WeatherCurrent;
|
|
16
|
-
minutely: WeatherMinutes[];
|
|
17
|
-
hourly: WeatherHourly[];
|
|
18
|
-
daily: WeatherDaily[];
|
|
19
|
-
alerts?: WeatherAlert[];
|
|
20
|
-
}
|
|
5
|
+
import { WeatherResponse } from './weather-response';
|
|
21
6
|
export declare class WeatherService {
|
|
7
|
+
/**
|
|
8
|
+
* Whether the service is active or not
|
|
9
|
+
*/
|
|
22
10
|
static active: boolean;
|
|
23
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The milliseconds of one day
|
|
13
|
+
*/
|
|
14
|
+
static readonly oneDay: number;
|
|
15
|
+
/**
|
|
16
|
+
* The last weather response
|
|
17
|
+
*/
|
|
24
18
|
static lastResponse: WeatherResponse;
|
|
25
19
|
/**
|
|
26
20
|
* The sun horizontal degree (0 is North)
|
|
27
|
-
* @type {number}
|
|
28
21
|
*/
|
|
29
22
|
static sunDirection: number;
|
|
30
23
|
private static _dataUpdateCbs;
|
|
@@ -46,5 +39,9 @@ export declare class WeatherService {
|
|
|
46
39
|
private static getActiveAlerts;
|
|
47
40
|
private static getWeatherData;
|
|
48
41
|
private static recalcAzimuth;
|
|
42
|
+
/**
|
|
43
|
+
* Method to calculate the hours until sunset based on the current location
|
|
44
|
+
* @returns - The hours until sunset
|
|
45
|
+
*/
|
|
49
46
|
private static hoursTilSunset;
|
|
50
47
|
}
|
|
@@ -36,17 +36,17 @@ class WeatherService {
|
|
|
36
36
|
const wData = WeatherService.lastResponse;
|
|
37
37
|
if (wData === undefined) {
|
|
38
38
|
if (retries > 0) {
|
|
39
|
-
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn,
|
|
39
|
+
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Warn, 'WeatherService.playWeatherInfo(): Der Wetterbericht ist noch nicht bereit --> warten');
|
|
40
40
|
setTimeout(() => {
|
|
41
41
|
WeatherService.playWeatherInfo(speaker, volume, short, retries - 1);
|
|
42
42
|
}, 1000);
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Error,
|
|
45
|
+
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Error, 'WeatherService.playWeatherInfo(): Der Wetterbericht ist vorhanden --> Abbruch');
|
|
46
46
|
}
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
|
-
speaker.speakOnDevice(short ?
|
|
49
|
+
speaker.speakOnDevice(short ? 'Kurze Wetterinfo:' : 'HoffMation Wetter-Bericht:', volume, false);
|
|
50
50
|
speaker.speakOnDevice(`Wetterbeschreibung für heute: ${wData.daily[0].weather[0].description}`, volume, false);
|
|
51
51
|
speaker.speakOnDevice(`Aktuell sind es ${Math.round(wData.current.temp)} Grad.`, volume, false);
|
|
52
52
|
if (!short) {
|
|
@@ -62,25 +62,25 @@ class WeatherService {
|
|
|
62
62
|
}
|
|
63
63
|
const { minutes, precipitation } = WeatherService.getRainNextMinutes();
|
|
64
64
|
const ratio = minutes <= 0 ? 0 : (precipitation / minutes) * 60;
|
|
65
|
-
let message =
|
|
65
|
+
let message = 'In der nächsten Zeit ';
|
|
66
66
|
switch (true) {
|
|
67
67
|
case ratio > 12:
|
|
68
|
-
message +=
|
|
68
|
+
message += 'wird es kräftig regnen';
|
|
69
69
|
break;
|
|
70
70
|
case ratio > 4:
|
|
71
|
-
message +=
|
|
71
|
+
message += 'wird es ordentlich regnen';
|
|
72
72
|
break;
|
|
73
73
|
case ratio > 1:
|
|
74
|
-
message +=
|
|
74
|
+
message += 'wird es regnen';
|
|
75
75
|
break;
|
|
76
76
|
case ratio > 0.5:
|
|
77
|
-
message +=
|
|
77
|
+
message += 'wird es mäßig regnen';
|
|
78
78
|
break;
|
|
79
79
|
case ratio > 0.1:
|
|
80
|
-
message +=
|
|
80
|
+
message += 'wird es nieseln regnen';
|
|
81
81
|
break;
|
|
82
82
|
default:
|
|
83
|
-
message +=
|
|
83
|
+
message += 'bleibt es trocken.';
|
|
84
84
|
break;
|
|
85
85
|
}
|
|
86
86
|
speaker.speakOnDevice(message, volume, false);
|
|
@@ -89,7 +89,7 @@ class WeatherService {
|
|
|
89
89
|
speaker.speakOnDevice(`Es werden etwa ${precipitation} Millimeter Niederschlag in den nächsten ${minutes} Minuten fallen`, volume, false);
|
|
90
90
|
const alerts = WeatherService.getActiveAlerts();
|
|
91
91
|
if (alerts.length > 0) {
|
|
92
|
-
const alertMessage = [
|
|
92
|
+
const alertMessage = ['Achtung, vorliegende Wetterwarnungen:'];
|
|
93
93
|
alerts.forEach((element) => {
|
|
94
94
|
alertMessage.push(`${element.event} von ${new Date(element.start * 1000).toLocaleString('de-DE')} bis ${new Date(element.end * 1000).toLocaleString('de-DE')}`);
|
|
95
95
|
// } bis ${new Date(element.end * 1000).toLocaleString("de-DE")}; Beschreibung: ${element.description} Herausgeber: ${element.sender_name}`)
|
|
@@ -97,13 +97,13 @@ class WeatherService {
|
|
|
97
97
|
speaker.speakOnDevice(alertMessage.join('\n'), volume, false);
|
|
98
98
|
}
|
|
99
99
|
else if (!short) {
|
|
100
|
-
speaker.speakOnDevice(
|
|
100
|
+
speaker.speakOnDevice('Für heute liegt keine Unwetterwarnungen vor', volume, false);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
static processHourlyWeather() {
|
|
104
104
|
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, `Es sind gerade ${this.lastResponse.current.temp} Grad (gefühlt ${this.lastResponse.current.feels_like}).`);
|
|
105
105
|
if (this.lastResponse.alerts !== undefined && this.lastResponse.alerts.length > 0) {
|
|
106
|
-
const message = [
|
|
106
|
+
const message = ['Es gibt folgende Wetterwarnungen:'];
|
|
107
107
|
this.lastResponse.alerts.forEach((element) => {
|
|
108
108
|
message.push(`${element.event} von ${new Date(element.start * 1000)} bis ${new Date(element.end * 1000)}; Beschreibung: ${element.description} Herausgeber: ${element.sender_name}`);
|
|
109
109
|
});
|
|
@@ -113,7 +113,7 @@ class WeatherService {
|
|
|
113
113
|
static getCurrentTemp() {
|
|
114
114
|
const wData = WeatherService.lastResponse;
|
|
115
115
|
if (wData === undefined || wData.current === undefined) {
|
|
116
|
-
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info,
|
|
116
|
+
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, 'WeatherService.isOutsideWarmer(): There are no data yet');
|
|
117
117
|
return -99;
|
|
118
118
|
}
|
|
119
119
|
return wData.current.temp;
|
|
@@ -121,7 +121,7 @@ class WeatherService {
|
|
|
121
121
|
static willOutsideBeWarmer(referenceTemperature, logger) {
|
|
122
122
|
const wData = WeatherService.lastResponse;
|
|
123
123
|
if (wData === undefined || wData.current === undefined) {
|
|
124
|
-
logger(models_1.LogLevel.Info,
|
|
124
|
+
logger(models_1.LogLevel.Info, 'WeatherService.isOutsideWarmer(): There are no data yet');
|
|
125
125
|
return false;
|
|
126
126
|
}
|
|
127
127
|
logger(models_1.LogLevel.Info, `willOutsideBeWarmer(${referenceTemperature}) --> Today Max Temperature: ${wData.daily[0].temp.max}`);
|
|
@@ -130,24 +130,24 @@ class WeatherService {
|
|
|
130
130
|
static weatherRolloPosition(normalPos, desiredTemperatur, currentTemperatur, logger, shutterSettings) {
|
|
131
131
|
let result = normalPos;
|
|
132
132
|
if (currentTemperatur < desiredTemperatur) {
|
|
133
|
-
logger(models_1.LogLevel.Trace,
|
|
133
|
+
logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: Room needs to heat up anyways.');
|
|
134
134
|
return result;
|
|
135
135
|
}
|
|
136
136
|
else if (normalPos < 30) {
|
|
137
|
-
logger(models_1.LogLevel.Trace,
|
|
137
|
+
logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: Shutter should be down anyways.');
|
|
138
138
|
return result;
|
|
139
139
|
}
|
|
140
140
|
else if (this.hoursTilSunset() < 1) {
|
|
141
|
-
logger(models_1.LogLevel.Trace,
|
|
141
|
+
logger(models_1.LogLevel.Trace, "RolloWeatherPosition: It's close to or after todays sunset");
|
|
142
142
|
return result;
|
|
143
143
|
}
|
|
144
144
|
else if (shutterSettings.direction !== undefined &&
|
|
145
145
|
!utils_1.Utils.degreeInBetween(shutterSettings.direction - 50, shutterSettings.direction + 50, this.sunDirection)) {
|
|
146
|
-
logger(models_1.LogLevel.Trace,
|
|
146
|
+
logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: Sun is facing a different direction');
|
|
147
147
|
return result;
|
|
148
148
|
}
|
|
149
149
|
else if (this.getCurrentCloudiness() > 40) {
|
|
150
|
-
logger(models_1.LogLevel.Trace,
|
|
150
|
+
logger(models_1.LogLevel.Trace, 'RolloWeatherPosition: It´s cloudy now.');
|
|
151
151
|
}
|
|
152
152
|
else if (this.willOutsideBeWarmer(26, logger)) {
|
|
153
153
|
result = shutterSettings.heatReductionPosition;
|
|
@@ -160,7 +160,7 @@ class WeatherService {
|
|
|
160
160
|
static getCurrentCloudiness() {
|
|
161
161
|
const wData = WeatherService.lastResponse;
|
|
162
162
|
if (wData === undefined || wData.current === undefined) {
|
|
163
|
-
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info,
|
|
163
|
+
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Info, 'WeatherService.getCurrentCloudiness(): There are no data yet');
|
|
164
164
|
return 0;
|
|
165
165
|
}
|
|
166
166
|
return wData.current.clouds;
|
|
@@ -202,7 +202,7 @@ class WeatherService {
|
|
|
202
202
|
return;
|
|
203
203
|
}
|
|
204
204
|
https_service_1.HTTPSService.request(new HTTPSOptions_1.HTTPSOptions('api.openweathermap.org', `/data/2.5/onecall?lat=${WeatherService.latitude}&lon=${WeatherService.longitude}&appid=${WeatherService.appID}&units=metric&lang=de`, {}, 'GET', 443), '', 5, (response) => {
|
|
205
|
-
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Debug,
|
|
205
|
+
log_service_1.ServerLogService.writeLog(models_1.LogLevel.Debug, 'WeatherAPi Response erhalten');
|
|
206
206
|
log_service_1.ServerLogService.writeLog(models_1.LogLevel.DeepTrace, `WeatherAPi Response: ${response}`);
|
|
207
207
|
utils_1.Utils.guardedFunction(() => {
|
|
208
208
|
WeatherService.lastResponse = JSON.parse(response);
|
|
@@ -218,6 +218,10 @@ class WeatherService {
|
|
|
218
218
|
180 +
|
|
219
219
|
(180 / Math.PI) * suncalc_1.default.getPosition(new Date(), parseFloat(this.latitude), parseFloat(this.longitude)).azimuth;
|
|
220
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Method to calculate the hours until sunset based on the current location
|
|
223
|
+
* @returns - The hours until sunset
|
|
224
|
+
*/
|
|
221
225
|
static hoursTilSunset() {
|
|
222
226
|
const now = new Date();
|
|
223
227
|
const sunset = time_callback_service_1.TimeCallbackService.getSunsetForDate(now, parseFloat(this.latitude), parseFloat(this.longitude));
|
|
@@ -225,6 +229,12 @@ class WeatherService {
|
|
|
225
229
|
}
|
|
226
230
|
}
|
|
227
231
|
exports.WeatherService = WeatherService;
|
|
232
|
+
/**
|
|
233
|
+
* Whether the service is active or not
|
|
234
|
+
*/
|
|
228
235
|
WeatherService.active = false;
|
|
236
|
+
/**
|
|
237
|
+
* The milliseconds of one day
|
|
238
|
+
*/
|
|
229
239
|
WeatherService.oneDay = 1000 * 60 * 60 * 24;
|
|
230
240
|
WeatherService._dataUpdateCbs = {};
|