poe-status-monitor.py
Script de Python para supervisar la fuente de alimentación (PoE vs USB) y la temperatura de la CPU en la Xerxes Pi.
Utiliza la biblioteca RPi.GPIO. Consulte el esquema KiCad de la Xerxes Pi para confirmar el GPIO utilizado para el estado PoE. Ejecute con sudo python3 script.py. La temperatura se lee a través de /sys/class/thermal.
poe-status-monitor.py
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
import subprocess
import os
# Pin GPIO dédié au signal de statut PoE (selon schéma Xerxes Pi)
POE_STATUS_PIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(POE_STATUS_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def get_cpu_temp():
temp_file = "/sys/class/thermal/thermal_zone0/temp"
if os.path.exists(temp_file):
with open(temp_file, "r") as f:
return float(f.read()) / 1000.0
return 0.0
def check_poe():
# Sur la Xerxes Pi, un niveau bas indique souvent une source PoE active ou une erreur selon le pontage
# Ceci est un exemple générique : vérifier le schéma KiCad pour la logique exacte
status = GPIO.input(POE_STATUS_PIN)
return "PoE Actif" if status == GPIO.LOW else "USB/Non-PoE"
try:
while True:
temp = get_cpu_temp()
power_src = check_poe()
print(f"[{time.strftime('%H:%M:%S')}] Temp: {temp:.1f}°C | Source: {power_src}")
time.sleep(5)
except KeyboardInterrupt:
GPIO.cleanup()
print("\nArrêt du moniteur.")