From 261427519f93725909b5cc95baa6e2d5f818b1e2 Mon Sep 17 00:00:00 2001 From: Atilla Date: Tue, 12 Mar 2024 19:56:49 +0100 Subject: [PATCH] Clean versie mqtt --- ReadMe.md | 5 +- mqtt/__pycache__/__init__.cpython-311.pyc | Bin 198 -> 198 bytes mqtt/__pycache__/mqtt_client.cpython-311.pyc | Bin 1074 -> 1074 bytes mqtt/mqtt_client.py | 1 - mqtt/publisher.py | 9 +- mqtt/subscribe.py | 24 - script/DUMMY.json | 123 ------ script/__pycache__/db_connect.cpython-311.pyc | Bin 941 -> 941 bytes script/devices.py | 87 +--- script/fetch.py | 12 - script/fetch_data.py | 57 --- script/par_events.py | 72 +-- script/relative_humidity_events.py | 72 +-- script/samenvoegen_databases.py | 418 ++++++++++++++++++ script/soil_electric_conductivity_events.py | 71 +-- script/soil_relative_permittivity_events.py | 74 +--- script/soil_temperature_events.py | 72 +-- 17 files changed, 513 insertions(+), 584 deletions(-) delete mode 100644 mqtt/subscribe.py delete mode 100644 script/DUMMY.json delete mode 100644 script/fetch.py delete mode 100644 script/fetch_data.py create mode 100644 script/samenvoegen_databases.py diff --git a/ReadMe.md b/ReadMe.md index 6e182a4..01497b6 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,16 +1,17 @@ # GoodGarden -Welkom bij ons project genaamd "GoodGarden". Wij hebben besloten om er een monolitische project van te maken. Alles is te vinden binnen deze repository. +Welkom bij ons project genaamd "GoodGarden". Wij hebben besloten om er een semi-monolitische project van te maken. Alles is te vinden binnen deze repository, inclusief de "mqtt". ### Vereisten * Python * Node.Js * XAMPP (of andere naar keuze) + * MQTT Geinstalleerd en toegevoegd aan je PATH variable ### Installeren -Zorg dat je in de hoofdmap "GoodGarden" zit. Kijk in je path: "/GoodGarden". Als je in de correcte map zit moet je de volgende items installeren: +Zorg dat je in de hoofdmap "GoodGarden" zit. Kijk in je path: "../GoodGarden". Als je in de correcte map zit moet je de volgende items installeren: - npm install electron - npm install express diff --git a/mqtt/__pycache__/__init__.cpython-311.pyc b/mqtt/__pycache__/__init__.cpython-311.pyc index 46f90e1a53b0b8a93b7ff710b6a95093291736bd..96c729c58406edeb658db6dc7239e9bb98b36f2a 100644 GIT binary patch delta 18 YcmX@cc#M&2IWI340}$|9PUPAH04Tf!0RR91 delta 18 YcmX@cc#M&2IWI340}vEzOyt@F04jC_RsaA1 diff --git a/mqtt/__pycache__/mqtt_client.cpython-311.pyc b/mqtt/__pycache__/mqtt_client.cpython-311.pyc index 8af0f8e522fd66231332330f6ce33fb29d9961ef..73f1b198c8713c3106e8fb97de0f1815d1b50a36 100644 GIT binary patch delta 27 hcmdnQv5A9wIWI340}$|9e%Q#J#K`EpIgjxO698Jc2Fw5e delta 27 hcmdnQv5A9wIWI340}!xkzT3#1#K@SuIgjxO698Hu2GRfk diff --git a/mqtt/mqtt_client.py b/mqtt/mqtt_client.py index b14b472..35f8402 100644 --- a/mqtt/mqtt_client.py +++ b/mqtt/mqtt_client.py @@ -1,4 +1,3 @@ -# mqtt_client.py import paho.mqtt.client as mqtt def create_client(client_id, on_connect, on_message, broker="localhost", port=1883): diff --git a/mqtt/publisher.py b/mqtt/publisher.py index d5c48c7..282b6ba 100644 --- a/mqtt/publisher.py +++ b/mqtt/publisher.py @@ -1,6 +1,7 @@ import requests import time -from mqtt_client import create_client, start_loop # Importeer de aangepaste MQTT client module + +from mqtt_client import create_client, start_loop publish_interval = 300 # Secondes om een aanvraag te doen @@ -9,12 +10,11 @@ api_endpoints = [ {"url": "https://garden.inajar.nl/api/relative_humidity_events/", "topic": "goodgarden/relative_humidity"}, {"url": "https://garden.inajar.nl/api/battery_voltage_events/", "topic": "goodgarden/battery_voltage"}, {"url": "https://garden.inajar.nl/api/soil_electric_conductivity_events/", "topic": "goodgarden/soil_electric_conductivity"}, - {"url": "https://garden.inajar.nl/api/soil_relative_permittivity_events/", "topic": "goodgarden/soil_electric_permittivity"}, + {"url": "https://garden.inajar.nl/api/soil_relative_permittivity_events/", "topic": "goodgarden/soil_relative_permittivity"}, {"url": "https://garden.inajar.nl/api/soil_temperature_events/", "topic": "goodgarden/soil_temperature"}, {"url": "https://garden.inajar.nl/api/par_events/", "topic": "goodgarden/par_events"} ] -# Pas de on_connect en on_message functies aan indien nodig voor de publisher def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) @@ -37,7 +37,8 @@ def fetch_and_publish_data(): for endpoint in api_endpoints: url = endpoint["url"] mqtt_topic = endpoint["topic"] - access_token = "33bb3b42452306c58ecedc3c86cfae28ba22329c" # Vervang door je echte toegangstoken + access_token = "33bb3b42452306c58ecedc3c86cfae28ba22329c" + try: headers = {"Authorization": f"Token {access_token}"} response = requests.get(url, headers=headers) diff --git a/mqtt/subscribe.py b/mqtt/subscribe.py deleted file mode 100644 index 4599c01..0000000 --- a/mqtt/subscribe.py +++ /dev/null @@ -1,24 +0,0 @@ -from mqtt_client import create_client, start_loop - -# Lijst waarop je je wil subscriben -mqtt_topics = [ - "goodgarden/devices", - "goodgarden/relative_humidity" -] - -def on_connect(client, userdata, flags, rc): - print("Connected with result code " + str(rc)) - # Abonneer op alle topics in de mqtt_topics lijst - for topic in mqtt_topics: - client.subscribe(topic) - print(f"Subscribed to {topic}") - -def on_message(client, userdata, msg): - # Decodeer de payload van bytes naar string - message = msg.payload.decode() - print(f"Message received on topic {msg.topic}: {message}") - # Hier kun je code toevoegen om iets te doen met het ontvangen bericht - -if __name__ == "__main__": - client = create_client("subscriber1", on_connect, on_message) # Zorg voor een unieke client ID - start_loop(client) \ No newline at end of file diff --git a/script/DUMMY.json b/script/DUMMY.json deleted file mode 100644 index 98acdaf..0000000 --- a/script/DUMMY.json +++ /dev/null @@ -1,123 +0,0 @@ - - // Deze spanningswaarden zijn relatief hoog, wat suggereert dat de batterijen van de sensoren goed opgeladen zijn. De meeste sensorapparaten gebruiken batterijen die een nominale spanning van ongeveer 3,7 volt hebben (typisch voor lithium-ion batterijen) en kunnen worden beschouwd als "volledig opgeladen" wanneer ze een spanning dicht bij of iets boven 4,1 volt bereiken - "battery_voltage_events": [ - { - "timestamp": 1707825721, - "gateway_receive_time": "2024-02-13T12:02:01Z", - "device": 256, - "value": 4.098901271820068 - // Volledig opgeladen: Rond 4.2 volt. - // Nominale spanning: Ongeveer 3.7 volt. - // Kritiek laag: Minder dan 3.0 volt. - }, - { - "timestamp": 1707837460, - "gateway_receive_time": "2024-02-13T15:17:40Z", - "device": 322, - "value": 4.105006217956543 - } - ], - - - - - "devices": [ - { - "id": 256, - "serial_number": "0033889B1BAB1169", - "name": "firefly2_0051", - "label": "The Field", - "last_seen": 1707765066, - "last_battery_voltage": 4.09768009185791 - }, - { - "id": 322, - "serial_number": "006FE1FC316ED7D8", - "name": "firefly2_0111", - "label": "The Field", - "last_seen": 1707764966, - "last_battery_voltage": 4.107448101043701 - } - ], - - - - - - // Fotosyntese??? (zonlicht) - "par_events": [ - { - "timestamp": 1707844638, - "gateway_receive_time": "2024-02-13T17:17:18Z", - "device": 322, - "value": 0.0 - }, - { - "timestamp": 1707851099, - "gateway_receive_time": "2024-02-13T19:04:59Z", - "device": 256, - "value": 0.0 - } - ], - - - - - // Luchtvochtigheid - "relative_humidity_events": [ - { - "timestamp": 1707844638, - "gateway_receive_time": "2024-02-13T17:17:18Z", - "device": 322, - "value": 71.08984375 - }, - { - "timestamp": 1707851099, - "gateway_receive_time": "2024-02-13T19:04:59Z", - "device": 256, - "value": 66.7294921875 - } - ], - - - - - - // De "soil_electric_conductivity_events" gegevens wijzen op metingen van de elektrische geleidbaarheid (EC) van de bodem, een indicator van de hoeveelheid oplosbare zouten of voedingsstoffen in de bodem. EC wordt gemeten in Siemens per meter (S/m) of, voor bodemmetingen, vaak in milliSiemens per centimeter (mS/cm). Een hogere EC-waarde duidt op een hogere concentratie van opgeloste zouten, wat belangrijk is voor het bepalen van de voedingsstatus van de bodem en het beheren van de bemesting voor optimale plantengroei. - "soil_electric_conductivity_events": [ - { - "timestamp": 1707851215, - "gateway_receive_time": "2024-02-13T19:06:55Z", - "device": 322, - "value": 0.0 - } - ], - - - - - - // In de context van bodemmetingen, geeft deze waarde inzicht in het vochtgehalte van de bodem, omdat water een relatief hoge diëlektrische constante heeft in vergelijking met droge bodem of lucht. - "soil_relative_permittivity_events": [ - { - "timestamp": 1707851215, - "gateway_receive_time": "2024-02-13T19:06:55Z", - "device": 322, - "value": 1.52 - // Een waarde van 1.52 is relatief laag en suggereert dat de bodem droog kan zijn op het moment van meting. Ter referentie, de diëlektrische constante van lucht is ongeveer 1, terwijl water een diëlektrische constante heeft van ongeveer 80 bij kamertemperatuur. - } - ], - - - - //De "soil_temperature_events" gegevens bevatten informatie over de temperatuur van de bodem op een specifiek tijdstip. De waarde geeft de temperatuur van de bodem aan in graden Celsius (°C). - "soil_temperature_events": [ - { - "timestamp": 1707851215, - "gateway_receive_time": "2024-02-13T19:06:55Z", - "device": 322, - "value": 12.06 - } - ] - } - \ No newline at end of file diff --git a/script/__pycache__/db_connect.cpython-311.pyc b/script/__pycache__/db_connect.cpython-311.pyc index d9b21279c57b62206054993043574aee16876b8e..2a248d0bd6b11291633bacfbbffb1470a9629f63 100644 GIT binary patch delta 20 acmZ3>zLuSPIWI340}$|9e%Q#ph#3Gen*`PX delta 20 acmZ3>zLuSPIWI340}$--f3cB!5i