update
This commit is contained in:
116
sqlite/set_config_smart.py
Normal file
116
sqlite/set_config_smart.py
Normal file
@@ -0,0 +1,116 @@
|
||||
'''
|
||||
____ ___ _ _ _
|
||||
/ ___| / _ \| | (_) |_ ___
|
||||
\___ \| | | | | | | __/ _ \
|
||||
___) | |_| | |___| | || __/
|
||||
|____/ \__\_\_____|_|\__\___|
|
||||
|
||||
Script to set the config (smart version - doesn't overwrite existing data)
|
||||
/usr/bin/python3 /var/www/moduleair_pro_4g/sqlite/set_config_smart.py
|
||||
|
||||
in case of readonly error:
|
||||
sudo chmod 777 /var/www/moduleair_pro_4g/sqlite/sensors.db
|
||||
'''
|
||||
|
||||
import sqlite3
|
||||
|
||||
# Connect to (or create if not existent) the database
|
||||
conn = sqlite3.connect("/var/www/moduleair_pro_4g/sqlite/sensors.db")
|
||||
cursor = conn.cursor()
|
||||
|
||||
print(f"Connected to database")
|
||||
|
||||
def safe_insert_config(key, value, value_type):
|
||||
"""Insert config only if it doesn't exist"""
|
||||
cursor.execute("SELECT COUNT(*) FROM config_table WHERE key = ?", (key,))
|
||||
if cursor.fetchone()[0] == 0:
|
||||
cursor.execute(
|
||||
"INSERT INTO config_table (key, value, type) VALUES (?, ?, ?)",
|
||||
(key, value, value_type)
|
||||
)
|
||||
print(f"Added config: {key} = {value}")
|
||||
else:
|
||||
print(f"Config already exists: {key}")
|
||||
|
||||
def safe_insert_envea_sonde(connected, port, name, coefficient):
|
||||
"""Insert envea sonde only if it doesn't exist (check by port and name)"""
|
||||
cursor.execute("SELECT COUNT(*) FROM envea_sondes_table WHERE port = ? AND name = ?", (port, name))
|
||||
if cursor.fetchone()[0] == 0:
|
||||
cursor.execute(
|
||||
"INSERT INTO envea_sondes_table (connected, port, name, coefficient) VALUES (?, ?, ?, ?)",
|
||||
(1 if connected else 0, port, name, coefficient)
|
||||
)
|
||||
print(f"Added envea sonde: {name} on {port}")
|
||||
else:
|
||||
print(f"Envea sonde already exists: {name} on {port}")
|
||||
|
||||
# Check if tables are empty (first run)
|
||||
cursor.execute("SELECT COUNT(*) FROM config_table")
|
||||
config_count = cursor.fetchone()[0]
|
||||
|
||||
cursor.execute("SELECT COUNT(*) FROM config_scripts_table")
|
||||
scripts_count = cursor.fetchone()[0]
|
||||
|
||||
cursor.execute("SELECT COUNT(*) FROM envea_sondes_table")
|
||||
sondes_count = cursor.fetchone()[0]
|
||||
|
||||
# If this is the first run (all tables empty), clear and do fresh install
|
||||
if config_count == 0 and scripts_count == 0 and sondes_count == 0:
|
||||
print("First run detected - setting up initial configuration...")
|
||||
# Clear existing data (if any)
|
||||
cursor.execute("DELETE FROM config_table")
|
||||
cursor.execute("DELETE FROM config_scripts_table")
|
||||
cursor.execute("DELETE FROM envea_sondes_table")
|
||||
print("Tables cleared for fresh setup")
|
||||
else:
|
||||
print("Existing configuration detected - will only add missing entries...")
|
||||
|
||||
|
||||
# Insert general configurations
|
||||
config_entries = [
|
||||
("modem_config_mode", "0", "bool"),
|
||||
("deviceID", "XXXX", "str"),
|
||||
("npm_5channel", "0", "bool"),
|
||||
("latitude_raw", "0", "int"),
|
||||
("longitude_raw", "0", "int"),
|
||||
("latitude_precision", "0", "int"),
|
||||
("longitude_precision", "0", "int"),
|
||||
("deviceName", "ModuleAir-proXXX", "str"),
|
||||
("SaraR4_baudrate", "115200", "int"),
|
||||
("NPM_solo_port", "/dev/ttyAMA5", "str"),
|
||||
("sshTunnel_port", "59228", "int"),
|
||||
("SARA_R4_general_status", "connected", "str"),
|
||||
("SARA_R4_SIM_status", "connected", "str"),
|
||||
("SARA_R4_network_status", "connected", "str"),
|
||||
("SARA_R4_neworkID", "20810", "int"),
|
||||
("WIFI_status", "connected", "str"),
|
||||
("send_uSpot", "0", "bool"),
|
||||
("windMeter", "0", "bool"),
|
||||
("modem_version", "XXX", "str"),
|
||||
# Add new config entries here
|
||||
("matrix_display", "enabled", "str"),
|
||||
("matrix_display_type", "split_reveal", "str"),
|
||||
("matrix_brightness", "100", "int")
|
||||
]
|
||||
|
||||
print("\nProcessing general configurations...")
|
||||
for key, value, value_type in config_entries:
|
||||
safe_insert_config(key, value, value_type)
|
||||
|
||||
# Insert envea sondes
|
||||
envea_sondes = [
|
||||
(False, "ttyAMA4", "h2s", 4),
|
||||
(False, "ttyAMA3", "no2", 1),
|
||||
(False, "ttyAMA2", "o3", 1),
|
||||
# Add new sondes here if needed
|
||||
]
|
||||
|
||||
print("\nProcessing envea sondes...")
|
||||
for connected, port, name, coefficient in envea_sondes:
|
||||
safe_insert_envea_sonde(connected, port, name, coefficient)
|
||||
|
||||
# Commit and close the connection
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print("\nDatabase updated successfully!")
|
||||
Reference in New Issue
Block a user