This custom integration allows you to track the state (on/off) of your UPnP-compatible devices, even when Home Assistant does not have support for controlling them.
The functionality is very straightforward: a new binary_sensor
entity is created for every UPnP-compatible device in your network.
The state changes as instantaneous as they are based on the notifications sent by the devices.
- Some devices have no direct support by homeassistant, but you want to do automations based on when that device gets turned on or off.
- Your device is supported by homeassistant, but is uses polling and the state changes are not updated as fast as you would like.
- Idea: automate immediate update of the device, no more waiting for the next poll for the lights to go on!
- Search for upnp in the HACS and download it.
- Go to Settings -> Devices & Services (or click ) and select "Add integration".
- Search for "UPnP Availability Sensor" and configure it.
- That's it! Entities will be immediately created for the already available devices. As soon as you add (or turn on) new UPnP-supporting devices, new entities are generated to track their state.
- Copy the
upnp_availability
directory to yourcustom_components
directory. - Restart Home Assistant.
- Follow the instructions above for configuration (step 2.)
- This integration listens for multicast communication mandated by UPnP specifications ("ssdp:alive" and "ssdp:goodbye" notifications).
- Limitation: the device has to be in the same network as your homeassistant instance.
- After the device-given timeout (or 1800 seconds) has lapsed without an update from the device, it will be considered to be turned off.
You can try the tracker without homeassistant by executing:
python cli.py
On multihomed systems, you can define --addr
for each source IP address to use for tracking:
python cli.py --addr 192.168.1.123 --addr 192.168.100.123