Seite 1 von 8

SMA Energy Meter als Verbraucher

Verfasst: Fr Mai 07, 2021 2:19 pm
von Poellph
Hallo Zusammen,

ich stehe irgendwie auf dem Schlauch. Ich habe eine Wärmepumpe (Viessmann), die sich quasi selbst ansteuert.....
SMA Energymeter (EVU) - Gridbox - ViessmannWärmepumpe.
Das funktioniert auch gut.......sobald ich Einspeise, startet die Wärmepumpe.

Jetzt will ich aber den Verbrauch der WP in der OpenWB visualisieren:

Siehe Bild:Wärmepumpe.png

aber ich kann den SMA Energymeter nicht auswählen:

Siehe Bild: Verbraucher-einstellung.png

Was muss ich machen???

Wäre nett, wenn mir einer weiterhelfen kann.

LG Philipp

Re: SMA Energy Meter als Verbraucher

Verfasst: Fr Mai 07, 2021 2:58 pm
von aiole
Sieht so aus, als ob es das SMA-SW-Zählermodul noch nicht bei "Smarthome" gibt.
=> OpenWB ist modular aufgebaut, d.h. es muss nur noch das Modul geschrieben werden.
Wenn man das nicht selbst kann, jemanden fragen, der es baut (+ pull request wenn fertig) oder einen der verfügbaren Zähler verwenden.

SMA geht auf jeden Fall am EVU-Punkt, was der wichtigste Messpunkt ist. Da kann man sicher die wichtigsten Infos aus dem vorhandenen code für ein neue Smarthome-SMA-Messmodul ziehen (Register usw.).

Re: SMA Energy Meter als Verbraucher

Verfasst: Fr Mai 07, 2021 3:37 pm
von Poellph
Hey Aiole,

danke für die schnelle Antwort:

Du meinst das Modul hier oder??

Re: SMA Energy Meter als Verbraucher

Verfasst: Fr Mai 07, 2021 3:50 pm
von aiole
ja genau
Dafür sind die Daten im Quellcode (s. github) hinterlegt. Wer Ahnung davon hat, kann damit nun das passende Verbrauchermessmodul schreiben und wenn fertig einen pull request (PR) stellen. Dann haben alle etwas davon. Oder Du animierst Programmierer gegen Entgelt.

Für das SMA EM (nicht SHM) musst Du hier mal nach "smaem" suchen:
https://github.com/snaptec/openWB/tree/master/modules

Ev. kann man auch das SMA EM-PV-Modul als Vorlage nutzen. Ich bin da leider nicht so firm:
https://github.com/snaptec/openWB/tree/ ... /smaemd_pv
Da steht eine mail-Adresse vom Supporter drin. Ev. mal an ihn wenden.

Re: SMA Energy Meter als Verbraucher

Verfasst: Mo Mai 10, 2021 7:27 am
von Poellph
Hey Aiole,

danke für die Infos. Ich bin eigentlich ein schlechter Programmierer, aber abkucken und verändern, sollte ich mir noch zutrauen ;)

kannst du mir irgendein Tutorial empfehlen? Habe so leichte Startschwierigkeiten.......ist auf der OpenWB Red-Node? und wenn ja, wie kann ich es öffnen? :1880 klappt bei mir nicht.

LG Philipp

Re: SMA Energy Meter als Verbraucher

Verfasst: Mo Mai 10, 2021 10:00 am
von Becker
nein, openWB hat nichts mit NodeRed zu tun

Re: SMA Energy Meter als Verbraucher

Verfasst: Di Mai 11, 2021 7:40 am
von ALDI-Tuete
Die Anforderung wäre für mich auch interessant.
Ich habe bei mir 1 x SMA HomeManager 2.0 (wird als EVU-Kit angesteuert), 1 x SMA EnergyMeter für unsere Alt-PV-Anlage und 1 x SMA EnergyMeter für unsere "dumme" Wärmepumpe - und die Wärmepumpe würde ich gerne in openWB auslesen.

Wie ist denn die Namenskonvention für ein neues SmartHome-Modul? Wie ist die Signatur/welche Rückgabewerte werden erwartet? Gibt es hierzu infos?

Danke!

Re: SMA Energy Meter als Verbraucher

