diff --git a/Flask-monitoring/app.py b/Flask-monitoring/app.py index 12a8dba..833c426 100644 --- a/Flask-monitoring/app.py +++ b/Flask-monitoring/app.py @@ -13,14 +13,6 @@ class Log(db.Model): hostname = db.Column(db.String(100), nullable=False) message = db.Column(db.String(500), nullable=False) timestamp = db.Column(db.DateTime, default=datetime.utcnow) - relay1_status = db.Column(db.String(10), default='off') - relay2_status = db.Column(db.String(10), default='off') - relay3_status = db.Column(db.String(10), default='off') - relay4_status = db.Column(db.String(10), default='off') - input1_status = db.Column(db.String(10), default='off') - input2_status = db.Column(db.String(10), default='off') - input3_status = db.Column(db.String(10), default='off') - input4_status = db.Column(db.String(10), default='off') # Create the database if it does not exist if not os.path.exists('instance/logs.db'): @@ -43,63 +35,7 @@ def log_message(): hostname = data.get('hostname') message = data.get('message') if hostname and message: - # Get the latest log for the hostname to determine the current status - latest_log = Log.query.filter_by(hostname=hostname).order_by(Log.timestamp.desc()).first() - relay1_status = latest_log.relay1_status if latest_log else 'off' - relay2_status = latest_log.relay2_status if latest_log else 'off' - relay3_status = latest_log.relay3_status if latest_log else 'off' - relay4_status = latest_log.relay4_status if latest_log else 'off' - input1_status = latest_log.input1_status if latest_log else 'off' - input2_status = latest_log.input2_status if latest_log else 'off' - input3_status = latest_log.input3_status if latest_log else 'off' - input4_status = latest_log.input4_status if latest_log else 'off' - - # Update the status based on the log message - if "Relay 1 turned ON" in message: - relay1_status = 'on' - elif "Relay 1 turned OFF" in message: - relay1_status = 'off' - if "Relay 2 turned ON" in message: - relay2_status = 'on' - elif "Relay 2 turned OFF" in message: - relay2_status = 'off' - if "Relay 3 turned ON" in message: - relay3_status = 'on' - elif "Relay 3 turned OFF" in message: - relay3_status = 'off' - if "Relay 4 turned ON" in message: - relay4_status = 'on' - elif "Relay 4 turned OFF" in message: - relay4_status = 'off' - if "Input 1 pressed" in message: - input1_status = 'on' - elif "Input 1 released" in message: - input1_status = 'off' - if "Input 2 pressed" in message: - input2_status = 'on' - elif "Input 2 released" in message: - input2_status = 'off' - if "Input 3 pressed" in message: - input3_status = 'on' - elif "Input 3 released" in message: - input3_status = 'off' - if "Input 4 pressed" in message: - input4_status = 'on' - elif "Input 4 released" in message: - input4_status = 'off' - - new_log = Log( - hostname=hostname, - message=message, - relay1_status=relay1_status, - relay2_status=relay2_status, - relay3_status=relay3_status, - relay4_status=relay4_status, - input1_status=input1_status, - input2_status=input2_status, - input3_status=input3_status, - input4_status=input4_status - ) + new_log = Log(hostname=hostname, message=message) db.session.add(new_log) db.session.commit() return jsonify({'status': 'success', 'message': 'Log saved'}), 201 @@ -170,22 +106,7 @@ def delete_board(hostname): @app.route('/board//logs', methods=['GET']) def get_board_logs(hostname): logs = Log.query.filter_by(hostname=hostname).order_by(Log.timestamp.desc()).all() - latest_log = logs[0] if logs else None - return jsonify({ - 'logs': [{'timestamp': log.timestamp, 'message': log.message} for log in logs], - 'relay_status': { - 'relay1': latest_log.relay1_status if latest_log else 'off', - 'relay2': latest_log.relay2_status if latest_log else 'off', - 'relay3': latest_log.relay3_status if latest_log else 'off', - 'relay4': latest_log.relay4_status if latest_log else 'off' - }, - 'input_status': { - 'input1': latest_log.input1_status if latest_log else 'off', - 'input2': latest_log.input2_status if latest_log else 'off', - 'input3': latest_log.input3_status if latest_log else 'off', - 'input4': latest_log.input4_status if latest_log else 'off' - } - }) + return jsonify({'logs': [{'timestamp': log.timestamp, 'message': log.message} for log in logs]}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) \ No newline at end of file diff --git a/Flask-monitoring/templates/board.html b/Flask-monitoring/templates/board.html index af1892e..77bbf45 100644 --- a/Flask-monitoring/templates/board.html +++ b/Flask-monitoring/templates/board.html @@ -59,8 +59,7 @@ const relayIndicator = document.getElementById(`relay-status-${i}`); relayIndicator.className = `status-indicator ${data.relay_status[`relay${i}`] === 'on' ? 'status-on' : 'status-off'}`; const relayMessage = document.getElementById(`relay-message-${i}`); - const relayLog = data.logs.find(log => log.message.includes(`Relay ${i} turned`)); - relayMessage.innerText = relayLog ? relayLog.message : ''; + relayMessage.innerText = data.logs.find(log => log.message.includes(`Relay ${i} turned`)).message; } // Update input status indicators and messages @@ -68,8 +67,7 @@ const inputIndicator = document.getElementById(`input-status-${i}`); inputIndicator.className = `status-indicator ${data.input_status[`input${i}`] === 'on' ? 'status-on' : 'status-off'}`; const inputMessage = document.getElementById(`input-message-${i}`); - const inputLog = data.logs.find(log => log.message.includes(`Input ${i}`)); - inputMessage.innerText = inputLog ? inputLog.message : ''; + inputMessage.innerText = data.logs.find(log => log.message.includes(`Input ${i}`)).message; } }); } diff --git a/instance/logs.db b/instance/logs.db index 6ff0e62..561cb6d 100644 Binary files a/instance/logs.db and b/instance/logs.db differ