I’ve described how to send server load as a number to MQTT in the previous article. The number could be then translated via Node-RED to command for LampESP with RGB LED. The result is simple. LED indicates server load by displaying different colors.
The other option is to deliver color command directly from the server using Python.
Just install paho-mqtt:
pip install paho-mqtt
Here is small snippet of Python code (publish_server_load.py):
#!/usr/bin/env python3 import paho.mqtt.publish as publish import os color = 'red' load = os.getloadavg() if load < 0.7: color = 'black' elif load < 1.5: color = 'blue' elif load < 3: color = 'green' elif load < 7: color = 'orange' publish.single('/server/monitoring/command', color, hostname='iot.sinusgear.com')
ESP should listen to /server/monitoring. Code of LampESP 0.3 is available at GitHub.
Put this code into crontab
* * * * * /usr/local/bin/publish_server_load.py
If you’re using virtualenv the command should be:
* * * * * /opt/my-python-env3/bin/python /usr/local/bin/publish_server_load.py