Poolsteuerung über Script

  • Habe in ChatCPT ein Script erstellen lassen für meine Poolpumpe die nach PV Überschuss ein und ausschaltet.

    Leider läuft das Script nicht, hat ein paar Fehler.

    Könnte mir dabei jemand bitte helfen!

    import requests

    import datetime

    import time

    IP-Adressen der Shelly-Relais

    em3_ip = "192.168.1.83"

    pool_ip = "192.168.1.89"

    minimum_solarstrom = -550

    maximum_solarstrom = 50

    maximum_solarstrom_2 = 500

    zeitraum_start = datetime.time(9, 0)

    zeitraum_ende = datetime.time(12, 0)

    neuer_zeitraum_start = datetime.time(13, 0)

    neuer_zeitraum_ende = datetime.time(15, 0)

    naechster_tag_start = datetime.time(1, 0)

    naechster_tag_ende = datetime.time(2, 0)

    def relais_aktivieren(ip):

    url = f"http://%7bip%7d/relay/0/on"

    requests.get(url)

    def relais_deaktivieren(ip):

    url = f"http://%7bip%7d/relay/0/off"

    requests.get(url)

    def solarstrom_uberprufen(ip):

    url = f"http://%7bip%7d/status"

    response = requests.get(url)

    data = response.json()

    solarstrom = data["emeter"]["power"]

    return solarstrom

    def ist_relais_eingeschaltet(ip):

    url = f"http://%7bip%7d/status"

    response = requests.get(url)

    data = response.json()

    relais_status = data["relays"][0]["ison"]

    return relais_status

    def ist_in_zeitraum(zeitpunkt, startzeit, endzeit):

    if startzeit <= endzeit:

    return startzeit <= zeitpunkt <= endzeit

    else:

    return zeitpunkt >= startzeit or zeitpunkt <= endzeit

    def main():

    while True:

    # Aktuellen Zeitpunkt abrufen

    aktuelle_zeit = datetime.datetime.now().time()

    # Überprüfen, ob das Relais "em3" den Schwellenwert unterschreitet und das Relais "pool" ausgeschaltet ist

    if solarstrom_uberprufen(em3_ip) < minimum_solarstrom and not ist_relais_eingeschaltet(pool_ip):

    relais_aktivieren(pool_ip)

    # Überprüfen, ob das Relais "em3" den Schwellenwert überschreitet und das Relais "pool" eingeschaltet ist

    elif solarstrom_uberprufen(em3_ip) > maximum_solarstrom and ist_relais_eingeschaltet(pool_ip):

    relais_deaktivieren(pool_ip)

    # Überprüfen, ob das Relais "pool" sich während des definierten Zeitraums eingeschaltet hat

    elif ist_in_zeitraum(aktuelle_zeit, ze

  • Schade denn es würde für mich zu lange dauern bis ich mir das beigebracht hätte.

    Und für so kleine Scripts lohnt sich das nicht.

    Ist also der obige Script total unbrauchbar?

  • Ja dein Skript ist in Python geschrieben und somit völlig inkompatibel, aber es haben schon andere nach nem Shelly Skript für ne Poolsteuerung gefragt, benutze doch mal die Forensuche, vielleicht findest du dann etwas das dir weiter hilft.

  • Schade denn es würde für mich zu lange dauern bis ich mir das beigebracht hätte.

    Das ist falsch gedacht!

    Lernen und daraus resultierende Erkenntnis ist ein hohes Gut und lohnt den Einsatz von Zeit immer!

    Kommentare zum elektrischen Anschluss meinerseits sind grundsätzlich zur Weitergabe an Fachpersonal gedacht und stellen eine theoretische Diskussionsgrundlage dar.

    Gruß aus Ostfriesland

    Michael

  • Dieses Thema enthält 22 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.