Skip to content

Commit 8372afe

Browse files
committed
MQTT Discovery and Discovery prefix settings.
1 parent 9121efc commit 8372afe

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

config.schema.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,15 @@ mqtt:
5555
type: string
5656
required: no
5757
default: dead
58+
discovery:
59+
type: boolean
60+
required: no
61+
default: no
62+
discovery_prefix:
63+
type: string
64+
required: no
65+
default: "homeassistant"
66+
coerce: rstrip_slash
5867
tls:
5968
type: dict
6069
required: no

pi_mqtt_gpio/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,15 @@
5858
type: string
5959
required: no
6060
default: dead
61+
discovery:
62+
type: boolean
63+
required: no
64+
default: no
65+
discovery_prefix:
66+
type: string
67+
required: no
68+
default: "homeassistant"
69+
coerce: rstrip_slash
6170
tls:
6271
type: dict
6372
required: no

pi_mqtt_gpio/server.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -359,10 +359,11 @@ def on_conn(client, userdata, flags, rc):
359359
status_topic, config["status_payload_running"], qos=1, retain=True
360360
)
361361
# HASS
362-
for in_conf in digital_inputs:
363-
hass_annonce_digital_input(in_conf, topic_prefix, config)
364-
for out_conf in digital_outputs:
365-
hass_annonce_digital_output(out_conf, topic_prefix, config)
362+
if config["discovery"]:
363+
for in_conf in digital_inputs:
364+
hass_announce_digital_input(in_conf, topic_prefix, config)
365+
for out_conf in digital_outputs:
366+
hass_announce_digital_output(out_conf, topic_prefix, config)
366367
elif rc == 1:
367368
_LOG.fatal("Incorrect protocol version used to connect to MQTT broker.")
368369
sys.exit(1)
@@ -647,7 +648,7 @@ def gpio_interrupt_callback(module, pin):
647648
)
648649

649650

650-
def hass_annonce_digital_input(in_conf, topic_prefix, mqtt_config):
651+
def hass_announce_digital_input(in_conf, topic_prefix, mqtt_config):
651652
"""
652653
Announces digital input as binary_sensor to HomeAssistant.
653654
:param in_conf: Input config
@@ -674,13 +675,13 @@ def hass_annonce_digital_input(in_conf, topic_prefix, mqtt_config):
674675
}
675676

676677
client.publish(
677-
"%s/%s/%s/%s/config" % ("homeassistant", "binary_sensor", device_id, sensor_name),
678+
"%s/%s/%s/%s/config" % (mqtt_config["discovery_prefix"], "binary_sensor", device_id, sensor_name),
678679
payload=json.dumps(sensor_config),
679680
retain=True,
680681
)
681682

682683

683-
def hass_annonce_digital_output(out_conf, topic_prefix, mqtt_config):
684+
def hass_announce_digital_output(out_conf, topic_prefix, mqtt_config):
684685
"""
685686
Announces digital output as switch to HomeAssistant.
686687
:param out_conf: Output config
@@ -708,7 +709,7 @@ def hass_annonce_digital_output(out_conf, topic_prefix, mqtt_config):
708709
}
709710

710711
client.publish(
711-
"%s/%s/%s/%s/config" % ("homeassistant", "switch", device_id, sensor_name),
712+
"%s/%s/%s/%s/config" % (mqtt_config["discovery_prefix"], "switch", device_id, sensor_name),
712713
payload=json.dumps(sensor_config),
713714
retain=True,
714715
)

0 commit comments

Comments
 (0)