import mariadb import requests import datetime import re # Función para insertar un valor en la base de datos def insert_value(cursor, id_variable, value): timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') query = "INSERT INTO ups_data (id_variable, value, timestamp) VALUES (?, ?, ?)" values = (id_variable, value, timestamp) cursor.execute(query, values) print(f"Valor con id_variable {id_variable} insertado en la base de datos: {value}") # Conexión a la base de datos MySQL db = mariadb.connect( host="localhost", port=3306, user="f******", password="***my*assword***", database="UPSstats" ) cursor = db.cursor() # URL de la consulta HTTP url = 'http://raspberry.facundoitest.space:5000/run_command/upsc' # Hacer la solicitud HTTP response = requests.get(url) if response.status_code == 200: data = response.text # Definir las variables de interés y sus IDs variables = { 'battery.charge': 1, 'battery.runtime': 2, 'input.voltage': 3, 'output.frequency': 4, 'output.voltage': 5, 'ups.load': 6, 'ups.status': 7 } # Expresiones regulares para capturar los valores de interés regex_patterns = { 'battery.charge': re.compile(r'battery\.charge:\s*(\d+)'), 'battery.runtime': re.compile(r'battery\.runtime:\s*(\d+)'), 'input.voltage': re.compile(r'input\.voltage:\s*(\d+\.?\d*)'), 'output.frequency': re.compile(r'output\.frequency:\s*(\d+\.?\d*)'), 'output.voltage': re.compile(r'output\.voltage:\s*(\d+\.?\d*)'), 'ups.load': re.compile(r'ups\.load:\s*(\d+)'), 'ups.status': re.compile(r'ups\.status:\s*(\w+)') } # Extraer y almacenar los valores de interés for var_name, var_id in variables.items(): match = regex_patterns[var_name].search(data) if match: value = match.group(1) insert_value(cursor, var_id, value) # Confirmar los cambios db.commit() else: print("Failed to fetch the UPS data") # Cerrar la conexión cursor.close() db.close()