Python-Skript zur Abfrage von Shelly Pro1PM-Strom/Spannung/Leistung/Verbrauch
Das folgende Skript fragt ein Shelly Pro1PM-Gerät nach seinen Strom-, Spannungs-, Leistungs- und Energieverbrauchsstatistiken ab. Es verwendet die httpx-Bibliothek, um HTTP-GET-Anfragen an die API des Shelly-Geräts zu stellen.
shelly_query.py
import httpx
# IP-Adresse des Shelly-Geräts
device_ip = "192.168.33.1"
base_url = f"http://{device_ip}"
# Endpunkt für Leistungsparameter (setzt Gen2-Gerät mit RPC-API voraus)
power_url = f"{base_url}/rpc/Switch.GetStatus?id=0"
try:
# GET-Anfrage an den Leistungs-Endpunkt senden
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}")Beispielausgabe
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 WhWenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen