peribeir / homeassistant-rademacher

This custom integration provides access to Rademacher Devices connected to a HomePilot (or Start2Smart) bridge.
GNU General Public License v3.0
65 stars 12 forks source link

Support for Zigbee Devices #124

Closed mreic closed 1 month ago

mreic commented 2 months ago

Are you planning to support connected Zigbee-Devices via Zigbee USB-Dongle?

peribeir commented 1 month ago

Hi @mreic This was not in my plans. But I'm always open to new features. The question is, I'll need your help. Or anyone else who has Zigbee Devices in Homepilot. Which type of devices do you have? By looking at the web interface code, it seems that only LED Lights are supported, is this your case?

mreic commented 1 month ago

My help would not be a problem. Since Rademacher Zigbee dongle only supports LED-Light (no switches etc.) There are only these of course.

Since im also into coding you can maybe tell me what you need and i can provide that if that makes things easier for you.

peribeir commented 1 month ago

Let's start by 2 outputs from the API. I'd like the result of the following API calls: http://[ip or name of HP hub]/devices http://[ip or name of HP hub]/v4/devices?devtype=Actuator or... in case you have the latest HP Premium: http://[ip or name of HP hub]/hp/devices http://[ip or name of HP hub]/hp/v4/devices?devtype=Actuator I guess you have other devices in your network, so, if you could point me out what are the names of the Zigbee ones. And also for each one, what are their capabilities, for instance, can you control brightness, color temperature, color, etc.

Thanks

mreic commented 1 month ago

I removed all devices other than Zigbee devices. First, third and fourth device are RGBWW-Stripes (Seperate controlls for cold- and warm white, RGB-settings, brightness etc.) Second is a Phillips Hue Lamp (This one is only dimmable)

http://[ip or name of HP hub]/devices

{
    "error_description": "OK",
    "error_code": 0,
    "payload": {
        "devices": [{

                "capabilities": [{
                        "name": "CURR_POS_CFG",
                        "value": "85",
                        "min_value": "0",
                        "max_value": "100",
                        "step_size": "1",
                        "read_only": false
                    }, {
                        "name": "PROD_CODE_DEVICE_LOC",
                        "value": "99999975",
                        "read_only": false
                    }, {
                        "name": "REACHABILITY_EVT",
                        "value": "true",
                        "read_only": true,
                        "timestamp": 1727022591
                    }, {
                        "name": "RGB_CFG",
                        "value": "0xFFFFFF",
                        "read_only": false
                    }, {
                        "name": "COLOR_TEMP_CFG",
                        "value": "420",
                        "min_value": "153",
                        "max_value": "500",
                        "read_only": false
                    }, {
                        "name": "NAME_DEVICE_LOC",
                        "value": "TV LED",
                        "read_only": false
                    }, {
                        "name": "PROT_ID_DEVICE_LOC",
                        "value": "ZIG_00124B0021F029E6",
                        "read_only": false
                    }, {
                        "name": "INTF_ID_DEVICE_LOC",
                        "value": "15",
                        "read_only": false
                    }, {
                        "name": "ICONSET_LOC",
                        "value": "iconset40",
                        "read_only": false
                    }, {
                        "name": "DEVICE_TYPE_LOC",
                        "value": "75",
                        "read_only": false
                    }, {
                        "name": "ICONSET_INV_LOC",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VOICE_CONTROLLED_LOC",
                        "value": "",
                        "read_only": false
                    }, {
                        "name": "COLOR_MODE_CFG",
                        "value": "ct",
                        "read_only": false
                    }, {
                        "name": "ID_DEVICE_LOC",
                        "value": "23",
                        "read_only": false
                    }, {
                        "name": "CURR_SWITCH_POS_CFG",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VIS_DEVICE_LOC",
                        "value": "true",
                        "read_only": false
                    }, {
                        "name": "DESCR_DEVICE_LOC",
                        "value": "Ihre Gerätebeschreibung",
                        "read_only": false
                    }
                ]
            }, {
                "capabilities": [{
                        "name": "CURR_POS_CFG",
                        "value": "100",
                        "min_value": "0",
                        "max_value": "100",
                        "step_size": "1",
                        "read_only": false
                    }, {
                        "name": "PROD_CODE_DEVICE_LOC",
                        "value": "99999973",
                        "read_only": false
                    }, {
                        "name": "REACHABILITY_EVT",
                        "value": "true",
                        "read_only": true,
                        "timestamp": 1726304820
                    }, {
                        "name": "NAME_DEVICE_LOC",
                        "value": "Stehlampe Couch",
                        "read_only": false
                    }, {
                        "name": "PROT_ID_DEVICE_LOC",
                        "value": "ZIG_0017880106D37DB5",
                        "read_only": false
                    }, {
                        "name": "INTF_ID_DEVICE_LOC",
                        "value": "15",
                        "read_only": false
                    }, {
                        "name": "ICONSET_LOC",
                        "value": "iconset40",
                        "read_only": false
                    }, {
                        "name": "DEVICE_TYPE_LOC",
                        "value": "73",
                        "read_only": false
                    }, {
                        "name": "ICONSET_INV_LOC",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VOICE_CONTROLLED_LOC",
                        "value": "",
                        "read_only": false
                    }, {
                        "name": "ID_DEVICE_LOC",
                        "value": "24",
                        "read_only": false
                    }, {
                        "name": "CURR_SWITCH_POS_CFG",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VIS_DEVICE_LOC",
                        "value": "true",
                        "read_only": false
                    }, {
                        "name": "DESCR_DEVICE_LOC",
                        "value": "",
                        "read_only": false
                    }
                ]
            }, {
                "capabilities": [{
                        "name": "CURR_POS_CFG",
                        "value": "100",
                        "min_value": "0",
                        "max_value": "100",
                        "step_size": "1",
                        "read_only": false
                    }, {
                        "name": "PROD_CODE_DEVICE_LOC",
                        "value": "99999975",
                        "read_only": false
                    }, {
                        "name": "REACHABILITY_EVT",
                        "value": "true",
                        "read_only": true,
                        "timestamp": 1727111048
                    }, {
                        "name": "RGB_CFG",
                        "value": "0xFFFFFF",
                        "read_only": false
                    }, {
                        "name": "COLOR_TEMP_CFG",
                        "value": "442",
                        "min_value": "153",
                        "max_value": "500",
                        "read_only": false
                    }, {
                        "name": "NAME_DEVICE_LOC",
                        "value": "Küche LED-Band rechts",
                        "read_only": false
                    }, {
                        "name": "PROT_ID_DEVICE_LOC",
                        "value": "ZIG_00124B0023A4965E",
                        "read_only": false
                    }, {
                        "name": "INTF_ID_DEVICE_LOC",
                        "value": "15",
                        "read_only": false
                    }, {
                        "name": "ICONSET_LOC",
                        "value": "iconset40",
                        "read_only": false
                    }, {
                        "name": "DEVICE_TYPE_LOC",
                        "value": "75",
                        "read_only": false
                    }, {
                        "name": "ICONSET_INV_LOC",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VOICE_CONTROLLED_LOC",
                        "value": "",
                        "read_only": false
                    }, {
                        "name": "COLOR_MODE_CFG",
                        "value": "ct",
                        "read_only": false
                    }, {
                        "name": "ID_DEVICE_LOC",
                        "value": "25",
                        "read_only": false
                    }, {
                        "name": "CURR_SWITCH_POS_CFG",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VIS_DEVICE_LOC",
                        "value": "true",
                        "read_only": false
                    }, {
                        "name": "DESCR_DEVICE_LOC",
                        "value": "Ihre Gerätebeschreibung",
                        "read_only": false
                    }
                ]
            }, {
                "capabilities": [{
                        "name": "CURR_POS_CFG",
                        "value": "100",
                        "min_value": "0",
                        "max_value": "100",
                        "step_size": "1",
                        "read_only": false
                    }, {
                        "name": "PROD_CODE_DEVICE_LOC",
                        "value": "99999975",
                        "read_only": false
                    }, {
                        "name": "REACHABILITY_EVT",
                        "value": "true",
                        "read_only": true,
                        "timestamp": 1727111843
                    }, {
                        "name": "RGB_CFG",
                        "value": "0xFFFFFF",
                        "read_only": false
                    }, {
                        "name": "COLOR_TEMP_CFG",
                        "value": "434",
                        "min_value": "153",
                        "max_value": "500",
                        "read_only": false
                    }, {
                        "name": "NAME_DEVICE_LOC",
                        "value": "Küche LED-Band links",
                        "read_only": false
                    }, {
                        "name": "PROT_ID_DEVICE_LOC",
                        "value": "ZIG_00124B0023A4B744",
                        "read_only": false
                    }, {
                        "name": "INTF_ID_DEVICE_LOC",
                        "value": "15",
                        "read_only": false
                    }, {
                        "name": "ICONSET_LOC",
                        "value": "iconset40",
                        "read_only": false
                    }, {
                        "name": "DEVICE_TYPE_LOC",
                        "value": "75",
                        "read_only": false
                    }, {
                        "name": "ICONSET_INV_LOC",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VOICE_CONTROLLED_LOC",
                        "value": "",
                        "read_only": false
                    }, {
                        "name": "COLOR_MODE_CFG",
                        "value": "ct",
                        "read_only": false
                    }, {
                        "name": "ID_DEVICE_LOC",
                        "value": "26",
                        "read_only": false
                    }, {
                        "name": "CURR_SWITCH_POS_CFG",
                        "value": "false",
                        "read_only": false
                    }, {
                        "name": "VIS_DEVICE_LOC",
                        "value": "true",
                        "read_only": false
                    }, {
                        "name": "DESCR_DEVICE_LOC",
                        "value": "Ihre Gerätebeschreibung",
                        "read_only": false
                    }
                ]
            }
        ]
    }
}

Here i also stripped out any other devices than the Zigbee ones. Order is the same.

http://[ip or name of HP hub]/v4/devices?devtype=Actuator

{
    "response": "get_visible_devices",
    "devices": [{
            "description": "Ihre Gerätebeschreibung",
            "deviceGroup": 75,
            "did": 23,
            "hasErrors": 0,
            "iconSetInverted": 0,
            "iconSet": {
                "k": "iconset40"
            },
            "messages": [],
            "name": "TV LED",
            "properties": {
                "closingContact": 3,
                "dawn": 3,
                "dusk": 3,
                "motion": 3,
                "rain": 3,
                "smartphone": 3,
                "smoke": 3,
                "sun": 3,
                "temperature": 3,
                "time": 3,
                "trigger": 3,
                "warning": 3,
                "wind": 3
            },
            "statusValid": true,
            "statusesMap": {
                "Position": 0,
                "colortemperature": 420,
                "rgb": "0xFFFFFF",
                "colormode": "ct"
            },
            "visible": true,
            "deviceNumber": "99999975",
            "uid": "ZIG_00124B0021F029E6",
            "voiceControlledBy": "",
            "origin": "HomePilot"
        }, {
            "description": "",
            "deviceGroup": 73,
            "did": 24,
            "hasErrors": 0,
            "iconSetInverted": 0,
            "iconSet": {
                "k": "iconset40"
            },
            "messages": [],
            "name": "Stehlampe Couch",
            "properties": {
                "closingContact": 3,
                "dawn": 3,
                "dusk": 3,
                "motion": 3,
                "rain": 3,
                "smartphone": 3,
                "smoke": 3,
                "sun": 3,
                "temperature": 3,
                "time": 3,
                "trigger": 3,
                "warning": 3,
                "wind": 3
            },
            "statusValid": true,
            "statusesMap": {
                "Position": 0
            },
            "visible": true,
            "deviceNumber": "99999973",
            "uid": "ZIG_0017880106D37DB5",
            "voiceControlledBy": "",
            "origin": "HomePilot"
        }, {
            "description": "Ihre Gerätebeschreibung",
            "deviceGroup": 75,
            "did": 25,
            "hasErrors": 0,
            "iconSetInverted": 0,
            "iconSet": {
                "k": "iconset40"
            },
            "messages": [],
            "name": "Küche LED-Band rechts",
            "properties": {
                "closingContact": 3,
                "dawn": 3,
                "dusk": 3,
                "motion": 3,
                "rain": 3,
                "smartphone": 3,
                "smoke": 3,
                "sun": 3,
                "temperature": 3,
                "time": 3,
                "trigger": 3,
                "warning": 3,
                "wind": 3
            },
            "statusValid": true,
            "statusesMap": {
                "Position": 0,
                "colortemperature": 442,
                "rgb": "0xFFFFFF",
                "colormode": "ct"
            },
            "visible": true,
            "deviceNumber": "99999975",
            "uid": "ZIG_00124B0023A4965E",
            "voiceControlledBy": "",
            "origin": "HomePilot"
        }, {
            "description": "Ihre Gerätebeschreibung",
            "deviceGroup": 75,
            "did": 26,
            "hasErrors": 0,
            "iconSetInverted": 0,
            "iconSet": {
                "k": "iconset40"
            },
            "messages": [],
            "name": "Küche LED-Band links",
            "properties": {
                "closingContact": 3,
                "dawn": 3,
                "dusk": 3,
                "motion": 3,
                "rain": 3,
                "smartphone": 3,
                "smoke": 3,
                "sun": 3,
                "temperature": 3,
                "time": 3,
                "trigger": 3,
                "warning": 3,
                "wind": 3
            },
            "statusValid": true,
            "statusesMap": {
                "Position": 0,
                "colortemperature": 434,
                "rgb": "0xFFFFFF",
                "colormode": "ct"
            },
            "visible": true,
            "deviceNumber": "99999975",
            "uid": "ZIG_00124B0023A4B744",
            "voiceControlledBy": "",
            "origin": "HomePilot"
        }
    ]
}

