From 887f705f552eba30b0058fe03e5676a9401dd199 Mon Sep 17 00:00:00 2001 From: Hristo Jelev Date: Mon, 27 Apr 2020 23:32:14 +0300 Subject: [PATCH] home assistant sensors configuration --- README.md | 39 ++++++++++++++++++++++++++++++----- images/rpi-cpu2mqtt-hass.jpg | Bin 21768 -> 23755 bytes 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c9ebfa5..eda7840 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ # Rapsberry Pi MQTT monitor -Python 2 script to check cpu load, cpu temperature, free space, voltage and system clock speed +Python script to check cpu load, cpu temperature, free space, voltage and system clock speed on a Raspberry Pi computer and publish the data to a MQTT server. -I wrote this so I can monitor my raspberries at home with home assistant. The script is writen for python 2 -as when I wrote it one of the used python modules was not available for python 3. (if the modules are available for python 3 now the script shuold have no problems running on python 3 - plan to check that in the near feature) +I wrote this so I can monitor my raspberries at home with [home assistant](https://www.home-assistant.io/). The script was written and tested on Python 2 but it should work fine on Python 3. The script if very light, it takes 4 seconds as there are 4 one second sleeps in the code - due to mqtt have problems if I shoot the messages with no delay. # Installation: @@ -26,6 +25,36 @@ Create a cron entry like this (you might need to update the path on the cron ent */2 * * * * /usr/bin/python /home/pi/scripts/rpi-cpu2mqtt.py -Home Assistant Integration +# Home Assistant Integration -![Rapsberry Pi MQTT monitor in Home Assistant](images/rpi-cpu2mqtt-hass.jpg) \ No newline at end of file +![Rapsberry Pi MQTT monitor in Home Assistant](images/rpi-cpu2mqtt-hass.jpg) + +Once you installed the script on your raspberry you need to create some sensors in home assistant. + +This is the sensors configuration assuming your sensors are separated in sensors.yaml file. +```yaml + - platform: mqtt + state_topic: "masoko/rpi4/cpuload" + name: rpi 4 cpu load + unit_of_measurement: "%" + + - platform: mqtt + state_topic: "masoko/rpi4/cputemp" + name: rpi 4 cpu temp + unit_of_measurement: "°C" + + - platform: mqtt + state_topic: "masoko/rpi4/diskusage" + name: rpi 4 diskusage + unit_of_measurement: "%" + + - platform: mqtt + state_topic: "masoko/rpi4/voltage" + name: rpi 4 voltage + unit_of_measurement: "V" + + - platform: mqtt + state_topic: "masoko/rpi4/sys_clock_speed" + name: rpi 4 sys clock speed + unit_of_measurement: "hz" +``` \ No newline at end of file diff --git a/images/rpi-cpu2mqtt-hass.jpg b/images/rpi-cpu2mqtt-hass.jpg index 4f4a9414a77a33847e2b71a3a03af4039736d83e..87966f72cb1a04410c6f66e10451f24559adf91e 100644 GIT binary patch literal 23755 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 literal 21768 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