From a9697f7c034871927cca791eca5a6aeeb0864fe7 Mon Sep 17 00:00:00 2001 From: agp8x Date: Fri, 23 Mar 2018 11:41:20 +0100 Subject: [PATCH] Initialer Commit --- Dockerfile | 9 +++++++++ docker-compose.yml | 5 +++++ import.py | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 import.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..74e4594 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.7-rc-alpine + +RUN pip install tinkerforge requests + +WORKDIR /app + +COPY . . + +CMD ["python3.7", "/app/import.py"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..58b02af --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,5 @@ +version: "2" +services: + import: + build: . + image: docker.clkl.de/weather/import:0.1 diff --git a/import.py b/import.py new file mode 100644 index 0000000..a6ab8e5 --- /dev/null +++ b/import.py @@ -0,0 +1,40 @@ +HOST = "192.168.2.110" +PORT = 4223 +UID = "DYC" +URL = "http://192.168.2.30:8086/write?db=mydb" + +import time + +import requests + +from tinkerforge.ip_connection import IPConnection +from tinkerforge.bricklet_outdoor_weather import BrickletOutdoorWeather + +def asdf(type, identifier, **kwargs): + print(type, identifier, kwargs) + time_ns = time.time_ns() + for key in kwargs: + data = "{unit},type={type},identifier={id} value={value} {time_ns}".format(unit=key, type=type, id=identifier, value=kwargs[key], time_ns=time_ns) + r = requests.post(URL, data=data) + +def cb_station(identifier, temperature, humidity, wind_speed, gust_speed, rain, wind_direction, battery_low): + asdf(type="station", identifier=identifier, temperature=temperature, humidity=humidity, wind_speed=wind_speed, gust_speed=gust_speed, rain=rain, wind_direction=wind_direction, battery_low=battery_low) +def cb_sensor(identifier, temperature, humidity): + asdf(type="sensor", identifier=identifier, temperature=temperature, humidity=humidity) + +if __name__ == "__main__": + print("starting…") + ipcon = IPConnection() + ow = BrickletOutdoorWeather(UID, ipcon) + ipcon.connect(HOST, PORT) + ow.set_station_callback_configuration(True) + ow.set_sensor_callback_configuration(True) + ow.register_callback(ow.CALLBACK_STATION_DATA, cb_station) + ow.register_callback(ow.CALLBACK_SENSOR_DATA, cb_sensor) + print("now we play the waiting game…") + while True: + try: + time.sleep(60*60) + except Exception: + print("…") + ipcon.disconnect()