Oh I see. Thank you for the clarification. I’ll try to do better this time. ![]()
Shure I can but there is nothing special in the config it is still mostly unchanged
Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
Uncomment this if you are using SSL/TLS, running in Docker container, etc.
http:
base_url: example.duckdns.org:8123
Text to speech
tts:
- platform: google_translate
switch:
- platform: maxsmart
name: NAME
host: 192.168.IP.IP
ports: 6
outlets:
1: Out1
2: Out2
3: Out3
4: Out4
5: Out5
6: Out6group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
But the speciality is more in the file I have downloaded from Github. It stands now alone in the folder:
addons\git\229c8dfc which causes the error I assume?!
Support for a MaxSmart Power Switch.
import loggingimport requests
import voluptuous as volfrom homeassistant.components.switch import (SwitchDevice, PLATFORM_SCHEMA)
from homeassistant.const import (CONF_NAME, CONF_HOST)
import homeassistant.helpers.config_validation as cv_LOGGER = logging.getLogger(name)
DEFAULT_NAME = ‘MaxSmart switch’
ATTR_CURRENT_CONSUMPTION = ‘Current Consumption’
ATTR_CURRENT_CONSUMPTION_UNIT = ‘W’ATTR_CURRENT_AMPAGE = ‘Current Amps’
ATTR_CURRENT_AMPAGE_UNIT = ‘A’CONF_PORTS = ‘ports’
CONF_OUTLETS = ‘outlets’
REQ_CONF = [CONF_HOST, CONF_OUTLETS]PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_HOST): cv.string,
vol.Required(CONF_PORTS): cv.positive_int,
vol.Optional(CONF_OUTLETS): {cv.positive_int: cv.string},
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string
})def setup_platform(hass, config, add_devices, discovery_info=None):
“”“Set up the outlets.”“”dev =
number_outlets = config.get(CONF_PORTS) # MaxSmart Power Strip EU
for number in range(1, number_outlets+1):
dev.append(SmartSwitch(
config.get(CONF_HOST),
config.get(CONF_NAME),
number))add_devices(dev)
class SmartSwitch(SwitchDevice):
“”“Representation of a single outlet”“”def init(self, host, name, number):
“”“Initialize the switch.”“”self._host = host self._name = name self._number = number self._now_power = 0.0 self._now_amp = 0.0 self._state = False@property
def name(self):
“”“Return the name of the outlet.”“”
return self._name+" #"+str(self._number)@property
def state_attributes(self):
“”“Return the state attributes of the device.”“”
attrs = {}
attrs[ATTR_CURRENT_CONSUMPTION] = “%.1f %s” %
(self._now_power, ATTR_CURRENT_CONSUMPTION_UNIT)
attrs[ATTR_CURRENT_AMPAGE] = “%.1f %s” %
(self._now_amp, ATTR_CURRENT_AMPAGE_UNIT)
return attrs@property
def current_power_watt(self):
“”“Return the current power usage in watt.”“”
return self._now_power@property
def is_on(self):
“”“Return Switch State”“”
return self._state
def turn_on(self):
“”“Turn the switch on.”“”
requests.get(‘http://’+self._host+‘/?cmd=200&json={“port”:’+str(self._number)+
‘, “state”:1}’)def turn_off(self):
“”“Turn the switch off.”“”
requests.get(‘http://’+self._host+‘/?cmd=200&json={“port”:’+str(self._number)+
‘, “state”:0}’)def update(self):
“”“get state from outlet.”“”
try:
request = requests.get(‘http://’+self._host+‘/?cmd=511’).json()[‘data’]
_LOGGER.debug(request)
self._state = request[‘switch’][self._number-1]
self._now_power = float(request[‘watt’][self._number-1])
self._now_amp = float(request[‘amp’][self._number-1])
except (TypeError, ValueError):
self._now_power = None
_LOGGER.error(‘Error while reading from MaxSmart Power Outlet’)