switch added

This commit is contained in:
2026-01-03 22:21:33 +01:00
parent 7212a3bd5a
commit a190ba208b
4 changed files with 101 additions and 1 deletions

View File

@@ -161,6 +161,24 @@ def transform_temp_humidity_sensor_to_abstract(payload: str) -> dict[str, Any]:
return payload
def transform_switch_to_vendor(payload: dict[str, Any]) -> str:
"""Transform abstract switch payload to zigbee2mqtt format.
Switches are read-only, so this should not be called for SET commands.
"""
logger.warning("Switches are read-only - SET commands should not be used")
return json.dumps(payload)
def transform_switch_to_abstract(payload: str) -> dict[str, Any]:
"""Transform zigbee2mqtt switch payload to abstract format.
Passthrough - zigbee2mqtt provides action, battery, linkquality directly.
"""
payload = json.loads(payload)
return payload
def transform_relay_to_vendor(payload: dict[str, Any]) -> str:
"""Transform abstract relay payload to zigbee2mqtt format.
@@ -204,6 +222,8 @@ HANDLERS = {
("temp_humidity_sensor", "to_abstract"): transform_temp_humidity_sensor_to_abstract,
("temp_humidity", "to_vendor"): transform_temp_humidity_sensor_to_vendor,
("temp_humidity", "to_abstract"): transform_temp_humidity_sensor_to_abstract,
("switch", "to_vendor"): transform_switch_to_vendor,
("switch", "to_abstract"): transform_switch_to_abstract,
("relay", "to_vendor"): transform_relay_to_vendor,
("relay", "to_abstract"): transform_relay_to_abstract,
}