update
This commit is contained in:
@@ -17,15 +17,43 @@ import time
|
||||
import sys
|
||||
import json
|
||||
import re
|
||||
import sqlite3
|
||||
|
||||
#get data from config
|
||||
def load_config(config_file):
|
||||
# database connection
|
||||
conn = sqlite3.connect("/var/www/nebuleair_pro_4g/sqlite/sensors.db")
|
||||
cursor = conn.cursor()
|
||||
|
||||
#get config data from SQLite table
|
||||
def load_config_sqlite():
|
||||
"""
|
||||
Load configuration data from SQLite config table
|
||||
|
||||
Returns:
|
||||
dict: Configuration data with proper type conversion
|
||||
"""
|
||||
try:
|
||||
with open(config_file, 'r') as file:
|
||||
config_data = json.load(file)
|
||||
|
||||
# Query the config table
|
||||
cursor.execute("SELECT key, value, type FROM config_table")
|
||||
rows = cursor.fetchall()
|
||||
|
||||
# Create config dictionary
|
||||
config_data = {}
|
||||
for key, value, type_name in rows:
|
||||
# Convert value based on its type
|
||||
if type_name == 'bool':
|
||||
config_data[key] = value == '1' or value == 'true'
|
||||
elif type_name == 'int':
|
||||
config_data[key] = int(value)
|
||||
elif type_name == 'float':
|
||||
config_data[key] = float(value)
|
||||
else:
|
||||
config_data[key] = value
|
||||
|
||||
return config_data
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error loading config file: {e}")
|
||||
print(f"Error loading config from SQLite: {e}")
|
||||
return {}
|
||||
|
||||
#Fonction pour mettre à jour le JSON de configuration
|
||||
@@ -57,10 +85,55 @@ def update_json_key(file_path, key, value):
|
||||
except Exception as e:
|
||||
print(f"Error updating the JSON file: {e}")
|
||||
|
||||
# Define the config file path
|
||||
config_file = '/var/www/nebuleair_pro_4g/config.json'
|
||||
# Load the configuration data
|
||||
config = load_config(config_file)
|
||||
|
||||
def update_sqlite_config(key, value):
|
||||
"""
|
||||
Updates a specific key in the SQLite config_table with a new value.
|
||||
|
||||
:param key: The key to update in the config_table.
|
||||
:param value: The new value to assign to the key.
|
||||
"""
|
||||
try:
|
||||
|
||||
# Check if the key exists and get its type
|
||||
cursor.execute("SELECT type FROM config_table WHERE key = ?", (key,))
|
||||
result = cursor.fetchone()
|
||||
|
||||
if result is None:
|
||||
print(f"Key '{key}' not found in the config_table.")
|
||||
conn.close()
|
||||
return
|
||||
|
||||
# Get the type of the value from the database
|
||||
value_type = result[0]
|
||||
|
||||
# Convert the value to the appropriate string representation based on its type
|
||||
if value_type == 'bool':
|
||||
# Convert Python boolean or string 'true'/'false' to '1'/'0'
|
||||
if isinstance(value, bool):
|
||||
str_value = '1' if value else '0'
|
||||
else:
|
||||
str_value = '1' if str(value).lower() in ('true', '1', 'yes', 'y') else '0'
|
||||
elif value_type == 'int':
|
||||
str_value = str(int(value))
|
||||
elif value_type == 'float':
|
||||
str_value = str(float(value))
|
||||
else:
|
||||
str_value = str(value)
|
||||
|
||||
# Update the value in the database
|
||||
cursor.execute("UPDATE config_table SET value = ? WHERE key = ?", (str_value, key))
|
||||
|
||||
# Commit the changes and close the connection
|
||||
conn.commit()
|
||||
|
||||
print(f"💾 Updated '{key}' to '{value}' in database.")
|
||||
except Exception as e:
|
||||
print(f"Error updating the SQLite database: {e}")
|
||||
|
||||
#Load config
|
||||
config = load_config_sqlite()
|
||||
#config
|
||||
baudrate = config.get('SaraR4_baudrate', 115200) #baudrate du sara R4
|
||||
device_id = config.get('deviceID', '').upper() #device ID en maj
|
||||
|
||||
@@ -151,7 +224,7 @@ try:
|
||||
print("⚠️ Could not identify modem model")
|
||||
|
||||
print(f"🔍 Model: {model}")
|
||||
update_json_key(config_file, "modem_version", model)
|
||||
update_sqlite_config("modem_version", model)
|
||||
time.sleep(1)
|
||||
|
||||
'''
|
||||
@@ -332,9 +405,9 @@ try:
|
||||
else:
|
||||
print("❌ Failed to extract coordinates.")
|
||||
|
||||
#update config.json
|
||||
update_json_key(config_file, "latitude_raw", float(latitude))
|
||||
update_json_key(config_file, "longitude_raw", float(longitude))
|
||||
#update sqlite table
|
||||
update_sqlite_config("latitude_raw", float(latitude))
|
||||
update_sqlite_config("longitude_raw", float(longitude))
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user