rtl_433-hass-addons/rtl_433_mqtt_autodiscovery/run.sh

66 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/with-contenv bashio
if [ ! -z ${MQTT_HOST+x} ]; then
echo "Running in stand-alone docker mode"
MQTT_PORT="${MQTT_PORT:-1883}"
RTL_TOPIC="${RTL_TOPIC:-rtl_433/+/events}"
DISCOVERY_PREFIX="${DISCOVERY_PREFIX:-homeassistant}"
DISCOVERY_INTERVAL="${DISCOVERY_INTERVAL:-600}"
OTHER_ARGS="${OTHER_ARGS-}"
LOG_LEVEL="${LOG_LEVEL-}"
if [[ $LOG_LEVEL == "quiet" ]]; then
OTHER_ARGS="${OTHER_ARGS} --quiet"
fi
if [[ $LOG_LEVEL == "debug" ]]; then
OTHER_ARGS="${OTHER_ARGS} --debug"
fi
else
if bashio::services.available mqtt; then
echo "mqtt found in this Home Assistance instance."
MQTT_HOST=$(bashio::services mqtt "host")
MQTT_PORT=$(bashio::services mqtt "port")
export MQTT_USERNAME=$(bashio::services mqtt "username")
export MQTT_PASSWORD=$(bashio::services mqtt "password")
else
echo "Using an external mqtt broker."
MQTT_HOST=$(bashio::config "mqtt_host")
MQTT_PORT=$(bashio::config "mqtt_port")
export MQTT_USERNAME=$(bashio::config "mqtt_user")
export MQTT_PASSWORD=$(bashio::config "mqtt_password")
fi
RTL_TOPIC=$(bashio::config "rtl_topic")
DISCOVERY_PREFIX=$(bashio::config "discovery_prefix")
DISCOVERY_INTERVAL=$(bashio::config "discovery_interval")
OTHER_ARGS=""
if bashio::config.true "mqtt_retain"; then
OTHER_ARGS="${OTHER_ARGS} --retain"
fi
if bashio::config.true "force_update"; then
OTHER_ARGS="${OTHER_ARGS} --force_update"
fi
# This is an optional parameter and we don't want to overwrite the defaults
DEVICE_TOPIC_SUFFIX=$(bashio::config "device_topic_suffix")
if [ ! -z $DEVICE_TOPIC_SUFFIX ]; then
OTHER_ARGS="${OTHER_ARGS} -T ${DEVICE_TOPIC_SUFFIX}"
fi
LOG_LEVEL=$(bashio::config "log_level")
if [[ $LOG_LEVEL == "quiet" ]]; then
OTHER_ARGS="${OTHER_ARGS} --quiet"
fi
if [[ $LOG_LEVEL == "debug" ]]; then
OTHER_ARGS="${OTHER_ARGS} --debug"
fi
fi
# Set a default port for when the container is being run directly.
if [ ! -z ${MQTT_PORT+x} ]; then
MQTT_PORT="1883"
fi
echo "Starting rtl_433_mqtt_hass.py..."
python3 -u /rtl_433_mqtt_hass.py -H $MQTT_HOST -p $MQTT_PORT -R "$RTL_TOPIC" -D "$DISCOVERY_PREFIX" -i $DISCOVERY_INTERVAL $OTHER_ARGS