mqtt should now work

This commit is contained in:
Florian Klemenz 2024-10-21 10:59:20 +02:00
parent 57b49b75dd
commit 82340939fb
2 changed files with 32 additions and 45 deletions

View File

@ -13,56 +13,43 @@
source ~/.mqtt-hass.conf
#MQTT_BROKER=""
#MQTT_PORT=1883
#MQTT_USERNAME=""
#MQTT_PASSWORD=""
LC_NAME="${DEVICE_NAME,,}"
#TYPE="power"
#NAME="Host $(hostname -s)"
#ID="host_$(hostname -s)"
#TOPIC="host/$(hostname -s)"
# Device attriutes
DEVICE_ID="${LC_NAME// /_}"
DEVICE_MANUFACTURER="custom"
DEVICE_MODEL="${DEVICE_NAME}" #"custom"
LC_NAME=${DEVICE_NAME,,}
ID=${LC_NAME// /_}
# Sensor attributes
SENSOR_ID="${DEVICE_ID}_${SENSOR_TYPE}"
SENSOR_EXPIRE_AFTER_S="600"
TOPIC=${LC_NAME// //}
case ${TYPE} in
case ${SENSOR_TYPE} in
"power")
DEVICE_CLASS="power"
UNIT="W"
ICON="mdi:lightning-bolt"
SENSOR_UNIT="W"
SENSOR_ICON="mdi:lightning-bolt"
;;
"voltage")
DEVICE_CLASS="voltage"
UNIT="V"
ICON="mdi:sine-wave"
SENSOR_UNIT="V"
SENSOR_ICON="mdi:sine-wave"
;;
"temperature")
DEVICE_CLASS="temperature"
UNIT="°C"
ICON="mdi:thermometer"
SENSOR_UNIT="°C"
SENSOR_ICON="mdi:thermometer"
;;
"humidity")
DEVICE_CLASS="humidity"
UNIT="%"
ICON="mdi:water-percent"
SENSOR_UNIT="%"
SENSOR_ICON="mdi:water-percent"
;;
*)
echo "Unknown sensor type: ${TYPE}" >2
echo "Unknown sensor type: ${SENSOR_TYPE}" >&2
exit 1
;;
esac
MANUFACTURER="custom"
MODEL="custom"
EXPIRE_AFTER_S="600"
MQTT_CONFIG_TOPIC="homeassistant/sensor/${ID}/config"
MQTT_STATE_TOPIC="${TOPIC}/${DEVICE_CLASS}"
# MQTT attributes
MQTT_CONFIG_TOPIC="homeassistant/sensor/${SENSOR_ID}/config"
MQTT_STATE_TOPIC="${LC_NAME// //}/${SENSOR_TYPE}/state"
function send {
TOPIC=$1
@ -85,18 +72,18 @@ function state {
function setupEntity {
config "{\
\"name\": \"${NAME}\",\
\"unique_id\": \"${ID}_${DEVICE_CLASS}\",\
\"device_class\": \"${DEVICE_CLASS}\",\
\"unit_of_measurement\": \"${UNIT}\",\
\"name\": \"${SENSOR_NAME}\",\
\"unique_id\": \"${SENSOR_ID}\",\
\"device_class\": \"${SENSOR_TYPE}\",\
\"unit_of_measurement\": \"${SENSOR_UNIT}\",\
\"state_topic\": \"${MQTT_STATE_TOPIC}\",\
\"expire_after\": \"${EXPIRE_AFTER_S}\",\
\"icon\": \"${ICON}\",\
\"expire_after\": \"${SENSOR_EXPIRE_AFTER_S}\",\
\"icon\": \"${SENSOR_ICON}\",\
\"device\": {\
\"name\": \"${DEVICE_NAME}\",\
\"identifiers\": \"${ID}\",\
\"manufacturer\": \"${MANUFACTURER}\",\
\"model\": \"${MODEL}\"\
\"identifiers\": [\"${DEVICE_ID}\"],\
\"manufacturer\": \"${DEVICE_MANUFACTURER}\",\
\"model\": \"${DEVICE_MODEL}\"\
}}"
#\"firendly_name\": \"${NAME} power\",\

View File

@ -79,9 +79,9 @@ for PLUGIN in ${PLUGINS}; do
if [ $MQTT_OK = "true" ];
then
MQTT="NAME=\"${LINE_TYPE}\" DEVICE_NAME=\"${PLUGIN} ${LINE_ROOM}\" TYPE=\"${TYPE}\" ${SCRIPT_PATH}/mqtt.sh ${LINE_VALUE}"
MQTT="SENSOR_NAME=\"${LINE_TYPE}\" SENSOR_TYPE=\"${TYPE}\" DEVICE_NAME=\"${PLUGIN} ${LINE_ROOM}\" ${SCRIPT_PATH}/mqtt.sh ${LINE_VALUE}"
echo "$MQTT"
#eval $MQTT
eval $MQTT
fi
done # LINE