Fixing the api_streams sensor (#22200)
* Fire events with websocket messages. * Added tests to validate * Fixed api_streams sensor to use new sensor * Delete from coverageac as now works. * Removed websocket request event. * Use dispatcher instead of events. * Moved sensor to under websocket_api * Changes as per code review * Fixed tests. * Modified test * Patch
This commit is contained in:
parent
2b6e197deb
commit
1ddc65a0ce
8 changed files with 142 additions and 168 deletions
53
homeassistant/components/websocket_api/sensor.py
Normal file
53
homeassistant/components/websocket_api/sensor.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
"""Entity to track connections to websocket API."""
|
||||
|
||||
from homeassistant.core import callback
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
from .const import SIGNAL_WEBSOCKET_CONNECTED, SIGNAL_WEBSOCKET_DISCONNECTED
|
||||
|
||||
|
||||
async def async_setup_platform(
|
||||
hass, config, async_add_entities, discovery_info=None):
|
||||
"""Set up the API streams platform."""
|
||||
entity = APICount()
|
||||
|
||||
# pylint: disable=protected-access
|
||||
hass.helpers.dispatcher.async_dispatcher_connect(
|
||||
SIGNAL_WEBSOCKET_CONNECTED, entity._increment)
|
||||
hass.helpers.dispatcher.async_dispatcher_connect(
|
||||
SIGNAL_WEBSOCKET_DISCONNECTED, entity._decrement)
|
||||
|
||||
async_add_entities([entity])
|
||||
|
||||
|
||||
class APICount(Entity):
|
||||
"""Entity to represent how many people are connected to the stream API."""
|
||||
|
||||
def __init__(self):
|
||||
"""Initialize the API count."""
|
||||
self.count = 0
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""Return name of entity."""
|
||||
return "Connected clients"
|
||||
|
||||
@property
|
||||
def state(self):
|
||||
"""Return current API count."""
|
||||
return self.count
|
||||
|
||||
@property
|
||||
def unit_of_measurement(self):
|
||||
"""Return the unit of measurement."""
|
||||
return "clients"
|
||||
|
||||
@callback
|
||||
def _increment(self):
|
||||
self.count += 1
|
||||
self.async_schedule_update_ha_state()
|
||||
|
||||
@callback
|
||||
def _decrement(self):
|
||||
self.count -= 1
|
||||
self.async_schedule_update_ha_state()
|
Loading…
Add table
Add a link
Reference in a new issue