Script Python pour interroger le courant/tension/puissance/consommation d'un Shelly Pro1PM
Le script suivant interroge un appareil Shelly Pro1PM pour ses statistiques de courant, tension, puissance et consommation d’énergie. Il utilise la bibliothèque httpx pour faire des requêtes HTTP GET vers l’API de l’appareil Shelly.
shelly_query.py
import httpx
# Adresse IP de l'appareil Shelly
device_ip = "192.168.33.1"
base_url = f"http://{device_ip}"
# Endpoint pour les paramètres de puissance (suppose un appareil Gen2 avec API RPC)
power_url = f"{base_url}/rpc/Switch.GetStatus?id=0"
try:
# Envoyer la requête GET à l'endpoint de puissance
response = httpx.get(power_url, timeout=5.0)
response.raise_for_status()
data = response.json()
print("Shelly Pro 1PM Power Parameters:")
print(f" Output On: {data.get('output')}")
print(f" Power: {data.get('apower')} W")
print(f" Voltage: {data.get('voltage')} V")
print(f" Current: {data.get('current')} A")
print(f" Power Factor: {data.get('pf')}")
print(f" Frequency: {data.get('freq')} Hz")
print(f" Energy: {data.get('aenergy', {}).get('total', 0)} Wh")
except httpx.RequestError as e:
print(f"Request error: {e}")
except httpx.HTTPStatusError as e:
print(f"HTTP error: {e.response.status_code} - {e.response.text}")
except Exception as e:
print(f"Unexpected error: {e}")Exemple de sortie
shelly_output.txt
Shelly Pro 1PM Power Parameters:
Output On: True
Power: -36.8 W
Voltage: 234.3 V
Current: 0.927 A
Power Factor: 0.7
Frequency: 50.0 Hz
Energy: 14169.316 WhSi cet article vous a aidé, pensez à m'offrir un café ou à faire un don via PayPal pour soutenir la recherche et la publication de nouveaux articles sur TechOverflow