MQTT Communication established
This commit is contained in:
parent
4fa2e48b62
commit
162b4eb5b6
25
ReadMe.md
25
ReadMe.md
@ -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
8
mqttclient/Dockerfile
Normal 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.
|
41
mqttclient/fanATserial2mqtt.py
Normal file
41
mqttclient/fanATserial2mqtt.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user