Beiträge von towiat

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Andrea57

    Ich bin ehrlich gesagt komplett neu in der Shelly-Welt - das Skript läuft problemlos auf zwei Gen2-Geräten, aber ich kenne die anderen Shelly-Produkte eigentlich gar nicht. Wenn die Shelly-Gurus sagen, dass es auf Gen1 nicht läuft, wird das schon so stimmen...

    Ganz generell zur Skript-Installation:

    Wenn du ein Gen2-Gerät in dein WLAN eingebunden hast, bekommt es ja eine lokale IP-Adresse. Um ein Skript zu installieren, musst du nur diese lokale IP-Adresse in einen Browser eintippen. Dann bist du auf der Web-Oberfläche des Gerätes und hast dort einen Abschnitt "Scripts" in den du das Skript reinkopieren kannst. Ein Tutorial habe ich hier gefunden...

    LG

    towiat

    Codeschnipsler

    Hallo Codeschnipsler,

    Bei der Pin-Ansteuerung kann ich dir leider nicht helfen - aber wenn ich deine Anforderung richtig verstehe, willst du ja die billigsten Stunden haben und nicht die teuersten oder? Das wäre ja genau das, was das Skript leistet...

    Die Preisfindung findet jedenfalls im folgenden Abschnitt des Skriptes statt:

    Nach Ausführung dieses Abschnittes hast du in der Variable SwitchOn den Beginn und in der Variable SwitchOff das Ende der günstigsten Periode des gewählten Zeitraumes (jeweils als POSIX-Zeitstempel). Wenn ich deine Anforderung richtig verstehe, willst du dann die WP zu Beginn dieser Periode einschalten und am Ende wieder ausschalten. Dazu müsstest du dann zwei Timer setzen, was in meinem Skript so aussieht:

    JavaScript
     let now = Date.now();
     Timer.set(switchOn - now, false, switchOnPower);
     Timer.set(switchOff - now, false, switchOffPower);

    Du müsstest also die Funktionen SwitchOnPower und SwitchOffPower durch deine eigenen Funktionen ersetzen, die dann über die Pins die Wärmepumpe ein- bzw. ausschalten.

    Falls ich das falsch verstanden habe, beschreibe mir bitte noch einmal genauer, was du mit "teure Stunden ermitteln" gemeint hast...

    LG

    towiat

    AlexAn

    Wenn ich das richtig sehe, hat das Script gestern (Samstag) um ca. 8:00 versucht, die Preise für heute (Sonntag) zu analysieren. Das kann nicht funktionieren, weil die Preise für heute zu diesem Zeitpunkt noch nicht existiert haben.

    Generell werden die Preise für den nächsten Tag an der Strombörse EPEX ausgeschnapst, und zwar in einer Auktion, die täglich um 12:00 stattfindet. Die ausgehandelten Preise werden dann zwischen 13:00 und 14:00 veröffentlicht und stehen natürlich auch erst dann über das Awattar-API zur Verfügung.

    Es hat also eher wenig Sinn, die Preisanalyse vor 14:00 laufen zu lassen.

    Wenn du das Script zum ersten Mal startest, passiert eigentlich nur eines: Es setzt (basierend auf der Variable scheduleTimeSpec) einen Schedule, über den der Shelly dann die Preisanalyse zu den festgelegten Zeiten startet. Diesen Schedule findest du auch in der Weboberfläche unter der Bezeichnung "<Scriptname> eval".

    Der Schedule ist fix gespeichert und bleibt auch bei einem Reboot erhalten.

    Das Ein- und Ausschalten der Stromzufuhr passiert nicht über Schedules, sondern über Timer. Die sind generell praktischer für diesen Zweck, aber soweit mir bekannt ist, kann man gesetzte Timer leider nirgendwo sehen (wenn das doch geht, wäre ich für Hinweise dankbar).

    Gesetzte Timer gehen bei einem Reboot verloren - in so einem Fall würde also das Ein- und Ausschalten für den aktuellen Zyklus nicht erfolgen. Bei der nächsten planmäßigen Scriptausführung funktioniert dann aber wieder alles wie geplant.

    AlexAn

    Freut mich, dass es nützlich ist!

    • Das verlinkte Script ändert offensichtlich den Namen des Gerätes, um seine Daten auf dem WebUI anzuzeigen. Das könnte ich natürlich auch machen - die Frage ist allerdings, was genau du da gerne sehen würdest. Es können ja - abhängig vom Resultat der Preisanalyse - Timer für bis zu zwei Zeitblöcke aktiv sein (z. B. heute von 17:00 bis 20:00 und morgen von 13:00 bis 16:00). Und wenn du (wie angedeutet) eine zweite Script-Instanz gleichzeitig laufen lassen willst, hättest du bis zu vier Zeitblöcke. Was sollte in diesen Fällen auf der Weboberfläche angezeigt werden?
    • Ich habe es zwar nicht getestet, aber ich sehe keinen Grund, warum du nicht zwei Instanzen des Scripts gleichzeitig laufen lassen könntest. Sinnigerweise sollten dann natürlich beide Instanzen unterschiedliche (und nicht überlappende) Zeitfenster bearbeiten, weil sich sonst die gesetzten Timer in die Quere kommen könnten.
    • Den dritten Punkt verstehe ich nicht ganz, aber generell stellt das Awattar-API die Preise für den Folgetag ab ca. 14:00 zur Verfügung. Der Default von 15:00 ist also mit einem Sicherheitspolster gerechnet. Du kannst natürlich die Daten auch später abfragen, wenn sich das mit deinem gewünschten Zeitablauf ausgeht.

    Ich habe ein Script erstellt, das einen Shelly Plus Plug S über die stündlichen Strompreise der EPEX (abgerufen über das Awattar API) steuern kann. Funktionsprinzip und Konfiguration sind im Script ausführlich erklärt - hier ein Schnelldurchlauf:

    • Man definiert einen Zeitplan (z. B. täglich um 15:00 Uhr), ein Zeitfenster (z. B. 7:00 bis 19:00 Uhr) und eine Dauer (z. B. vier Stunden).
    • Mit den obigen Einstellungen bezieht das Script jeden Tag um 15:00 die Spotpreise für das gewählte Zeitfenster (also 7:00 bis 19:00 des nächsten Tages) von Awattar. Dann identifiziert es die Vier-Stunden-Periode mit dem niedrigsten Durchschnittspreis innerhalb des Fensters und setzt zwei Timer, die die Stromzufuhr am Beginn dieser Periode ein- und am Ende wieder ausschalten.

    Es kann wahlweise das österreichische oder das deutsche Awattar-API verwendet werden.

    Optional kann das Script via Telegram über folgende Ereignisse informieren:

    • wenn neue Timer gesetzt wurden (inklusive Durchschnittspreis für die gewählte Periode)
    • wenn die Stromzufuhr durch das Script eingeschaltet wurde
    • wenn die Stromzufuhr durch das Script ausgeschaltet wurde

    Das Script ist hier zu finden (editiert am 06.10.24: Link aktualisiert):

    https://github.com/towiat/spotelly

    Viel Spaß!