code to create mqtt entities for input switches
This commit is contained in:
parent
311249552a
commit
b795e1daa2
1 changed files with 28 additions and 0 deletions
|
|
@ -4,6 +4,7 @@ from timeit import default_timer as timer
|
|||
import yaml
|
||||
import os
|
||||
import json
|
||||
from devices import display_device, display_input_entity, hass_display_sensor
|
||||
|
||||
class Service:
|
||||
def __init__(self):
|
||||
|
|
@ -18,6 +19,33 @@ class Service:
|
|||
config["mqtt"]["password"],
|
||||
config["mqtt"]["host"],
|
||||
config["mqtt"]["port"])
|
||||
|
||||
def create_display_switch(self, display_id, input_name, input_code):
|
||||
topic = display_input_entity["generic_switch"]
|
||||
topic = topic.replace("#", display_id)
|
||||
topic = topic.replace("?", input_name)
|
||||
|
||||
config = display_input_entity["generic_switch_config"].copy()
|
||||
config["unique_id"] = "{}_{}_switch".format(display_id,input_name)
|
||||
config["object_id"] = "{}_{}_switch".format(display_id,input_name)
|
||||
config["name"] = input_name
|
||||
config["state_topic"] = config["state_topic"].replace("#", id)
|
||||
config["state_topic"] = config["state_topic"].replace("?", input_name)
|
||||
|
||||
device = display_device.copy()
|
||||
device["name"] = device["name"].replace("#", input_name)
|
||||
device["model"] = "{}-{}".format(device["model"],id)
|
||||
config["device"] = device
|
||||
|
||||
config["command_topic"] = config["command_topic"].replace("#", id)
|
||||
config["command_topic"] = config["command_topic"].replace("?", input_name)
|
||||
|
||||
self.mqtt.client.publish(config["state_topic"], "off")
|
||||
self.mqtt.client.publish(topic, json.dumps(config), retain=True)
|
||||
|
||||
self.mqtt.client.subscribe(config["command_topic"])
|
||||
|
||||
self.inputs[display_id]["switches"].append({"id": input_name, "topic": topic, "config": config, "code": input_code})
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in a new issue