update
This commit is contained in:
@@ -165,16 +165,6 @@ def blink_led(pin, blink_count, delay=1):
|
||||
GPIO.output(pin, GPIO.LOW) # Ensure LED is off
|
||||
print(f"LED on GPIO {pin} turned OFF (cleanup avoided)")
|
||||
|
||||
#get data from config (from JSON file)
|
||||
def load_config(config_file):
|
||||
try:
|
||||
with open(config_file, 'r') as file:
|
||||
config_data = json.load(file)
|
||||
return config_data
|
||||
except Exception as e:
|
||||
print(f"Error loading config file: {e}")
|
||||
return {}
|
||||
|
||||
#get config data from SQLite table
|
||||
def load_config_sqlite():
|
||||
"""
|
||||
@@ -208,60 +198,51 @@ def load_config_sqlite():
|
||||
print(f"Error loading config from SQLite: {e}")
|
||||
return {}
|
||||
|
||||
|
||||
|
||||
#Fonction pour mettre à jour le JSON de configuration
|
||||
def update_json_key(file_path, key, value):
|
||||
def load_config_scripts_sqlite():
|
||||
"""
|
||||
Updates a specific key in a JSON file with a new value.
|
||||
|
||||
:param file_path: Path to the JSON file.
|
||||
:param key: The key to update in the JSON file.
|
||||
:param value: The new value to assign to the key.
|
||||
Load script configuration data from SQLite config_scripts_table
|
||||
|
||||
Returns:
|
||||
dict: Script paths as keys and enabled status as boolean values
|
||||
"""
|
||||
try:
|
||||
# Load the existing data
|
||||
with open(file_path, "r") as file:
|
||||
data = json.load(file)
|
||||
# Query the config_scripts_table
|
||||
cursor.execute("SELECT script_path, enabled FROM config_scripts_table")
|
||||
rows = cursor.fetchall()
|
||||
|
||||
# Check if the key exists in the JSON file
|
||||
if key in data:
|
||||
data[key] = value # Update the key with the new value
|
||||
else:
|
||||
print(f"Key '{key}' not found in the JSON file.")
|
||||
return
|
||||
# Create config dictionary with script paths as keys and enabled status as boolean values
|
||||
scripts_config = {}
|
||||
for script_path, enabled in rows:
|
||||
# Convert integer enabled value (0/1) to boolean
|
||||
scripts_config[script_path] = bool(enabled)
|
||||
|
||||
# Write the updated data back to the file
|
||||
with open(file_path, "w") as file:
|
||||
json.dump(data, file, indent=2) # Use indent for pretty printing
|
||||
return scripts_config
|
||||
|
||||
print(f"💾updating '{key}' to '{value}'.")
|
||||
except Exception as e:
|
||||
print(f"Error updating the JSON file: {e}")
|
||||
print(f"Error loading scripts config from SQLite: {e}")
|
||||
return {}
|
||||
|
||||
# Define the config file path
|
||||
config_file = '/var/www/nebuleair_pro_4g/config.json'
|
||||
|
||||
# Load the configuration data (JSON way)
|
||||
config = load_config(config_file)
|
||||
#Load config
|
||||
config = load_config_sqlite()
|
||||
#config
|
||||
device_id = config.get('deviceID', 'unknown')
|
||||
device_id = device_id.upper()
|
||||
modem_config_mode = config.get('modem_config_mode', False)
|
||||
device_latitude_raw = config.get('latitude_raw', 0)
|
||||
device_longitude_raw = config.get('longitude_raw', 0)
|
||||
baudrate = config.get('SaraR4_baudrate', 115200) #baudrate du sara R4
|
||||
device_id = config.get('deviceID', '').upper() #device ID en maj
|
||||
bme_280_config = config.get('BME280/get_data_v2.py', False) #présence du BME280
|
||||
envea_cairsens= config.get('envea/read_value_v2.py', False)
|
||||
mppt_charger= config.get('MPPT/read.py', False)
|
||||
wind_meter= config.get('windMeter/read.py', False)
|
||||
modem_version=config.get('modem_version', "")
|
||||
Sara_baudrate = config.get('SaraR4_baudrate', 115200)
|
||||
npm_5channel = config.get('NextPM_5channels', False) #5 canaux du NPM
|
||||
selected_networkID = int(config.get('SARA_R4_neworkID', 0))
|
||||
send_uSpot = config.get('send_uSpot', False) #envoi sur MicroSpot ()
|
||||
reset_uSpot_url = False
|
||||
selected_networkID = int(config.get('SARA_R4_neworkID', 0))
|
||||
npm_5channel = config.get('NextPM_5channels', False) #5 canaux du NPM
|
||||
modem_version=config.get('modem_version', "")
|
||||
modem_config_mode = config.get('modem_config_mode', False) #modem 4G en mode configuration
|
||||
|
||||
#Load config new way
|
||||
config = load_config_sqlite()
|
||||
|
||||
#config_scripts
|
||||
config_scripts = load_config_scripts_sqlite()
|
||||
bme_280_config = config_scripts.get('BME280/get_data_v2.py', False)
|
||||
envea_cairsens= config_scripts.get('envea/read_value_v2.py', False)
|
||||
mppt_charger= config_scripts.get('MPPT/read.py', False)
|
||||
wind_meter= config_scripts.get('windMeter/read.py', False)
|
||||
|
||||
#update device id in the payload json
|
||||
payload_json["nebuleairid"] = device_id
|
||||
@@ -273,7 +254,7 @@ if modem_config_mode:
|
||||
|
||||
ser_sara = serial.Serial(
|
||||
port='/dev/ttyAMA2',
|
||||
baudrate=baudrate, #115200 ou 9600
|
||||
baudrate=Sara_baudrate, #115200 ou 9600
|
||||
parity=serial.PARITY_NONE, #PARITY_NONE, PARITY_EVEN or PARITY_ODD
|
||||
stopbits=serial.STOPBITS_ONE,
|
||||
bytesize=serial.EIGHTBITS,
|
||||
@@ -767,8 +748,6 @@ try:
|
||||
print('<span style="color: red;font-weight: bold;">ATTENTION: CME ERROR</span>')
|
||||
print("error:", lines[-1])
|
||||
print("*****")
|
||||
#update status
|
||||
update_json_key(config_file, "SARA_R4_network_status", "disconnected")
|
||||
|
||||
# Gestion de l'erreur spécifique
|
||||
if "No connection to phone" in lines[-1]:
|
||||
@@ -807,7 +786,6 @@ try:
|
||||
if len(parts) == 3 and parts[-1] == '0': # The third value indicates success
|
||||
print("*****")
|
||||
print('<span style="color: red;font-weight: bold;">⛔ATTENTION: HTTP operation failed</span>')
|
||||
update_json_key(config_file, "SARA_R4_network_status", "disconnected")
|
||||
print("*****")
|
||||
print("Blink red LED")
|
||||
# Run LED blinking in a separate thread
|
||||
@@ -854,7 +832,6 @@ try:
|
||||
# 2.2 code 1 (✅✅HHTP / UUHTTPCR succeded✅✅)
|
||||
else:
|
||||
print('<span style="font-weight: bold;">✅✅HTTP operation successful.</span>')
|
||||
update_json_key(config_file, "SARA_R4_network_status", "connected")
|
||||
print("Blink blue LED")
|
||||
led_thread = Thread(target=blink_led, args=(23, 5, 0.5))
|
||||
led_thread.start()
|
||||
@@ -1118,7 +1095,6 @@ try:
|
||||
print("error:", lines[-1])
|
||||
print("*****")
|
||||
#update status
|
||||
#update_json_key(config_file, "SARA_R4_network_status", "disconnected")
|
||||
|
||||
# Gestion de l'erreur spécifique
|
||||
if "No connection to phone" in lines[-1]:
|
||||
@@ -1144,7 +1120,6 @@ try:
|
||||
if len(parts) == 3 and parts[-1] == '0': # The third value indicates success
|
||||
print("*****")
|
||||
print('<span style="color: red;font-weight: bold;">⛔ATTENTION: HTTP operation failed</span>')
|
||||
update_json_key(config_file, "SARA_R4_network_status", "disconnected")
|
||||
print("*****")
|
||||
print("Blink red LED")
|
||||
# Run LED blinking in a separate thread
|
||||
@@ -1184,7 +1159,6 @@ try:
|
||||
else:
|
||||
# Si la commande HTTP a réussi
|
||||
print('<span style="font-weight: bold;">✅✅HTTP operation successful.</span>')
|
||||
update_json_key(config_file, "SARA_R4_network_status", "connected")
|
||||
print("Blink blue LED")
|
||||
led_thread = Thread(target=blink_led, args=(23, 5, 0.5))
|
||||
led_thread.start()
|
||||
|
||||
Reference in New Issue
Block a user