Da ich selbst leider nicht Coden kann, habe ich ChatCPT mal spaßeshalber ersucht mir was zu schreiben.
Was ich möchte ist das zB ein Shelly Plug S, meinen Shelly 3EM abfrägt ob Strom bezogen wird oder ich rückspeise. Hintergrund sind 2 Balkonkraftwerke a 300Watt.
ChatCPT hätte das zusammengebaut. Ja ich weiß ich muss die IP Adressen eingeben, soweit kenne ich mich aus.
Code
import requests
import time
# Shelly 3 EM und Shelly Plug S IP-Adressen
shelly_3em_ip = "DEINE_SHELLY_3EM_IP"
shelly_plug_s_ip = "DEINE_SHELLY_PLUG_S_IP"
# Funktion zum Abfragen des Shelly 3 EM Stromverbrauchs
def get_current_consumption():
try:
response = requests.get(f"http://{shelly_3em_ip}/emeter/0/current")
data = response.json()
current_consumption = data["power"]
return current_consumption
except Exception as e:
print(f"Fehler bei der Abfrage des Shelly 3 EM: {e}")
return None
# Funktion zum Steuern des Shelly Plug S basierend auf dem Stromverbrauch
def control_shelly_plug_s(current_consumption):
try:
shelly_plug_s_status = "on" if current_consumption < -50 else "off" if current_consumption > 50 else "off"
requests.get(f"http://{shelly_plug_s_ip}/relay/0/onoff/{shelly_plug_s_status}")
except Exception as e:
print(f"Fehler beim Steuern des Shelly Plug S: {e}")
# Hauptprogrammschleife
while True:
current_consumption = get_current_consumption()
if current_consumption is not None:
control_shelly_plug_s(current_consumption)
# Intervall zwischen den Abfragen (z.B., alle 5 Sekunden)
time.sleep(5)
Alles anzeigen