Was machen wir?

Intelligente Steckdosen dienen dazu, Geräte im Haushalt zu schalten. Wir nutzen ihre Fähigkeit, sich mit einem Webserver zu verbinden, um von dort ein Signal zum Ein- oder Ausschalten zu erhalten. Gerade Shelly-Steckdosen unterstützen das sehr gut und sind weit verfügbar, deshalb nutzen wir sie hier.

Darauf basiert unser "Solarwichtel":

Aus den Satellitendaten des Deutschen Wetterdienstes bestimmen wir die Sonneneinstrahlung an jedem Punkt in Deutschland. Ihre Shelly-Steckdose verbindet sich mit unserem solarwichtel.de-Server, z.B. "Ich höre auf Signale für die Stadt XY". Unser Server holt jede Viertelstunde die aktuellen Satellitendaten und prüft dann für jede Stadt: "Welche Steckdosen haben sich für diese Postleitzahl angemeldet?" Scheint die Sonne hell genug, wird an alle Steckdosen, die sich für eine Postleitzahl angemeldet haben, der Befehl "Einschalten" gesendet.

Der Ablauf sieht so aus:

  1. Der Deutsche Wetterdienst stellt Strahlungsdaten bereit
  2. Wir laden diese Daten herunter und prüfen für jeden Ort mit einem Schwellwert, ob es hell genug ist
  3. Die Steckdosen erhalten von uns ein Signal "Einschalten" oder "Ausschalten".

Warum brauche ich das? Kann ich nicht zu Hause an meinem eigenen Balkonmodul den Strom messen und damit viel flexibler Steckdosen schalten?

Natürlich! Unser Angebot richtet sich jedoch an Menschen, die keine Smart-Home-Zentrale zu Hause einrichten wollen, sondern eine einfache Lösung suchen.


Für Interessierte:

Der Deutsche Wetterdienst stellt Daten auf opendata.dwd.de bereit.

Wir nutzen opendata.dwd.de/weather/satellite/radiation/sis/, da

"Die Globalstrahlung (SIS) ist der Strahlungsfluss, welcher auf eine horizontale Einheitsfläche des Erdbodens im Spektralbereich von 0.2-4 µm Wellenlänge einfällt. Die Einheit ist W/m2. Die Globalstrahlung ist die wichtigste Eingangsgröße zur Bestimmung der elektrischen Leistung von PV Anlagen."
(dwd.de/DE/leistungen/fernerkund_globalstrahlung_sis/fernerkund_globalstrahlung_sis.html)

Das SIS-Array entspricht einem Gitter, das für jedes Koordinatenpaar in 0.05-Grad-Schritten (ca. 6 Kilometer) die Strahlungsintensität in Watt pro Quadratmeter angibt. Diese Werte spannen etwa von 0 - 800 W/m², als Schwellwert zum Einschalten haben wir 400 W/m² festgelegt.

Der Anzeigewert auf der Webseite entspricht der geschätzten aktuellen Leistung eines 600-Watt-Balkonmoduls.

Für das komfortable Auswählen der Stadt gibt es eine Datenbank mit Postleitzahlen (ursprünglich von wiwald.com/ds/kostenlose-liste-deutscher-postleitzahlen-und-zugehoeriger-orte/id/ww-german-postal-codes)

In der Spalte "exist" wird gespeichert, ob dieser Shelly auf solarwichtel.de aktiviert wurde.

Für den Shelly-Name solarwichtel_XXXX_XXXX werden Längen- und Breitengrad jeder Postleitzahl auf 0.05 gerundet. Dadurch fallen oft mehrere Orte und Postleitzahlen in dieselbe Koordinate. Sie werden aber dennoch getrennt aufgeführt, um bei der Autovervollständigung im Suchfeld besser gefunden zu werden.

Um die Signale an die Shelly-Steckdosen zu übermitteln, läuft auf dem Server auch ein MQTT-Broker. Bei MQTT werden Nachrichten über Topics organisiert: Ein Gerät wie unsere Steckdose meldet sich an und bekundet sein Interesse an einem bestimmten Topic (subscribe). In unserem Fall existiert je ein Topic für jede aktive Koordinate. Die Shellys haben darauf nur Lesezugriff, so dass niemand von außen Steckdosen schalten kann.

Ein zentrales Python-Skript liest nun jede Viertelstunde die aktuelle Sonnendaten von opendata.dwd.de. Es sendet für jede aktive Adresse eine Nachricht zum "Einschalten" oder "Ausschalten" (publish). Der MQTT-Broker führt eine Liste, welche verbundenen Shells sich für dieses Topic registriert haben. Er leitet die Nachricht an die gewünschten Geräte weiter.

Und die Webseite?
...ist einfaches HTML, mit w3.css und jQuery UI für das Suchfeld.

Der Quellcode ist auf github.com/s12wu/solarwichtel zu finden.