V minulom článku som popisoval postup, ako odoslať hodnuto so záťažou servera cez MQTT. Hodnotu je potom možné prostredníctvom Node-RED previesť na príkaz pre LampESP s farebnou ledkou. Výsledok je prostý, ledka indikuje farbou záťaž na serveri.

Ďalšia možnosť, ako odoslať príkaz s farbou priamo zo servera, je použiť Python.
Jednoduch nainštalujte paho-mqtt:
pip install paho-mqtt
Tu je krátky Python skrit (publish_server_load.py):
#!/usr/bin/env python3
import paho.mqtt.publish as publish
import os
color = 'red'
load = os.getloadavg()[0]
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 modul, by mal byť nastavený na príjem témy /server/monitoring. Kód LampESP 0.3 je dostupný na GitHube.
Do crontabu stačí potom vložiť nasledujúci riadok:
* * * * * /usr/local/bin/publish_server_load.py
V prípade, že používate virtualenv, tak by príkaz mal vyzerať nasledovne:
* * * * * /opt/my-python-env3/bin/python /usr/local/bin/publish_server_load.py