Tento skript je určen pro sběr teplotních a vlhkostních dat z různých MQTT teploměrů a jejich následné odeslání na HTTP endpoint ŽivýObraz.eu. Skript se připojuje k MQTT brokerovi, přihlašuje se k odběru specifických topics a posílá získaná data na konfigurovaný HTTP server každých 60 sekund.
Požadavky
Python3
Knihovny: paho-mqtt, requests, json, time
Instalace:
-
Nainstalujte potřebné Python knihovny:
pip install -r requirements.txt
-
Uložte tento skript do souboru a upravte konfiguraci dle vašeho prostředí.
Upravte v souboru mqtt.py následující
MQTT_BROKER: IP adresa MQTT brokeru.
MQTT_PORT: Port MQTT brokeru (standardně 1883).
MQTT_USER: Uživatelské jméno pro MQTT.
MQTT_PASSWORD: Heslo pro MQTT.
MQTT_TOPICS: Seznam MQTT topics, ze kterých se mají sbírat data.
HTTP_ENDPOINT: HTTP endpoint pro odeslání dat.
IMPORT_KEY: Klíč pro autentizaci u HTTP endpointu.
Spusťte skript a nechte jej běžet. Skript bude neustále naslouchat MQTT zprávám a odesílat data na HTTP server.
Pro nastavení skriptu jako služby v systému s použitím systemd, proveďte následující kroky:
-
Vytvořte nový systemd service soubor. Například mqtt-thermometer.service:
sudo nano /etc/systemd/system/mqtt-thermometer.service
-
Vložte do něj následující konfiguraci, přičemž upravte cesty dle vašeho prostředí:
[Unit] Description=MQTT Thermometer Service After=network.target [Service] Type=simple User=<username> ExecStart=/usr/bin/python3 /cesta/k/vašemu/skriptu.py [Install] WantedBy=multi-user.target
Nahraďte uživatelským jménem, pod kterým chcete službu spouštět, a /cesta/k/vašemu/skriptu.py cestou k vašemu skriptu.
-
Povolte a spusťte službu:
sudo systemctl enable mqtt-thermometer.service sudo systemctl start mqtt-thermometer.service
-
Zkontrolujte stav služby:
sudo systemctl status mqtt-thermometer.service
Tímto způsobem se skript spustí při každém startu systému a bude běžet na pozadí. Poznámky
Ujistěte se, že MQTT broker je spuštěn a dostupný.
Zkontrolujte, zda jsou správně nastaveny topics pro vaše teploměry.