diff --git a/app.py b/app.py index 1205190..95edb19 100644 --- a/app.py +++ b/app.py @@ -16,7 +16,6 @@ def database_connect(): print("Database connection failed:", e) return None - # Function to get data from the MySQL database def get_database_data(): @@ -27,34 +26,26 @@ def get_database_data(): cursor = mydb.cursor() # Query to retrieve the latest battery voltage data - query = "SELECT label, last_seen, last_battery_voltage, device_id FROM devices ORDER BY device_id DESC LIMIT 1" + query = "SELECT label, last_seen, last_battery_voltage, device_id FROM devices" cursor.execute(query) battery_data = cursor.fetchone() mydb.close() return battery_data - -# def devices_data(): - @app.route('/', methods=['GET']) def get_data(): - # Get data from the database - battery_data = get_database_data() + battery_data_322 = get_database_data() - if battery_data is None: + if battery_data_322 is None: return jsonify({"error": "Failed to fetch data from database"}) - # Convert the fetched data into a dictionary data_dict = { - "label": battery_data[0], - "last_seen": battery_data[1], - "last_battery_voltage": battery_data[2], - "device_id": battery_data[3] + "label": battery_data_322[0], + "last_seen": battery_data_322[1], + "last_battery_voltage": battery_data_322[2], + "device_id": battery_data_322[3] } - print(data_dict) - - # Return the data as JSON return jsonify(data_dict) if __name__ == "__main__": diff --git a/battery_voltage_events.py b/battery_voltage_events.py deleted file mode 100644 index b08d88c..0000000 --- a/battery_voltage_events.py +++ /dev/null @@ -1,239 +0,0 @@ -# import mysql.connector -# import requests -# from datetime import datetime, timezone, timedelta -# import time - -# # Functie om verbinding te maken met de database -# def database_connect(): -# return mysql.connector.connect( -# host="localhost", -# user="root", -# password="", -# database="goodgarden" -# ) - -# def calculate_timestamp(gateway_receive_time): -# # Converteer de stringrepresentatie naar een datetime-object in UTC -# datetime_obj_utc = datetime.strptime(gateway_receive_time, "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) - -# # Voeg het tijdsverschil van 1 uur toe voor de Nederlandse tijdzone (UTC+1) -# datetime_obj_nl = datetime_obj_utc + timedelta(hours=1) - -# # Formateer het datetime-object als een leesbare datumstring -# formatted_date = datetime_obj_nl.strftime("%Y-%m-%d %H:%M:%S") -# return formatted_date -# # Functie voor het aanmaken van gegevens in de database -# def create_data(url, access_token, repeat_count=5): -# for _ in range(repeat_count): -# try: -# headers = {"Authorization": f"Token {access_token}"} -# response = requests.get(url, headers=headers) -# response.raise_for_status() - -# data = response.json() -# print(f"Data from {url}:\n") - -# # Check if data is a list (records directly under the root) -# if isinstance(data, list): -# records = data -# elif isinstance(data, dict) and 'results' in data: -# records = data['results'] -# else: -# print(f"Unexpected data format received: {data}") -# continue - -# for record in records: -# # Now, record is assumed to be a dictionary -# timestamp = record.get('timestamp', '') -# gateway_receive_time = record.get('gateway_receive_time', '') -# device = record.get('device', '') -# value = record.get('value', '') - -# # Voeg de timestamp-berekening toe -# calculated_timestamp = calculate_timestamp(gateway_receive_time) - -# print(f"\nInserted data: Timestamp: {calculated_timestamp}, Device: {device}, Battery Voltage: {value}V") -# if float(value) < 3.0: -# print("Waarschuwing: Batterijspanning is lager dan 3.0 volt. Opladen aanbevolen.\n") -# # Controleer of de batterijspanning hoger is dan 4.2 volt en geef een melding -# elif float(value) > 4.2: -# print("Melding: Batterijspanning is hoger dan 4.2 volt. Batterij is vol.\n") -# else: -# print("Melding: Batterijspanning is binnen het gewenste bereik.\n\n") - -# # Insert data into the database -# insert_data(record) - -# except requests.exceptions.RequestException as e: -# print(f"Error fetching data from {url}: {e}") - -# print("Waiting for the next create action...\n") -# time.sleep(2) - -# def insert_data(record): -# mydb = database_connect() -# if mydb.is_connected(): -# mycursor = mydb.cursor() - -# # Hier moet je de juiste kolomnamen en gegevensindeling aanpassen op basis van de API-respons -# insert_query = """ -# INSERT INTO goodgarden.battery_voltage_events (timestamp, gateway_receive_time, device, value) -# VALUES (%s, %s, %s, %s) -# """ - -# try: -# # Voer de query uit zonder de timestamp te berekenen -# timestamp = record.get('timestamp', '') -# gateway_receive_time = record.get('gateway_receive_time', '') -# device = record.get('device', '') -# value = record.get('value', '') - -# print(f"Inserting data: timestamp={timestamp}, gateway_receive_time={gateway_receive_time}, device={device}, value={value}\n") # Print de ingevoerde gegevens - -# mycursor.execute(insert_query, (timestamp, gateway_receive_time, device, value)) - -# # Bevestig de wijzigingen -# mydb.commit() - -# print("Data inserted into the database.") - -# except mysql.connector.Error as err: -# print(f"Error: {err}") - -# finally: -# # Sluit cursor en verbinding -# mycursor.close() -# mydb.close() - -# # Functie voor het lezen van gegevens uit de database -# def read_data(url, access_token, repeat_count=5): -# for _ in range(repeat_count): -# try: -# headers = {"Authorization": f"Token {access_token}"} -# response = requests.get(url, headers=headers) -# response.raise_for_status() - -# data = response.json() -# print(f"Data from {url}:\n") - -# for record in data['results']: -# timestamp = record.get('timestamp', '') -# device = record.get('device', '') -# value = record.get('value', '') -# print(f"Timestamp: {timestamp}, Device: {device}, Battery Voltage: {value}V\n") - -# if float(value) < 3.0: -# print("Waarschuwing: Batterijspanning is lager dan 3.0 volt. Opladen aanbevolen.\n") -# # Controleer of de batterijspanning hoger is dan 4.2 volt en geef een melding -# elif float(value) > 4.2: -# print("Melding: Batterijspanning is hoger dan 4.2 volt. Batterij is vol.\n") -# else: -# print("Melding: Batterijspanning is binnen het gewenste bereik.\n\n") - -# except requests.exceptions.RequestException as e: -# print(f"Error fetching data from {url}: {e}") - -# print("Waiting for the next read action...\n") -# time.sleep(300) - -# # Functie voor het bijwerken van gegevens in de database -# def update_data(record_id): -# try: -# mydb = database_connect() - -# if mydb.is_connected(): -# mycursor = mydb.cursor() - -# # Controleer of het record bestaat voordat je het bijwerkt -# mycursor.execute("SELECT * FROM goodgarden.battery_voltage_events WHERE id = %s", (record_id,)) -# existing_record = mycursor.fetchone() - -# if not existing_record: -# print(f"Record with ID {record_id} not found. Update operation aborted.") -# return - -# # Vraag de gebruiker om nieuwe waarden voor de andere velden -# new_timestamp = input("Enter new timestamp: ") -# new_gateway_receive_time = input("Enter new gateway_receive_time: ") -# new_device = input("Enter new device: ") -# new_value = input("Enter new value: ") - -# # Hier moet je de juiste kolomnamen aanpassen op basis van de structuur van je database -# update_query = """ -# UPDATE goodgarden.battery_voltage_events -# SET timestamp = %s, gateway_receive_time = %s, device = %s, value = %s -# WHERE id = %s -# """ - -# # Voer de query uit -# print(f"Executing update query: {update_query}") -# print(f"Updating record with ID {record_id} to new values - timestamp: {new_timestamp}, gateway_receive_time: {new_gateway_receive_time}, device: {new_device}, value: {new_value}") - -# mycursor.execute(update_query, (new_timestamp, new_gateway_receive_time, new_device, new_value, record_id)) - -# # Bevestig de wijzigingen -# mydb.commit() - -# print(f"Update executed. Rowcount: {mycursor.rowcount}") - -# except mysql.connector.Error as update_err: -# print(f"Error updating data: {update_err}") -# finally: -# # Zorg ervoor dat je altijd de cursor en de databaseverbinding sluit -# if 'mycursor' in locals() and mycursor is not None: -# mycursor.close() -# if 'mydb' in locals() and mydb.is_connected(): -# mydb.close() - -# # Functie voor het verwijderen van gegevens uit de database -# def delete_data(record_id): -# mydb = database_connect() -# if mydb.is_connected(): -# mycursor = mydb.cursor() - -# # Hier moet je de juiste kolomnamen aanpassen op basis van de structuur van je database -# delete_query = """ -# DELETE FROM goodgarden.battery_voltage_events -# WHERE id = %s -# """ - -# # Voer de query uit -# mycursor.execute(delete_query, (record_id,)) - -# # Bevestig de wijzigingen -# mydb.commit() - -# # Sluit cursor en verbinding -# mycursor.close() -# mydb.close() - -# print(f"Data with ID {record_id} deleted.") - -# # Functie voor het aanmaken van gegevens in de database op basis van batterijspanningsinformatie -# if __name__ == "__main__": -# url = "https://garden.inajar.nl/api/battery_voltage_events/?format=json" -# access_token = "33bb3b42452306c58ecedc3c86cfae28ba22329c" # Vervang dit door je werkelijke toegangstoken - -# # Je kunt repeat_count wijzigen om te bepalen hoe vaak je de bewerking wilt herhalen -# repeat_count = 10 - -# # Keuze voor de bewerking -# operation_choice = input("Choose operation (C for Create, R for Read, U for Update, D for Delete): ").upper() - -# if operation_choice == "C": -# # Maak gegevens aan -# create_data(url, access_token, repeat_count) -# elif operation_choice == "R": -# # Lees gegevens -# read_data(url, access_token, repeat_count) -# elif operation_choice == "U": -# # Update gegevens -# record_id = int(input("Enter record ID to update: ")) -# # Call the update_data function without additional arguments -# update_data(record_id) -# elif operation_choice == "D": -# # Verwijder gegevens -# record_id = int(input("Enter record ID to delete: ")) -# delete_data(record_id) -# else: -# print("Invalid operation choice. Please choose C, R, U, or D.") diff --git a/src/py/static/js/main.js b/src/py/static/js/main.js index 16ca860..a24b703 100644 --- a/src/py/static/js/main.js +++ b/src/py/static/js/main.js @@ -138,13 +138,16 @@ function fetchBatteryData() { }); } -// Function to update HTML content with battery data function updateBatteryData(batteryData) { - document.getElementById('deviceNumber-322').innerHTML = batteryData.device_id; - document.getElementById('voltage').innerHTML = batteryData.label; - document.getElementById('time').innerHTML = batteryData.last_seen; - document.getElementById('tevredenheid').innerHTML = batteryData.last_battery_voltage; + document.getElementById('deviceNumber-322').innerHTML = batteryData[1].device_id; + document.getElementById('voltage-322').innerHTML = batteryData[1].label; + document.getElementById('time-322').innerHTML = batteryData[1].last_seen; + document.getElementById('tevredenheid-322').innerHTML = batteryData[1].last_battery_voltage; + + document.getElementById('deviceNumber-256').innerHTML = batteryData[0].device_id; + document.getElementById('voltage-256').innerHTML = batteryData[0].label; + document.getElementById('time-256').innerHTML = batteryData[0].last_seen; + document.getElementById('tevredenheid-256').innerHTML = batteryData[0].last_battery_voltage; - // Voeg andere eigenschappen toe zoals nodig console.log(batteryData); } \ No newline at end of file diff --git a/src/py/templates/index.html b/src/py/templates/index.html index db7c8f2..e6b9def 100644 --- a/src/py/templates/index.html +++ b/src/py/templates/index.html @@ -86,19 +86,19 @@ - + - + - + - +
Sensor:12
Locatie:2
Batterijvoltage:80%
Dagen resterend:1
@@ -111,19 +111,19 @@ - + - + - + - +
Sensor:12
Locatie:2
Batterijvoltage:80%
Dagen resterend:1