Skip to content

Commit

Permalink
HACS update to Shellies Discovery #16
Browse files Browse the repository at this point in the history
BeardedTinker committed May 16, 2022
1 parent 29c751f commit 17f0f61
Showing 1 changed file with 38 additions and 50 deletions.
88 changes: 38 additions & 50 deletions python_scripts/shellies_discovery.py
Original file line number Diff line number Diff line change
@@ -1446,12 +1446,24 @@
KEY_STATE_TOPIC: TOPIC_STATUS,
KEY_VALUE_TEMPLATE: TPL_MOTION,
}
OPTIONS_SENSOR_MOTION_MOTION2 = {
KEY_DEVICE_CLASS: DEVICE_CLASS_MOTION,
KEY_ENABLED_BY_DEFAULT: True,
KEY_STATE_TOPIC: TOPIC_INFO,
KEY_VALUE_TEMPLATE: TPL_MOTION_MOTION2,
}
OPTIONS_SENSOR_VIBRATION = {
KEY_DEVICE_CLASS: DEVICE_CLASS_VIBRATION,
KEY_ENABLED_BY_DEFAULT: True,
KEY_STATE_TOPIC: TOPIC_STATUS,
KEY_VALUE_TEMPLATE: TPL_VIBRATION,
}
OPTIONS_SENSOR_VIBRATION_MOTION2 = {
KEY_DEVICE_CLASS: DEVICE_CLASS_VIBRATION,
KEY_ENABLED_BY_DEFAULT: True,
KEY_STATE_TOPIC: TOPIC_INFO,
KEY_VALUE_TEMPLATE: TPL_VIBRATION_MOTION2,
}
OPTIONS_SENSOR_VIBRATION_DW = {
KEY_DEVICE_CLASS: DEVICE_CLASS_VIBRATION,
KEY_ENABLED_BY_DEFAULT: True,
@@ -2152,43 +2164,13 @@ def mqtt_publish(topic, payload, retain, json=False):
SENSOR_TEMPERATURE: OPTIONS_SENSOR_TEMPERATURE_MOTION2,
SENSOR_UPTIME: OPTIONS_SENSOR_UPTIME,
}
bin_sensors = [
SENSOR_FIRMWARE_UPDATE,
SENSOR_MOTION,
SENSOR_VIBRATION,
SENSOR_CHARGER,
SENSOR_CLOUD,
]
bin_sensors_entity_categories = [
ENTITY_CATEGORY_DIAGNOSTIC,
None,
None,
ENTITY_CATEGORY_DIAGNOSTIC,
ENTITY_CATEGORY_DIAGNOSTIC,
]
bin_sensors_enabled = [True, True, True, True, False]
bin_sensors_device_classes = [
DEVICE_CLASS_UPDATE,
DEVICE_CLASS_MOTION,
DEVICE_CLASS_VIBRATION,
DEVICE_CLASS_BATTERY_CHARGING,
DEVICE_CLASS_CONNECTIVITY,
]
bin_sensors_pl = [None, None, None, None, None]
bin_sensors_tpls = [
TPL_NEW_FIRMWARE_FROM_INFO,
TPL_MOTION_MOTION2,
TPL_VIBRATION_MOTION2,
TPL_CHARGER,
TPL_CLOUD,
]
bin_sensors_topics = [
TOPIC_INFO,
TOPIC_INFO,
TOPIC_INFO,
TOPIC_INFO,
TOPIC_INFO,
]
binary_sensors = {
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE,
SENSOR_MOTION: OPTIONS_SENSOR_MOTION_MOTION2,
SENSOR_VIBRATION: OPTIONS_SENSOR_VIBRATION_MOTION2,
SENSOR_CHARGER: OPTIONS_SENSOR_CHARGER,
SENSOR_CLOUD: OPTIONS_SENSOR_CLOUD,
}
battery_powered = True

if model_id == MODEL_SHELLYGAS_ID or dev_id_prefix == MODEL_SHELLYGAS_PREFIX:
@@ -2245,7 +2227,7 @@ def mqtt_publish(topic, payload, retain, json=False):
SENSOR_DOUBLE_SHORTPUSH: OPTIONS_SENSOR_DOUBLE_SHORTPUSH,
SENSOR_TRIPLE_SHORTPUSH: OPTIONS_SENSOR_TRIPLE_SHORTPUSH,
SENSOR_LONGPUSH: OPTIONS_SENSOR_LONGPUSH,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE_FROM_ANNOUNCE,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE,
SENSOR_CHARGER: OPTIONS_SENSOR_CHARGER_BUTTON,
}

