Bump hatasmota to 0.9.2 (#120670)

This commit is contained in:
Erik Montnemery 2024-06-27 22:56:22 +02:00 committed by GitHub
parent bccd5c8c35
commit f3761a8e53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 247 additions and 75 deletions

View file

@ -8,5 +8,5 @@
"iot_class": "local_push",
"loggers": ["hatasmota"],
"mqtt": ["tasmota/discovery/#"],
"requirements": ["HATasmota==0.9.1"]
"requirements": ["HATasmota==0.9.2"]
}

View file

@ -53,26 +53,10 @@ ICON = "icon"
# A Tasmota sensor type may be mapped to either a device class or an icon,
# both can only be set if the default device class icon is not appropriate
SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
hc.SENSOR_ACTIVE_ENERGYEXPORT: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ACTIVE_ENERGYIMPORT: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ACTIVE_POWERUSAGE: {
DEVICE_CLASS: SensorDeviceClass.POWER,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_AMBIENT: {
DEVICE_CLASS: SensorDeviceClass.ILLUMINANCE,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_APPARENT_POWERUSAGE: {
DEVICE_CLASS: SensorDeviceClass.APPARENT_POWER,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_BATTERY: {
DEVICE_CLASS: SensorDeviceClass.BATTERY,
STATE_CLASS: SensorStateClass.MEASUREMENT,
@ -92,7 +76,7 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.CURRENT,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_CURRENTNEUTRAL: {
hc.SENSOR_CURRENT_NEUTRAL: {
DEVICE_CLASS: SensorDeviceClass.CURRENT,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
@ -110,6 +94,34 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ENERGY_EXPORT_ACTIVE: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ENERGY_EXPORT_REACTIVE: {STATE_CLASS: SensorStateClass.TOTAL},
hc.SENSOR_ENERGY_EXPORT_TARIFF: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ENERGY_IMPORT_ACTIVE: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ENERGY_IMPORT_REACTIVE: {STATE_CLASS: SensorStateClass.TOTAL},
hc.SENSOR_ENERGY_IMPORT_TODAY: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL_INCREASING,
},
hc.SENSOR_ENERGY_IMPORT_TOTAL: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ENERGY_IMPORT_TOTAL_TARIFF: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_ENERGY_IMPORT_YESTERDAY: {DEVICE_CLASS: SensorDeviceClass.ENERGY},
hc.SENSOR_ENERGY_TOTAL_START_TIME: {ICON: "mdi:progress-clock"},
hc.SENSOR_FREQUENCY: {
DEVICE_CLASS: SensorDeviceClass.FREQUENCY,
STATE_CLASS: SensorStateClass.MEASUREMENT,
@ -122,6 +134,14 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.ILLUMINANCE,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_POWER_ACTIVE: {
DEVICE_CLASS: SensorDeviceClass.POWER,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_POWER_APPARENT: {
DEVICE_CLASS: SensorDeviceClass.APPARENT_POWER,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_STATUS_IP: {ICON: "mdi:ip-network"},
hc.SENSOR_STATUS_LINK_COUNT: {ICON: "mdi:counter"},
hc.SENSOR_MOISTURE: {DEVICE_CLASS: SensorDeviceClass.MOISTURE},
@ -144,11 +164,11 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.PM25,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_POWERFACTOR: {
hc.SENSOR_POWER_FACTOR: {
DEVICE_CLASS: SensorDeviceClass.POWER_FACTOR,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_POWERUSAGE: {
hc.SENSOR_POWER: {
DEVICE_CLASS: SensorDeviceClass.POWER,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
@ -156,14 +176,12 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.PRESSURE,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_PRESSUREATSEALEVEL: {
hc.SENSOR_PRESSURE_AT_SEA_LEVEL: {
DEVICE_CLASS: SensorDeviceClass.PRESSURE,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_PROXIMITY: {ICON: "mdi:ruler"},
hc.SENSOR_REACTIVE_ENERGYEXPORT: {STATE_CLASS: SensorStateClass.TOTAL},
hc.SENSOR_REACTIVE_ENERGYIMPORT: {STATE_CLASS: SensorStateClass.TOTAL},
hc.SENSOR_REACTIVE_POWERUSAGE: {
hc.SENSOR_POWER_REACTIVE: {
DEVICE_CLASS: SensorDeviceClass.REACTIVE_POWER,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
@ -182,19 +200,6 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.TEMPERATURE,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_TODAY: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL_INCREASING,
},
hc.SENSOR_TOTAL: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_TOTAL_TARIFF: {
DEVICE_CLASS: SensorDeviceClass.ENERGY,
STATE_CLASS: SensorStateClass.TOTAL,
},
hc.SENSOR_TOTAL_START_TIME: {ICON: "mdi:progress-clock"},
hc.SENSOR_TVOC: {ICON: "mdi:air-filter"},
hc.SENSOR_VOLTAGE: {
DEVICE_CLASS: SensorDeviceClass.VOLTAGE,
@ -204,7 +209,6 @@ SENSOR_DEVICE_CLASS_ICON_MAP: dict[str, dict[str, Any]] = {
DEVICE_CLASS: SensorDeviceClass.WEIGHT,
STATE_CLASS: SensorStateClass.MEASUREMENT,
},
hc.SENSOR_YESTERDAY: {DEVICE_CLASS: SensorDeviceClass.ENERGY},
}
SENSOR_UNIT_MAP = {

View file

@ -22,7 +22,7 @@ DoorBirdPy==2.1.0
HAP-python==4.9.1
# homeassistant.components.tasmota
HATasmota==0.9.1
HATasmota==0.9.2
# homeassistant.components.mastodon
Mastodon.py==1.8.1

View file

@ -19,7 +19,7 @@ DoorBirdPy==2.1.0
HAP-python==4.9.1
# homeassistant.components.tasmota
HATasmota==0.9.1
HATasmota==0.9.2
# homeassistant.components.doods
# homeassistant.components.generic

View file

@ -280,6 +280,102 @@
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].10
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY ExportTariff 0',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_exporttariff_0',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '5.6',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].11
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY ExportTariff 1',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_exporttariff_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '7.8',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].12
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY TotalTariff 0',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_totaltariff_0',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '5.6',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].13
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY TotalTariff 1',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_totaltariff_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '7.8',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].14
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY ExportTariff 0',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_exporttariff_0',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1.2',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].15
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY ExportTariff 1',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_exporttariff_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '3.4',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].2
StateSnapshot({
'attributes': ReadOnlyDict({
@ -332,6 +428,108 @@
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].4
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY ExportTariff 0',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_exporttariff_0',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].5
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL: 'total'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.tasmota_energy_exporttariff_0',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'ENERGY ExportTariff 0',
'platform': 'tasmota',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '00000049A3BC_sensor_sensor_ENERGY_ExportTariff_0',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].6
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY ExportTariff 1',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_exporttariff_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].7
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL: 'total'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.tasmota_energy_exporttariff_1',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'ENERGY ExportTariff 1',
'platform': 'tasmota',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '00000049A3BC_sensor_sensor_ENERGY_ExportTariff_1',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].8
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
@ -347,7 +545,7 @@
'state': '1.2',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].5
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].9
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
@ -363,38 +561,6 @@
'state': '3.4',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].6
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY TotalTariff 0',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_totaltariff_0',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '5.6',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config2-entity_ids2-messages2].7
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Tasmota ENERGY TotalTariff 1',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.tasmota_energy_totaltariff_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '7.8',
})
# ---
# name: test_controlling_state_via_mqtt[sensor_config3-entity_ids3-messages3]
StateSnapshot({
'attributes': ReadOnlyDict({

View file

@ -198,10 +198,12 @@ TEMPERATURE_SENSOR_CONFIG = {
[
"sensor.tasmota_energy_totaltariff_0",
"sensor.tasmota_energy_totaltariff_1",
"sensor.tasmota_energy_exporttariff_0",
"sensor.tasmota_energy_exporttariff_1",
],
(
'{"ENERGY":{"TotalTariff":[1.2,3.4]}}',
'{"StatusSNS":{"ENERGY":{"TotalTariff":[5.6,7.8]}}}',
'{"ENERGY":{"ExportTariff":[5.6,7.8],"TotalTariff":[1.2,3.4]}}',
'{"StatusSNS":{"ENERGY":{"ExportTariff":[1.2,3.4],"TotalTariff":[5.6,7.8]}}}',
),
),
(