Automatische Zeitermittlung / Waschmaschine Timer

Hallo zusammen,

Ich stehe gerade etwas auf dem Schlauch und benötige eure Hilfe. Da meine Waschmaschine und Trockner leider noch dumm sind, muss ich nach wie vor einen Timer stellen, damit die Maschinen erst dann laufen, wenn genügend PV Überschuss vorhanden ist. Da ich das immer nicht genau weis, stelle ich den Timer natürlich immer ungefähr auf die Mittagszeit. Da wird es dann schon irgendwie passen. Aber das ist ja viel zu einfach.

Mein Ziel:

Wenn ich die Maschine belade, soll mir Alexa die genaue Zeitangabe nennen, die ich einstellen muss, wann aus der Tendenz der letzten drei Tage meine PV Anlage einen gewissen Ertrag erreicht hat.

Einige Dinge sind mir klar:

Wenn: ein Doppelklick Shelly (Lichtschalter als Auslöser)

Dann: Alexa gib variable als Sprachbefehl aus.

Alles dazwischen fehlt mir.

Diverse Apps wie Inside Trends sind schon in Gebrauch. Auch Better Logic etc.

Mit der Berechnung bin ich allerdings wirklich ĂĽberfordert.

Über eure Hilfe würde ich mich sehr freuen, hoffe ich hab alles einigermaßen verständlich rübergebracht! :slight_smile:

Euch ein schönes Wochenende

Nur mal so ne Idee: Anstatt über mehr oder minder feste Zeiten vielleicht eher mit der App Sonnenereignisse den jeweilgen Sonnen(höchst)stand für dich ermitteln/nutzen.

Da gibt es auch das Ereignis “Sonnenhöchststand mit +/- Offset” und als Ausgabe u.a. auch die Zeit (als Textvariable). Die kann man aber, meine ich, auch in einen “Nummernwert” umwandeln. Damit solltest du relativ einfach rechnen können.

Das ist auch eine gute Idee.

Hab die App auch schon.

Der größte Knackpunkt ist tatsächlich für mich die variable Zeit als Text in eine Zahl zu wandeln und damit zu rechnen.

Hm… ich denke dazu wirst du ein Script brauchen. Den “Sonnenhöchststand” gibt es nur als Trigger…bringt dir ja nichts.
Also: Kein Rechnen nötig. Alexa sagt dir einfach wann der Sonnenhöchstand ist und dieser wäre ja der Programmsatrtzeitpunkt deiner Waschmaschine.
Den Flow dann relativ banal. Den “Start-Button” ersetzt du eben durch die Aktion “Doppelklick Shelly”

MĂĽsstest du natĂĽrlich auf deine koordinaten anpassen und den gewĂĽnschten Offset anpassen

Das Script (dank KI) :

// ===== Offset in Minuten einstellen =====
// Beispiel:
// -30 = 30 Minuten VOR Sonnenhöchststand
// +15 = 15 Minuten NACH Sonnenhöchststand
const offsetMin = -30;

// — Koordinaten Schriesheim —
const lon = 8.665;

// — heutiger Tag im Jahr —
const now = new Date();
const start = Date.UTC(now.getFullYear(), 0, 0);
const today = Date.UTC(now.getFullYear(), now.getMonth(), now.getDate());
const n = Math.floor((today - start) / 86400000);

// — Gleichung der Zeit —
const B = (2 * Math.PI * (n - 81)) / 364;
const EoT =
9.87 * Math.sin(2 * B) -
7.53 * Math.cos(B) -
1.5 * Math.sin(B);

// — Solar-Noon Minuten UTC —
let solarNoon = 720 - 4 * lon - EoT;

// — deutsche Zeitzone —
const isDST = new Date().getTimezoneOffset() === -120;
solarNoon += isDST ? 120 : 60;

// — Offset anwenden —
solarNoon += offsetMin;

// — in HH:MM umwandeln —
const hh = Math.floor((solarNoon + 1440) % 1440 / 60)
.toString()
.padStart(2, “0”);

const mm = Math.round((solarNoon + 1440) % 60)
.toString()
.padStart(2, “0”);

// — Uhrzeit zurückgeben (Text-Tag!) —
return ${hh}:${mm};