nietswerkt(nogfixed)

This commit is contained in:
mohammedcifci78
2024-02-09 11:46:55 +01:00
parent be3beb5fc3
commit b953225a4b
3 changed files with 28 additions and 20 deletions

View File

@@ -1,16 +1,17 @@
DROP DATABASE IF EXISTS goodgarden; CREATE DATABASE IF NOT EXISTS goodgarden;
CREATE DATABASE goodgarden; USE goodgarden;
CREATE TABLE goodgarden.sensor_data ( CREATE TABLE IF NOT EXISTS goodgarden.sensor_data (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, id INT UNSIGNED NOT NULL AUTO_INCREMENT,
timestamp INT, timestamp INT,
gateway_receive_time VARCHAR(50), gateway_receive_time VARCHAR(50),
device INT, device INT,
value DECIMAL(10, 5), value DECIMAL(12, 8), -- Aangepaste precisie naar DECIMAL(12, 8)
PRIMARY KEY (id) PRIMARY KEY (id)
); );
-- Invoegen van gegevens in de 'sensor_data'-tabel -- Invoegen van gegevens in de 'sensor_data'-tabel
INSERT INTO goodgarden.sensor_data (timestamp, gateway_receive_time, device, value) INSERT INTO goodgarden.sensor_data (timestamp, gateway_receive_time, device, value)
VALUES (1707295162, '2024-02-07T08:39:22Z', 256, 4.107448101043701), VALUES
(1707295162, '2024-02-07T08:39:22Z', 256, 4.107448101043701),
(1707261284, '2024-02-06T23:14:44Z', 322, 4.111111164093018); (1707261284, '2024-02-06T23:14:44Z', 322, 4.111111164093018);

View File

@@ -2,14 +2,14 @@ import mysql.connector
import requests import requests
import time import time
def gegevens_ophalen_en_database_bijwerken(): while True:
try:
# API-verzoek # API-verzoek
url = "https://garden.inajar.nl/api/battery_voltage_events/?format=json" url = "https://garden.inajar.nl/api/battery_voltage_events/?format=json"
headers = { headers = {
"Authorization": "Token 33bb3b42452306c58ecedc3c86cfae28ba22329c" "Authorization": "Token 33bb3b42452306c58ecedc3c86cfae28ba22329c"
} }
try:
response = requests.get(url, headers=headers) response = requests.get(url, headers=headers)
response.raise_for_status() response.raise_for_status()
@@ -39,9 +39,13 @@ def gegevens_ophalen_en_database_bijwerken():
device = entry.get("device") device = entry.get("device")
value = entry.get("value") value = entry.get("value")
# Veronderstel dat de kolommen van de 'sensor_data'-tabel timestamp, gateway_receive_time, device, en value zijn # Gebruik van prepared statements om SQL-injectie te voorkomen
sql_update_query = f"INSERT INTO goodgarden.sensor_data (timestamp, gateway_receive_time, device, value) VALUES ({timestamp}, '{gateway_receive_time}', {device}, {value})" sql_update_query = (
cursor.execute(sql_update_query) "UPDATE goodgarden.sensor_data "
"SET timestamp=%s, gateway_receive_time=%s, device=%s "
"WHERE value=%s"
)
cursor.execute(sql_update_query, (timestamp, gateway_receive_time, device, value))
connection.commit() connection.commit()
print("Database succesvol bijgewerkt") print("Database succesvol bijgewerkt")
@@ -55,7 +59,8 @@ def gegevens_ophalen_en_database_bijwerken():
connection.close() connection.close()
print("MySQL-verbinding is gesloten") print("MySQL-verbinding is gesloten")
# Zet een timer op om de functie elke 10 minuten uit te voeren # Voeg deze regel toe binnen de while-loop
while True: print("Aantal gegevens uit de API:", len(data))
gegevens_ophalen_en_database_bijwerken()
time.sleep(60) # 600 seconden = 10 minuten # Voeg een pauze toe van 10 minuten voordat de lus opnieuw wordt uitgevoerd
time.sleep(600)

2
updatedata.sql Normal file
View File

@@ -0,0 +1,2 @@
USE goodgarden;
ALTER TABLE goodgarden.sensor_data MODIFY COLUMN value DECIMAL(12, 2);