This commit is contained in:
hjelev
2022-03-19 01:00:37 +02:00
parent 6109681975
commit 049c6554a9
2 changed files with 3 additions and 95 deletions

View File

@@ -1,4 +1,3 @@
#!/bin/bash
# Raspberry Pi MQTT monitor # Raspberry Pi MQTT monitor
Python script to check the cpu load, cpu temperature, free space, used memory, swap usage, voltage and system clock speed Python script to check the cpu load, cpu temperature, free space, used memory, swap usage, voltage and system clock speed
on a Raspberry Pi or any computer running Ubuntu and publish this data to a MQTT broker. on a Raspberry Pi or any computer running Ubuntu and publish this data to a MQTT broker.
@@ -34,7 +33,7 @@ Disabled sensors are represented with False in the message.
I have created an automated bash installation, its working but not extensively tested I have created an automated bash installation, its working but not extensively tested
```bash ```bash
curl -L https://raw.githubusercontent.com/hjelev/rpi-mqtt-monitor/master/remote_install.sh | bash bash <(curl -s https://raw.githubusercontent.com/hjelev/rpi-mqtt-monitor/master/remote_install.sh)
``` ```

View File

@@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
printm(){ printm () {
length=$(expr length "$1") length=$(expr length "$1")
length=$(($length + 4)) length=$(($length + 4))
printf "\n" printf "\n"
@@ -8,99 +8,8 @@ printm(){
printf -- '-%.0s' $(seq $length); echo "" printf -- '-%.0s' $(seq $length); echo ""
} }
print_green(){
tput setaf 2; echo "$1"
tput sgr 0
}
print_yellow(){
tput setaf 3; printf "$1"
tput sgr 0
}
printm "Cloning rpi-mqtt-monitor git repository" printm "Cloning rpi-mqtt-monitor git repository"
git clone https://github.com/hjelev/rpi-mqtt-monitor.git git clone https://github.com/hjelev/rpi-mqtt-monitor.git
cd rpi-mqtt-monitor cd rpi-mqtt-monitor
printm "Raspberry Pi MQTT monitor installer" bash install.sh
check_and_install_pip () {
cwd=$(pwd)
python=$(which python)
pip=$(python -m pip --version 2>&1);
if [[ "$pip" == *"No"* ]]; then
echo "- Pip is not installed, installing it."
sudo apt install python-pip
else
print_green "+ Found $pip"
fi
}
install_requirements () {
printm "Installing requirements"
pip install -r requirements.txt
}
update_config () {
printf "\nCopy config.py.example to config.py\n"
cp src/config.py.example src/config.py
printm "MQTT settings"
printf "Enter mqtt_host: "
read HOST
sed -i "s/ip address or host/${HOST}/" src/config.py
printf "Enter mqtt_user: "
read USER
sed -i "s/username/${USER}/" src/config.py
printf "Enter mqtt_password: "
read PASS
sed -i "s/\"password/\"${PASS}/" src/config.py
printf "Enter mqtt_port (default is 1883): "
read PORT
if [ -z "$PORT" ]; then
PORT=1883
fi
sed -i "s/1883/${PORT}/" src/config.py
printf "Enter mqtt_topic_prefix (default is rpi-MQTT-monitor): "
read TOPIC
if [ -z "$TOPIC" ]; then
TOPIC=rpi-MQTT-monitor
fi
sed -i "s/rpi-MQTT-monitor/${TOPIC}/" src/config.py
printf "\nconfig.py is updated with provided settings\n"
}
set_cron () {
printm "Setting Cronjob"
crontab -l > tempcron
if grep -q rpi-cpu2mqtt.py tempcron; then
cronfound=$(grep rpi-cpu2mqtt.py tempcron)
print_yellow " There is already a cronjob running rpi-cpu2mqtt.py - skipping cronjob creation\n"
print_yellow " If you want the cronjob to be automatically created remove the line below from your\n cronjobs list and run the installer again.\n\n"
echo " ${cronfound}"
else
printf "How often do you want the script to run in minutes? "
read MIN
echo "Adding the line below to your crontab"
echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py"
echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" >> tempcron
crontab tempcron
fi
rm tempcron
}
main () {
check_and_install_pip
install_requirements
update_config
set_cron
printm "Done"
}
main