Verfasst: Di Mai 11, 2021 4:50 pm
von okaegi
Integration als separate Leistungsmessung:
In python:
Smarthome modul ist im eigenen Verzeichniss hier abzuspeichern:
Screenshot_20210511-182814_DroidEdit.jpg
Also smarthome/smaen/watt.py zum Beispiel.
Watt.py sollte folgendes machen:
Parameter 1 : smarthomedevice nummer Bespiel 1,( siehe unten)
Parameter 2: ipadresse (aus gui)
Parameter 3: spezifisch (aus gui)
...
Auslesen vom device über Modbus und schreiben einer json Datei mit Namen smarthome_device_ret1
Beispiel sdm630
#!/usr/bin/python3
import sys
import os
import time
import getopt
import socket
import struct
import binascii
import json
devicenumber = str(sys.argv[1])
seradd = str(sys.argv[2])
sdmid = int(sys.argv[3])

from pymodbus.client.sync import ModbusTcpClient

client = ModbusTcpClient(seradd, port=8899)

#KWH Total Import
resp = client.read_input_registers(0x0156,2, unit=sdmid)
vwh = struct.unpack('>f',struct.pack('>HH',*resp.registers))
vwh2 = float("%.3f" % vwh[0]) * int(1000)
vwh3 = str(vwh2)

#Aktueller Verbrauch
resp = client.read_input_registers(0x0034,2, unit=sdmid)
watti = struct.unpack('>f',struct.pack('>HH',*resp.registers))
watt = int(watti[0])

answer = '{"power":' + str(watt) + ',"powerc":' + str(vwh3) + '} '
f1 = open('/var/www/html/openWB/ramdisk/smarthome_device_ret' + str(devicenumber), 'w')
json.dump(answer,f1)
f1.close()

Die json Datei hat folgende Werte:

"{\"power\":95,\"powerc\":5951131.0} "

Power : aktuelle Leistungsaufnahme in Watt (als int)
Powerc: aktueller Zählerstand in kwh (mit 3 Nachkommastellen)
Powerc nur liefern wenn der Zählerstand vom Device persistiert wird und aufsteigend fortgeschrieben wird, sonst 0 bringen . Dann rechnet Openwb das selber.
Im smarthomehandler ist die Routine unten ergänzen.

def sepwatt(oldwatt,oldwattk,nummer):
.....
elif meastyp == "we514":
argumentList[1] = prefixpy +'we514/watt.py'
argumentList[4] = config.get('smarthomedevices', 'device_measureid_'+str(nummer))
Elif
Parameter 1 ist python pfad und python modul
Parameter 2 ist smarthomedevice nummer
Parameter 3 ist Ipadresse aus gui
Parameter 4 ist Parameter 3: spezifisch (aus gui)
Gui kommt in nächster Post
Gruss Oliver

Re: SMA Energy Meter als Verbraucher

Verfasst: Di Mai 11, 2021 4:58 pm
von okaegi
gui wird zentral durch Lutz (zumindest bei mir;) gemacht:
Screenshot_20210511-185403_Chrome.jpg
Unter separater Leistungsmessung.
meastyp oben im python kommt hier aus dem Dropdown Gerätetyp
Gruss Oliver

Re: SMA Energy Meter als Verbraucher

Verfasst: Mi Mai 12, 2021 7:09 am
von ALDI-Tuete
Schon mal Danke für deine Hilfe.
Ich habe jetzt einen ersten Entwurf den ich gerne mal testen möchte.

Ich habe unter /var/www/html/openWB/modules/smarthome/smaem eine watt.py und die benötigte speedwiredecoder.py

In der smarthomehandler.py habe ich eingetragen:
elif meastyp == "smaem":
argumentList[1] = prefixpy + 'smaem/watt.py'

Was ich jetzt nicht weiß:
- Wie veranlasse ich das das neue Modul überhaupt angezogen wird? Ich habe die openWB rebooted aber es gibt keine /var/www/html/openWB/ramdisk/smarthome_device_ret* (ich habe bisher noch keinerlei SmartHome-Konfiguration).
- Woher kommt die Smarthome Devicenumber und wie kommt die in den Übergabeparameter?
- Wie übergebe ich meinen benötigten Parameter (SMA Seriennummer) an die watt.py?

Danke!