From ae62c472da4ab702c5c5a4dcca81b6c9fa002e61 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 21 May 2025 17:29:01 +0200 Subject: [PATCH] update --- html/logs.html | 16 +- matrix/welcomeScreen/welcome_screen.cc | 2 +- master.py => old/master.py | 0 .../run_every_10_seconds.sh | 0 services/setup_services.sh | 228 ++++++++++++++++++ 5 files changed, 237 insertions(+), 9 deletions(-) rename master.py => old/master.py (100%) mode change 100755 => 100644 rename run_every_10_seconds.sh => old/run_every_10_seconds.sh (100%) mode change 100755 => 100644 create mode 100644 services/setup_services.sh diff --git a/html/logs.html b/html/logs.html index 24107b3..723a3ee 100755 --- a/html/logs.html +++ b/html/logs.html @@ -56,8 +56,8 @@
- Master logs - + SARA logs +
@@ -114,15 +114,15 @@ const loop_card_content = document.getElementById('card_loop_content'); const boot_card_content = document.getElementById('card_boot_content'); - //Getting Master logs - console.log("Getting master logs"); - displayLogFile('../logs/master.log', loop_card_content); + //Getting Sara logs + console.log("Getting sara logs"); + displayLogFile('../logs/sara_service.log', loop_card_content, true, 1000); console.log("Getting app/boot logs"); - displayLogFile('../logs/app.log', boot_card_content); + displayLogFile('../logs/app.log', boot_card_content, true, 1000); - // Setup master log with refresh button - setupLogRefreshButton('refresh-master-log', '../logs/master.log', 'card_loop_content', 3000); + // Setup Sara log with refresh button + setupLogRefreshButton('refresh-sara-log', '../logs/sara_service.log', 'card_loop_content', 3000); // Setup boot log with refresh button setupLogRefreshButton('refresh-boot-log', '../logs/app.log', 'card_boot_content', 300); diff --git a/matrix/welcomeScreen/welcome_screen.cc b/matrix/welcomeScreen/welcome_screen.cc index 03b516d..b3e1b22 100644 --- a/matrix/welcomeScreen/welcome_screen.cc +++ b/matrix/welcomeScreen/welcome_screen.cc @@ -14,7 +14,7 @@ g++ -I /var/www/moduleair_pro_4g/matrix/include -L /var/www/moduleair_pro_4g/mat Pour lancer: -sudo /var/www/moduleair_pro_4g/matrix/welcome_screen +sudo /var/www/moduleair_pro_4g/matrix/welcomeScreen/welcome_screen */ diff --git a/master.py b/old/master.py old mode 100755 new mode 100644 similarity index 100% rename from master.py rename to old/master.py diff --git a/run_every_10_seconds.sh b/old/run_every_10_seconds.sh old mode 100755 new mode 100644 similarity index 100% rename from run_every_10_seconds.sh rename to old/run_every_10_seconds.sh diff --git a/services/setup_services.sh b/services/setup_services.sh new file mode 100644 index 0000000..36c7c15 --- /dev/null +++ b/services/setup_services.sh @@ -0,0 +1,228 @@ +#!/bin/bash +# File: /var/www/moduleair_pro_4g/services/setup_services.sh +# Purpose: Set up all systemd services for moduleair data collection +# to install: +# sudo chmod +x /var/www/moduleair_pro_4g/services/setup_services.sh +# sudo /var/www/moduleair_pro_4g/services/setup_services.sh + +echo "Setting up moduleair systemd services and timers..." + +# Create directory for logs if it doesn't exist +mkdir -p /var/www/moduleair_pro_4g/logs + +# Create service and timer files for NPM Data +cat > /etc/systemd/system/moduleair-npm-data.service << 'EOL' +[Unit] +Description=moduleair NPM Data Collection Service +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/python3 /var/www/moduleair_pro_4g/NPM/get_data_modbus_v3.py +User=root +WorkingDirectory=/var/www/moduleair_pro_4g +StandardOutput=append:/var/www/moduleair_pro_4g/logs/npm_service.log +StandardError=append:/var/www/moduleair_pro_4g/logs/npm_service_errors.log + +[Install] +WantedBy=multi-user.target +EOL + +cat > /etc/systemd/system/moduleair-npm-data.timer << 'EOL' +[Unit] +Description=Run moduleair NPM Data Collection every 10 seconds +Requires=moduleair-npm-data.service + +[Timer] +OnBootSec=10s +OnUnitActiveSec=10s +AccuracySec=1s + +[Install] +WantedBy=timers.target +EOL + +# Create service and timer files for CO2 Data +cat > /etc/systemd/system/moduleair-co2-data.service << 'EOL' +[Unit] +Description=moduleair co2 Data Collection Service +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/python3 /var/www/moduleair_pro_4g/MH-Z19/write_data.py +User=root +WorkingDirectory=/var/www/moduleair_pro_4g +StandardOutput=append:/var/www/moduleair_pro_4g/logs/co2_service.log +StandardError=append:/var/www/moduleair_pro_4g/logs/co2_service_errors.log + +[Install] +WantedBy=multi-user.target +EOL + +cat > /etc/systemd/system/moduleair-co2-data.timer << 'EOL' +[Unit] +Description=Run moduleair co2 Data Collection every 10 seconds +Requires=moduleair-co2-data.service + +[Timer] +OnBootSec=10s +OnUnitActiveSec=10s +AccuracySec=1s + +[Install] +WantedBy=timers.target +EOL + +# Create service and timer files for Envea Data +cat > /etc/systemd/system/moduleair-envea-data.service << 'EOL' +[Unit] +Description=moduleair Envea Data Collection Service +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/python3 /var/www/moduleair_pro_4g/envea/read_value_v2.py +User=root +WorkingDirectory=/var/www/moduleair_pro_4g +StandardOutput=append:/var/www/moduleair_pro_4g/logs/envea_service.log +StandardError=append:/var/www/moduleair_pro_4g/logs/envea_service_errors.log + +[Install] +WantedBy=multi-user.target +EOL + +cat > /etc/systemd/system/moduleair-envea-data.timer << 'EOL' +[Unit] +Description=Run moduleair Envea Data Collection every 10 seconds +Requires=moduleair-envea-data.service + +[Timer] +OnBootSec=10s +OnUnitActiveSec=10s +AccuracySec=1s + +[Install] +WantedBy=timers.target +EOL + +# Create service and timer files for SARA Data (No Lock File Needed) +cat > /etc/systemd/system/moduleair-sara-data.service << 'EOL' +[Unit] +Description=moduleair SARA Data Transmission Service +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/python3 /var/www/moduleair_pro_4g/loop/SARA_send_data_v2.py +User=root +WorkingDirectory=/var/www/moduleair_pro_4g +StandardOutput=append:/var/www/moduleair_pro_4g/logs/sara_service.log +StandardError=append:/var/www/moduleair_pro_4g/logs/sara_service_errors.log +RuntimeMaxSec=200s + +[Install] +WantedBy=multi-user.target +EOL + +cat > /etc/systemd/system/moduleair-sara-data.timer << 'EOL' +[Unit] +Description=Run moduleair SARA Data Transmission every 60 seconds +Requires=moduleair-sara-data.service + +[Timer] +OnBootSec=60s +OnUnitActiveSec=60s +AccuracySec=1s +# This is the key setting that prevents overlap +Persistent=true + +[Install] +WantedBy=timers.target +EOL + +# Create service and timer files for BME280 Data +cat > /etc/systemd/system/moduleair-bme280-data.service << 'EOL' +[Unit] +Description=moduleair BME280 Data Collection Service +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/python3 /var/www/moduleair_pro_4g/BME280/get_data_v2.py +User=root +WorkingDirectory=/var/www/moduleair_pro_4g +StandardOutput=append:/var/www/moduleair_pro_4g/logs/bme280_service.log +StandardError=append:/var/www/moduleair_pro_4g/logs/bme280_service_errors.log + +[Install] +WantedBy=multi-user.target +EOL + +cat > /etc/systemd/system/moduleair-bme280-data.timer << 'EOL' +[Unit] +Description=Run moduleair BME280 Data Collection every 120 seconds +Requires=moduleair-bme280-data.service + +[Timer] +OnBootSec=120s +OnUnitActiveSec=120s +AccuracySec=1s + +[Install] +WantedBy=timers.target +EOL + +# Create service and timer files for Database Cleanup +cat > /etc/systemd/system/moduleair-db-cleanup-data.service << 'EOL' +[Unit] +Description=moduleair Database Cleanup Service +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/python3 /var/www/moduleair_pro_4g/sqlite/flush_old_data.py +User=root +WorkingDirectory=/var/www/moduleair_pro_4g +StandardOutput=append:/var/www/moduleair_pro_4g/logs/db_cleanup_service.log +StandardError=append:/var/www/moduleair_pro_4g/logs/db_cleanup_service_errors.log + +[Install] +WantedBy=multi-user.target +EOL + +cat > /etc/systemd/system/moduleair-db-cleanup-data.timer << 'EOL' +[Unit] +Description=Run moduleair Database Cleanup daily +Requires=moduleair-db-cleanup-data.service + +[Timer] +OnBootSec=1h +OnUnitActiveSec=24h +AccuracySec=1h + +[Install] +WantedBy=timers.target +EOL + +# Reload systemd to recognize new services +systemctl daemon-reload + +# Enable and start all timers +echo "Enabling and starting all services..." +for service in npm envea sara bme280 co2 db-cleanup; do + systemctl enable moduleair-$service-data.timer + systemctl start moduleair-$service-data.timer + echo "Started moduleair-$service-data timer" +done + +echo "Checking status of all timers..." +systemctl list-timers | grep moduleair + +echo "Setup complete. All moduleair services are now running." +echo "To check the status of a specific service:" +echo " sudo systemctl status moduleair-npm-data.service" +echo "To view logs for a specific service:" +echo " sudo journalctl -u moduleair-npm-data.service" +echo "To restart a specific timer:" +echo " sudo systemctl restart moduleair-npm-data.timer" \ No newline at end of file