Alexa can't find a specific device
fparrav opened this issue · comments
I have 2 instances of homebridge running on the same raspberry pi (ports 51826 and 51827) the Alexa plugin runs on instance 51827 and the instance filter is configured as "filter": "10.0.0.202:51827"
(this being the ip from my raspberry), The problem is that I have a broadlink rm4 mini device that controls a TV but Alexa can't find it, strangely the learn code switches if it finds them. Apparently the Homebridge Accessory Dump does not expose this TV.
Homebridge Broadlink RM Pro config:
{
"accessories": [
{
"data": {},
"enableAutoOff": false,
"host": "10.0.0.22",
"name": "TV Dormitorio",
"pingIPAddress": "10.0.0.71",
"pingIPAddressStateOnly": true,
"type": "tv"
}
],
"hideScanFrequencyButton": true,
"hosts": [
{
"address": "10.0.0.22",
"isRFSupported": false,
"isRM4": true,
"mac": "ff:ff:ff:ff:ff:ff",
"type": "learn-code"
}
],
"name": "BroadlinkRM",
"platform": "BroadlinkRM"
}
Homebridge Accessory Dump:
{
"accessories": [
{
"aid": 1,
"services": [
{
"type": "3E",
"iid": 1,
"characteristics": [
{
"type": "14",
"iid": 2,
"perms": [
"pw"
],
"description": "Identify",
"format": "bool"
},
{
"type": "20",
"iid": 3,
"value": "homebridge.io",
"perms": [
"pr"
],
"description": "Manufacturer",
"format": "string",
"maxLen": 64
},
{
"type": "21",
"iid": 4,
"value": "homebridge",
"perms": [
"pr"
],
"description": "Model",
"format": "string",
"maxLen": 64
},
{
"type": "23",
"iid": 5,
"value": "Homebridge2 B4FF",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "30",
"iid": 6,
"value": "0E:4A:BF:86:D4:A1",
"perms": [
"pr"
],
"description": "Serial Number",
"format": "string",
"maxLen": 64
},
{
"type": "52",
"iid": 7,
"value": "1.3.4",
"perms": [
"pr"
],
"description": "Firmware Revision",
"format": "string"
}
]
},
{
"type": "A2",
"iid": 2000000008,
"characteristics": [
{
"type": "37",
"iid": 9,
"value": "1.1.0",
"perms": [
"pr"
],
"description": "Version",
"format": "string",
"maxLen": 64
}
]
}
]
},
{
"aid": 2,
"services": [
{
"type": "3E",
"iid": 1,
"characteristics": [
{
"type": "14",
"iid": 2,
"perms": [
"pw"
],
"description": "Identify",
"format": "bool"
},
{
"type": "20",
"iid": 3,
"value": "homebridge-alexa",
"perms": [
"pr"
],
"description": "Manufacturer",
"format": "string",
"maxLen": 64
},
{
"type": "21",
"iid": 4,
"value": "Default-Model",
"perms": [
"pr"
],
"description": "Model",
"format": "string",
"maxLen": 64
},
{
"type": "23",
"iid": 5,
"value": "Alexa",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "30",
"iid": 6,
"value": "rpi2",
"perms": [
"pr"
],
"description": "Serial Number",
"format": "string",
"maxLen": 64
},
{
"type": "52",
"iid": 7,
"value": "0.5.34",
"perms": [
"pr"
],
"description": "Firmware Revision",
"format": "string"
}
]
},
{
"type": "80",
"iid": 8,
"characteristics": [
{
"type": "23",
"iid": 9,
"value": "Alexa",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "6A",
"iid": 10,
"value": 0,
"perms": [
"ev",
"pr"
],
"description": "Contact Sensor State",
"format": "uint8",
"minValue": 0,
"maxValue": 1,
"minStep": 1,
"valid-values": [
0,
1
]
}
]
}
]
},
{
"aid": 20,
"services": [
{
"type": "3E",
"iid": 1,
"characteristics": [
{
"type": "14",
"iid": 2,
"perms": [
"pw"
],
"description": "Identify",
"format": "bool"
},
{
"type": "20",
"iid": 3,
"value": "AUX",
"perms": [
"pr"
],
"description": "Manufacturer",
"format": "string",
"maxLen": 64
},
{
"type": "21",
"iid": 4,
"value": "Broadlink",
"perms": [
"pr"
],
"description": "Model",
"format": "string",
"maxLen": 64
},
{
"type": "23",
"iid": 5,
"value": "Aire Sala",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "30",
"iid": 6,
"value": "Default-SerialNumber",
"perms": [
"pr"
],
"description": "Serial Number",
"format": "string",
"maxLen": 64
},
{
"type": "52",
"iid": 7,
"value": "2.2.3",
"perms": [
"pr"
],
"description": "Firmware Revision",
"format": "string"
}
]
},
{
"type": "BC",
"iid": 8,
"characteristics": [
{
"type": "B0",
"iid": 9,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Active",
"format": "uint8",
"minValue": 0,
"maxValue": 1,
"minStep": 1,
"valid-values": [
0,
1
]
},
{
"type": "B1",
"iid": 10,
"value": 2,
"perms": [
"ev",
"pr"
],
"description": "Current Heater-Cooler State",
"format": "uint8",
"minValue": 0,
"maxValue": 3,
"minStep": 1,
"valid-values": [
0,
1,
2,
3
]
},
{
"type": "B2",
"iid": 11,
"value": 1,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Target Heater-Cooler State",
"format": "uint8",
"minValue": 0,
"maxValue": 2,
"minStep": 1,
"valid-values": [
0,
1,
2
]
},
{
"type": "11",
"iid": 12,
"value": 21,
"perms": [
"ev",
"pr"
],
"description": "Current Temperature",
"format": "float",
"unit": "celsius",
"minValue": -270,
"maxValue": 100,
"minStep": 0.1
},
{
"type": "D",
"iid": 13,
"value": 21,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Cooling Threshold Temperature",
"format": "float",
"unit": "celsius",
"minValue": 16,
"maxValue": 32,
"minStep": 1
},
{
"type": "12",
"iid": 14,
"value": 21,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Heating Threshold Temperature",
"format": "float",
"unit": "celsius",
"minValue": 16,
"maxValue": 32,
"minStep": 1
},
{
"type": "29",
"iid": 15,
"value": 1,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Rotation Speed",
"format": "float",
"unit": "percentage",
"minValue": 0,
"maxValue": 100,
"minStep": 1
},
{
"type": "B6",
"iid": 16,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Swing Mode",
"format": "uint8",
"minValue": 0,
"maxValue": 1,
"minStep": 1,
"valid-values": [
0,
1
]
}
]
},
{
"type": "49",
"iid": 17,
"characteristics": [
{
"type": "23",
"iid": 18,
"value": "Auto",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "25",
"iid": 19,
"value": 1,
"perms": [
"ev",
"pr",
"pw"
],
"description": "On",
"format": "bool"
}
]
}
]
},
{
"aid": 19,
"services": [
{
"type": "3E",
"iid": 1,
"characteristics": [
{
"type": "14",
"iid": 2,
"perms": [
"pw"
],
"description": "Identify",
"format": "bool"
},
{
"type": "20",
"iid": 3,
"value": "Ursus trotter",
"perms": [
"pr"
],
"description": "Manufacturer",
"format": "string",
"maxLen": 64
},
{
"type": "21",
"iid": 4,
"value": "12BTU INV",
"perms": [
"pr"
],
"description": "Model",
"format": "string",
"maxLen": 64
},
{
"type": "23",
"iid": 5,
"value": "AC Dormitorio",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "30",
"iid": 6,
"value": "807d3a6318e4",
"perms": [
"pr"
],
"description": "Serial Number",
"format": "string",
"maxLen": 64
},
{
"type": "52",
"iid": 7,
"value": "2.0.1",
"perms": [
"pr"
],
"description": "Firmware Revision",
"format": "string"
}
]
},
{
"type": "BC",
"iid": 8,
"characteristics": [
{
"type": "23",
"iid": 9,
"value": "AC Dormitorio",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "B0",
"iid": 10,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Active",
"format": "uint8",
"minValue": 0,
"maxValue": 1,
"minStep": 1,
"valid-values": [
0,
1
]
},
{
"type": "B1",
"iid": 11,
"value": 0,
"perms": [
"ev",
"pr"
],
"description": "Current Heater-Cooler State",
"format": "uint8",
"minValue": 0,
"maxValue": 3,
"minStep": 1,
"valid-values": [
0,
1,
2,
3
]
},
{
"type": "B2",
"iid": 12,
"value": 9,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Target Heater-Cooler State",
"format": "uint8",
"minValue": 0,
"maxValue": 9,
"minStep": 1,
"valid-values": [
1,
2,
9
]
},
{
"type": "11",
"iid": 13,
"value": 26,
"perms": [
"ev",
"pr"
],
"description": "Current Temperature",
"format": "float",
"unit": "celsius",
"minValue": -270,
"maxValue": 100,
"minStep": 0.1
},
{
"type": "B6",
"iid": 14,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Swing Mode",
"format": "uint8",
"minValue": 0,
"maxValue": 1,
"minStep": 1,
"valid-values": [
0,
1
]
},
{
"type": "D",
"iid": 16,
"value": 23,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Cooling Threshold Temperature",
"format": "float",
"unit": "celsius",
"minValue": 16,
"maxValue": 31,
"minStep": 1
},
{
"type": "12",
"iid": 17,
"value": 23,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Heating Threshold Temperature",
"format": "float",
"unit": "celsius",
"minValue": 16,
"maxValue": 31,
"minStep": 1
},
{
"type": "36",
"iid": 18,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Temperature Display Units",
"format": "uint8",
"minValue": 0,
"maxValue": 1,
"minStep": 1,
"valid-values": [
0,
1
]
},
{
"type": "29",
"iid": 19,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "Rotation Speed",
"format": "float",
"unit": "percentage",
"minValue": 0,
"maxValue": 100,
"minStep": 1
}
]
}
]
},
{
"aid": 24,
"services": [
{
"type": "3E",
"iid": 1,
"characteristics": [
{
"type": "14",
"iid": 2,
"perms": [
"pw"
],
"description": "Identify",
"format": "bool"
},
{
"type": "20",
"iid": 3,
"value": "Broadlink",
"perms": [
"pr"
],
"description": "Manufacturer",
"format": "string",
"maxLen": 64
},
{
"type": "21",
"iid": 4,
"value": "RM Mini or Pro",
"perms": [
"pr"
],
"description": "Model",
"format": "string",
"maxLen": 64
},
{
"type": "23",
"iid": 5,
"value": "Learn",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "30",
"iid": 6,
"value": "a5ceba7b-9708-4e35-a1c3-1f99d2321079",
"perms": [
"pr"
],
"description": "Serial Number",
"format": "string",
"maxLen": 64
},
{
"type": "52",
"iid": 7,
"value": "4.4.1",
"perms": [
"pr"
],
"description": "Firmware Revision",
"format": "string"
}
]
},
{
"type": "49",
"iid": 8,
"characteristics": [
{
"type": "23",
"iid": 9,
"value": "Learn",
"perms": [
"pr"
],
"description": "Name",
"format": "string",
"maxLen": 64
},
{
"type": "25",
"iid": 10,
"value": 0,
"perms": [
"ev",
"pr",
"pw"
],
"description": "On",
"format": "bool"
}
]
}
]
}
]
}
The instance shows these devices:
This is what was sent to Alexa based on the dump you supplied. The dump does not contain the TV device....
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3",
"messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
},
"payload": {
"endpoints": [
{
"endpointId": "Q0M6MjI6M0Q6RTM6Q0U6MzAtcGFyc2VUZXN0LUFVWC1BaXJlIFNhbGEtMDAwMDAwQkMtMDAwMC0xMDAwLTgwMDAtMDAyNkJCNzY1Mjkx",
"friendlyName": "Aire Sala",
"description": "parseTest Aire Sala Heater Cooler",
"manufacturerName": "AUX",
"displayCategories": [
"THERMOSTAT"
],
"cookie": {
"TurnOn": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":9,\"value\":1}",
"TurnOff": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":9,\"value\":0}",
"upperSetpoint": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":13}",
"targetSetpoint": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":13}",
"lowerSetpoint": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":14}",
"AdjustPowerLevel": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":15}",
"SetPowerLevel": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":15}",
"ReportState": "[{\"interface\":\"Alexa.PowerController\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":9},{\"interface\":\"Alexa.TemperatureSensor\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":12},{\"interface\":\"Alexa.ThermostatControllerupperSetpoint\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":13},{\"interface\":\"Alexa.ThermostatControllertargetSetpoint\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":13},{\"interface\":\"Alexa.ThermostatControllerlowerSetpoint\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":14},{\"interface\":\"Alexa.PowerLevelController\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":15}]"
},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
},
{
"type": "AlexaInterface",
"interface": "Alexa.PowerController",
"version": "3",
"properties": {
"supported": [
{
"name": "powerState"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.TemperatureSensor",
"version": "3",
"properties": {
"supported": [
{
"name": "temperature"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.PowerLevelController",
"version": "3",
"properties": {
"supported": [
{
"name": "powerLevel"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.ThermostatController",
"version": "3",
"properties": {
"supported": [
{
"name": "upperSetpoint"
},
{
"name": "targetSetpoint"
},
{
"name": "lowerSetpoint"
}
],
"proactivelyReported": false,
"retrievable": true
},
"configuration": {
"supportsScheduling": false,
"supportedModes": [
"HEAT",
"COOL",
"AUTO",
"OFF"
]
}
}
]
},
{
"endpointId": "Q0M6MjI6M0Q6RTM6Q0U6MzAtcGFyc2VUZXN0LUFVWC1BdXRvLTAwMDAwMDQ5LTAwMDAtMTAwMC04MDAwLTAwMjZCQjc2NTI5MQ==",
"friendlyName": "Auto",
"description": "parseTest Auto Switch",
"manufacturerName": "AUX",
"displayCategories": [
"SWITCH"
],
"cookie": {
"TurnOn": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":19,\"value\":1}",
"TurnOff": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":19,\"value\":0}",
"ReportState": "[{\"interface\":\"Alexa.PowerController\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":20,\"iid\":19}]"
},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
},
{
"type": "AlexaInterface",
"interface": "Alexa.PowerController",
"version": "3",
"properties": {
"supported": [
{
"name": "powerState"
}
],
"proactivelyReported": false,
"retrievable": true
}
}
]
},
{
"endpointId": "Q0M6MjI6M0Q6RTM6Q0U6MzAtcGFyc2VUZXN0LUJyb2FkbGluay1MZWFybi0wMDAwMDA0OS0wMDAwLTEwMDAtODAwMC0wMDI2QkI3NjUyOTE=",
"friendlyName": "Learn",
"description": "parseTest Learn Switch",
"manufacturerName": "Broadlink",
"displayCategories": [
"SWITCH"
],
"cookie": {
"TurnOn": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":24,\"iid\":10,\"value\":1}",
"TurnOff": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":24,\"iid\":10,\"value\":0}",
"ReportState": "[{\"interface\":\"Alexa.PowerController\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":24,\"iid\":10}]"
},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
},
{
"type": "AlexaInterface",
"interface": "Alexa.PowerController",
"version": "3",
"properties": {
"supported": [
{
"name": "powerState"
}
],
"proactivelyReported": false,
"retrievable": true
}
}
]
},
{
"endpointId": "Q0M6MjI6M0Q6RTM6Q0U6MzAtcGFyc2VUZXN0LVVyc3VzIHRyb3R0ZXItQUMgRG9ybWl0b3Jpby0wMDAwMDBCQy0wMDAwLTEwMDAtODAwMC0wMDI2QkI3NjUyOTE=",
"friendlyName": "AC Dormitorio",
"description": "parseTest AC Dormitorio Heater Cooler",
"manufacturerName": "Ursus trotter",
"displayCategories": [
"THERMOSTAT"
],
"cookie": {
"TurnOn": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":10,\"value\":1}",
"TurnOff": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":10,\"value\":0}",
"upperSetpoint": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":16}",
"targetSetpoint": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":16}",
"lowerSetpoint": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":17}",
"AdjustPowerLevel": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":19}",
"SetPowerLevel": "{\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":19}",
"ReportState": "[{\"interface\":\"Alexa.PowerController\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":10},{\"interface\":\"Alexa.TemperatureSensor\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":13},{\"interface\":\"Alexa.ThermostatControllerupperSetpoint\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":16},{\"interface\":\"Alexa.ThermostatControllertargetSetpoint\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":16},{\"interface\":\"Alexa.ThermostatControllerlowerSetpoint\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":17},{\"interface\":\"Alexa.PowerLevelController\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":19,\"iid\":19}]"
},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
},
{
"type": "AlexaInterface",
"interface": "Alexa.PowerController",
"version": "3",
"properties": {
"supported": [
{
"name": "powerState"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.TemperatureSensor",
"version": "3",
"properties": {
"supported": [
{
"name": "temperature"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.PowerLevelController",
"version": "3",
"properties": {
"supported": [
{
"name": "powerLevel"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.ThermostatController",
"version": "3",
"properties": {
"supported": [
{
"name": "upperSetpoint"
},
{
"name": "targetSetpoint"
},
{
"name": "lowerSetpoint"
}
],
"proactivelyReported": false,
"retrievable": true
},
"configuration": {
"supportsScheduling": false,
"supportedModes": [
"HEAT",
"COOL",
"AUTO",
"OFF"
]
}
}
]
},
{
"endpointId": "Q0M6MjI6M0Q6RTM6Q0U6MzAtcGFyc2VUZXN0LWhvbWVicmlkZ2UtYWxleGEtQWxleGEtMDAwMDAwODAtMDAwMC0xMDAwLTgwMDAtMDAyNkJCNzY1Mjkx",
"friendlyName": "Alexa",
"description": "parseTest Alexa Contact Sensor",
"manufacturerName": "homebridge-alexa",
"displayCategories": [
"CONTACT_SENSOR"
],
"cookie": {
"ReportState": "[{\"interface\":\"Alexa.ContactSensor\",\"deviceID\":\"CC:22:3D:E3:CE:30\",\"aid\":2,\"iid\":10}]"
},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
},
{
"type": "AlexaInterface",
"interface": "Alexa.ContactSensor",
"version": "3",
"properties": {
"supported": [
{
"name": "detectionState"
}
],
"proactivelyReported": true,
"retrievable": true
}
}
]
}
]
}
}
}
I understand, so the error is the homebridge-broadlink-rm ?. What is the requirement for a plugin to be exposed by homebridge to Alexa?
The tv is using a different port, so your filter setting is filtering it out
Thank you very much, indeed that was the problem, I changed the filter to deny the devices of the first instance and it could already detect TV in Alexa.