add mqtt part and compose file
This commit is contained in:
parent
8e99fbe529
commit
970888ebfa
|
|
@ -1,6 +1,7 @@
|
|||
FROM python:3.10
|
||||
|
||||
RUN adduser --disabled-password --gecos "" python
|
||||
ENV PATH="/home/python/.local/bin:$PATH"
|
||||
|
||||
USER python
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,10 @@
|
|||
[apsystems]
|
||||
username = ""
|
||||
password = ""
|
||||
|
||||
[mqtt]
|
||||
username = ""
|
||||
password = ""
|
||||
broker = ""
|
||||
port = 1883
|
||||
topic = "ez1cloud2mqtt"
|
||||
|
|
|
|||
7
docker-compose.yml
Normal file
7
docker-compose.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
version: "3.9"
|
||||
services:
|
||||
ez1cloud2mqtt:
|
||||
image: ez1cloud2mqtt
|
||||
build: .
|
||||
volumes:
|
||||
- ./config.toml:/config.toml
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
toml==0.10.2
|
||||
requests~=2.31.0
|
||||
paho-mqtt~=1.6.1
|
||||
13
run.py
13
run.py
|
|
@ -1,6 +1,7 @@
|
|||
import asyncio
|
||||
import os
|
||||
import toml
|
||||
import paho.mqtt.client as mqtt
|
||||
|
||||
from CloudConnection import CloudConnection
|
||||
from Inverter import Inverter
|
||||
|
|
@ -11,7 +12,7 @@ async def main():
|
|||
with open("config.toml", "r") as f:
|
||||
config = toml.load(f)
|
||||
|
||||
connection = CloudConnection(config["username"], config["password"])
|
||||
connection = CloudConnection(config["apsystems"]["username"], config["apsystems"]["password"])
|
||||
connection.generate_user_token()
|
||||
inverter = connection.get_inverter()
|
||||
devices = []
|
||||
|
|
@ -22,9 +23,17 @@ async def main():
|
|||
for device in devices:
|
||||
asyncio.create_task(device.start())
|
||||
|
||||
mqtt_client = mqtt.Client()
|
||||
mqtt_client.username_pw_set(config["mqtt"]["username"], config["mqtt"]["password"])
|
||||
mqtt_client.connect(config["mqtt"]["broker"], config["mqtt"]["port"])
|
||||
|
||||
while True:
|
||||
item = await queue.get()
|
||||
print(item)
|
||||
for i in item.data:
|
||||
return_code, _ = mqtt_client.publish(f"{config['mqtt']['topic']}/{item.name}/{i}", item.data[i])
|
||||
if return_code == 4:
|
||||
print("Invalid credentials, check your configuration.")
|
||||
exit(1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user