1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-25 05:26:47 +00:00
This commit is contained in:
Paulus Schoutsen
2019-07-31 12:25:30 -07:00
parent da05dfe708
commit 4de97abc3a
2676 changed files with 163166 additions and 140084 deletions

View File

@@ -4,28 +4,32 @@ import logging
import voluptuous as vol
from homeassistant.components.climate import ClimateDevice, PLATFORM_SCHEMA
from homeassistant.components.climate.const import (
SUPPORT_TARGET_TEMPERATURE)
from homeassistant.components.climate.const import SUPPORT_TARGET_TEMPERATURE
from homeassistant.const import (
TEMP_CELSIUS, ATTR_TEMPERATURE, CONF_PORT, CONF_NAME, CONF_ID)
TEMP_CELSIUS,
ATTR_TEMPERATURE,
CONF_PORT,
CONF_NAME,
CONF_ID,
)
import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
CONF_IPADDRESS = 'ipaddress'
CONF_TSTATS = 'tstats'
CONF_IPADDRESS = "ipaddress"
CONF_TSTATS = "tstats"
TSTATS_SCHEMA = vol.Schema({
vol.Required(CONF_ID): cv.string,
vol.Required(CONF_NAME): cv.string,
})
TSTATS_SCHEMA = vol.Schema(
{vol.Required(CONF_ID): cv.string, vol.Required(CONF_NAME): cv.string}
)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_IPADDRESS): cv.string,
vol.Required(CONF_PORT): cv.port,
vol.Required(CONF_TSTATS, default={}):
vol.Schema({cv.string: TSTATS_SCHEMA}),
})
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_IPADDRESS): cv.string,
vol.Required(CONF_PORT): cv.port,
vol.Required(CONF_TSTATS, default={}): vol.Schema({cv.string: TSTATS_SCHEMA}),
}
)
def setup_platform(hass, config, add_entities, discovery_info=None):
@@ -39,10 +43,15 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
serport = connection.connection(ipaddress, port)
serport.open()
add_entities([
HeatmiserV3Thermostat(
heatmiser, tstat.get(CONF_ID), tstat.get(CONF_NAME), serport)
for tstat in tstats.values()], True)
add_entities(
[
HeatmiserV3Thermostat(
heatmiser, tstat.get(CONF_ID), tstat.get(CONF_NAME), serport
)
for tstat in tstats.values()
],
True,
)
class HeatmiserV3Thermostat(ClimateDevice):
@@ -86,17 +95,12 @@ class HeatmiserV3Thermostat(ClimateDevice):
def set_temperature(self, **kwargs):
"""Set new target temperature."""
temperature = kwargs.get(ATTR_TEMPERATURE)
self.heatmiser.hmSendAddress(
self._id,
18,
temperature,
1,
self.serport)
self.heatmiser.hmSendAddress(self._id, 18, temperature, 1, self.serport)
def update(self):
"""Get the latest data."""
self.dcb = self.heatmiser.hmReadAddress(self._id, 'prt', self.serport)
low = self.dcb.get('floortemplow ')
high = self.dcb.get('floortemphigh')
self.dcb = self.heatmiser.hmReadAddress(self._id, "prt", self.serport)
low = self.dcb.get("floortemplow ")
high = self.dcb.get("floortemphigh")
self._current_temperature = (high * 256 + low) / 10.0
self._target_temperature = int(self.dcb.get('roomset'))
self._target_temperature = int(self.dcb.get("roomset"))