diff --git a/hatasmota/const.py b/hatasmota/const.py index d960874..807163f 100644 --- a/hatasmota/const.py +++ b/hatasmota/const.py @@ -119,8 +119,12 @@ SENSOR_PROXIMITY = "Proximity" SENSOR_AMBIENT = "Ambient" SENSOR_SWITCH = "Switch" +SENSOR_STATUS_MQTT_COUNT = "status_MqttCount" +SENSOR_STATUS_LINK_COUNT = "status_LinkCount" SENSOR_STATUS_SIGNAL = "status_signal" +SENSOR_STATUS_RSSI = "status_rssi" SENSOR_STATUS_IP = "status_ip" +SENSOR_STATUS_UPTIME = "status_Uptime" SENSOR_UNIT_PRESSURE = "PressureUnit" SENSOR_UNIT_SPEED = "SpeedUnit" diff --git a/hatasmota/discovery.py b/hatasmota/discovery.py index ed5403e..20221b2 100644 --- a/hatasmota/discovery.py +++ b/hatasmota/discovery.py @@ -303,7 +303,7 @@ def get_light_entities(discovery_msg): def get_status_sensor_entities(discovery_msg): - """Generate light configuration.""" + """Generate Status sensors.""" status_sensor_entities = [] entities = TasmotaStatusSensorConfig.from_discovery_message( diff --git a/hatasmota/status_sensor.py b/hatasmota/status_sensor.py index 3d595a0..d780193 100644 --- a/hatasmota/status_sensor.py +++ b/hatasmota/status_sensor.py @@ -4,7 +4,16 @@ import attr -from .const import CONF_DEVICENAME, CONF_MAC, SENSOR_STATUS_IP, SENSOR_STATUS_SIGNAL +from .const import ( + CONF_DEVICENAME, + CONF_MAC, + SENSOR_STATUS_IP, + SENSOR_STATUS_LINK_COUNT, + SENSOR_STATUS_MQTT_COUNT, + SENSOR_STATUS_RSSI, + SENSOR_STATUS_SIGNAL, + SENSOR_STATUS_UPTIME, +) from .entity import ( TasmotaAvailability, TasmotaAvailabilityConfig, @@ -39,35 +48,66 @@ # "LoadAvg":19 stat/STATUS11:"StatusSTS":"LoadAvg"; tele/STATE:"LoadAvg" # } -SENSORS = [SENSOR_STATUS_IP, SENSOR_STATUS_SIGNAL] +SENSORS = [ + SENSOR_STATUS_IP, + SENSOR_STATUS_SIGNAL, + SENSOR_STATUS_RSSI, + SENSOR_STATUS_MQTT_COUNT, + SENSOR_STATUS_LINK_COUNT, + SENSOR_STATUS_UPTIME, +] NAMES = { SENSOR_STATUS_SIGNAL: "Signal", + SENSOR_STATUS_RSSI: "RSSI", + SENSOR_STATUS_MQTT_COUNT: "MQTT connect count", + SENSOR_STATUS_LINK_COUNT: "WiFi connect count", SENSOR_STATUS_IP: "IP", + SENSOR_STATUS_UPTIME: "Uptime", } STATE_PATHS = { SENSOR_STATUS_SIGNAL: ["Wifi", "Signal"], + SENSOR_STATUS_RSSI: ["Wifi", "RSSI"], + SENSOR_STATUS_MQTT_COUNT: ["MqttCount"], + SENSOR_STATUS_LINK_COUNT: ["Wifi", "LinkCount"], + SENSOR_STATUS_UPTIME: ["Uptime"], } STATUS_PATHS = { SENSOR_STATUS_SIGNAL: ["StatusSTS", "Wifi", "Signal"], + SENSOR_STATUS_RSSI: ["StatusSTS", "Wifi", "RSSI"], + SENSOR_STATUS_MQTT_COUNT: ["StatusSTS", "Wifi", "MqttCount"], + SENSOR_STATUS_LINK_COUNT: ["StatusSTS", "Wifi", "LinkCount"], SENSOR_STATUS_IP: ["StatusNET", "IPAddress"], + SENSOR_STATUS_UPTIME: ["StatusSTS", "Uptime"], } STATUS_TOPICS = { SENSOR_STATUS_SIGNAL: 11, + SENSOR_STATUS_RSSI: 11, + SENSOR_STATUS_MQTT_COUNT: 11, + SENSOR_STATUS_LINK_COUNT: 11, SENSOR_STATUS_IP: 5, + SENSOR_STATUS_UPTIME: 11, } QUANTITY = { SENSOR_STATUS_SIGNAL: SENSOR_STATUS_SIGNAL, - SENSOR_STATUS_IP: None, + SENSOR_STATUS_RSSI: SENSOR_STATUS_RSSI, + SENSOR_STATUS_MQTT_COUNT: SENSOR_STATUS_MQTT_COUNT, + SENSOR_STATUS_LINK_COUNT: SENSOR_STATUS_LINK_COUNT, + SENSOR_STATUS_IP: SENSOR_STATUS_IP, + SENSOR_STATUS_UPTIME: SENSOR_STATUS_UPTIME, } UNITS = { SENSOR_STATUS_SIGNAL: "dB", + SENSOR_STATUS_RSSI: "%", + SENSOR_STATUS_MQTT_COUNT: None, + SENSOR_STATUS_LINK_COUNT: None, SENSOR_STATUS_IP: None, + SENSOR_STATUS_UPTIME: None, } @@ -110,7 +150,7 @@ def unique_id(self): class TasmotaStatusSensor(TasmotaAvailability, TasmotaEntity): - """Representation of a Tasmota switch.""" + """Tasmota Status sensors.""" def __init__(self, **kwds): """Initialize.""" diff --git a/setup.py b/setup.py index 30d9519..042ad6f 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name="HATasmota", - version="0.0.24", + version="0.0.25", license="MIT", url="https://github.com/emontnemery/hatasmota", author="",