def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the ITach connection and devices.""" import pyitachip2ir itachip2ir = pyitachip2ir.ITachIP2IR(config.get(CONF_MAC), config.get(CONF_HOST), int(config.get(CONF_PORT))) if not itachip2ir.ready(CONNECT_TIMEOUT): _LOGGER.error("Unable to find iTach") return False devices = [] for data in config.get(CONF_DEVICES): name = data.get(CONF_NAME) modaddr = int(data.get(CONF_MODADDR, 1)) connaddr = int(data.get(CONF_CONNADDR, 1)) cmddatas = "" for cmd in data.get(CONF_COMMANDS): cmdname = cmd[CONF_NAME].strip() if not cmdname: cmdname = '""' cmddata = cmd[CONF_DATA].strip() if not cmddata: cmddata = '""' cmddatas += "{}\n{}\n".format(cmdname, cmddata) itachip2ir.addDevice(name, modaddr, connaddr, cmddatas) devices.append(ITachIP2IRRemote(itachip2ir, name)) add_entities(devices, True) return True
def setup_platform( hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None, ) -> None: """Set up the ITach connection and devices.""" itachip2ir = pyitachip2ir.ITachIP2IR( config.get(CONF_MAC), config[CONF_HOST], int(config[CONF_PORT]) ) if not itachip2ir.ready(CONNECT_TIMEOUT): _LOGGER.error("Unable to find iTach") return devices = [] for data in config[CONF_DEVICES]: name = data.get(CONF_NAME) modaddr = int(data.get(CONF_MODADDR, DEFAULT_MODADDR)) connaddr = int(data.get(CONF_CONNADDR, DEFAULT_CONNADDR)) ir_count = int(data.get(CONF_IR_COUNT, DEFAULT_IR_COUNT)) cmddatas = "" for cmd in data.get(CONF_COMMANDS): cmdname = cmd[CONF_NAME].strip() if not cmdname: cmdname = '""' cmddata = cmd[CONF_DATA].strip() if not cmddata: cmddata = '""' cmddatas += f"{cmdname}\n{cmddata}\n" itachip2ir.addDevice(name, modaddr, connaddr, cmddatas) devices.append(ITachIP2IRRemote(itachip2ir, name, ir_count)) add_entities(devices, True)