Copy over other files from christoph
This commit is contained in:
64
aquaponic-receiver/aquaponic-receiver.py
Executable file
64
aquaponic-receiver/aquaponic-receiver.py
Executable file
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
import paho.mqtt.client as mqtt
|
||||
from influxdb_client import InfluxDBClient
|
||||
from influxdb_client import Point
|
||||
from influxdb_client.client.write_api import SYNCHRONOUS
|
||||
import json
|
||||
|
||||
import logging
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
# mqttc = mqtt.Client("client-id")
|
||||
# but note that the client id must be unique on the broker. Leaving the client
|
||||
# id parameter empty will generate a random id for you.
|
||||
mqttc = mqtt.Client()
|
||||
influx_client = InfluxDBClient(url="http://localhost:8086", token="bjzIaf-hQU6eUf7-Sk9XvmjPNBG6EXuYg6iEjFhHfd2ggdqtL_5WpQxKBCRxWChB31YYXPoVrG2X0faoTZl1Eg==", org="sensors")
|
||||
write_api = influx_client.write_api(write_options=SYNCHRONOUS)
|
||||
|
||||
def messageReceived(client, userdata, message):
|
||||
print("received topic" + str(message.topic) + "with payload:" + str(message.payload))
|
||||
message_as_json = json.loads(message.payload.decode("utf-8"))
|
||||
|
||||
#extract fields from json
|
||||
CmToWater = float(message_as_json["uplink_message"]["decoded_payload"]["CmToWater"])
|
||||
Temperature1 = float(message_as_json["uplink_message"]["decoded_payload"]["Temp1"])
|
||||
Temperature2 = float(message_as_json["uplink_message"]["decoded_payload"]["Temp2"])
|
||||
Temperature3 = float(message_as_json["uplink_message"]["decoded_payload"]["Temp3"])
|
||||
Temperature4 = float(message_as_json["uplink_message"]["decoded_payload"]["Temp4"])
|
||||
Temperature5 = float(message_as_json["uplink_message"]["decoded_payload"]["Temp5"])
|
||||
Temperature6 = float(message_as_json["uplink_message"]["decoded_payload"]["Temp6"])
|
||||
|
||||
Datapoint = Point("environment_measurement")\
|
||||
.field("CmToWater", CmToWater)\
|
||||
.field("Temperature1", Temperature1)\
|
||||
.field("Temperature2", Temperature2)\
|
||||
.field("Temperature3", Temperature3)\
|
||||
.field("Temperature4", Temperature4)\
|
||||
.field("Temperature5", Temperature5)\
|
||||
.field("Temperature6", Temperature6)\
|
||||
|
||||
print("writing Datapoint", Datapoint)
|
||||
write_api.write("abfd776339848ad0", "cccp", Datapoint)
|
||||
|
||||
def on_connect(client, userdata, flags, rc):
|
||||
print("Connected with result code "+str(rc))
|
||||
|
||||
if (rc == 0):
|
||||
print("(Success)")
|
||||
else:
|
||||
print("(Fail)")
|
||||
|
||||
# Subscribing in on_connect() means that if we lose the connection and
|
||||
# reconnect then subscriptions will be renewed.
|
||||
client.subscribe("#", 0)
|
||||
|
||||
appid = "freiland-sensors@ttn"
|
||||
key = "NNSXS.LDAC6EEMEJNHGGWH44PKTWVB4VJWR7BAOS4CQJY.G7IEQBYOANUEMBGWOLL6WRC6QXYSFWJZLK2GK6J2Z6TNYFT73EEA"
|
||||
devid = "board1"
|
||||
|
||||
mqttc.username_pw_set(appid, key)
|
||||
mqttc.on_message = messageReceived
|
||||
mqttc.on_connect = on_connect
|
||||
mqttc.connect("eu1.cloud.thethings.network", 1883, 60)
|
||||
|
||||
|
||||
mqttc.loop_forever()
|
||||
10
aquaponic-receiver/aquaponic-receiver.service
Normal file
10
aquaponic-receiver/aquaponic-receiver.service
Normal file
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Sending the aquaponic data to the influx db
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/python /usr/bin/aquaponic-receiver
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user