Concerning Capabilities: I think that the "/devices" call from the API shows pretty clearly, what the devices are capable of. Although i cant really give you examples for RGB-only devices for example. All of my LED-Stripes are RGBWW. But i think we can work this out.

I hope that's what you were looking for and see forward to hear from you! :)

peribeir commented 1 month ago

Yeah, it's clear fom that output. Now, the only thing I'm not sure is how the commands are sent. So I'll need some more info.

Using the web interface, can you please capture, using the browser developer tools, the json payload sent when you perform actions on the lights? Namely the following: turn on, turn off, change brightness, change rgb (color), change color temperature, any other action you can perform.

I just need you to do it on one of the LED Strips, since it will cover all use cases.

mreic commented 1 month ago

Yes no problem! I'll get this done tomorrow probably.

mreic commented 1 month ago

Switching on:

{"name":"TURN_ON_CMD"}

Switching off:

{"name":"TURN_OFF_CMD"}

Changing Brightness:

{"name":"GOTO_POS_CMD","value":20}

Changing Color Temperature:

{"name":"SET_COLOR_TEMP_CMD","value":446}

Changing RGB Color:

{"name":"SET_RGB_CMD","value":"0x0086ff"}

Should be everything that i can configure ;)

peribeir commented 1 month ago

Working on it. First release including this code coming soon

peribeir commented 1 month ago

Please check v2.2.0 once I release it. This is a first version. Feel free to open new issues if you find something not working correctly.

mreic commented 1 month ago

Thanks for the new Version! After updating, the Entity-Page is not longer loading. image

I dont know if this Log-Message helps you. image

But integration for Zigbee-Devices works like a charm!

peribeir commented 1 month ago

The Warning should be gone in next version 2.2.1 Please check if the entity page is also fixed.