33 lines
1.1 KiB
Python
Executable File
33 lines
1.1 KiB
Python
Executable File
import os
|
|
import asyncio
|
|
from coned import Meter
|
|
from coned import MeterError
|
|
import paho.mqtt.client as mqtt
|
|
import json
|
|
|
|
meter = Meter(
|
|
email=os.getenv("EMAIL"),
|
|
password=os.getenv("PASSWORD"),
|
|
mfa_type=os.getenv("MFA_TYPE"),
|
|
mfa_secret=os.getenv("MFA_SECRET"),
|
|
account_uuid=os.getenv("ACCOUNT_UUID"),
|
|
meter_number=os.getenv("METER_NUMBER"),
|
|
site=os.getenv("SITE"),
|
|
browser_path="/usr/bin/chromium-browser"
|
|
)
|
|
startTime, endTime, value, uom = asyncio.get_event_loop().run_until_complete(meter.last_read())
|
|
|
|
message = {'startTime': startTime, 'endTime': endTime, 'value': value, 'uom': uom}
|
|
|
|
print(f"message: {message}")
|
|
|
|
mqttc = mqtt.Client("oru_meter_reader")
|
|
mqttc.username_pw_set(username=os.getenv("MQTT_USER"), password=os.getenv("MQTT_PASS"))
|
|
mqttc.connect(os.getenv("MQTT_HOST"))
|
|
mqttc.publish('electric_meter/startTime', startTime, retain=True)
|
|
mqttc.publish('electric_meter/endTime', endTime, retain=True)
|
|
mqttc.publish('electric_meter/value', value, retain=True)
|
|
mqttc.publish('electric_meter/uom', uom, retain=True)
|
|
mqttc.publish('electric_meter/message', json.dumps(message), retain=True)
|
|
mqttc.disconnect()
|