Hi folks,
I did some work to read data from a Solaredge solar power plant inverter and wanted to share my solution, because the inverter connection is a little tricky and requires quite a bit of post processing,
Description:
Solaredge is company that manufactures amongst other things a solar power plant inverter family. These devices offer a local logging interface that delivers some operations data to logging devices via a standardized data model, which is called “Sunspec”. Some other inverters also use this (i.e. Fronius), so it might be possible to adapt the solution to other inverters too,
In recent inverter models, Modbus TCP was added as a communication option, which is quite convenient since it would not require any additional hardware such as a RS485 interface and can be used directly to integrate the data into OpenHAB using the Modbus binding.
Note:
- If you do not need realtime data from your inverter, there is now a Solaredge binding which reads data via the Solaredge monitoring API. This might be easier to integrate for you.
- This was written before the Modbus V2 binding was available. Most of the code will still work, but the items definitions need to be changed if you want to use the V2 binding. Use the 1.x Modbus binding for it to work out of the box. (Use PaperUI, go to Configuration -> System -> enable the switch for “Include 1.x legacy bindings” and find the Modbus v1.x binding to install from the add-ons subsection.)
- The Modbus TCP logging works in parallel to any logging that the inverter might be doing towards the Solaredge monitoring portal.
- Modbus TCP needs to be enbaled in the inverter, and you need to configure the TCP port that the inverter should listen to connection requests on (usually TCP-Port 502)
- Please see the documentation on the inverter (available from Solaredge.com) on how to enable this, You need a device with a CPU version >3.xxx for Modbus TCP support. The relevant document is called “Technical Note - SunSpec Logging in solaredge inverters”, and the most recent version that I found is dated July 2016.
- The inverter only waits for two minutes for a Modbus TCP client to connect, after that it doesn’t accept TCP connections. I found that if your connection has dropped, the only way to get it back would be to restart te inverter (or go into the inverter config menu, disable Modbus TCP and re-enable it).
- the inverter only allows one TCP connection at a time. This means that we will need to configure exactly one Modbus TCP slave in the Modbus binding and extract all items from the values it reads in one go. This is a bit nasty, since the inverter has int16, uint16 and uint32 values. A slave definition can only be one type, so my config uses uint16 to read the whole parameter block and converts the values accordingly. For the Modbus meter (see below) I use a second slave definition.
- This also means that you cannot have more than one Modbus TCP logger (i.e. openHAB and solarLog in parallel wouldn’t work). It can however work in parallel with the Solaredge monitoring portal.
- In Germany, you need to limit your export to the grid to 70% of the installed peak power of your solar power plant. Often times, one would install a consumption meter (cheapest option is an S0 meter) to take into account the current power consumption of your home, so that the inverter can produce more power so that: production - consumption < installed peak power * 70%. Note that you can not read the consumption measured by your S0 meter via the solaredge inverter, even though these values are available from the Solaredge monitoring portal.
- However, Solaredge offers a Modbus Meter (i.e. SE-WNC-3Y-400-MB), which connects to the inverter via RS385 Modbus and can measure quite a bit more data (export+import, and per-phase values). You can read data from this meter via the inverter, giving you the full picture of production, consumption and export+import. The meter is quite fast, so you can read data every few seconds (with tuning probably sill faster). This is useful if you want to use that data to control other consumers in your smart home to dynamically use the available excess power (i.e. charging your electric vehicle with exactly the available solar energy). I use this to control my Heatpump and generate warm water if there is power available, see: Use excess Photovoltaics Production intelligently (Building a time based "hysteresis")
Setup:
As described, I have an inverter and the modbus meter. The modbus meter is connected to the inverter via RS485. It uses Modbus ID 2. The inverter has Modbus ID 1. The inverter is hooked up the the network via Ethernet.
First, we need to configure the Modbus binding to read data from the inverter. For a standard OH2 installation, this would be done in the file /etc/openhab2/services/modbus.cfg:
poll=10000
tcp.se9k.connection=192.168.199.122:502:60:0:0:3:500
tcp.se9k.id=1
tcp.se9k.type=holding
tcp.se9k.start=69
tcp.se9k.length=50
tcp.se9k.valuetype=uint16
tcp.se9km.connection=192.168.199.122:502:500:200:200:3:500
tcp.se9km.id=1
tcp.se9km.type=holding
tcp.se9km.start=188
tcp.se9km.length=107
tcp.se9km.valuetype=uint16
The inverter also supplies the data it reads from the meter via modbus, so the TCP slave definition to read the meter values also needs to be configured for Modbus ID 1. If you don’t have a modbus meter, remove the tcp.se9km items from your config.
Next, to setup the item definitions. The first set of items holds the values directly read from the inverter (forgive the german captions, I hope the names are somewhat self-explanatory):
Group se9kint “Wechselrichter PV-Anlage (int-Werte)”
Group se9k “Wechselrichter PV-Anlage”
Number se9k_DID_int “WR Typ (int) [%d]” (se9kint) {modbus=“se9k:0”}
// Amps acrosss all phases
Number se9k_Amps_int “WR Stromerzeugung gesamt (int) [%d A]” (se9kint) { modbus=“se9k:2” }
// Amps Phase A,B,C and scaling factor
Number se9k_AmpA_int “WR Stromerzeugung Ph.A (int) [%d A]” (se9kint) { modbus=“se9k:3” }
Number se9k_AmpB_int “WR Stromerzeugung Ph.B (int) [%d A]” (se9kint) { modbus=“se9k:4” }
Number se9k_AmpC_int “WR Stromerzeugung Ph.C (int) [%d A]” (se9kint) { modbus=“se9k:5” }
Number se9k_AmpSF_int “WR Skalierungsfaktor Strom (int) [%d]” (se9kint) { modbus=“se9k:6” }
// Voltage for Phases A,B,C and scaling factor
Number se9k_VoltA_int “WR Spannung Phase A (int) [%d V]” (se9kint) { modbus=“se9k:10” }
Number se9k_VoltB_int “WR Spannung Phase B (int) [%d V]” (se9kint) { modbus=“se9k:11” }
Number se9k_VoltC_int “WR Spannung Phase C (int) [%d V]” (se9kint) { modbus=“se9k:12” }
Number se9k_VoltSF_int “WR Skalierungsfaktor Spannung (int) [%d]” (se9kint) { modbus=“se9k:13” }
// Power and SF
Number se9k_Watt_int “WR Leistung Erzeugung (int) [%d W]” (se9kint) { modbus=“se9k:14” }
Number se9k_WattSF_int “WR Skalierungsfaktor Leistung (int) [%d]” (se9kint) { modbus=“se9k:15” }
// Frequency and SF
Number se9k_Hz_int “WR Netzfrequenz (int) [%d Hz]” (se9kint) { modbus=“se9k:16” }
Number se9k_HzSF_int “WR Skalierungsfaktor Netzfrequ. (int) [%d]” (se9kint) { modbus=“se9k:17” }
// Apparent Power and SF
Number se9k_VA_int “WR Scheinleistung gesamt (int) [%d VA]” (se9kint) { modbus=“se9k:18” }
Number se9k_VASF_int “WR Skalierungsfaktor Scheinleistung (int) [%d]” (se9kint) { modbus=“se9k:19” }
// Reactive Power and SF
Number se9k_VAR_int “WR Reaktive Leistung gesamt (int) [%d VA]” (se9kint) { modbus=“se9k:20” }
Number se9k_VARSF_int “WR Skalierungsfaktor reaktive Leistung (int) [%d]” (se9kint) { modbus=“se9k:21” }
// Power factor
Number se9k_PF_int “WR Leistungsfaktor (int) [%d cos phi]” (se9kint) { modbus=“se9k:22” }
Number se9k_PFSF_int “WR Skalierungsfaktor Leistungsfaktor (int) [%d]” (se9kint) { modbus=“se9k:23” }
// Lifetime generated energy
Number se9k_Wh1_int “WR Erzeugungszaehler Byte1 (int) [%d Wh]” (se9kint) { modbus=“se9k:24” }
Number se9k_Wh2_int “WR Erzeugungszaehler Byte2 (int) [%d Wh]” (se9kint) { modbus=“se9k:25” }
Number se9k_WhSF_int “WR Skalierungsfaktor Zaehler (int) [%d]” (se9kint) { modbus=“se9k:26” }
// DC side current
Number se9k_DCA_int “WR Strom DC Seite (int) [%d A]” (se9kint) { modbus=“se9k:27” }
Number se9k_DCASF_int “WR Skalierungsfaktor DC Strom (int) [%d]” (se9kint) { modbus=“se9k:28” }
// DC side voltage
Number se9k_DCV_int “WR Spannung DC Seite (int) [%d V]” (se9kint) { modbus=“se9k:29” }
Number se9k_DCVSF_int “WR Skalierungsfaktor DC Spannung (int) [%d]” (se9kint) { modbus=“se9k:30” }
// DC side power
Number se9k_DCW_int “WR Leistung DC Seite (int) [%d W]” (se9kint) { modbus=“se9k:31” }
Number se9k_DCWSF_int “WR Skalierungsfaktor DC Leistung (int) [%d]” (se9kint) { modbus=“se9k:32” }
// Temp Heat sink
Number se9k_THS_int “WR Temperatur Kuehlkorper (int) [%d C]” (se9kint) { modbus=“se9k:34” }
Number se9k_THSSF_int “WR Skalierungsfaktor Kuehlkoerper (int) [%d]” (se9kint) { modbus=“se9k:37” }
// Operating state
Number se9k_Status_int “WR Status (int) [%d]” (se9kint) { modbus=“se9k:38” }
Number se9k_Status_Vendor_int “WR Status Vendor (int) [%d]” (se9kint) { modbus=“se9k:39” }
Here you can already see why we need a bit of post-processing. The sunpec format stores integer values and scale factors, so to get to the actual floating point values, you need to convert them like so:
Value_float = Value_int * 10^scale factor
Also, some items are int16 (i.e. -32768 to 32768), while we instructed the modbus slave to read them all as uint16 (0…65536). Other items are uint 32, so we need to get the float value by multiplying the first byte by 65536, adding the second byte and apply the scale factor.
The second set of items therefore holds all the Float values and we will populate them via some rules:
// Se9K inverter Float values
String se9k_DID “WR Typ [%s]” (se9k)
// Amps acrosss all phases
Number se9k_Amps “WR Stromerzeugung gesamt [%.2f A]” (se9k)
// Amps Phase A,B,C
Number se9k_AmpA “WR Stromerzeugung Ph.A [%.2f A]” (se9k)
Number se9k_AmpB “WR Stromerzeugung Ph.B [%.2f A]” (se9k)
Number se9k_AmpC “WR Stromerzeugung Ph.C [%.2f A]” (se9k)
// Voltage for Phases A,B,C
Number se9k_VoltA “WR Spannung Phase A [%.1f V]” (se9k)
Number se9k_VoltB “WR Spannung Phase B [%.1f V]” (se9k)
Number se9k_VoltC “WR Spannung Phase C [%.1f V]” (se9k)
// Power
Number se9k_Watt “Erzeugungsleistung Photovolaik [%.2f W]” (se9k)
// Frequency
Number se9k_Hz “WR Netzfrequenz [%.2f Hz]” (se9k)
// Apparent Power
Number se9k_VA “WR Scheinleistung gesamt [%.2f VA]” (se9k)
// Reacive Power
Number se9k_VAR “WR reaktive Leistung gesamt [%.2f VA]” (se9k)
// Power factor
Number se9k_PF “WR Leistungsfaktor [%.1f cos phi]” (se9k)
// Lifetime generated energy
Number se9k_kWh “WR Erzeugungszaehler [%.3f kWh]” (se9k)
// the follwing two items allow you to display some derived values, i.e. the energy produced in the current year.
Number se9k_kWh_Jahr “WR Erzeugung seit Jahresanfang [%.3f kWh]” (se9k)
Number se9k_kWh_Jahr_Offset “WR Offset Erzeugungaehler zum 1.1. [%.3f kWh]” (se9k)
// DC side current
Number se9k_DCA “WR Strom DC Seite [%.2f A]” (se9k)
// DC side voltage
Number se9k_DCV “WR Spannung DC Seite [%.2f V]” (se9k)
// DC side power
Number se9k_DCW “WR Leistung DC Seite [%.2f W]” (se9k)
// Temp Heat sink
Number se9k_THS “WR Temperatur Kuehlkorper [%.2f C]” (se9k)
// Status
String se9k_Status “Status [%s]” (se9k)
String se9k_Status_Vendor “Status Vendor [%s]” (se9k)
There are the items you need if you have just the inverter. If you have a Modbus meter in addition, these are the Integer item definitions:
Group se9kmint “Stromzaehler Haus (Smartmeter PV-Anlage)”
Group se9km “Stromuzaehler Haus (Smartmeter PV-Anlage)”
// SE9k Modbus meter integer values
// Type (Map: 201 = single phase A-N , 202 = split single phase (A-B-N), 203 = Wye (A-B-C-N), 204 = Delta (A-B-C))
Number se9km_DID_int “Netztyp Modbus Meter [%d]” (se9kmint) {modbus=“se9km:0”}
// Strom
Number se9km_Amp_int “SM Strom AC (int) [%d A]” (se9kmint) {modbus=“se9km:2”}
Number se9km_AmpA_int “SM Strom Ph.A (int) [%d A]” (se9kmint) {modbus=“se9km:3”}
Number se9km_AmpB_int “SM Strom Ph.B (int) [%d A]” (se9kmint) {modbus=“se9km:4”}
Number se9km_AmpC_int “SM Strom Ph.C (int) [%d A]” (se9kmint) {modbus=“se9km:5”}
Number se9km_AmpSF_int “SM Strom Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:6”}
// Spannung
Number se9km_VoltL_int “SM Spannung AC (MW alle Phasen) (int) [%d V]” (se9kmint) {modbus=“se9km:7”}
Number se9km_VoltA_int “SM Spannung Ph.A (int) [%d A]” (se9kmint) {modbus=“se9km:8”}
Number se9km_VoltB_int “SM Spannung Ph.B (int) [%d A]” (se9kmint) {modbus=“se9km:9”}
Number se9km_VoltC_int “SM Spannung Ph.C (int) [%d A]” (se9kmint) {modbus=“se9km:10”}
Number se9km_VoltSF_int “SM Spannung Skalierungsfaktor [%d]” (se9kmint) {modbus=“se9km:15”}
// Frequenz
Number se9km_Frequenz_int “SM Netzfrequenz (int) [%d Hz]” (se9kmint) {modbus=“se9km:16”}
Number se9km_FrequenzSF_int “SM Netzfrequenz Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:17”}
// Wirkleistung
Number se9km_Watt_int “SM Wirkleistung AC (Summe alle Phasen) (int) [%d W]” (se9kmint) {modbus=“se9km:18”}
Number se9km_WattA_int “SM Wirkleistung Ph.A (int) [%d W]” (se9kmint) {modbus=“se9km:19”}
Number se9km_WattB_int “SM Wirkleistung Ph.B (int) [%d W]” (se9kmint) {modbus=“se9km:20”}
Number se9km_WattC_int “SM Wirkleistung Ph.C (int) [%d W]” (se9kmint) {modbus=“se9km:21”}
Number se9km_WattSF_int “SM Wirkleistung Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:22”}
// Scheinleistung
Number se9km_VA_int “SM Scheinleistung AC (int) (Summe alle Phasen) [%d VA]” (se9kmint) {modbus=“se9km:23”}
Number se9km_VAA_int “SM Scheinleistung Ph.A (int) [%d VA]” (se9kmint) {modbus=“se9km:24”}
Number se9km_VAB_int “SM Scheinleistung Ph.B (int) [%d VA]” (se9kmint) {modbus=“se9km:25”}
Number se9km_VAC_int “SM Scheinleistung Ph.C (int) [%d VA]” (se9kmint) {modbus=“se9km:26”}
Number se9km_VASF_int “SM Scheinleistung Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:27”}
// reaktive Leistung
Number se9km_VAR_int “SM reaktive Leistung AC (Summe alle Phasen) (int) [%d VAR]” (se9kmint) {modbus=“se9km:28”}
Number se9km_VARA_int “SM reaktive Leistung Ph.A (int) [%d VAR]” (se9kmint) {modbus=“se9km:29”}
Number se9km_VARB_int “SM reaktive Leistung Ph.B (int) [%d VAR]” (se9kmint) {modbus=“se9km:30”}
Number se9km_VARC_int “SM reaktive Leistung Ph.C (int) [%d VAR]” (se9kmint) {modbus=“se9km:31”}
Number se9km_VARSF_int “SM reaktive Leistung Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:32”}
// Leistungsfaktor
Number se9km_PF_int “SM Leistungsfaktor (MW alle Phasen) (int) [%d cos phi]” (se9kmint) {modbus=“se9km:33”}
Number se9km_PFA_int “SM Lesitungsfaktor Ph.A (int) [%d cos phi]” (se9kmint) {modbus=“se9km:34”}
Number se9km_PFB_int “SM Leistungsfaktor Ph.B (int) [%d cos phi]” (se9kmint) {modbus=“se9km:35”}
Number se9km_PFC_int “SM Lesitungsfaktor Ph.C (int) [%d cos phi]” (se9kmint) {modbus=“se9km:36”}
Number se9km_PFSF_int “SM Leistungsfaktor Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:37”}
// Zaehler Wirkleistung
Number se9km_Wh1_Exp_int “SM Einspeisezaehler Wirkenergie Byte 1 (Summe alle Phasen) (int) [%d Wh]” (se9kmint) {modbus=“se9km:38”}
Number se9km_Wh2_Exp_int “SM Einspeisezaehler Wirkenergie Byte 2 (Summe alle Phasen) (int) [%d Wh]” (se9kmint) {modbus=“se9km:39”}
Number se9km_WhA1_Exp_int “SM Einspeisezaehler Wirkenergie Ph.A Byte 1 (int) [%d Wh]” (se9kmint) {modbus=“se9km:40”}
Number se9km_WhA2_Exp_int “SM Einspeisezaehler Wirkenergie Ph.A Byte 2 (int) [%d Wh]” (se9kmint) {modbus=“se9km:41”}
Number se9km_WhB1_Exp_int “SM Einspeisezaehler Wirkenergie Ph.B Byte 1 (int) [%d Wh]” (se9kmint) {modbus=“se9km:42”}
Number se9km_WhB2_Exp_int “SM Einspeisezaehler Wirkenergie Ph.B Byte 2 (int) [%d Wh]” (se9kmint) {modbus=“se9km:43”}
Number se9km_WhC1_Exp_int “SM Einseisezaehler Wirkenergie Ph.C Byte 1 (int) [%d Wh]” (se9kmint) {modbus=“se9km:44”}
Number se9km_WhC2_Exp_int “SM Einseisezaehler Wirkenergie Ph.C Byte 2 (int) [%d Wh]” (se9kmint) {modbus=“se9km:45”}
Number se9km_Wh1_Imp_int “SM Bezugszaehler Wirkenergie Byte 1 (Summe alle Phasen) (int) [%d Wh]” (se9kmint) {modbus=“se9km:46”}
Number se9km_Wh2_Imp_int “SM Bezugszaehler Wirkenergie Byte 2 (Summe alle Phasen) (int) [%d Wh]” (se9kmint) {modbus=“se9km:47”}
Number se9km_WhA1_Imp_int “SM Bezugszaehler Wirkenergie Ph.A Byte 1 (int) [%d Wh]” (se9kmint) {modbus=“se9km:48”}
Number se9km_WhA2_Imp_int “SM Bezugszaehler Wirkenergie Ph.A Byte 2 (int) [%d Wh]” (se9kmint) {modbus=“se9km:49”}
Number se9km_WhB1_Imp_int “SM Bezugszaehler Wirkenergie Ph.B Byte 1 (int) [%d Wh]” (se9kmint) {modbus=“se9km:50”}
Number se9km_WhB2_Imp_int “SM Bezugszaehler Wirkenergie Ph.B Byte 2 (int) [%d Wh]” (se9kmint) {modbus=“se9km:51”}
Number se9km_WhC1_Imp_int “SM Bezugszaehler Wirkenergie Ph.C Byte 1 (int) [%d Wh]” (se9kmint) {modbus=“se9km:52”}
Number se9km_WhC2_Imp_int “SM Bezugszaehler Wirkenergie Ph.C Byte 2 (int) [%d Wh]” (se9kmint) {modbus=“se9km:53”}
Number se9km_WhSF_int “SM Zaehler Wirkenergie Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:54”}
// Zaehler Scheinleistung
Number se9km_VAh1_Exp_int “SM Einspeisezaehler Scheinnergie Byte 1 (Summe alle Phasen) (int) [%d VAh]” (se9kmint) {modbus=“se9km:55”}
Number se9km_VAh2_Exp_int “SM Einspeisezaehler Scheinnergie Byte 2 (Summe alle Phasen) (int) [%d VAh]” (se9kmint) {modbus=“se9km:56”}
Number se9km_VAhA1_Exp_int “SM Einspeisezaehler Scheinenergie Ph.A Byte 1 (int) [%d VAh]” (se9kmint) {modbus=“se9km:57”}
Number se9km_VAhA2_Exp_int “SM Einspeisezaehler Scheinenergie Ph.A Byte 2 (int) [%d VAh]” (se9kmint) {modbus=“se9km:58”}
Number se9km_VAhB1_Exp_int “SM Einspeisezaehler Scheinenergie Ph.B Byte 1 (int) [%d VAh]” (se9kmint) {modbus=“se9km:59”}
Number se9km_VAhB2_Exp_int “SM Einspeisezaehler Scheinenergie Ph.B Byte 2 (int) [%d VAh]” (se9kmint) {modbus=“se9km:60”}
Number se9km_VAhC1_Exp_int “SM Einseisezaehler Scheinenergie Ph.C Byte 1 (int) [%d VAh]” (se9kmint) {modbus=“se9km:61”}
Number se9km_VAhC2_Exp_int “SM Einseisezaehler Scheinenergie Ph.C Byte 2 (int) [%d VAh]” (se9kmint) {modbus=“se9km:62”}
Number se9km_VAh1_Imp_int “SM Bezugszaehler Scheinenergie Byte 1 (Summe alle Phasen) (int) [%d VAh]” (se9kmint) {modbus=“se9km:63”}
Number se9km_VAh2_Imp_int “SM Bezugszaehler Scheinenergie Byte 2 (Summe alle Phasen) (int) [%d VAh]” (se9kmint) {modbus=“se9km:64”}
Number se9km_VAhA1_Imp_int “SM Bezugszaehler Scheinenergie Ph.A Byte 1 (int) [%d VAh]” (se9kmint) {modbus=“se9km:65”}
Number se9km_VAhA2_Imp_int “SM Bezugszaehler Scheinenergie Ph.A Byte 2 (int) [%d VAh]” (se9kmint) {modbus=“se9km:66”}
Number se9km_VAhB1_Imp_int “SM Bezugszaehler Scheinenergie Ph.B Byte 1 (int) [%d VAh]” (se9kmint) {modbus=“se9km:67”}
Number se9km_VAhB2_Imp_int “SM Bezugszaehler Scheinenergie Ph.B Byte 2 (int) [%d VAh]” (se9kmint) {modbus=“se9km:68”}
Number se9km_VAhC1_Imp_int “SM Bezugszaehler Scheinenergie Ph.C Byte 1 (int) [%d VAh]” (se9kmint) {modbus=“se9km:69”}
Number se9km_VAhC2_Imp_int “SM Bezugszaehler Scheinenergie Ph.C Byte 2 (int) [%d VAh]” (se9kmint) {modbus=“se9km:70”}
Number se9km_VAhSF_int “SM Zaehler Scheinenergie Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:71”}
// Zaehler reaktive Leistung
Number se9km_VARhQ11_int “SM Bezugszaehler Q1 reaktive Energie Byte 1 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:72”}
Number se9km_VARhQ12_int “SM Bezugszaehler Q1 reaktive Energie Byte 2 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:73”}
Number se9km_VARhQ1A1_int “SM Bezugszaehler Q1 reaktive Energie Ph.A Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:74”}
Number se9km_VARhQ1A2_int “SM Bezugszaehler Q1 reaktive Energie Ph.A Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:75”}
Number se9km_VARhQ1B1_int “SM Bezugszaehler Q1 reaktive Energie Ph.B Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:76”}
Number se9km_VARhQ1B2_int “SM Bezugszaehler Q1 reaktive Energie Ph.B Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:77”}
Number se9km_VARhQ1C1_int “SM Bezugszaehler Q1 reaktive Energie Ph.C Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:78”}
Number se9km_VARhQ1C2_int “SM Bezugszaehler Q1 reaktive Energie Ph.C Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:79”}
Number se9km_VARhQ21_int “SM Bezugszaehler Q2 reaktive Energie Byte 1 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:80”}
Number se9km_VARhQ22_int “SM Bezugszaehler Q2 reaktive Energie Byte 2 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:81”}
Number se9km_VARhQ2A1_int “SM Bezugszaehler Q2 reaktive Energie Ph.A Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:82”}
Number se9km_VARhQ2A2_int “SM Bezugszaehler Q2 reaktive Energie Ph.A Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:83”}
Number se9km_VARhQ2B1_int “SM Bezugszaehler Q2 reaktive Energie Ph.B Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:84”}
Number se9km_VARhQ2B2_int “SM Bezugszaehler Q2 reaktive Energie Ph.B Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:85”}
Number se9km_VARhQ2C1_int “SM Bezugszaehler Q2 reaktive Energie Ph.C Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:86”}
Number se9km_VARhQ2C2_int “SM Bezugszaehler Q2 reaktive Energie Ph.C Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:87”}
Number se9km_VARhQ31_int “SM Einpeisezaehler Q3 reaktive Energie Byte 1 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:88”}
Number se9km_VARhQ32_int “SM Einpeisezaehler Q3 reaktive Energie Byte 2 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:89”}
Number se9km_VARhQ3A1_int “SM Einpeisezaehler Q3 reaktive Energie Ph.A Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:90”}
Number se9km_VARhQ3A2_int “SM Einpeisezaehler Q3 reaktive Energie Ph.A Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:91”}
Number se9km_VARhQ3B1_int “SM Einpeisezaehler Q3 reaktive Energie Ph.B Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:92”}
Number se9km_VARhQ3B2_int “SM Einpeisezaehler Q3 reaktive Energie Ph.B Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:93”}
Number se9km_VARhQ3C1_int “SM Einpeisezaehler Q3 reaktive Energie Ph.C Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:94”}
Number se9km_VARhQ3C2_int “SM Einpeisezaehler Q3 reaktive Energie Ph.C Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:95”}
Number se9km_VARhQ41_int “SM Einpeisezaehler Q4 reaktive Energie Byte 1 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:96”}
Number se9km_VARhQ42_int “SM Einpeisezaehler Q4 reaktive Energie Byte 2 (Summe alle Phasen) (int) [%d VARh]” (se9kmint) {modbus=“se9km:97”}
Number se9km_VARhQ4A1_int “SM Einpeisezaehler Q4 reaktive Energie Ph.A Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:98”}
Number se9km_VARhQ4A2_int “SM Einpeisezaehler Q4 reaktive Energie Ph.A Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:99”}
Number se9km_VARhQ4B1_int “SM Einpeisezaehler Q4 reaktive Energie Ph.B Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:100”}
Number se9km_VARhQ4B2_int “SM Einpeisezaehler Q4 reaktive Energie Ph.B Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:101”}
Number se9km_VARhQ4C1_int “SM Einpeisezaehler Q4 reaktive Energie Ph.C Byte 1 (int) [%d VARh]” (se9kmint) {modbus=“se9km:102”}
Number se9km_VARhQ4C2_int “SM Einpeisezaehler Q4 reaktive Energie Ph.C Byte 2 (int) [%d VARh]” (se9kmint) {modbus=“se9km:103”}
Number se9km_VARhSF_int “SM Zaehler reaktive Energie Skalierungsfaktor (int) [%d]” (se9kmint) {modbus=“se9km:104”}
// Event register
Number se9km_Event1_int “SM Eventregister Byte 1 (int) [%d]” (se9kmint) {modbus=“se9km:105”}
Number se9km_Event2_int “SM Eventregister Byte 2 (int) [%d]” (se9kmint) {modbus=“se9km:106”}
By the same logic, the integer values need to be converted to Float. These are the items:
// se9k Modbus Meter Float-Werte
// Typ (Map: 201 = single phase A-N , 202 = split single phase (A-B-N), 203 = Wye (A-B-C-N), 204 = Delta (A-B-C))
String se9km_DID “Netztyp Modbus Meter: [%s]” (se9km)
// Strom
Number se9km_Amp “SM Strom AC [%.2f A]” (se9km)
Number se9km_AmpA “SM Strom Ph.A [%.2f A]” (se9km)
Number se9km_AmpB “SM Strom Ph.B [%.2f A]” (se9km)
Number se9km_AmpC “SM Strom Ph.C [%.2f A]” (se9km)
// Spannung
Number se9km_VoltL “SM Spannung AC (MW alle Phasen) [%.2f V]” (se9km)
Number se9km_VoltA “SM Spannung Ph.A [%.2f A]” (se9km)
Number se9km_VoltB “SM Spannung Ph.B [%.2f A]” (se9km)
Number se9km_VoltC “SM Spannung Ph.C [%.2f A]” (se9km)
// Frequenz
Number se9km_Frequenz “SM Netzfrequenz [%.2f Hz]” (se9km)
// Wirkleistung
Number se9km_Watt “Einspeisepunkt Leistung (Einspeisung negativ) [%.2f W]” (se9km)
Number se9km_Wattp // Bezug
Number se9km_Wattm // Einspeisung
Number se9km_WattA “SM Wirkleistung Ph.A [%.2f W]” (se9km)
Number se9km_WattB “SM Wirkleistung Ph.B [%.2f W]” (se9km)
Number se9km_WattC “SM Wirkleistung Ph.C [%.2f W]” (se9km)
// Scheinleistung
Number se9km_VA “SM Scheinleistung AC (Summe alle Phasen) [%.2f VA]” (se9km)
Number se9km_VAA “SM Scheinleistung Ph.A [%.2f VA]” (se9km)
Number se9km_VAB “SM Scheinleistung Ph.B [%.2f VA]” (se9km)
Number se9km_VAC “SM Scheinleistung Ph.C [%.2f VA]” (se9km)
// reaktive Leistung
Number se9km_VAR “SM reaktive Leistung AC (Summe alle Phasen) [%d VAR]” (se9km)
Number se9km_VARA “SM reaktive Leistung Ph.A [%.2f VAR]” (se9km)
Number se9km_VARB “SM reaktive Leistung Ph.B [%.2f VAR]” (se9km)
Number se9km_VARC “SM reaktive Leistung Ph.C [%.2f VAR]” (se9km)
// Leistungsfaktor
Number se9km_PF “SM Leistungsfaktor (MW alle Phasen) [%.2f cos phi]” (se9km)
Number se9km_PFA “SM Leistungsfaktor Ph.A [%.2f cos phi]” (se9km)
Number se9km_PFB “SM Leistungsfaktor Ph.B [%.2f cos phi]” (se9km)
Number se9km_PFC “SM Leistungsfaktor Ph.C [%.2f cos phi]” (se9km)
// Zaehler Wirkleistung
Number se9km_kWh_Exp “SM Einspeisezaehler Wirkenergie (Summe alle Phasen) [%.3f kWh]” (se9km)
// The next 4 values are some derived values
Number se9km_kWh_Exp_Jahr “SM Einspeisezaehler seit 1.1. [%.3f kWh]” (se9km)
Number se9km_kWh_Exp_neg “SM Einspeisezaehler Wirkenergie (neg) (Summe alle Phasen) [%.3f kWh]” (se9km)
Number se9km_kWh_Exp_neg_Jahr “SM Einspeisezaehler (neg) seit 1.1. [%.3f kWh]” (se9km)
Number se9km_kWh_Exp_Jahr_Offset “Offset SM Einspeisezaehler seit 1.1. [%.3f kWh]” (se9km)
Number se9km_kWhA_Exp “SM Einspeisezaehler Wirkenergie Ph.A [%.3f kWh]” (se9km)
Number se9km_kWhB_Exp “SM Einspeisezaehler Wirkenergie Ph.B [%.3f kWh]” (se9km)
Number se9km_kWhC_Exp “SM Einseisezaehler Wirkenergie Ph.C [%.3f kWh]” (se9km)
Number se9km_kWh_Imp “SM Bezugszaehler Wirkenergie (Summe alle Phasen) [%.3f Wh]” (se9km)
// The next 2 are derived values too
Number se9km_kWh_Imp_Jahr “SM Bezugszaehler seit 1.1. [%.3f kWh]” (se9km)
Number se9km_kWh_Imp_Jahr_Offset “Offset SM Bezugszaehler seit 1.1. [%.3f kWh]” (se9km)
Number se9km_kWhA_Imp “SM Bezugszaehler Wirkenergie Ph.A [%.3f kWh]” (se9km)
Number se9km_kWhB_Imp “SM Bezugszaehler Wirkenergie Ph.B [%.3f kWh]” (se9km)
Number se9km_kWhC_Imp “SM Bezugszaehler Wirkenergie Ph.C [%.3f kWh]” (se9km)
// Zaehler Scheinleistung
Number se9km_VAh_Exp “SM Einspeisezaehler Scheinnergie (Summe alle Phasen) [%.2f kVAh]” (se9km)
Number se9km_VAhA_Exp “SM Einspeisezaehler Scheinenergie Ph.A [%.2f kVAh]” (se9km)
Number se9km_VAhB_Exp “SM Einspeisezaehler Scheinenergie Ph.B [%.2f kVAh]” (se9km)
Number se9km_VAhC_Exp “SM Einseisezaehler Scheinenergie Ph.C [%.2f kVAh]” (se9km)
Number se9km_VAh_Imp “SM Bezugszaehler Scheinenergie (Summe alle Phasen) [%.2f kVAh]” (se9km)
Number se9km_VAhA_Imp “SM Bezugszaehler Scheinenergie Ph.A [%.2f kVAh]” (se9km)
Number se9km_VAhB_Imp “SM Bezugszaehler Scheinenergie Ph.B [%.2f kVAh]” (se9km)
Number se9km_VAhC_Imp “SM Bezugszaehler Scheinenergie Ph.C [%.2f kVAh]” (se9km)
// Zaehler reaktive Leistung
Number se9km_VARhQ1 “SM Bezugszaehler Q1 reaktive Energie (Summe alle Phasen) [%.2f kVARh]” (se9km)
Number se9km_VARhQ1A “SM Bezugszaehler Q1 reaktive Energie Ph.A [%.2f kVARh]” (se9km)
Number se9km_VARhQ1B “SM Bezugszaehler Q1 reaktive Energie Ph.B [%.2f kVARh]” (se9km)
Number se9km_VARhQ1C “SM Bezugszaehler Q1 reaktive Energie Ph.C [%.2f kVARh]” (se9km)
Number se9km_VARhQ2 “SM Bezugszaehler Q2 reaktive Energie (Summe alle Phasen) [%.2f kVARh]” (se9km)
Number se9km_VARhQ2A “SM Bezugszaehler Q2 reaktive Energie Ph.A [%.2f kVARh]” (se9km)
Number se9km_VARhQ2B “SM Bezugszaehler Q2 reaktive Energie Ph.B [%.2f kVARh]” (se9km)
Number se9km_VARhQ2C “SM Bezugszaehler Q2 reaktive Energie Ph.C [%.2f kVARh]” (se9km)
Number se9km_VARhQ3 “SM Einpeisezaehler Q3 reaktive Energie (Summe alle Phasen) [%.2f kVARh]” (se9km)
Number se9km_VARhQ3A “SM Einpeisezaehler Q3 reaktive Energie Ph.A [%.2f kVARh]” (se9km)
Number se9km_VARhQ3B “SM Einpeisezaehler Q3 reaktive Energie Ph.B [%.2f kVARh]” (se9km)
Number se9km_VARhQ3C “SM Einpeisezaehler Q3 reaktive Energie Ph.C [%.2f kVARh]” (se9km)
Number se9km_VARhQ4 “SM Einpeisezaehler Q4 reaktive Energie (Summe alle Phasen) [%.2f kVARh]” (se9km)
Number se9km_VARhQ4A “SM Einpeisezaehler Q4 reaktive Energie Ph.A [%.2f kVARh]” (se9km)
Number se9km_VARhQ4B “SM Einpeisezaehler Q4 reaktive Energie Ph.B [%.2f kVARh]” (se9km)
Number se9km_VARhQ4C “SM Einpeisezaehler Q4 reaktive Energie Ph.C [%.2f kVARh]” (se9km)