Calculate Savings, Send merged requests

This commit is contained in:
Christoph Sterz 2023-02-20 11:57:44 +01:00
parent 6074d693a5
commit b71ab734b7
2 changed files with 22 additions and 12 deletions

View File

@ -1,7 +1,7 @@
pkgname="freiland-solardata-forwarder" pkgname="freiland-solardata-forwarder"
pkgdesc="Copies Data from FreilandSolar to Opensensemap" pkgdesc="Copies Data from FreilandSolar to Opensensemap"
pkgver=1.0 pkgver=1.1
pkgrel=3 pkgrel=2
arch=("x86_64") arch=("x86_64")
source=('solar-forwarder.py' 'solar-forwarder.service') source=('solar-forwarder.py' 'solar-forwarder.service')
depends=('python-paho-mqtt' 'python-requests' 'python') depends=('python-paho-mqtt' 'python-requests' 'python')
@ -12,5 +12,5 @@ package() {
install -Dm755 solar-forwarder.py "${pkgdir}/usr/bin/solar-forwarder" install -Dm755 solar-forwarder.py "${pkgdir}/usr/bin/solar-forwarder"
} }
sha256sums=('f5886f7921935c8bf04ffd5cd81d8f5690342c935c2f81d87b74d343713f29db' sha256sums=('ac6062571ecb8ecf249082ac2854358e8c431ed4cfe98e167f18ca3f7b0d1181'
'481243ff3c4ff019c3d31c1b6dbd8d70308402efef5a5b22f7b21b08312bc70c') '481243ff3c4ff019c3d31c1b6dbd8d70308402efef5a5b22f7b21b08312bc70c')

View File

@ -13,14 +13,24 @@ def on_connect(client, userdata, flags, rc):
def on_message(client, userdata, msg): def on_message(client, userdata, msg):
print(msg.topic+" "+ msg.payload.decode("utf-8")) print(msg.topic+" "+ msg.payload.decode("utf-8"))
HEADERS = { "Authorization" : "43d3886948451157f1b03bfc7db18c1ed4e4950bc77ffac3e70dff422574b204", "content-type":"application/json" } HEADERS = { "Authorization" : "43d3886948451157f1b03bfc7db18c1ed4e4950bc77ffac3e70dff422574b204", "content-type":"application/json" }
URL = "" URL = ""
if "power" in msg.topic: URL = "https://api.opensensemap.org/boxes/63f26d484fbabe0007d105d2/63f26d484fbabe0007d105d3"
if "energy" in msg.topic: URL = "https://api.opensensemap.org/boxes/63f26d484fbabe0007d105d2/63f2778a4fbabe0007d68fd9"
BODY = "" BODY = ""
if "power" in msg.topic: BODY = '{"value":' + msg.payload.decode("utf-8")+"}" #power
if "energy" in msg.topic: BODY = '{"value":' + str(float(msg.payload.decode("utf-8"))/60.0/1000.0) + "}" if "power" in msg.topic:
URL = "https://api.opensensemap.org/boxes/63f26d484fbabe0007d105d2/63f26d484fbabe0007d105d3"
BODY = '{"value":' + msg.payload.decode("utf-8")+"}"
result = requests.post(url = URL, headers = HEADERS, data = BODY)
#energy & savings
if "energy" in msg.topic:
URL = "https://api.opensensemap.org/boxes/63f26d484fbabe0007d105d2/data"
#calculate energy from Watt-minutes
energy = float(msg.payload.decode("utf-8"))/60.0/1000.0
BODY = '['
BODY = BODY + '{"sensor":"63f2778a4fbabe0007d68fd9", "value":' + ("{:.1f}".format(energy)) + "},"
#calculate savings
savings = energy * 0.45
BODY = BODY + '{"sensor":"63f3482c4fbabe000746658e", "value":' + ("{:.2f}".format(savings)) + "}"
BODY = BODY + ']'
print(BODY) print(BODY)
result = requests.post(url = URL, headers = HEADERS, data = BODY) result = requests.post(url = URL, headers = HEADERS, data = BODY)
print(result.text) print(result.text)