Beiträge von Clamsy1111

    Hallo,

    ich bin jetzt gerade sehr unsicher - und frage daher vor einbau.

    Ich habe einen Lichtschalter der eine Lüftung 220V aktiviert (alter Lichtschalter - klassisch - An und Aus). Diesen will ich nun ersetzen gegen den Wandschalter von Shelly, der ja keine Kippstellung an/aus hat, sondern durch das Klicken ein und ausschaltet. Dafür habe ich das Relay Shelly 1 Plus gekauft. Die Lüftung wurde oft vergessen auszuschalten und läuft dann durchaus viele Stunden/Tage etc. ohne das es Sinn macht.

    Meine Idee war nun, bei betätigen des Schalters das Relay einzuschalten, und beim erneuten betätigen wieder Auszuschalten. Und wenn man es vergisst den Lüfter wieder auszuschalten, dass dieser dann nach 30 Minuten (Einstellung über App) selbständig ausschaltet.

    Wo ich jetzt unsicher bin, ist die Anleitung von dem Wandschalter. Zitat: Das Potenzial zwischen Strom- und Schaltereingang der gesteuerten Geräte sollte 12V nicht überschreiten.

    Gem. dem Anschlussplan soll ich aber den 220V Null-Leiter einmal an 0 (Output) und N anschließen.
    die 220V Phase L soll ich einmal An I (Input) und L anschließen.

    Jetzt kommt es aber:
    Ich soll den Schalter (schwarz) an SW anschließen (soweit noch in Ordnung), aber dann soll ich vom Schalter (rot) auch an I (Input) und L anschließen wo ja 220V anliegen.

    Dann laufen doch aber über den Schalter 220V und würde im Widerspruch zu den oben erwähnten 12V stehen

    Könnte mir einer einen Anschlussplan für den Wandschalter und dem Shelly 1 Plus geben, so dass ich diesen Lüfter per Klick ein/ausschalten kann? Den Rest kann ich dann über das App selbst pflegen. Mir geht es nur um das sichere Anschließen.

    Danke euch.

    OK, ich brauche Eure Antwort gar nicht mehr, Chat GPT ist einfach nur noch genial - Warum skripte ich eigentlich noch manuell ???

    Antwort von ChatGPT:

    Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie Ihren Shelly-Switch über AppleScript und die Shelly Cloud API ein- und ausschalten können.


    Schritt-für-Schritt-Anleitung


    1. Erstellen Sie einen API-Schlüssel für die Shelly Cloud:

    • Melden Sie sich bei Shelly Cloud an.

    • Gehen Sie zu „User Settings“.

    • Erstellen Sie einen API-Schlüssel, der für die Steuerung Ihrer Shelly-Geräte verwendet wird.

    2. Finden Sie die notwendigen Informationen heraus:

    Server URI: Den Servernamen, z.B. shelly-api-eu.shelly.cloud.

    Device ID: Die ID Ihres Shelly-Geräts.

    API Key: Ihren API-Schlüssel.

    3. Erstellen Sie das AppleScript:

    Erstellen Sie ein neues AppleScript im AppleScript-Editor (Script Editor) auf Ihrem Mac und fügen Sie das folgende Skript ein:

    -- Definieren Sie die Parameter für den POST-Request
    set server to "YOUR_SERVER" -- Ersetzen Sie dies durch Ihren Servernamen
    set channel to "0" -- Ersetzen Sie dies durch den Kanal (z.B. 0 für den ersten Kanal)
    set deviceID to "YOUR_DEVICE_ID" -- Ersetzen Sie dies durch Ihre Geräte-ID
    set apiKey to "YOUR_API_KEY" -- Ersetzen Sie dies durch Ihren API-Schlüssel
    set action to "on" -- "on" zum Einschalten, "off" zum Ausschalten

    -- Überprüfen Sie, ob die Eingabewerte korrekt sind
    if server is "" or channel is "" or deviceID is "" or apiKey is "" then
       display dialog "Bitte stellen Sie sicher, dass alle Werte (Server, Kanal, Geräte-ID, API-Schlüssel) korrekt sind."
       return
    end if

    -- Zusammensetzung der URL und der POST-Daten
    set shellyURL to "https://" & server & "/device/relay/control"
    set postData to "channel=" & channel & "&turn=" & action & "&id=" & deviceID & "&auth_key=" & apiKey

    -- Debug-Ausgabe der URL und der POST-Daten zur Überprüfung
    display dialog "Die URL lautet: " & shellyURL & "\nDie POST-Daten lauten: " & postData

    -- URL-Anfrage senden, um den Shelly-Switch einzuschalten
    try
       set curlCommand to "curl -X POST " & quoted form of shellyURL & " -d " & quoted form of postData
       set curlOutput to do shell script curlCommand
       display dialog "Shelly-Switch wurde erfolgreich eingeschaltet. Antwort: " & curlOutput
    on error errMsg number errNum
       display dialog "Fehler: " & errMsg & " (Nummer " & errNum & ")"
    end try

    3. Erläuterungen des Skripts:

    • set server to "YOUR_SERVER": Setzen Sie hier den Servernamen ein, den Sie von der Shelly Cloud erhalten haben.

    • set channel to "0": Setzen Sie den Kanal (z.B. 0 für den ersten Kanal).

    • set deviceID to "YOUR_DEVICE_ID": Setzen Sie hier die ID Ihres Shelly-Geräts ein.

    • set apiKey to "YOUR_API_KEY": Setzen Sie hier Ihren API-Schlüssel ein.

    • set action to "on": “on” zum Einschalten des Geräts (ersetzen Sie durch “off” zum Ausschalten).

    • set postData to ...: Dies erstellt die POST-Daten für den curl-Befehl.

    • set curlCommand to ...: Dies erstellt den curl-Befehl mit der POST-Anfrage.

    • set curlOutput to do shell script curlCommand: Führt den curl-Befehl aus und erfasst die Antwort.

    4. Passen Sie das Skript an:

    • Ersetzen Sie YOUR_SERVER, YOUR_DEVICE_ID, YOUR_API_KEY und channel durch die tatsächlichen Werte.

    5. Führen Sie das Skript aus:

    • Speichern Sie das Skript und führen Sie es im AppleScript-Editor aus.

    • Ein Dialogfeld zeigt die Antwort des curl-Befehls an, sodass Sie überprüfen können, ob die Anfrage erfolgreich war.


    Zusammenfassung


    Mit diesem AppleScript können Sie Ihren Shelly-Switch über die Shelly Cloud API ein- und ausschalten. Stellen Sie sicher, dass alle Parameter korrekt sind und führen Sie das Skript aus, um die gewünschten Aktionen durchzuführen.

    Hallo zusammen,

    folgende Ausgangssituation:

    - Mein Garten ist 3 km weit weg und ist mittels Insel-Lösung (Solar und Pufferbatterie) mit 220 Volt versorgt.
    - Der Garten ist über Vodafone + LTE Router verbunden. Leider ist kein VPN möglich, da der Router weder IPv4 noch über IPv6 erreichbar gemacht werden kann (Das wird vom Mobilfunk unterbunden, bei normalen Internetanschlüssen funktioniert das, aber nicht über einen Mobilfunk-Router)
    - Ich möchte mein Dörr-Gerät laufen lassen, nur das zieht 700W/h das halten meine Pufferbatterien nicht solange aus bis wieder genug Sonne am Himmel ist.
    - Je nach Sonnenschein wird die Batterie mal schneller oder eben langsamer geladen (was ein Scheduling beim Shelly ausschließt)
    - Von meiner verbauten Solaranlage bekomme ich Status-Emails über die aktuelle Versorgungsleistung der Batterie in Volt und Ampere. Kritische Voltzahl für den 220V Spannungswandler liegt bei 11,3 - dann schaltet der in den Alarmzustand und schaltet 220V ab - Problem ist, der Piepst permanent was nicht ausgeschaltet werden kann. Und wenn dann mehrere Tage keine ausreichende Sonne kommt, dann piepst das auch so lange und stört meine Nachbarn.
    - Ich möchte aber meine Insel-Lösung gar nicht bis zum Cut-Off aussaugen - da ja auch noch Kühlschrank etc. darüber läuft
    - Ich bekomme auch E-Mail-Statis über den Ladezustand, also ob Solarzufluss "OFF" ist - also in der Nacht passiert da nichts, "LOAD" - die Batterie wird geladen, "BALANCE" die Restladung erfolgt in niedriger Kapazität, "FLOAT" Der produzierte Strom wird verworfen, da Batterien voll sind.
    - Ich weiß, dass ich mein Dörrgerät ca 5-6 Stunden laufen lassen kann wenn der Status BALANCE erreicht wurde, und ca 7-8 Stunden wenn der Status FLOAT erreicht wurde

    Nun würde ich gerne das ganze Scripten (Applescript oder von mir aus auch Shell, ich bau mir das schon um) aber es fehlt mir die Idee wo ich anfange, und ob es überhaupt geht.

    Da ich kein VPN aufbauen kann, kann ich den Shelly nicht mit IP erreichen. Aber über https://control.shelly.cloud/ kann ich meine Shelly bedienen.

    Ich würde gerne wenn ich eine E-Mail erhalte mit der Statusänderung BALANCE den Shelly einschalten. Mehr nicht. Da der Shelly mir 3 Stunden (60*60*3 = 10800 Sekunden) Laufzeit - Auto Off - hinterlegt ist, braucht es nicht mehr als nur diesen einen Script Aufruf. Geht das irgendwie das ich das per Script über den Login auf control.shelly.cloud ausführen kann?
    E-Mail Erkennung mache ich über eine E-Mail-Regel mit Aktion "Starte Script". In dem Script soll dann einfach nur diese eine Aktion stattfinden "Starte Shelly Gerät XY". Fertig

    Und das halt ohne IP-Aufruf sondern über control.shelly.cloud