diff --git a/hatasmota/const.py b/hatasmota/const.py index ab3431a..027464d 100644 --- a/hatasmota/const.py +++ b/hatasmota/const.py @@ -122,10 +122,11 @@ SENSOR_PROXIMITY = "Proximity" SENSOR_AMBIENT = "Ambient" SENSOR_SWITCH = "Switch" -SENSOR_STATUS_MQTT_COUNT = "status_MqttCount" -SENSOR_STATUS_LINK_COUNT = "status_LinkCount" +SENSOR_STATUS_MQTT_COUNT = "status_mqtt_count" +SENSOR_STATUS_LINK_COUNT = "status_link_count" SENSOR_STATUS_SIGNAL = "status_signal" SENSOR_STATUS_RSSI = "status_rssi" +SENSOR_STATUS_RESTART = "status_restart_reason" SENSOR_STATUS_IP = "status_ip" SENSOR_STATUS_UPTIME = "status_Uptime" diff --git a/hatasmota/status_sensor.py b/hatasmota/status_sensor.py index d780193..13b0468 100644 --- a/hatasmota/status_sensor.py +++ b/hatasmota/status_sensor.py @@ -10,6 +10,7 @@ SENSOR_STATUS_IP, SENSOR_STATUS_LINK_COUNT, SENSOR_STATUS_MQTT_COUNT, + SENSOR_STATUS_RESTART, SENSOR_STATUS_RSSI, SENSOR_STATUS_SIGNAL, SENSOR_STATUS_UPTIME, @@ -51,6 +52,7 @@ SENSORS = [ SENSOR_STATUS_IP, SENSOR_STATUS_SIGNAL, + SENSOR_STATUS_RESTART, SENSOR_STATUS_RSSI, SENSOR_STATUS_MQTT_COUNT, SENSOR_STATUS_LINK_COUNT, @@ -58,55 +60,60 @@ ] 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_LINK_COUNT: "WiFi Connect Count", + SENSOR_STATUS_MQTT_COUNT: "MQTT Connect Count", + SENSOR_STATUS_RESTART: "Restart Reason", + SENSOR_STATUS_RSSI: "RSSI", + SENSOR_STATUS_SIGNAL: "Signal", 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_MQTT_COUNT: ["MqttCount"], + SENSOR_STATUS_RSSI: ["Wifi", "RSSI"], + SENSOR_STATUS_SIGNAL: ["Wifi", "Signal"], 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_LINK_COUNT: ["StatusSTS", "Wifi", "LinkCount"], + SENSOR_STATUS_MQTT_COUNT: ["StatusSTS", "MqttCount"], + SENSOR_STATUS_RESTART: ["StatusPRM", "RestartReason"], + SENSOR_STATUS_RSSI: ["StatusSTS", "Wifi", "RSSI"], + SENSOR_STATUS_SIGNAL: ["StatusSTS", "Wifi", "Signal"], 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, + SENSOR_STATUS_LINK_COUNT: 11, + SENSOR_STATUS_MQTT_COUNT: 11, + SENSOR_STATUS_RESTART: 1, + SENSOR_STATUS_RSSI: 11, + SENSOR_STATUS_SIGNAL: 11, + SENSOR_STATUS_UPTIME: 1, } QUANTITY = { - SENSOR_STATUS_SIGNAL: SENSOR_STATUS_SIGNAL, - 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_LINK_COUNT: SENSOR_STATUS_LINK_COUNT, + SENSOR_STATUS_MQTT_COUNT: SENSOR_STATUS_MQTT_COUNT, + SENSOR_STATUS_RESTART: SENSOR_STATUS_RESTART, + SENSOR_STATUS_RSSI: SENSOR_STATUS_RSSI, + SENSOR_STATUS_SIGNAL: SENSOR_STATUS_SIGNAL, 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_LINK_COUNT: None, + SENSOR_STATUS_MQTT_COUNT: None, + SENSOR_STATUS_RESTART: None, + SENSOR_STATUS_RSSI: "%", + SENSOR_STATUS_SIGNAL: "dB", SENSOR_STATUS_UPTIME: None, } @@ -130,7 +137,7 @@ def from_discovery_message(cls, config, platform): friendly_name=f"{config[CONF_DEVICENAME]} {NAMES[sensor]}", mac=config[CONF_MAC], platform=platform, - poll_payload="0", + poll_payload=str(STATUS_TOPICS[sensor]), poll_topic=get_topic_command_status(config), availability_topic=get_topic_tele_will(config), availability_offline=config_get_state_offline(config),