homebridge-virtual-accessories 3.7.2 → 3.7.4
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/README.md +7 -4
- package/dist/accessories/{virtualAccessory.d.ts → accessory.d.ts} +5 -5
- package/dist/accessories/{virtualAccessory.js → accessory.js} +5 -4
- package/dist/accessories/accessory.js.map +1 -0
- package/dist/accessories/audioAccessory.d.ts +2 -1
- package/dist/accessories/audioAccessory.js +2 -2
- package/dist/accessories/audioAccessory.js.map +1 -1
- package/dist/accessories/companions/companionLightbulb.d.ts +11 -0
- package/dist/accessories/companions/companionLightbulb.js +12 -0
- package/dist/accessories/companions/companionLightbulb.js.map +1 -0
- package/dist/{companions → accessories/companions}/companionSwitch.d.ts +5 -4
- package/dist/{companions → accessories/companions}/companionSwitch.js +3 -3
- package/dist/accessories/companions/companionSwitch.js.map +1 -0
- package/dist/accessories/externalAccessory.d.ts +3 -2
- package/dist/accessories/externalAccessory.js +3 -3
- package/dist/accessories/externalAccessory.js.map +1 -1
- package/dist/accessories/openingAccessory.d.ts +3 -2
- package/dist/accessories/openingAccessory.js +4 -4
- package/dist/accessories/openingAccessory.js.map +1 -1
- package/dist/accessories/triggerableEventAccessory.d.ts +1 -1
- package/dist/accessories/updatableChargingState.js.map +1 -0
- package/dist/accessories/updatableObstruction.js.map +1 -0
- package/dist/accessories/virtualAccessoryBattery.d.ts +4 -3
- package/dist/accessories/virtualAccessoryBattery.js +3 -3
- package/dist/accessories/virtualAccessoryBattery.js.map +1 -1
- package/dist/accessories/virtualAccessoryDoor.d.ts +2 -1
- package/dist/accessories/virtualAccessoryDoor.js +2 -2
- package/dist/accessories/virtualAccessoryDoor.js.map +1 -1
- package/dist/accessories/virtualAccessoryDoorbell.d.ts +3 -2
- package/dist/accessories/virtualAccessoryDoorbell.js +5 -5
- package/dist/accessories/virtualAccessoryDoorbell.js.map +1 -1
- package/dist/accessories/virtualAccessoryFan.d.ts +3 -2
- package/dist/accessories/virtualAccessoryFan.js +3 -3
- package/dist/accessories/virtualAccessoryFan.js.map +1 -1
- package/dist/accessories/virtualAccessoryFilterMaintenance.d.ts +3 -2
- package/dist/accessories/virtualAccessoryFilterMaintenance.js +5 -5
- package/dist/accessories/virtualAccessoryFilterMaintenance.js.map +1 -1
- package/dist/accessories/virtualAccessoryGarageDoor.d.ts +4 -3
- package/dist/accessories/virtualAccessoryGarageDoor.js +3 -3
- package/dist/accessories/virtualAccessoryGarageDoor.js.map +1 -1
- package/dist/accessories/virtualAccessoryHeaterCooler.d.ts +4 -3
- package/dist/accessories/virtualAccessoryHeaterCooler.js +3 -3
- package/dist/accessories/virtualAccessoryHeaterCooler.js.map +1 -1
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.d.ts +4 -3
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js +3 -3
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js.map +1 -1
- package/dist/accessories/virtualAccessoryInputSource.d.ts +3 -2
- package/dist/accessories/virtualAccessoryInputSource.js +3 -3
- package/dist/accessories/virtualAccessoryInputSource.js.map +1 -1
- package/dist/accessories/virtualAccessoryLightbulb.d.ts +3 -2
- package/dist/accessories/virtualAccessoryLightbulb.js +5 -5
- package/dist/accessories/virtualAccessoryLightbulb.js.map +1 -1
- package/dist/accessories/virtualAccessoryLock.d.ts +3 -2
- package/dist/accessories/virtualAccessoryLock.js +4 -4
- package/dist/accessories/virtualAccessoryLock.js.map +1 -1
- package/dist/accessories/virtualAccessorySecuritySystem.d.ts +4 -3
- package/dist/accessories/virtualAccessorySecuritySystem.js +4 -4
- package/dist/accessories/virtualAccessorySecuritySystem.js.map +1 -1
- package/dist/accessories/virtualAccessorySpeaker.d.ts +2 -1
- package/dist/accessories/virtualAccessorySpeaker.js +2 -2
- package/dist/accessories/virtualAccessorySpeaker.js.map +1 -1
- package/dist/accessories/virtualAccessorySwitch.d.ts +5 -4
- package/dist/accessories/virtualAccessorySwitch.js +8 -8
- package/dist/accessories/virtualAccessorySwitch.js.map +1 -1
- package/dist/accessories/virtualAccessoryTelevision.d.ts +2 -1
- package/dist/accessories/virtualAccessoryTelevision.js +3 -3
- package/dist/accessories/virtualAccessoryTelevision.js.map +1 -1
- package/dist/accessories/virtualAccessoryValve.d.ts +3 -2
- package/dist/accessories/virtualAccessoryValve.js +4 -4
- package/dist/accessories/virtualAccessoryValve.js.map +1 -1
- package/dist/accessories/virtualAccessoryWindow.d.ts +2 -1
- package/dist/accessories/virtualAccessoryWindow.js +2 -2
- package/dist/accessories/virtualAccessoryWindow.js.map +1 -1
- package/dist/accessories/virtualAccessoryWindowCovering.d.ts +2 -1
- package/dist/accessories/virtualAccessoryWindowCovering.js +2 -2
- package/dist/accessories/virtualAccessoryWindowCovering.js.map +1 -1
- package/dist/accessoryFactory.d.ts +6 -5
- package/dist/accessoryFactory.js +34 -33
- package/dist/accessoryFactory.js.map +1 -1
- package/dist/configuration/accessories/configurationBattery.d.ts +2 -2
- package/dist/configuration/accessories/configurationBattery.js +2 -4
- package/dist/configuration/accessories/configurationBattery.js.map +1 -1
- package/dist/configuration/accessories/configurationDoor.js +2 -2
- package/dist/configuration/accessories/configurationDoor.js.map +1 -1
- package/dist/configuration/accessories/configurationDoorbell.d.ts +2 -2
- package/dist/configuration/accessories/configurationDoorbell.js +2 -3
- package/dist/configuration/accessories/configurationDoorbell.js.map +1 -1
- package/dist/configuration/accessories/configurationFan.d.ts +2 -2
- package/dist/configuration/accessories/configurationFan.js +3 -4
- package/dist/configuration/accessories/configurationFan.js.map +1 -1
- package/dist/configuration/accessories/configurationFilterMaintenance.d.ts +2 -2
- package/dist/configuration/accessories/configurationFilterMaintenance.js +2 -3
- package/dist/configuration/accessories/configurationFilterMaintenance.js.map +1 -1
- package/dist/configuration/accessories/configurationGarageDoor.js +2 -2
- package/dist/configuration/accessories/configurationGarageDoor.js.map +1 -1
- package/dist/configuration/accessories/configurationHeaterCooler.d.ts +2 -2
- package/dist/configuration/accessories/configurationHeaterCooler.js +3 -4
- package/dist/configuration/accessories/configurationHeaterCooler.js.map +1 -1
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.d.ts +2 -2
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.js +3 -4
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.js.map +1 -1
- package/dist/configuration/accessories/configurationInputSource.d.ts +2 -2
- package/dist/configuration/accessories/configurationInputSource.js +2 -3
- package/dist/configuration/accessories/configurationInputSource.js.map +1 -1
- package/dist/configuration/accessories/configurationLightbulb.d.ts +2 -2
- package/dist/configuration/accessories/configurationLightbulb.js +4 -5
- package/dist/configuration/accessories/configurationLightbulb.js.map +1 -1
- package/dist/configuration/accessories/configurationLock.d.ts +2 -2
- package/dist/configuration/accessories/configurationLock.js +3 -4
- package/dist/configuration/accessories/configurationLock.js.map +1 -1
- package/dist/configuration/accessories/configurationSecuritySystem.d.ts +2 -2
- package/dist/configuration/accessories/configurationSecuritySystem.js +3 -4
- package/dist/configuration/accessories/configurationSecuritySystem.js.map +1 -1
- package/dist/configuration/accessories/configurationSpeaker.js +1 -1
- package/dist/configuration/accessories/configurationSpeaker.js.map +1 -1
- package/dist/configuration/accessories/configurationSwitch.d.ts +2 -2
- package/dist/configuration/accessories/configurationSwitch.js +3 -4
- package/dist/configuration/accessories/configurationSwitch.js.map +1 -1
- package/dist/configuration/accessories/configurationTelevision.d.ts +2 -2
- package/dist/configuration/accessories/configurationTelevision.js +2 -3
- package/dist/configuration/accessories/configurationTelevision.js.map +1 -1
- package/dist/configuration/accessories/configurationValve.d.ts +3 -3
- package/dist/configuration/accessories/configurationValve.js +4 -5
- package/dist/configuration/accessories/configurationValve.js.map +1 -1
- package/dist/configuration/accessories/configurationWindow.js +2 -2
- package/dist/configuration/accessories/configurationWindow.js.map +1 -1
- package/dist/configuration/accessories/configurationWindowCovering.js +2 -2
- package/dist/configuration/accessories/configurationWindowCovering.js.map +1 -1
- package/dist/configuration/configurationAccessory.d.ts +74 -2
- package/dist/configuration/configurationAccessory.js +386 -0
- package/dist/configuration/configurationAccessory.js.map +1 -1
- package/dist/configuration/configurationAudioAccessoryConfiguration.d.ts +2 -2
- package/dist/configuration/configurationAudioAccessoryConfiguration.js +1 -2
- package/dist/configuration/configurationAudioAccessoryConfiguration.js.map +1 -1
- package/dist/configuration/configurationCompanionSensor.d.ts +2 -2
- package/dist/configuration/configurationCompanionSensor.js +2 -3
- package/dist/configuration/configurationCompanionSensor.js.map +1 -1
- package/dist/configuration/configurationDuration.d.ts +2 -2
- package/dist/configuration/configurationDuration.js +2 -3
- package/dist/configuration/configurationDuration.js.map +1 -1
- package/dist/configuration/configurationOpenableAccesory.d.ts +2 -2
- package/dist/configuration/configurationOpenableAccesory.js +1 -2
- package/dist/configuration/configurationOpenableAccesory.js.map +1 -1
- package/dist/configuration/configurationSensor.d.ts +2 -2
- package/dist/configuration/configurationSensor.js +3 -4
- package/dist/configuration/configurationSensor.js.map +1 -1
- package/dist/configuration/configurationTimer.d.ts +2 -2
- package/dist/configuration/configurationTimer.js +2 -3
- package/dist/configuration/configurationTimer.js.map +1 -1
- package/dist/configuration/{configurationSensorServer.d.ts → configurationWebhookServer.d.ts} +2 -2
- package/dist/configuration/{configurationSensorServer.js → configurationWebhookServer.js} +3 -4
- package/dist/configuration/configurationWebhookServer.js.map +1 -0
- package/dist/configuration/{configurationSchema.js → schema.js} +1 -1
- package/dist/configuration/schema.js.map +1 -0
- package/dist/configuration/triggers/configurationCronTrigger.d.ts +2 -1
- package/dist/configuration/triggers/configurationCronTrigger.js +1 -1
- package/dist/configuration/triggers/configurationCronTrigger.js.map +1 -1
- package/dist/configuration/triggers/configurationPingTrigger.d.ts +2 -1
- package/dist/configuration/triggers/configurationPingTrigger.js +1 -1
- package/dist/configuration/triggers/configurationPingTrigger.js.map +1 -1
- package/dist/configuration/triggers/configurationSunEventsTrigger.d.ts +2 -1
- package/dist/configuration/triggers/configurationSunEventsTrigger.js +2 -2
- package/dist/configuration/triggers/configurationSunEventsTrigger.js.map +1 -1
- package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.d.ts +2 -1
- package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.js +1 -1
- package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.js.map +1 -1
- package/dist/configuration/utils.d.ts +13 -0
- package/dist/configuration/{configuration.js → utils.js} +7 -7
- package/dist/configuration/utils.js.map +1 -0
- package/dist/configuration/validatable.d.ts +6 -0
- package/dist/configuration/validatable.js +2 -0
- package/dist/configuration/validatable.js.map +1 -0
- package/dist/platform.d.ts +3 -3
- package/dist/platform.js +47 -46
- package/dist/platform.js.map +1 -1
- package/dist/sensors/companions/companionSensors.d.ts +10 -0
- package/dist/{companions → sensors/companions}/companionSensors.js +34 -32
- package/dist/sensors/companions/companionSensors.js.map +1 -0
- package/dist/sensors/{virtualSensor.d.ts → sensor.d.ts} +4 -3
- package/dist/sensors/{virtualSensor.js → sensor.js} +4 -4
- package/dist/sensors/sensor.js.map +1 -0
- package/dist/sensors/triggerableSensor.js.map +1 -0
- package/dist/sensors/triggers/trigger.d.ts +13 -0
- package/dist/sensors/triggers/trigger.js.map +1 -0
- package/dist/{triggers → sensors/triggers}/triggerCron.d.ts +1 -1
- package/dist/{triggers → sensors/triggers}/triggerCron.js +2 -2
- package/dist/sensors/triggers/triggerCron.js.map +1 -0
- package/dist/{triggers → sensors/triggers}/triggerPing.d.ts +1 -1
- package/dist/{triggers → sensors/triggers}/triggerPing.js +1 -1
- package/dist/sensors/triggers/triggerPing.js.map +1 -0
- package/dist/{triggers → sensors/triggers}/triggerSunEvents.d.ts +1 -1
- package/dist/{triggers → sensors/triggers}/triggerSunEvents.js +2 -2
- package/dist/sensors/triggers/triggerSunEvents.js.map +1 -0
- package/dist/{triggers → sensors/triggers}/triggerWebhook.d.ts +1 -1
- package/dist/{triggers → sensors/triggers}/triggerWebhook.js +2 -2
- package/dist/sensors/triggers/triggerWebhook.js.map +1 -0
- package/dist/sensors/updatableSensor.js.map +1 -0
- package/dist/sensors/virtualSensorCarbonDioxide.d.ts +3 -2
- package/dist/sensors/virtualSensorCarbonDioxide.js +3 -3
- package/dist/sensors/virtualSensorCarbonDioxide.js.map +1 -1
- package/dist/sensors/virtualSensorCarbonMonoxide.d.ts +3 -2
- package/dist/sensors/virtualSensorCarbonMonoxide.js +3 -3
- package/dist/sensors/virtualSensorCarbonMonoxide.js.map +1 -1
- package/dist/sensors/virtualSensorContact.d.ts +3 -2
- package/dist/sensors/virtualSensorContact.js +3 -3
- package/dist/sensors/virtualSensorContact.js.map +1 -1
- package/dist/sensors/virtualSensorLeak.d.ts +3 -2
- package/dist/sensors/virtualSensorLeak.js +3 -3
- package/dist/sensors/virtualSensorLeak.js.map +1 -1
- package/dist/sensors/virtualSensorMotion.d.ts +3 -2
- package/dist/sensors/virtualSensorMotion.js +3 -3
- package/dist/sensors/virtualSensorMotion.js.map +1 -1
- package/dist/sensors/virtualSensorOccupancy.d.ts +3 -2
- package/dist/sensors/virtualSensorOccupancy.js +3 -3
- package/dist/sensors/virtualSensorOccupancy.js.map +1 -1
- package/dist/sensors/virtualSensorSmoke.d.ts +3 -2
- package/dist/sensors/virtualSensorSmoke.js +3 -3
- package/dist/sensors/virtualSensorSmoke.js.map +1 -1
- package/dist/{colors.js → utils/colorUtils.js} +1 -1
- package/dist/utils/colorUtils.js.map +1 -0
- package/dist/{timer.d.ts → utils/timer.d.ts} +3 -3
- package/dist/utils/timer.js.map +1 -0
- package/dist/{utils.d.ts → utils/utils.d.ts} +2 -2
- package/dist/utils/utils.js.map +1 -0
- package/dist/{virtualLogger.d.ts → utils/virtualLogger.d.ts} +2 -2
- package/dist/{virtualLogger.js → utils/virtualLogger.js} +2 -2
- package/dist/utils/virtualLogger.js.map +1 -0
- package/dist/{sensorServer.d.ts → webhookServer.d.ts} +5 -5
- package/dist/{sensorServer.js → webhookServer.js} +5 -5
- package/dist/{sensorServer.js.map → webhookServer.js.map} +1 -1
- package/package.json +1 -1
- package/dist/accessories/virtualAccessory.js.map +0 -1
- package/dist/colors.js.map +0 -1
- package/dist/companions/companionLightbulb.d.ts +0 -10
- package/dist/companions/companionLightbulb.js +0 -12
- package/dist/companions/companionLightbulb.js.map +0 -1
- package/dist/companions/companionSensors.d.ts +0 -9
- package/dist/companions/companionSensors.js.map +0 -1
- package/dist/companions/companionSwitch.js.map +0 -1
- package/dist/configuration/configuration.d.ts +0 -13
- package/dist/configuration/configuration.js.map +0 -1
- package/dist/configuration/configurationPlatform.d.ts +0 -78
- package/dist/configuration/configurationPlatform.js +0 -392
- package/dist/configuration/configurationPlatform.js.map +0 -1
- package/dist/configuration/configurationSchema.js.map +0 -1
- package/dist/configuration/configurationSensorServer.js.map +0 -1
- package/dist/sensors/virtualSensor.js.map +0 -1
- package/dist/timer.js.map +0 -1
- package/dist/triggerableSensor.js.map +0 -1
- package/dist/triggers/trigger.d.ts +0 -13
- package/dist/triggers/trigger.js.map +0 -1
- package/dist/triggers/triggerCron.js.map +0 -1
- package/dist/triggers/triggerPing.js.map +0 -1
- package/dist/triggers/triggerSunEvents.js.map +0 -1
- package/dist/triggers/triggerWebhook.js.map +0 -1
- package/dist/updatableChargingState.js.map +0 -1
- package/dist/updatableObstruction.js.map +0 -1
- package/dist/updatableSensor.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/dist/virtualLogger.js.map +0 -1
- /package/dist/{updatableChargingState.d.ts → accessories/updatableChargingState.d.ts} +0 -0
- /package/dist/{updatableChargingState.js → accessories/updatableChargingState.js} +0 -0
- /package/dist/{updatableObstruction.d.ts → accessories/updatableObstruction.d.ts} +0 -0
- /package/dist/{updatableObstruction.js → accessories/updatableObstruction.js} +0 -0
- /package/dist/configuration/{configurationSchema.d.ts → schema.d.ts} +0 -0
- /package/dist/{triggerableSensor.d.ts → sensors/triggerableSensor.d.ts} +0 -0
- /package/dist/{triggerableSensor.js → sensors/triggerableSensor.js} +0 -0
- /package/dist/{triggers → sensors/triggers}/trigger.js +0 -0
- /package/dist/{updatableSensor.d.ts → sensors/updatableSensor.d.ts} +0 -0
- /package/dist/{updatableSensor.js → sensors/updatableSensor.js} +0 -0
- /package/dist/{colors.d.ts → utils/colorUtils.d.ts} +0 -0
- /package/dist/{timer.js → utils/timer.js} +0 -0
- /package/dist/{utils.js → utils/utils.js} +0 -0
package/README.md
CHANGED
@@ -85,9 +85,11 @@
|
|
85
85
|
|
86
86
|
## About Virtual Accessories For Homebridge
|
87
87
|
|
88
|
-
This plugin is inspired by Nick Farina's most excellent 🎸 [homebridge-dummy](https://github.com/nfarina/homebridge-dummy) plugin, which formed the backbone of my HomeKit automations.
|
88
|
+
This plugin is inspired by Nick Farina's most excellent 🎸 [`homebridge-dummy`](https://github.com/nfarina/homebridge-dummy) plugin, which formed the backbone of my HomeKit automations. As `homebridge-dummy` was no longer being maintained, I was motivated to create a new solution.
|
89
89
|
|
90
|
-
|
90
|
+
[**Update:** `homebridge-dummy` has found a new maintainer and is being updated, so check it out.]
|
91
|
+
|
92
|
+
But the purpose of this plugin is also to provide a single solution for creating different types of virtual HomeKit accessories. In my automations it has replaced seven separate plugins, each of which provided part of the functionality I needed, and all of which had gone unmaintained or abandoned. It also became annoying to have to figure out which plugin provided what functionality, or managed which accessory, each time I wanted or needed to make a change. The drama!
|
91
93
|
|
92
94
|
The downside to a single plugin is trading ease of accessory maintenance for a single point of failure. However, this is work in progress so I will be releasing bug fixes and updates. Also, I will slowly add new accessories and functionality, either as I need them, or, more likely, in response to requests by users who find this plugin useful.
|
93
95
|
|
@@ -95,7 +97,7 @@ Currently, these are the implemented virtual accessories:
|
|
95
97
|
|
96
98
|
- **Battery.** Allows you to create a virtual battery service. The "charging state" and "battery level" properties can be set via a [webhook call](#webhook-service-configuration).
|
97
99
|
- **Door.** Allows you to create a virtual door.
|
98
|
-
- **Doorbell.** Allows you to use a button as a doorbell and have it play a chime on HomePods.
|
100
|
+
- **Doorbell.** Allows you to use a button as a doorbell and have it play a chime on HomePods. [**](#issues-with-homekit)
|
99
101
|
- **Fan.** Allows you to create a virtual fan and set rotation direction and speed.
|
100
102
|
- **Filter Maintenance.** Allows you to create a recurring filter maintenance/replacement schedule, with a lifetime up to 30 days.
|
101
103
|
- **Garage Door.** Allows you to create a virtual garage door. Generates a HomeKit notification when the accessory's state changes. CarPlay will display the Garage widget on the display when you approach your home. The "obstruction detected" property can be set via a [webhook call](#webhook-service-configuration). The accessory state will show that an obstruction was detected and the current state will be set to `STOPPED`. The "obstruction detected" property will be reset on the next call to open or close the garage door.
|
@@ -104,7 +106,7 @@ Currently, these are the implemented virtual accessories:
|
|
104
106
|
- **Lightbulb.** Allows you to create virtual white, white ambiance, color lightbulbs. In the Home app, this can be used as a dimmer switch.
|
105
107
|
- **Lock.** Allows you to create a virtual lock. Generates a HomeKit notification when the accessory's state changes.
|
106
108
|
- **Security System.** Allows you to create a virtual security system. Generates a HomeKit notification when the accessory's state changes. The Security System can be put in a triggered state via a [webhook call](#webhook-service-configuration).
|
107
|
-
- **Speaker.** Allows you to create a virtual speaker.
|
109
|
+
- **Speaker.** Allows you to create a virtual speaker. [**](#issues-with-homekit)
|
108
110
|
- **Television.** Allows you to create a virtual television.
|
109
111
|
- **Valve.** Allows you to create different types of virtual valves: generic, irrigation, shower head, or water faucet.
|
110
112
|
- **Window.** Allows you to create a virtual window.
|
@@ -1136,6 +1138,7 @@ You can catch a glimpse in the [What I Use Homebridge For (and Why I Love It)](h
|
|
1136
1138
|
#### Issues with HomeKit:
|
1137
1139
|
|
1138
1140
|
- The volume on the Doorbell accessory does not work. This is a limitation of Homekit. Per the [HomeKit Accessory Protocol specification](https://forum.iobroker.net/assets/uploads/files/1634848447889-apple-spezifikation-homekit.pdf), the Doorbell is `the primary service of the Video Doorbell Profile.` What that means is that a Doorbell should only be added to HomeKit as part of a Video Doorbell and the Home app will not display a standalone Doorbell. This plugin takes advantage of the fact that, although it is not displayed, the Doorbell is still there and the companion switch allows you to interact with it, leading HomeKit to play a chime on the HomePods. Unfortunately, because the Doorbell is not displayed, you cannot configure which HomePod(s) it connects to and you cannot configure the volume. You can set the volume level in the free [Eve app](https://www.evehome.com/en-us/eve-app), however it will not affect the HomePod volume.
|
1141
|
+
- The Speaker accessory is not recognized by the Home app. This is a limitation of Homekit. The [HomeKit Accessory Protocol specification](https://forum.iobroker.net/assets/uploads/files/1634848447889-apple-spezifikation-homekit.pdf) shows it as a secondary service for an IP Camera or a Video Doorbell accessory. Unfortunately it is not clear about a standalone Speaker accessory, but the Home app flags it as an unrecognized device. However, the Eve app (and supposedly Home+ app) do dislay the service, so you may be able to control the Speaker through automations setup with the help of the Eve app.
|
1139
1142
|
|
1140
1143
|
> [!NOTE]
|
1141
1144
|
> I considered creating a virtual Video Doorbell accessory, however I ruled it out due to the amount of work required. Also, this functionality is easily implemented with the [Homebridge Camera Ffmpeg](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg) plugin.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { PlatformAccessory, Service } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
-
import {
|
4
|
-
import {
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
4
|
+
import { VirtualLogger } from '../utils/virtualLogger.js';
|
5
5
|
/**
|
6
6
|
* Abstract Accessory
|
7
7
|
*/
|
@@ -9,13 +9,13 @@ export declare abstract class Accessory {
|
|
9
9
|
service?: Service;
|
10
10
|
readonly platform: VirtualAccessoriesPlatform;
|
11
11
|
readonly accessory: PlatformAccessory;
|
12
|
-
readonly accessoryConfiguration:
|
13
|
-
readonly log:
|
12
|
+
readonly accessoryConfiguration: AccessoryConfiguration;
|
13
|
+
readonly log: VirtualLogger;
|
14
14
|
protected accessoryName: string;
|
15
15
|
protected defaultState: any;
|
16
16
|
protected storagePath: string;
|
17
17
|
private accessoryInformationService?;
|
18
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
18
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
19
19
|
isExternalAccessory(): boolean;
|
20
20
|
updateConfiguredName(): void;
|
21
21
|
private readonly EMPTY_ACCESSORY_STATE;
|
@@ -13,11 +13,11 @@ export class Accessory {
|
|
13
13
|
defaultState;
|
14
14
|
storagePath;
|
15
15
|
accessoryInformationService;
|
16
|
-
constructor(platform, accessory) {
|
16
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
17
17
|
this.accessory = accessory;
|
18
18
|
this.platform = platform;
|
19
19
|
// The accessory configuration is stored in the context in VirtualAccessoryPlatform.discoverDevices()
|
20
|
-
this.accessoryConfiguration =
|
20
|
+
this.accessoryConfiguration = accessoryConfiguration;
|
21
21
|
this.accessoryName = this.accessoryConfiguration.accessoryName;
|
22
22
|
this.log = this.platform.log;
|
23
23
|
this.log.debug(`[${this.accessoryName}] Accessory context: ${JSON.stringify(accessory.context)}`);
|
@@ -31,7 +31,8 @@ export class Accessory {
|
|
31
31
|
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'Virtual Accessories for Homebridge')
|
32
32
|
.setCharacteristic(this.platform.Characteristic.Model, `Virtual Accessory - ${this.getAccessoryTypeName()}`)
|
33
33
|
.setCharacteristic(this.platform.Characteristic.SerialNumber, this.accessory.UUID)
|
34
|
-
.setCharacteristic(this.platform.Characteristic.Name, this.accessoryConfiguration.accessoryName)
|
34
|
+
.setCharacteristic(this.platform.Characteristic.Name, this.accessoryConfiguration.accessoryName)
|
35
|
+
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.accessory.context.firmwareVersion);
|
35
36
|
}
|
36
37
|
isExternalAccessory() {
|
37
38
|
return [26 /* Categories.SPEAKER */, 31 /* Categories.TELEVISION */].includes(this.accessory.category);
|
@@ -84,4 +85,4 @@ export class Accessory {
|
|
84
85
|
}
|
85
86
|
}
|
86
87
|
}
|
87
|
-
//# sourceMappingURL=
|
88
|
+
//# sourceMappingURL=accessory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../../src/accessories/accessory.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { CharacteristicValue, PlatformAccessory, Service, WithUUID } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
3
4
|
import { ExternalAccessory } from './externalAccessory.js';
|
4
5
|
import { AudioAccessoryConfiguration } from '../configuration/configurationAudioAccessoryConfiguration.js';
|
5
6
|
/**
|
@@ -15,7 +16,7 @@ export declare abstract class AudioAccessory extends ExternalAccessory {
|
|
15
16
|
private readonly volumeStorageKey;
|
16
17
|
private audioAccessoryConfiguration;
|
17
18
|
private states;
|
18
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
19
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
19
20
|
setActive(value: CharacteristicValue): Promise<void>;
|
20
21
|
getActive(): Promise<CharacteristicValue>;
|
21
22
|
setVolume(value: CharacteristicValue): Promise<void>;
|
@@ -16,8 +16,8 @@ export class AudioAccessory extends ExternalAccessory {
|
|
16
16
|
Mute: AudioAccessory.UNMUTED,
|
17
17
|
Volume: 100,
|
18
18
|
};
|
19
|
-
constructor(platform, accessory) {
|
20
|
-
super(platform, accessory);
|
19
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
20
|
+
super(platform, accessory, accessoryConfiguration);
|
21
21
|
// First configure the device based on the accessory details
|
22
22
|
this.audioAccessoryConfiguration = this.getAudioAccessoryConfiguration();
|
23
23
|
const mute = (this.audioAccessoryConfiguration.mute !== undefined) ? this.audioAccessoryConfiguration.mute : AudioAccessory.UNMUTED;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"audioAccessory.js","sourceRoot":"","sources":["../../src/accessories/audioAccessory.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"audioAccessory.js","sourceRoot":"","sources":["../../src/accessories/audioAccessory.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
2
|
+
import { VirtualAccessoriesPlatform } from '../../platform.js';
|
3
|
+
import { AccessoryConfiguration } from '../../configuration/configurationAccessory.js';
|
4
|
+
import { Lightbulb } from '../virtualAccessoryLightbulb.js';
|
5
|
+
/**
|
6
|
+
* CompanionLightbulb - Companion accessory
|
7
|
+
*/
|
8
|
+
export declare class CompanionLightbulb extends Lightbulb {
|
9
|
+
private companionName;
|
10
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration, companionName: string);
|
11
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Lightbulb } from '../virtualAccessoryLightbulb.js';
|
2
|
+
/**
|
3
|
+
* CompanionLightbulb - Companion accessory
|
4
|
+
*/
|
5
|
+
export class CompanionLightbulb extends Lightbulb {
|
6
|
+
companionName;
|
7
|
+
constructor(platform, accessory, accessoryConfiguration, companionName) {
|
8
|
+
super(platform, accessory, accessoryConfiguration);
|
9
|
+
this.companionName = companionName;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=companionLightbulb.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"companionLightbulb.js","sourceRoot":"","sources":["../../../src/accessories/companions/companionLightbulb.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAEvC,aAAa,CAAS;IAE9B,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C,EAC9C,aAAqB;QAErB,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF"}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory } from 'homebridge';
|
2
|
-
import { VirtualAccessoriesPlatform } from '
|
3
|
-
import {
|
4
|
-
import {
|
2
|
+
import { VirtualAccessoriesPlatform } from '../../platform.js';
|
3
|
+
import { AccessoryConfiguration } from '../../configuration/configurationAccessory.js';
|
4
|
+
import { Switch } from '../virtualAccessorySwitch.js';
|
5
|
+
import { TriggerableEventAccessory } from '../triggerableEventAccessory.js';
|
5
6
|
/**
|
6
7
|
* CompanionSwitch - Companion accessory
|
7
8
|
*/
|
@@ -9,7 +10,7 @@ export declare class CompanionSwitch extends Switch {
|
|
9
10
|
private readonly postfix;
|
10
11
|
private companionName;
|
11
12
|
private partnerAccessory;
|
12
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, companionName: string, partnerAccessory: TriggerableEventAccessory);
|
13
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration, companionName: string, partnerAccessory: TriggerableEventAccessory);
|
13
14
|
setOn(value: CharacteristicValue): Promise<void>;
|
14
15
|
getOn(): Promise<CharacteristicValue>;
|
15
16
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Switch } from '../
|
1
|
+
import { Switch } from '../virtualAccessorySwitch.js';
|
2
2
|
/**
|
3
3
|
* CompanionSwitch - Companion accessory
|
4
4
|
*/
|
@@ -6,8 +6,8 @@ export class CompanionSwitch extends Switch {
|
|
6
6
|
postfix = '-switch';
|
7
7
|
companionName;
|
8
8
|
partnerAccessory;
|
9
|
-
constructor(platform, accessory, companionName, partnerAccessory) {
|
10
|
-
super(platform, accessory);
|
9
|
+
constructor(platform, accessory, accessoryConfiguration, companionName, partnerAccessory) {
|
10
|
+
super(platform, accessory, accessoryConfiguration);
|
11
11
|
this.companionName = companionName;
|
12
12
|
this.partnerAccessory = partnerAccessory;
|
13
13
|
// Override Switch settings
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"companionSwitch.js","sourceRoot":"","sources":["../../../src/accessories/companions/companionSwitch.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,11 @@
|
|
1
1
|
import { PlatformAccessory } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
-
import {
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
4
|
+
import { Accessory } from './accessory.js';
|
4
5
|
/**
|
5
6
|
* ExternalAccessory - Abstract accessory
|
6
7
|
*/
|
7
8
|
export declare abstract class ExternalAccessory extends Accessory {
|
8
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
9
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
9
10
|
getExternalAccessoryCategory(): number;
|
10
11
|
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { Accessory } from './
|
1
|
+
import { Accessory } from './accessory.js';
|
2
2
|
/**
|
3
3
|
* ExternalAccessory - Abstract accessory
|
4
4
|
*/
|
5
5
|
export class ExternalAccessory extends Accessory {
|
6
|
-
constructor(platform, accessory) {
|
7
|
-
super(platform, accessory);
|
6
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
7
|
+
super(platform, accessory, accessoryConfiguration);
|
8
8
|
}
|
9
9
|
getExternalAccessoryCategory() {
|
10
10
|
return this.accessory.category;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"externalAccessory.js","sourceRoot":"","sources":["../../src/accessories/externalAccessory.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"externalAccessory.js","sourceRoot":"","sources":["../../src/accessories/externalAccessory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,SAAS;IAEvD,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C;QAE9C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACrD,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { CharacteristicValue, PlatformAccessory, Service, WithUUID } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
-
import {
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
4
|
+
import { Accessory } from './accessory.js';
|
4
5
|
import { OpenableAccessoryConfiguration } from '../configuration/configurationOpenableAccesory.js';
|
5
6
|
/**
|
6
7
|
* OpeningAccessory - Abstract accessory
|
@@ -22,7 +23,7 @@ export declare abstract class OpeningAccessory extends Accessory {
|
|
22
23
|
CurrentPosition: number;
|
23
24
|
PositionState: number;
|
24
25
|
};
|
25
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
26
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
26
27
|
getCurrentPosition(): Promise<CharacteristicValue>;
|
27
28
|
setTargetPosition(value: CharacteristicValue): Promise<void>;
|
28
29
|
getTargetPosition(): Promise<CharacteristicValue>;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { Accessory } from './
|
2
|
-
import { Timer } from '../timer.js';
|
1
|
+
import { Accessory } from './accessory.js';
|
2
|
+
import { Timer } from '../utils/timer.js';
|
3
3
|
/**
|
4
4
|
* OpeningAccessory - Abstract accessory
|
5
5
|
*/
|
@@ -20,8 +20,8 @@ export class OpeningAccessory extends Accessory {
|
|
20
20
|
CurrentPosition: OpeningAccessory.CLOSED, // %
|
21
21
|
PositionState: OpeningAccessory.STOPPED,
|
22
22
|
};
|
23
|
-
constructor(platform, accessory) {
|
24
|
-
super(platform, accessory);
|
23
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
24
|
+
super(platform, accessory, accessoryConfiguration);
|
25
25
|
// First configure the device based on the accessory details
|
26
26
|
this.openingAccessoryConfiguration = this.getOpeningAccessoryConfiguration();
|
27
27
|
this.defaultState = this.openingAccessoryConfiguration.defaultState === 'open' ? OpeningAccessory.OPEN : OpeningAccessory.CLOSED;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"openingAccessory.js","sourceRoot":"","sources":["../../src/accessories/openingAccessory.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"openingAccessory.js","sourceRoot":"","sources":["../../src/accessories/openingAccessory.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"updatableChargingState.js","sourceRoot":"","sources":["../../src/accessories/updatableChargingState.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"updatableObstruction.js","sourceRoot":"","sources":["../../src/accessories/updatableObstruction.ts"],"names":[],"mappings":""}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
-
import {
|
4
|
-
import {
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
4
|
+
import { Accessory } from './accessory.js';
|
5
|
+
import { UpdatableChargingState } from './updatableChargingState.js';
|
5
6
|
/**
|
6
7
|
* Battery - Accessory implementation
|
7
8
|
*/
|
@@ -16,7 +17,7 @@ export declare class Battery extends Accessory implements UpdatableChargingState
|
|
16
17
|
private readonly chargingStateStorageKey;
|
17
18
|
private lowLevelThreshold;
|
18
19
|
private states;
|
19
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
20
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
20
21
|
getStatusLowBattery(): Promise<CharacteristicValue>;
|
21
22
|
getBatteryLevel(): Promise<CharacteristicValue>;
|
22
23
|
getChargingState(): Promise<CharacteristicValue>;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* eslint-disable brace-style */
|
2
|
-
import { Accessory } from './
|
2
|
+
import { Accessory } from './accessory.js';
|
3
3
|
import { ChargingStateUpdateNotAllowed, InvalidChargingStateType } from '../errors.js';
|
4
4
|
/**
|
5
5
|
* Battery - Accessory implementation
|
@@ -18,8 +18,8 @@ export class Battery extends Accessory {
|
|
18
18
|
BatteryLevelStatus: 100,
|
19
19
|
ChargingState: Battery.NOT_CHARGING,
|
20
20
|
};
|
21
|
-
constructor(platform, accessory) {
|
22
|
-
super(platform, accessory);
|
21
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
22
|
+
super(platform, accessory, accessoryConfiguration);
|
23
23
|
// First configure the device based on the accessory details
|
24
24
|
this.states.ChargingState = this.accessoryConfiguration.battery.isRechargeable ? Battery.NOT_CHARGING : Battery.NOT_CHARGEABLE;
|
25
25
|
this.lowLevelThreshold = this.accessoryConfiguration.battery.lowLevelThreshold;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"virtualAccessoryBattery.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryBattery.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"virtualAccessoryBattery.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryBattery.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { PlatformAccessory, Service, WithUUID } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
3
4
|
import { OpeningAccessory } from './openingAccessory.js';
|
4
5
|
import { OpenableAccessoryConfiguration } from '../configuration/configurationOpenableAccesory.js';
|
5
6
|
/**
|
@@ -7,7 +8,7 @@ import { OpenableAccessoryConfiguration } from '../configuration/configurationOp
|
|
7
8
|
*/
|
8
9
|
export declare class Door extends OpeningAccessory {
|
9
10
|
static readonly ACCESSORY_TYPE_NAME: string;
|
10
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
11
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
11
12
|
protected getOpeningAccessoryConfiguration(): OpenableAccessoryConfiguration;
|
12
13
|
protected getOpeningAccessoryService(): WithUUID<typeof Service>;
|
13
14
|
protected getAccessoryTypeName(): string;
|
@@ -4,8 +4,8 @@ import { OpeningAccessory } from './openingAccessory.js';
|
|
4
4
|
*/
|
5
5
|
export class Door extends OpeningAccessory {
|
6
6
|
static ACCESSORY_TYPE_NAME = 'Door';
|
7
|
-
constructor(platform, accessory) {
|
8
|
-
super(platform, accessory);
|
7
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
8
|
+
super(platform, accessory, accessoryConfiguration);
|
9
9
|
}
|
10
10
|
getOpeningAccessoryConfiguration() {
|
11
11
|
return this.accessoryConfiguration.door;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"virtualAccessoryDoor.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryDoor.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"virtualAccessoryDoor.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryDoor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,gBAAgB;IAExC,MAAM,CAAU,mBAAmB,GAAW,MAAM,CAAC;IAErD,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C;QAE9C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACrD,CAAC;IAES,gCAAgC;QACxC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAC1C,CAAC;IAES,0BAA0B;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,CAAC;IAES,oBAAoB;QAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
-
import {
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
4
|
+
import { Accessory } from './accessory.js';
|
4
5
|
import { TriggerableEventAccessory } from './triggerableEventAccessory.js';
|
5
6
|
/**
|
6
7
|
* Doorbell - Accessory implementation
|
@@ -14,7 +15,7 @@ export declare class Doorbell extends Accessory implements TriggerableEventAcces
|
|
14
15
|
private companionSensorResetTimerId;
|
15
16
|
private states;
|
16
17
|
private companionSwitch?;
|
17
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
18
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
18
19
|
getProgrammableSwitchEvent(): Promise<CharacteristicValue>;
|
19
20
|
setVolume(value: CharacteristicValue): Promise<void>;
|
20
21
|
getVolume(): Promise<CharacteristicValue>;
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Accessory } from './
|
1
|
+
import { Accessory } from './accessory.js';
|
2
2
|
import { AccessoryNotAllowedError } from '../errors.js';
|
3
|
-
import { CompanionSwitch } from '
|
3
|
+
import { CompanionSwitch } from './companions/companionSwitch.js';
|
4
4
|
import { SwitchConfiguration } from '../configuration/accessories/configurationSwitch.js';
|
5
5
|
import { TimerConfiguration } from '../configuration/configurationTimer.js';
|
6
6
|
import { DurationConfiguration } from '../configuration/configurationDuration.js';
|
@@ -18,8 +18,8 @@ export class Doorbell extends Accessory {
|
|
18
18
|
Volume: 100,
|
19
19
|
};
|
20
20
|
companionSwitch;
|
21
|
-
constructor(platform, accessory) {
|
22
|
-
super(platform, accessory);
|
21
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
22
|
+
super(platform, accessory, accessoryConfiguration);
|
23
23
|
// First configure the device based on the accessory details
|
24
24
|
this.states.Volume = this.accessoryConfiguration.doorbell.volume;
|
25
25
|
this.service = this.accessory.getService(this.platform.Service.Doorbell) || this.accessory.addService(this.platform.Service.Doorbell);
|
@@ -102,7 +102,7 @@ export class Doorbell extends Accessory {
|
|
102
102
|
this.accessoryConfiguration.resetTimer.duration.hours = 0;
|
103
103
|
this.accessoryConfiguration.resetTimer.duration.minutes = 0;
|
104
104
|
this.accessoryConfiguration.resetTimer.duration.seconds = Doorbell.COMPANION_TIMER_RESET;
|
105
|
-
const companionSwitch = new CompanionSwitch(this.platform, this.accessory, this.accessoryConfiguration.accessoryName + ' Switch', this);
|
105
|
+
const companionSwitch = new CompanionSwitch(this.platform, this.accessory, this.accessoryConfiguration, this.accessoryConfiguration.accessoryName + ' Switch', this);
|
106
106
|
return companionSwitch;
|
107
107
|
}
|
108
108
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"virtualAccessoryDoorbell.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryDoorbell.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"virtualAccessoryDoorbell.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryDoorbell.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
|
2
2
|
import { VirtualAccessoriesPlatform } from '../platform.js';
|
3
|
-
import {
|
3
|
+
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
|
4
|
+
import { Accessory } from './accessory.js';
|
4
5
|
/**
|
5
6
|
* Fan - Accessory implementation
|
6
7
|
*/
|
@@ -14,7 +15,7 @@ export declare class Fan extends Accessory {
|
|
14
15
|
private readonly rotatioDirectionStorageKey;
|
15
16
|
private readonly rotatioSpeedStorageKey;
|
16
17
|
private states;
|
17
|
-
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory);
|
18
|
+
constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
|
18
19
|
setOn(value: CharacteristicValue): Promise<void>;
|
19
20
|
getOn(): Promise<CharacteristicValue>;
|
20
21
|
setRotationDirection(value: CharacteristicValue): Promise<void>;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Accessory } from './
|
1
|
+
import { Accessory } from './accessory.js';
|
2
2
|
/**
|
3
3
|
* Fan - Accessory implementation
|
4
4
|
*/
|
@@ -16,8 +16,8 @@ export class Fan extends Accessory {
|
|
16
16
|
FanRotationDirection: Fan.CLOCKWISE,
|
17
17
|
FanRotationSpeed: 100,
|
18
18
|
};
|
19
|
-
constructor(platform, accessory) {
|
20
|
-
super(platform, accessory);
|
19
|
+
constructor(platform, accessory, accessoryConfiguration) {
|
20
|
+
super(platform, accessory, accessoryConfiguration);
|
21
21
|
// First configure the device based on the accessory details
|
22
22
|
this.defaultState = this.accessoryConfiguration.fan.defaultState === 'on' ? Fan.ON : Fan.OFF;
|
23
23
|
const rotationDirection = this.accessoryConfiguration.fan.rotationDirection === 'clockwise' ? Fan.CLOCKWISE : Fan.COUNTER_CLOCKWISE;
|