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