MQTT Communication established

This commit is contained in:
Ollo 2024-12-07 14:25:04 +01:00
parent 4fa2e48b62
commit 162b4eb5b6
3 changed files with 75 additions and 1 deletions

View File

@ -13,3 +13,28 @@ Interface: USB-UART
Inspired by the following Project: Inspired by the following Project:
https://github.com/stefanthoss/esp8266-fan-control https://github.com/stefanthoss/esp8266-fan-control
## MQTT Control
### Linux based Controller
* Docker
* Python3
* paho
### Installation
Open Terminal in **mqttclient**.
Docker must be installed
```docker build .```
#### Execution
Set the following parameter:
* USB Device
* MQTT
* Server Name / IP Address
* Base Topic
```docker run -e MQTT_SERVER="192.168.x.y" -e MQTT_TOPIC="testtopic/" sha256:```

8
mqttclient/Dockerfile Normal file
View File

@ -0,0 +1,8 @@
FROM python:3.9
# Add sourcecode files
ADD fanATserial2mqtt.py /root/
# handle dependencies
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir paho-mqtt pyserial
CMD ["python", "/root/fanATserial2mqtt.py"]
# Or enter the name of your unique directory and parameter set.

View File

@ -0,0 +1,41 @@
#! /usr/bin/python3
import time
import sys
from paho.mqtt import client as mqtt_client
import os
mqtt_server=os.environ['MQTT_SERVER']
mqtt_topic=os.environ['MQTT_TOPIC']
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
# Start mqtt
client_id = f'python-fan-ctrl'
client = mqtt_client.Client(mqtt_client.CallbackAPIVersion.VERSION2)
client.on_message = on_message
if (not (mqtt_server)):
print("MQTT_SERVER is not set")
if (not (mqtt_topic)):
print("MQTT_TOPIC is not set")
client.connect(mqtt_server, 1883)
val=0
client.loop_start()
# Endless Loop
while True:
try:
client.publish(mqtt_topic + "val", val)
time.sleep(0.2)
val = val + 1
except (KeyboardInterrupt, SystemExit):
cleanAndExit()
client.loop_stop()