openWB Anbindung an IPSymcon

Antworten
i_got_soul
Beiträge: 21
Registriert: Fr Jul 19, 2019 12:18 pm

openWB Anbindung an IPSymcon

Beitrag von i_got_soul »

Für alle, die sich dafür Interessieren ihre SMA Komponenten und openWB in die Hausautomation IPSymcon einzubinden, kann dieser Hinweis ggf. hilfreich sein. Da Kevin bereits das smaemd Modul vom "Datenschuft" [https://github.com/datenschuft/SMA-EM] nutzt, kann dieses durch entsprechende Erweiterung der Konfiguration dafür genutzt werden.

smaemd erweitert den Funktionsumfang über sogenannte "Features". Das nette ist, dass es bereits mit fertigen "Features" ausgeliefert wird. Eines davon ist das Auslesen der EVU Werte des SMA Homemanagers. Dieses nutzt Kevin wie erwähnt bereits. Weiterhin können jedoch auch die Modbus Register der SMA Wechselrichter ausgelesen werden. Dies geschieht über das Feature "pvdata.py". Und im die Sache abzurunden, gibt es ein weiteres Feature, um die abgefragten Werte dann an IPSymcon zu übermitteln ("symcon.py")
Alles was dafür getan werden muss, ist die Konfiguration des smaemd Daemon etwas anzupassen, um diese zusätzlichen "Features" zu aktivieren. Hier mein Beispiel (/etc/smaemd/config). Fett markiert sind die Werte, die ich hinzugefügt habe. Eine entsprechende Doku ist aber auch im Configfile bzw. auf der GitHub Seite des Projekts vorhanden

https://github.com/datenschuft/SMA-EM

[SMA-EM]
# serials of sma-ems the daemon should take notice
# seperated by space
serials=<Home Manager Serial>
# features could filter serials to, but wouldn't see serials if these serials was not defines in SMA-EM serials
# list of features to load/run
features=simplefswriter sample symcon pvdata

[FEATURE-pvdata]
# How frequently to send updates over (defaults to 20 sec)
min_update=10
#debug output
debug=1
#inverter connection
inv_host = 192.168.178.52 #Wechselrichter IP (Modbus Server muss aktiviert sein)
inv_port = 502 #Port des Modbus Servers
inv_modbus_id = 3 # Static
inv_manufacturer = SMA
#['address', 'type', 'format', 'description', 'unit', 'value']
registers = [ #Register, die beim WR ausgelesen werden sollen. s. angehängte Liste für Dokumentation
['30057', 'U32', 'RAW', 'serial', ''],
['30201','U32','ENUM','Status',''],
['30051','U32','ENUM','DeviceClass',''],
['30053','U32','ENUM','DeviceID',''],
# ['40631', 'STR32', 'UTF8', 'Device Name', ''], # Beim Auslesen gab es Probleme mit der UTF-8 Codierung dieses Feldes, daher entfernt
['30775', 'S32', 'FIX0', 'AC Power', 'W'],
['30813', 'S32', 'FIX0', 'AC apparent power', 'VA'],
['30979', 'S32', 'FIX3', 'Grid current phase L2', 'A'],
['30783', 'S32', 'FIX2', 'AC voltage', 'V'],
['30803', 'U32', 'FIX2', 'grid frequency', 'Hz'],
['30773', 'S32', 'FIX0', 'DC power', 'W'],
['30771', 'S32', 'FIX2', 'DC input voltage', 'V'],
['30769', 'S32', 'FIX3', 'DC current input', 'A'],
['30777', 'S32', 'FIX0', 'Power L1', 'W'],
['30779', 'S32', 'FIX0', 'Power L2', 'W'],
['30781', 'S32', 'FIX0', 'Power L3', 'W'],
['30953', 'S32', 'FIX1', u'device temperature', u'\xb0C'],
['30517', 'U64', 'FIX3', 'daily yield', 'kWh'],
['30513', 'U64', 'FIX3', 'total yield', 'kWh'],
['30521', 'U64', 'FIX0', 'operation time', 's'],
['30525', 'U64', 'FIX0', 'feed-in time', 's'],
['30975', 'S32', 'FIX2', 'intermediate voltage', 'V'],
['30225', 'S32', 'FIX0', 'Isolation resistance', u'\u03a9'],
['30581', 'U32', 'FIX0', u'energy from grid', 'Wh'],
['30583', 'U32', 'FIX0', u'energy to grid', 'Wh'],
['30783', 'U32', 'FIX2', 'Grid voltage phase L1', 'V'],
['30785', 'U32', 'FIX2', 'Grid voltage phase L2', 'V'],
['30787', 'U32', 'FIX2', 'Grid voltage phase L3', 'V'],
['40009', 'U32', 'ENUM', 'Operation Condition', ''],
['30865', 'S32', 'FIX0', 'Power from grid', 'W'],
['30867', 'S32', 'FIX0', 'Power to grid', 'W']
]

[FEATURE-symcon]
# symcon
host=192.168.178.39 #IP der IP Symcon Instanz
port=3777 # Port der Symcon Instanz
emhook=/hook/smaem # Webkook URL für die Übertragung der HomeManager Werte. muss zuvor in IP Symcon eingerichtet werden
pvhook=/hook/smawr # Webkook URL für die Übertragung der Wechselrichter Werte. muss zuvor in IP Symcon eingerichtet werden
timeout=5
user=<user> # User und PW zur Authentifizierung an IP Symcon
password=<pw>
fields=pregard,pregardcounter,psurplus,psurplus,psurpluscounter,p1regard,p1surplus,p2regard,p2surplus,p3regard,p3surplus
pvfields=AC Power,Grid voltage phase L2,Grid current phase L2,grid frequency,DC power,DC input voltage,DC current input,daily yield,total yield,Power L1,Power L2,Power L3,Status,DeviceID,Power to grid,Power from grid,device temperature # Die Register die übertragen werden sollen, müssen jeweils unter registers oben beim Feature PV definiert sein
# How frequently to send updates over (defaults to 20 sec)
min_update=10
debug=0



Ich musste noch ein paar Anpassungen an dem smamodbus.py Skript vornehmen, damit es wirklich rund läuft. Lag aber daran, dass die Sunny Boys noch nicht offiziell in der Konfiguration vorhanden waren.

Die Webhooks IPSymcon seitig müssen übrigens auch nicht selbst geschrieben werden. Entsprechende php Skripte findet ihr ebenfalls im /opt/smaemd/features Ordner => symcon_smaem_webhook.php, symcon_smawr_webhook.php
Das legt euch auch gleich alle benötigten Variablen an. In den Scripten müsst ihr nur hinterlegt, welche Werte vom smaemd übertragen werden, also analog zur symcon Konfiguration oben.

Und das wars dann. Das ganze könnte dann z.B. so aussehen:
IPSymcon.jpeg
(720.57 KiB) 1432-mal heruntergeladen
Darauf basierend könnt ihr euch dann entsprechenden Graphen, Alarmierungen, Schaltvorgänge, etc. definieren

Modbus Register je SMA Wechselrichter:
SMA_Modbus-TI-en-23.xlsx
(262.7 KiB) 337-mal heruntergeladen

Bleibt nur die Frage, ob Kevin die Konfiguration mal bei einem Ugrade überschreibt. Also am Besten nach dem Anpassen im Homefolder zwischensichern.

Viel Spass beim Nachbasteln, ;)
Michael
openWB
Site Admin
Beiträge: 8482
Registriert: So Okt 07, 2018 1:50 pm
Has thanked: 1 time
Been thanked: 24 times

Re: openWB Anbindung an IPSymcon

Beitrag von openWB »

Super Sache!
Danke dafür.
Überschrieben wird nur beim drücken von „SMA Support“ unter Einstellungen -> Misc
Supportanfragen bitte NICHT per PN stellen.
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
Postman76
Beiträge: 58
Registriert: Mo Feb 25, 2019 10:44 am

Re: openWB Anbindung an IPSymcon

Beitrag von Postman76 »

Danke für's sharen Michael!

Das ist genau das was ich bei schlechtem Wetter zum basteln brauch ;-)

Gruß
Peter
Antworten