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
3 changed files with 89 additions and 1 deletions
|
@ -28,6 +28,7 @@ DEVICE_SUPPORT_OWSERVER = {
|
||||||
"26": (),
|
"26": (),
|
||||||
"28": (),
|
"28": (),
|
||||||
"29": (),
|
"29": (),
|
||||||
|
"30": (),
|
||||||
"3A": (),
|
"3A": (),
|
||||||
"3B": (),
|
"3B": (),
|
||||||
"42": (),
|
"42": (),
|
||||||
|
|
|
@ -54,6 +54,8 @@ from .onewirehub import OneWireHub
|
||||||
class OneWireSensorEntityDescription(OneWireEntityDescription, SensorEntityDescription):
|
class OneWireSensorEntityDescription(OneWireEntityDescription, SensorEntityDescription):
|
||||||
"""Class describing OneWire sensor entities."""
|
"""Class describing OneWire sensor entities."""
|
||||||
|
|
||||||
|
override_key: str | None = None
|
||||||
|
|
||||||
|
|
||||||
SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION = OneWireSensorEntityDescription(
|
SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION = OneWireSensorEntityDescription(
|
||||||
key="temperature",
|
key="temperature",
|
||||||
|
@ -184,6 +186,37 @@ DEVICE_SENSORS: dict[str, tuple[OneWireSensorEntityDescription, ...]] = {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"28": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
"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,),
|
"3B": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
||||||
"42": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
"42": (SIMPLE_TEMPERATURE_SENSOR_DESCRIPTION,),
|
||||||
"1D": tuple(
|
"1D": tuple(
|
||||||
|
@ -368,7 +401,8 @@ def get_entities(
|
||||||
description.native_unit_of_measurement = PERCENTAGE
|
description.native_unit_of_measurement = PERCENTAGE
|
||||||
description.name = f"Wetness {s_id}"
|
description.name = f"Wetness {s_id}"
|
||||||
device_file = os.path.join(
|
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}"
|
name = f"{device_id} {description.name}"
|
||||||
entities.append(
|
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": {
|
"3A.111111111111": {
|
||||||
ATTR_INJECT_READS: [
|
ATTR_INJECT_READS: [
|
||||||
b"DS2413", # read device type
|
b"DS2413", # read device type
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue