Solarkarftwerk im Smarthome Einbinden

Je Smarter das Zuhause wird desto höher wird die Stromrechnung. Warum dem ganzen also nicht gegensteuern und die Rechnung mit einem Solarmodul und einem Plug-In Wechselrichter wieder etwas drücken.

Material:

Solarmodul 120€
Modulwechselrichter 140€
wmBus Stick 43€
Gestell aus Schrott der da war 0 €

Die Entscheidung viel auf ein Trina Solar SplitMax Panel mit 270 Watt das ich günstig auf Ebay Kleinanzeigen erstanden habe.  Dazu den Mahle / Letrika SMI260 Modulwechselrichter als B-Ware aus dem Internet.

Erste Enttäuschung der Wechselrichter arbeitet erst nach dem er über ein wmBus Gateway (nur  349,00€ ) verbunden und konfiguriert wurde. Nettes Feature:  Laut Datenblatt kann eigene Software auf dem Gateway betrieben werden. Das Funkprotokoll zum Wechselrichter ist aber laut Datenblatt nicht offen. Kurz überschlagen 349€ / 0.28€ pro kWh = 1246 kWh die das Panel dafür erzeugen muss. Bei ca 1 kW pro Tag(über das Jahr gemittelt) wäre das eine Laufzeit von 3,4 Jahren extra. Eine praktischen Online Rechner findet sich hier.

Es gibt die Firma CarpeDiem die einen USB-Stick und Software zum konfigurieren unter verschiedenen Namen für rund 80€ vertreibt. Leider ist die Software nur für Windows und bietet keine Schnittstellen nach außen. Ein Windows-Rechner fürs Logging laufen zu lassen? Da muss nicht gerechnet werden sowas macht man aus Prinzip nicht!

Der Stick den man dort bekommt ist ein gebrandeter iM871A-USB von IMST. Den habe ich bei Tekmodul für 43€ bekommen. Ein Datenblatt zu dem Stick gibt es beim Hersteller hier.

In diversen Hausautomatisierungsforen habe ich Themen zum SMI260 gefunden. Hier gab es verschiedenste Aussagen zum Funkprotokoll, etwaige AES Schlüssel die dafür benötigt werden und auch Dumps der Kommunikation. Mit den Dumps und dem Datenblatt des wmBus Sticks habe ich die Nachrichten soweit zerlegt, dass ich zwischen Kommunikation mit dem Stick und Kommunikation mit dem wmBus Teilnehmern unterscheiden und diese Nachrichten auch versenden und empfangen konnte. 

Mithilfe des sehr praktischen Werkzeugs SCAMBUS habe ich mir dann die wmBus Nachrichten zerlegt und direkt die Zahlen für aktuelle Erzeugung und die Energiemenge die gesamt erzeugt wurde gefunden. Soviel zum Thema AES-Schlüssel wirklich sehr sicher… Die anderen Nachrichten waren laut SCAMBUS aber keine Standardnachrichten, da ich hier nur Hex Blobs als Ausgabe bekommen habe.

Die Nachrichten haben ich dann in meinen bevorzugten Hex-Editor (Bless) geladen und mit der Endianess gespielt. 

Und hier wurden gleich ein paar Dinge in Text sichtbar: cos_phi, dcdc _temp,… das war vielversprechend und schnell waren die sinnvollen Werte gefunden. 

Nachdem die Kommunikation mit dem Wechselrichter stand sollte dieser ja noch sinnvoll ins SmartHome eingebunden werden. Dafür habe ich MQTT gewählt und ein SMI260 zu MQTT Gateway in Python implementiert.  Bitte verzeiht den gruseligen Code, es war mein erstes Python3 Projekt mit AsyncIO. Für Verbesserungsvorschläge bin ich da offen.  Um es Portabel auf NAS, Raspberry Pi, etc. nutzen zu können gibt es auch einen Docker Container in dem das ganze läuft. Hier können die Einstellungen per Umgebungsvariablen vorgenommen werden. 

Das ganze lässt sich dann mittels Grafana schön visualisieren:

 

8 Gedanken zu „Solarkarftwerk im Smarthome Einbinden“

  1. Hi Steve,
    schöne Projekte!
    Ich habe dein Programm versucht zu starten und bleibe momentan etwas hängen.
    Mein Ziel ist es später, das ganze in meiner Nextcloudinstanz einzubinden und steuern zu können.

    Was mir momentan im Terminal angezeigt wird ist:

    ——————————————–
    data received b’\xa5\x82\x02\x01\x01/U’
    Control fields: ControlFieldFlags.CRC16Field
    Endpoint id: EndpointID.RADIOLINK_ID
    Message id: RadioLinkMessageIdentifier.RADIOLINK_MSG_WMBUSMSG_RSP
    Payload length: 1
    Payload: tohex(): unsupported type
    ——————————————–

    Das könnte aber auch daran liegen, das die SMIs zu weit weg sind…
    Oder weißt du spontan woran es liegt?

    Viele Grüße

    Arne

    1. Hallo Arne,

      das ist die ausgehende Nachricht die “Empfangen” wird. Wenn nichts weiteres kommt gibt es mehrere Möglichkeiten:
      – die Distanz zu groß
      – die ID der Geräte stimmt nicht überein
      – der SMI bekommt kein Strom vom Panel (Kommunikation geht nur wenn auch die Sonne scheint)

      Viele Grüße

  2. Guten Tag Steve

    Danke für deine Arbeit wende das Script für 4 WR an. Einer der SMI antwortet nicht im Script:

    “[2020-10-08 10:20:26.595987] query SMI 8152”

    Leistung produziert der aber, dass sehe ich anhand der Messung auf der AC Seite. Hast du eine Idee woran das liegen könnte?

    Grüsse aus der Schweiz

    Stefan

    1. War der Wechselrichter mal mit dem SunGateway verbunden?
      Dann antwortet er leider nicht mehr auf die “normalen” Requests.
      Ich habe eine Idee wie das Zurücksetzen gehen könnte aber ich bin noch nicht dazu gekommen es zu testen.

  3. Hallo

    Vielen Dank für die Arbeit.

    Soweit funktioniert alles, nur wenn ich den raspberry neu starten muss, dann wird der Dienst zwar gestartet, aber nicht aktiviert.

    Gebe ich dann als Komando “systemctl start SMI260” ein, wird der Dienst aktiviert.

    So sieht es nach einem Neustart des Raspberry aus:

    pi@raspberrypi:~ $ systemctl is-enabled SMI260
    enabled
    pi@raspberrypi:~ $ systemctl is-active SMI260
    failed

    Nach Eingabe “systemctl start SMI260”:

    pi@raspberrypi:~ $ systemctl is-active SMI260
    active

    Vielen Dank

    Jens

  4. hallo Steve,

    ich versuche mich gerade an dem SMI260 Projekt aber bekomme es nicht zum laufen.
    Ausführen des Scripts SMI260MQTTGateway.py resultiert in:

    port opened SerialTransport(, , Serial(port=’/dev/ttyUSB0′, baudrate=57600, bytesize=8, parity=’N’, stopbits=1, timeout=0, xonxoff=False, rtscts=False, dsrdtr=False))
    [2021-02-17 16:16:53.188111] query SMI xxxxx
    ——————————————–
    [2021-02-17 16:16:53.192737] data received
    ——————————————–
    [2021-02-17 16:16:53.210352] data received

    Was könnte die Ursache sein? Der Wechselrichter ist an.

    besten dank, ms
    aber weiter passiert nix.

    1. Das kann verschiedene Ursachen haben.
      – der SMI ist außer Reichweite
      – die Id des SMI stimmt nicht
      – der SMI war vorher mit einem Gateway verbunden. Dazu muss man die Paarung der Geräte erst wieder aufheben. Leider habe ich kein Gateway um das zu testen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.