tellstick: Collection of small improvements (#916)

* tellstick: Move data run to data folder

* tellstick: Prettier JSON & YAML files

* tellstick: Documentation tweaks
This commit is contained in:
Franck Nijhof
2019-12-19 13:15:06 +01:00
committed by Pascal Vizeli
parent 90736dabfd
commit 058df9b0f2
5 changed files with 20 additions and 29 deletions

80
tellstick/data/run.sh Executable file
View File

@@ -0,0 +1,80 @@
#!/usr/bin/env bashio
set -e
CONFIG="/etc/tellstick.conf"
bashio::log.info "Initialize the tellstick configuration..."
# User access
{
echo "user = \"root\""
echo "group = \"plugdev\""
echo "ignoreControllerConfirmation = \"false\""
} > "${CONFIG}"
# devices
for device in $(bashio::config 'devices|keys'); do
DEV_ID=$(bashio::config "devices[${device}].id")
DEV_NAME=$(bashio::config "devices[${device}].name")
DEV_PROTO=$(bashio::config "devices[${device}].protocol")
DEV_MODEL=$(bashio::config "devices[${device}].model")
ATTR_HOUSE=$(bashio::config "devices[${device}].house")
ATTR_CODE=$(bashio::config "devices[${device}].code")
ATTR_UNIT=$(bashio::config "devices[${device}].unit")
ATTR_FADE=$(bashio::config "devices[${device}].fade")
(
echo ""
echo "device {"
echo " id = ${DEV_ID}"
echo " name = \"${DEV_NAME}\""
echo " protocol = \"${DEV_PROTO}\""
bashio::var.has_value "${DEV_MODEL}" \
&& echo " model = \"${DEV_MODEL}\""
if bashio::var.has_value "${ATTR_HOUSE}${ATTR_CODE}${ATTR_UNIT}${ATTR_FADE}";
then
echo " parameters {"
bashio::var.has_value "${ATTR_HOUSE}" \
&& echo " house = \"${ATTR_HOUSE}\""
bashio::var.has_value "${ATTR_CODE}" \
&& echo " code = \"${ATTR_CODE}\""
bashio::var.has_value "${ATTR_UNIT}" \
&& echo " unit = \"${ATTR_UNIT}\""
bashio::var.has_value "${ATTR_FADE}" \
&& echo " fade = \"${ATTR_FADE}\""
echo " }"
fi
echo "}"
) >> "${CONFIG}"
done
bashio::log.info "Exposing sockets and loading service..."
# Expose the unix socket to internal network
socat TCP-LISTEN:50800,reuseaddr,fork UNIX-CONNECT:/tmp/TelldusClient &
socat TCP-LISTEN:50801,reuseaddr,fork UNIX-CONNECT:/tmp/TelldusEvents &
# Run telldus-core daemon in the background
/usr/local/sbin/telldusd --nodaemon < /dev/null &
# Listen for input to tdtool
bashio::log.info "Starting event listener..."
while read -r input; do
# parse JSON value
funct=$(bashio::jq "${input}" '.function')
devid=$(bashio::jq "${input}" '.device // empty')
bashio::log.info "Read ${funct} / ${devid}"
if ! msg="$(tdtool "--${funct}" "${devid}")"; then
bashio::log.error "TellStick ${funct} fails -> ${msg}"
else
bashio::log.info "TellStick ${funct} success -> ${msg}"
fi
done