Add onewire switches (#42962)

* Add support for switches

* Fix stale comment
This commit is contained in:
epenet 2020-11-08 19:06:41 +01:00 committed by GitHub
parent 2845fca08e
commit 7c397a02b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 541 additions and 3 deletions

View file

@ -9,6 +9,7 @@ from homeassistant.components.onewire.const import (
SUPPORTED_PLATFORMS,
)
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
from homeassistant.const import (
DEVICE_CLASS_CURRENT,
DEVICE_CLASS_HUMIDITY,
@ -110,6 +111,44 @@ MOCK_DEVICE_SENSORS = {
"disabled": True,
},
],
SWITCH_DOMAIN: [
{
"entity_id": "switch.12_111111111111_pio_a",
"unique_id": "/12.111111111111/PIO.A",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.12_111111111111_pio_b",
"unique_id": "/12.111111111111/PIO.B",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.12_111111111111_latch_a",
"unique_id": "/12.111111111111/latch.A",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.12_111111111111_latch_b",
"unique_id": "/12.111111111111/latch.B",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
],
},
"1D.111111111111": {
"inject_reads": [
@ -377,6 +416,152 @@ MOCK_DEVICE_SENSORS = {
"disabled": True,
},
],
SWITCH_DOMAIN: [
{
"entity_id": "switch.29_111111111111_pio_0",
"unique_id": "/29.111111111111/PIO.0",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_1",
"unique_id": "/29.111111111111/PIO.1",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_2",
"unique_id": "/29.111111111111/PIO.2",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_3",
"unique_id": "/29.111111111111/PIO.3",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_4",
"unique_id": "/29.111111111111/PIO.4",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_5",
"unique_id": "/29.111111111111/PIO.5",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_6",
"unique_id": "/29.111111111111/PIO.6",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_pio_7",
"unique_id": "/29.111111111111/PIO.7",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_0",
"unique_id": "/29.111111111111/latch.0",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_1",
"unique_id": "/29.111111111111/latch.1",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_2",
"unique_id": "/29.111111111111/latch.2",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_3",
"unique_id": "/29.111111111111/latch.3",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_4",
"unique_id": "/29.111111111111/latch.4",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_5",
"unique_id": "/29.111111111111/latch.5",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_6",
"unique_id": "/29.111111111111/latch.6",
"injected_value": b" 1",
"result": STATE_ON,
"unit": None,
"class": None,
"disabled": True,
},
{
"entity_id": "switch.29_111111111111_latch_7",
"unique_id": "/29.111111111111/latch.7",
"injected_value": b" 0",
"result": STATE_OFF,
"unit": None,
"class": None,
"disabled": True,
},
],
},
"3B.111111111111": {
"inject_reads": [
@ -534,7 +719,7 @@ async def test_owserver_setup_valid_device(owproxy, hass, device_id, platform):
read_side_effect.append(expected_sensor["injected_value"])
# Ensure enough read side effect
read_side_effect.extend([ProtocolError("Missing injected value")] * 10)
read_side_effect.extend([ProtocolError("Missing injected value")] * 20)
owproxy.return_value.dir.return_value = dir_return_value
owproxy.return_value.read.side_effect = read_side_effect