Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turning Virtual Devices on/off does not work. #117

Open
ryanlm opened this issue Sep 22, 2018 · 1 comment
Open

Turning Virtual Devices on/off does not work. #117

ryanlm opened this issue Sep 22, 2018 · 1 comment

Comments

@ryanlm
Copy link

ryanlm commented Sep 22, 2018

I am trying to get a Insteon Keypad's buttons to work. In short, I created virtual on/off devices and used triggers in Indigo to set the state. However, when mapping the virtual on/off device to a HomeBridge switch, it only works one way via the Home app on iOS. It does update correctly when using the physical switch/keypad.

Expected Behavior

Clicking the virtual device presented as a switch, tapping it should turn it on, and tapping it again should turn it off.

Current Behavior

The state never changes in Indigo of the virtual device. The logs show either the ON request coming in or the OFF request coming in, but not each. Stated another way, if I create one virtual device it will only see ON requests from the Home App. If I create another one it may only see OFF requests. Seems random.

Steps to Reproduce (for bugs)

  1. Create a virtual on/off device.
  2. Map it via HomeKit Bridge in Indigo as a switch.
  3. Tap its button in the Home App, the state should not change in Indigo.

Versions

v1.0.2 released on July 18, 2018
Fresh install of this plugin and

Configuration

   HomeKit Bridge                  {
        "platforms": [
                {
                        "protocol": "http", 
                        "name": "HomeKit Bridge Server", 
                        "listenPort": "8445", 
                        "platform": "Indigo2", 
                        "host": "127.0.0.1", 
                        "debug": false, 
                        "serverId": 637357676, 
                        "port": "8558"
                }
        ], 
        "bridge": {
                "username": "CC:22:3D:E3:CE:10", 
                "name": "Indigo HomeKit Bridge", 
                "pin": "031-45-154", 
                "port": "51826"
        }, 
        "accessories": [], 
        "description": "HomeKit configuration generated by HomeKit Bridge on 2018-09-22 13:59:00.934000 for device Indigo HomeKit Bridge"
}

Homebridge Log / Command Output

[2018-9-22 13:59:02] Homebridge is running on port 51826.
[2018-9-22 13:59:04] [HomeKit Bridge Server] Test Switch: get(On) => false
[2018-9-22 13:59:10] [HomeKit Bridge Server] Test Switch: set(On) false -> true
[2018-9-22 13:59:10] [HomeKit Bridge Server] HomeKit Bridge request: http://127.0.0.1:8558/HomeKit?objId=280738476&serverId=637357676&jkey=06d7af5627e0f5eb0fe22d6af633dd1e80c390c3439bd35ffb600b90bc8bc11c&cmd=setCharacteristic&On=true
[2018-9-22 13:59:10] [HomeKit Bridge Server] Test Switch: updateCharacteristicValue(On): true -> false
[2018-9-22 13:59:18] [HomeKit Bridge Server] Test Switch: set(On) false -> true
[2018-9-22 13:59:18] [HomeKit Bridge Server] HomeKit Bridge request: http://127.0.0.1:8558/HomeKit?objId=280738476&serverId=637357676&jkey=06d7af5627e0f5eb0fe22d6af633dd1e80c390c3439bd35ffb600b90bc8bc11c&cmd=setCharacteristic&On=true
[2018-9-22 13:59:18] [HomeKit Bridge Server] Test Switch: updateCharacteristicValue(On): true -> false
[2018-9-22 13:59:23] [HomeKit Bridge Server] Test Switch: set(On) false -> true
[2018-9-22 13:59:23] [HomeKit Bridge Server] HomeKit Bridge request: http://127.0.0.1:8558/HomeKit?objId=280738476&serverId=637357676&jkey=06d7af5627e0f5eb0fe22d6af633dd1e80c390c3439bd35ffb600b90bc8bc11c&cmd=setCharacteristic&On=true
[2018-9-22 13:59:23] [HomeKit Bridge Server] Test Switch: updateCharacteristicValue(On): true -> false
[2018-9-22 13:59:31] [HomeKit Bridge Server] Test Switch: set(On) false -> true
[2018-9-22 13:59:31] [HomeKit Bridge Server] HomeKit Bridge request: http://127.0.0.1:8558/HomeKit?objId=280738476&serverId=637357676&jkey=06d7af5627e0f5eb0fe22d6af633dd1e80c390c3439bd35ffb600b90bc8bc11c&cmd=setCharacteristic&On=true
[2018-9-22 13:59:31] [HomeKit Bridge Server] Test Switch: updateCharacteristicValue(On): true -> false
[2018-9-22 13:59:33] [HomeKit Bridge Server] Virtual Keypad Button: get(On) => true
[2018-9-22 13:59:36] [HomeKit Bridge Server] Virtual Keypad Button: set(On) true -> false
[2018-9-22 13:59:36] [HomeKit Bridge Server] HomeKit Bridge request: http://127.0.0.1:8558/HomeKit?objId=1736185922&serverId=637357676&jkey=b26972baa0f89b62c31e6e12a10669486e26ce322971462094e343f3b9fde8b5&cmd=setCharacteristic&On=false
[2018-9-22 13:59:36] [HomeKit Bridge Server] Virtual Keypad Button: updateCharacteristicValue(On): false -> true
[2018-9-22 14:09:43] [HomeKit Bridge Server] Garage Entryway Keypad: get(On) => true
[2018-9-22 14:09:43] [HomeKit Bridge Server] Test Switch: get(On) => false
[2018-9-22 14:09:43] [HomeKit Bridge Server] Virtual Keypad Button: get(On) => true

Device Simulation Report

	
	Service : 
		alias : Test Switch
		model : 
		subModel : 
		indigoType : indigo.RelayDevice
		pluginType : indigo.RelayDevice.com.perceptiveautomation.indigoplugin.devicecollection.pseudoRelay
		type : Switch
		desc : Switch
		objId : 280738476
		serverId : 637357676
		invertOnState : False
		convertFahrenheit : False
		required : (List)
			On : False
		optional : (List)
		native : True
		requiresPlugin : (List)
		actions : (List)
			Action : (HomeKitAction)
				Characteristic : On
				When : equal
				Value : False (bool)
				Value2 : 0 (bool)
				Command : device.turnOff
				Arguments : [280738476]
				monitors : {280738476: 'attr_onState'}
			Action : (HomeKitAction)
				Characteristic : On
				When : equal
				Value : True (bool)
				Value2 : 0 (bool)
				Command : device.turnOn
				Arguments : [280738476]
				monitors : {280738476: 'attr_onState'}
		loadOptional : False
		characterDict : (Dict)
			On : False
	```
@Colorado4Wheeler
Copy link
Collaborator

Hmmm, I have a dozen virtual on/off devices working in HomeKit via HKB and your device simulation shows that it is correctly detecting the state. The logs also look correct. Can you verify that using the Indigo UI will properly turn on and off the device AND (the AND is critical here) that you can see the device state change in Indigo AND (yup, again) that the variable you assigned to the virtual group as the device state is changing each time?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants