From 665cae84e54f5fab68999c6253270643a1ea1787 Mon Sep 17 00:00:00 2001 From: Florian Klemenz Date: Sun, 20 Sep 2026 15:42:55 +0000 Subject: [PATCH] fully working homeassistant integration --- mqtt/1wire | 4 ++-- mqtt/mqtt | 16 ++++++++-------- mqtt/send | 30 ++++++++++++++---------------- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/mqtt/1wire b/mqtt/1wire index 9be7967..2da6ac1 100644 --- a/mqtt/1wire +++ b/mqtt/1wire @@ -1,6 +1,6 @@ alias_001415daa6ff=Vorlauf -alias_000802775a88=Ext_1 -alias_0008027777d5=Ext_2 +alias_000802775a88=Umgebung +alias_0008027777d5=Rücklauf alias_00000614a13f=Schlafzimmer_1 alias_00000614a9dd=Schlafzimmer_2 alias_00042c37a7ff=Wohnzimmer_1 diff --git a/mqtt/mqtt b/mqtt/mqtt index fd5605b..b71e5a2 100755 --- a/mqtt/mqtt +++ b/mqtt/mqtt @@ -11,9 +11,9 @@ # Prerequesite #apt install mosquitto-clients -LC_NAME="${DEVICE_NAME,,}" - # Device attriutes +DEVICE_NAME=${DEVICE_NAME:-$HOSTNAME} +LC_NAME="${DEVICE_NAME,,}" DEVICE_ID="${LC_NAME// /_}" DEVICE_MANUFACTURER="custom" DEVICE_MODEL="${DEVICE_NAME}" #"custom" @@ -48,14 +48,14 @@ case ${SENSOR_UNIT} in exit 1 ;; esac -SENSOR_ID="${DEVICE_ID}_${SENSOR_TYPE}" +SENSOR_ID="${DEVICE_ID}_${SENSOR_NAME}_${SENSOR_TYPE}" SENSOR_EXPIRE_AFTER_S="600" # MQTT attributes MQTT_CONFIG_TOPIC="homeassistant/sensor/${SENSOR_ID}/config" -MQTT_STATE_TOPIC="${LC_NAME// //}/${SENSOR_NAME}/state" - - +MQTT_STATE_TOPIC="${DEVICE_ID// //}/${SENSOR_NAME}/${SENSOR_TYPE}/state" +MQTT_BROKER="${MQTT_BROKER:-localhost}" +MQTT_PORT="${MQTT_PORT:-1883}" function send { TOPIC=$1 @@ -64,11 +64,11 @@ function send { echo "TOPIC=$TOPIC" echo "PAYLOAD=$PAYLOAD" if [ -n "${MQTT_USERNAME}" ] && [ -n "${MQTT_PASSWORD}" ]; then - mosquitto_pub -h "${MQTT_BROKER:=localhost}" -p "${MQTT_PORT:=1883}" -u "${MQTT_USERNAME}" -P "${MQTT_PASSWORD}" \ + mosquitto_pub -h "${MQTT_BROKER}" -p "${MQTT_PORT}" -u "${MQTT_USERNAME}" -P "${MQTT_PASSWORD}" \ -t "$TOPIC" \ -m "$PAYLOAD" else - mosquitto_pub -h "${MQTT_BROKER:=localhost}" -p "${MQTT_PORT:=1883}" \ + mosquitto_pub -h "${MQTT_BROKER}" -p "${MQTT_PORT}" \ -t "$TOPIC" \ -m "$PAYLOAD" fi diff --git a/mqtt/send b/mqtt/send index 968a3dd..cb72315 100755 --- a/mqtt/send +++ b/mqtt/send @@ -11,24 +11,22 @@ do s=${s##*-} v=$(cat $f) - SENSORS+=("${s} ${v}") + SENSOR=${s} + VALUE=${v/#[0-9][0-9]/&.} + VALUE=$(echo "scale=1; (10*($VALUE+0.5))/10" | /usr/bin/bc) + + # Overrides SENSOR - Example: env.sensor_0_0 Batterie + ENV_SENSOR_VAR_NAME="alias_${SENSOR}" + ENV_SENSOR_NAME=${!ENV_SENSOR_VAR_NAME} + + if [ -n "${ENV_SENSOR_NAME}" ]; then + SENSOR="${ENV_SENSOR_NAME}" + fi + + echo "${SENSOR}.value ${VALUE}" + SENSOR_NAME="${SENSOR}" SENSOR_UNIT="°C" ./mqtt ${VALUE} done -for ROW in "${SENSORS[@]}"; do - ENTRY=( $ROW ) - SENSOR=${ENTRY[0]} - VALUE=${ENTRY[1]/#[0-9][0-9]/&.} - - # Overrides SENSOR - Example: env.sensor_0_0 Batterie - ENV_SENSOR_VAR_NAME="alias_${SENSOR}" - ENV_SENSOR_NAME=${!ENV_SENSOR_VAR_NAME} - - if [ -n "${ENV_SENSOR_NAME}" ]; then - echo "${ENV_SENSOR_NAME}.value ${VALUE}" - else - echo "${SENSOR}.value ${VALUE}" - fi -done