@@ -2258,12 +2240,15 @@ def mqtt_publish(topic, payload, retain, json=False):
SENSOR_BATTERY: OPTIONS_SENSOR_BATTERY,
SENSOR_IP: OPTIONS_SENSOR_IP,
SENSOR_LUX: OPTIONS_SENSOR_LUX,
SENSOR_RSSI: OPTIONS_SENSOR_RSSI,
SENSOR_SSID: OPTIONS_SENSOR_SSID,
SENSOR_TILT: OPTIONS_SENSOR_TILT,
SENSOR_UPTIME: OPTIONS_SENSOR_UPTIME,
}
binary_sensors = {
SENSOR_OPENING: OPTIONS_SENSOR_OPENING,
SENSOR_VIBRATION: OPTIONS_SENSOR_VIBRATION_DW,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE_FROM_ANNOUNCE,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE,
}

battery_powered = True
@@ -2275,14 +2260,17 @@ def mqtt_publish(topic, payload, retain, json=False):
SENSOR_BATTERY: OPTIONS_SENSOR_BATTERY,
SENSOR_IP: OPTIONS_SENSOR_IP,
SENSOR_LUX: OPTIONS_SENSOR_LUX,
SENSOR_TILT: OPTIONS_SENSOR_TILT,
SENSOR_TEMPERATURE: OPTIONS_SENSOR_TEMPERATURE,
SENSOR_RSSI: OPTIONS_SENSOR_RSSI,
SENSOR_SSID: OPTIONS_SENSOR_SSID,
SENSOR_TEMPERATURE_F: OPTIONS_SENSOR_TEMPERATURE_F,
SENSOR_TEMPERATURE: OPTIONS_SENSOR_TEMPERATURE,
SENSOR_TILT: OPTIONS_SENSOR_TILT,
SENSOR_UPTIME: OPTIONS_SENSOR_UPTIME,
}
binary_sensors = {
SENSOR_OPENING: OPTIONS_SENSOR_OPENING,
SENSOR_VIBRATION: OPTIONS_SENSOR_VIBRATION_DW,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE_FROM_ANNOUNCE,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE,
}

battery_powered = True
@@ -2293,11 +2281,14 @@ def mqtt_publish(topic, payload, retain, json=False):
sensors = {
SENSOR_BATTERY: OPTIONS_SENSOR_BATTERY,
SENSOR_IP: OPTIONS_SENSOR_IP,
SENSOR_RSSI: OPTIONS_SENSOR_RSSI,
SENSOR_SSID: OPTIONS_SENSOR_SSID,
SENSOR_TEMPERATURE: OPTIONS_SENSOR_TEMPERATURE,
SENSOR_UPTIME: OPTIONS_SENSOR_UPTIME,
}
binary_sensors = {
SENSOR_SMOKE: OPTIONS_SENSOR_SMOKE,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE_FROM_ANNOUNCE,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE,
}

battery_powered = True
@@ -2640,12 +2631,15 @@ def mqtt_publish(topic, payload, retain, json=False):
sensors = {
SENSOR_BATTERY: OPTIONS_SENSOR_BATTERY,
SENSOR_IP: OPTIONS_SENSOR_IP,
SENSOR_RSSI: OPTIONS_SENSOR_RSSI,
SENSOR_SSID: OPTIONS_SENSOR_SSID,
SENSOR_TEMPERATURE_F: OPTIONS_SENSOR_TEMPERATURE_F,
SENSOR_TEMPERATURE: OPTIONS_SENSOR_TEMPERATURE,
SENSOR_UPTIME: OPTIONS_SENSOR_UPTIME,
}
binary_sensors = {
SENSOR_FLOOD: OPTIONS_SENSOR_FLOOD,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE_FROM_ANNOUNCE,
SENSOR_FIRMWARE_UPDATE: OPTIONS_SENSOR_FIRMWARE_UPDATE,
}
battery_powered = True

@@ -3241,12 +3235,6 @@ def mqtt_publish(topic, payload, retain, json=False):
payload[KEY_AVAILABILITY_TOPIC] = TOPIC_ONLINE
payload[KEY_PAYLOAD_AVAILABLE] = VALUE_TRUE
payload[KEY_PAYLOAD_NOT_AVAILABLE] = VALUE_FALSE
if (
model in (MODEL_SHELLYBUTTON1, MODEL_SHELLYSENSE, MODEL_SHELLYHT)
and sensor in (SENSOR_RSSI, SENSOR_SSID, SENSOR_UPTIME)
and device_config.get(CONF_POWERED) != ATTR_POWER_AC
):
payload = ""
if no_battery_sensor and sensor == SENSOR_BATTERY:
payload = ""
if use_fahrenheit and sensor == SENSOR_TEMPERATURE:

0 comments on commit 17f0f61

Please sign in to comment.