mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Add support for DS2760 1-Wire TypeK Thermocouple (#63222)
* Add support for DS2760 1-Wire TypeK Thermocouple * Add test mockup sensor for DS2760 to tests * Add support for changing of thermocouple type through override_key * Fix broken test for DS2760 Thermocouple * Remove unnecessary test-attribute for DS2760 Thermocouple Co-authored-by: epenet <6771947+epenet@users.noreply.github.com> Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
This commit is contained in:
parent
7b8bbc37df
commit
81000db713
@ -28,6 +28,7 @@ DEVICE_SUPPORT_OWSERVER = {
|
||||
"26": (),
|
||||
"28": (),
|
||||
"29": (),
|
||||
"30": (),
|
||||
"3A": (),
|
||||
"3B": (),
|
||||
"42": (),
|
||||
|
@ -54,6 +54,8 @@ from .onewirehub import OneWireHub
|
||||
class OneWireSensorEntityDescription(OneWireEntityDescription, SensorEntityDescription):
|
||||
"""Class describing OneWire sensor entities."""
|
||||
|
||||
override_key: str | None = None
|
||||
|
||||
|
||||
SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION = OneWireSensorEntityDescription(
|
||||
key="temperature",
|
||||
@ -184,6 +186,37 @@ DEVICE_SENSORS: dict[str, tuple[OneWireSensorEntityDescription, ...]] = {
|
||||
),
|
||||
),
|
||||
"28": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
||||
"30": (
|
||||
SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,
|
||||
OneWireSensorEntityDescription(
|
||||
key="typeX/temperature",
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
entity_registry_enabled_default=False,
|
||||
name="Thermocouple temperature",
|
||||
native_unit_of_measurement=TEMP_CELSIUS,
|
||||
read_mode=READ_MODE_FLOAT,
|
||||
override_key="typeK/temperature",
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
),
|
||||
OneWireSensorEntityDescription(
|
||||
key="volt",
|
||||
device_class=SensorDeviceClass.VOLTAGE,
|
||||
entity_registry_enabled_default=False,
|
||||
name="Voltage",
|
||||
native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
|
||||
read_mode=READ_MODE_FLOAT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
),
|
||||
OneWireSensorEntityDescription(
|
||||
key="vis",
|
||||
device_class=SensorDeviceClass.VOLTAGE,
|
||||
entity_registry_enabled_default=False,
|
||||
name="vis",
|
||||
native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
|
||||
read_mode=READ_MODE_FLOAT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
),
|
||||
),
|
||||
"3B": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
||||
"42": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
||||
"1D": tuple(
|
||||
@ -368,7 +401,8 @@ def get_entities(
|
||||
description.native_unit_of_measurement = PERCENTAGE
|
||||
description.name = f"Wetness {s_id}"
|
||||
device_file = os.path.join(
|
||||
os.path.split(device.path)[0], description.key
|
||||
os.path.split(device.path)[0],
|
||||
description.override_key or description.key,
|
||||
)
|
||||
name = f"{device_id} {description.name}"
|
||||
entities.append(
|
||||
|
@ -618,6 +618,59 @@ MOCK_OWPROXY_DEVICES = {
|
||||
},
|
||||
],
|
||||
},
|
||||
"30.111111111111": {
|
||||
ATTR_INJECT_READS: [
|
||||
b"DS2760", # read device type
|
||||
],
|
||||
ATTR_DEVICE_INFO: {
|
||||
ATTR_IDENTIFIERS: {(DOMAIN, "30.111111111111")},
|
||||
ATTR_MANUFACTURER: MANUFACTURER_MAXIM,
|
||||
ATTR_MODEL: "DS2760",
|
||||
ATTR_NAME: "30.111111111111",
|
||||
},
|
||||
Platform.SENSOR: [
|
||||
{
|
||||
ATTR_DEVICE_CLASS: SensorDeviceClass.TEMPERATURE,
|
||||
ATTR_ENTITY_ID: "sensor.30_111111111111_temperature",
|
||||
ATTR_INJECT_READS: b" 26.984",
|
||||
ATTR_STATE: "27.0",
|
||||
ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT,
|
||||
ATTR_UNIQUE_ID: "/30.111111111111/temperature",
|
||||
ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
|
||||
},
|
||||
{
|
||||
ATTR_DEFAULT_DISABLED: True,
|
||||
ATTR_DEVICE_CLASS: SensorDeviceClass.TEMPERATURE,
|
||||
ATTR_DEVICE_FILE: "/30.111111111111/typeK/temperature",
|
||||
ATTR_ENTITY_ID: "sensor.30_111111111111_thermocouple_temperature",
|
||||
ATTR_INJECT_READS: b" 173.7563",
|
||||
ATTR_STATE: "173.8",
|
||||
ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT,
|
||||
ATTR_UNIQUE_ID: "/30.111111111111/typeX/temperature",
|
||||
ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
|
||||
},
|
||||
{
|
||||
ATTR_DEFAULT_DISABLED: True,
|
||||
ATTR_DEVICE_CLASS: SensorDeviceClass.VOLTAGE,
|
||||
ATTR_ENTITY_ID: "sensor.30_111111111111_voltage",
|
||||
ATTR_INJECT_READS: b" 2.97",
|
||||
ATTR_STATE: "3.0",
|
||||
ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT,
|
||||
ATTR_UNIQUE_ID: "/30.111111111111/volt",
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT,
|
||||
},
|
||||
{
|
||||
ATTR_DEFAULT_DISABLED: True,
|
||||
ATTR_DEVICE_CLASS: SensorDeviceClass.VOLTAGE,
|
||||
ATTR_ENTITY_ID: "sensor.30_111111111111_vis",
|
||||
ATTR_INJECT_READS: b" 0.12",
|
||||
ATTR_STATE: "0.1",
|
||||
ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT,
|
||||
ATTR_UNIQUE_ID: "/30.111111111111/vis",
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT,
|
||||
},
|
||||
],
|
||||
},
|
||||
"3A.111111111111": {
|
||||
ATTR_INJECT_READS: [
|
||||
b"DS2413", # read device type
|
||||
|
Loading…
x
Reference in New Issue
Block a user