Reading Data from Solaredge inverters via Modbus TCP

modbus
solaredge
Tags: #<Tag:0x00007fe057ddf5b0> #<Tag:0x00007fe057ddf2e0>

(Miika Jukka) #38

Sorry to interrupt, @harsch and @tkuehne, but you should be discussing in english so that everybody understands.


(Thomas Kuehne) #39

You are right Mikka. Harald was looking for support to read Modbus data from his SE inverter via Excel.

@Harald, I am still quite lost how your setup actually looks, since you are not saying which tool exactly you are trying to use and how you configured it. “I use an Excel file” is kinda not enough level of detail to make an educated guess.

In principle, you need a system to make the TCP connection to the modbus port on the inverter and have it send the proper read commands to read the registers. And if done correcty, this “just works”, there is nothing you need to set up on the inverter apart from enabling it. the only thing that might be woth trying is to disable and enable modbus on the inverter just before you start data collection to restart the modbus server.

For us folks using openHab, the Modbus binding which comes with openhab is this system, and the configs that I have been discussing above tell the community which registers to read and how to extract and calculate the correct values from the register content.

Best,

Thomas


(Harald Saupper) #40

Hallo @tkuehne,

  I think you probably mixed up two Harald's. You might mean @harsch.

  But this is a very interesting discussion...

Greetings,
Harald


(Harald Schlader) #41

Hi,
sorry
but Problem is already fixed.
There were problems at the modbus tcp kommunikation from Solaredge at my version of their firmware.
Firmware update and then the modbus tcp komm. did work.

Thanks
Harsch


(Alexander Glanzer) #42

Hello Everybody,

im activated Modbus TCP on my SE Inverter.
Then i make copy&paste all Files from this Posting, edit the TCP IP Adress in the Config and hope to get some data. But - Nothing.
And here All Files and a Log there is some Error but i don´t know how to fix them.

modbus.cfg

poll=10000
tcp.se9k.connection=192.168.178.26: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

/etc/openhab2/items/solaredge9k.items

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” }
// 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)

/etc/openhab2/rules/solaredge9k.rules

import java.lang.Math
import java.lang.Double
rule se9k_Amps_add
when Item se9k_Amps_int received update
then
var Double SF = (se9k_AmpSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_Amps_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Stromerzeugung gesamt: ", value)
postUpdate(se9k_Amps, result)
end
rule se9k_AmpA_add
when Item se9k_AmpA_int received update
then
var Double SF = (se9k_AmpSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_AmpA_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Strom Phase A: ", value)
postUpdate(se9k_AmpA, result)
end
rule se9k_AmpB_add
when Item se9k_AmpB_int received update
then
var Double SF = (se9k_AmpSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_AmpB_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Strom Phase B: ", value)
postUpdate(se9k_AmpB, result)
end
rule se9k_AmpC_add
when Item se9k_AmpC_int received update
then
var Double SF = (se9k_AmpSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_AmpC_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Strom Phase C: ", value)
postUpdate(se9k_AmpC, result)
end
rule se9k_VoltA_add
when Item se9k_VoltA_int received update
then
var Double SF = (se9k_VoltSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_VoltA_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Spannung Phase A: ", value)
postUpdate(se9k_VoltA, result)
end
rule se9k_VoltB_add
when Item se9k_VoltB_int received update
then
var Double SF = (se9k_VoltSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_VoltB_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Spannung Phase B: ", value)
postUpdate(se9k_VoltB, result)
end
rule se9k_VoltC_add
when Item se9k_VoltC_int received update
then
var Double SF = (se9k_VoltSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_VoltC_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Spannung Phase C: ", value)
postUpdate(se9k_VoltC, result)
end
rule se9k_Watt_add
when Item se9k_Watt_int received update
then
var Double power = (se9k_Watt_int.state as DecimalType).doubleValue
if (power > 32767) power = power-(65536).doubleValue
var Double SF = (se9k_WattSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = power * Math::pow(10,SF)
logInfo("[se9k] Watt: ", result.toString)
postUpdate(se9k_Watt, result)
end
rule se9k_Hz_add
when Item se9k_Hz_int received update
then
var Double SF = (se9k_HzSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_Hz_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Netzfrequenz: ", value)
postUpdate(se9k_Hz, result)
end
rule se9k_VA_add
when Item se9k_VA_int received update
then
var Double VA = (se9k_VA_int.state as DecimalType).doubleValue
if (VA > 32767) VA = VA-(65536).doubleValue
var Double SF = (se9k_VoltSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = VA * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Scheinleistung: ", value)
postUpdate(se9k_VA, result)
end
rule se9k_VAR_add
when Item se9k_VAR_int received update
then
var Double VAR = (se9k_VAR_int.state as DecimalType).doubleValue
if (VAR > 32767) VAR = VAR-(65536).doubleValue
var Double SF = (se9k_VARSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = VAR * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR reaktive Leistung: ", value)
postUpdate(se9k_VAR, result)
end
rule se9k_PF_add
when Item se9k_PF_int received update
then
var Double PF = (se9k_PF_int.state as DecimalType).doubleValue
if (PF > 32767) PF = PF-(65536).doubleValue
var Double SF = (se9k_PFSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = PF * Math::pow(10,SF) /100
var String value = result.toString
logDebug("SE9K WR Leistungsfaktor: ", value)
postUpdate(se9k_PF, result)
end
rule se9k_kWh_add
when Item se9k_Wh2_int received update
then
var Double SF = (se9k_WhSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double resultWh = ((se9k_Wh1_int.state as DecimalType * 65536).doubleValue + (se9k_Wh2_int.state as DecimalType).doubleValue) * Math::pow(10,SF)
var Double Offset = (se9k_kWh_Jahr_Offset.state as DecimalType).doubleValue * 1000.0
var Double Jahr = (resultWh - Offset) / 1000.0 
var String valueWh= resultWh.toString
var String wrjahr = Jahr.toString
logInfo("[se9k]  Wh: ", valueWh)
logInfo("SE9K WR Erzeugung seit 1.1. kWh: ", wrjahr)
var Double result = resultWh / 1000.0
postUpdate(se9k_kWh, result)
postUpdate(se9k_kWh_Jahr, Jahr)
end
rule se9k_DCA_add
when Item se9k_DCA_int received update
then
var Double SF = (se9k_DCASF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_DCA_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Strom DC: ", value)
postUpdate(se9k_DCA, result)
end
rule se9k_DCV_add
when Item se9k_DCV_int received update
then
var Double SF = (se9k_DCVSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = (se9k_DCV_int.state as DecimalType).doubleValue * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Spannung DC: ", value)
postUpdate(se9k_DCV, result)
end
rule se9k_DCW_add
when Item se9k_DCW_int received update
then
var Double DCW= (se9k_DCW_int.state as DecimalType).doubleValue
if (DCW > 32767) DCW = DCW-(65536).doubleValue
var Double SF = (se9k_DCWSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = DCW * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K WR Leistung DC: ", value)
postUpdate(se9k_DCW, result)
end
rule se9k_THS_add
when Item se9k_THS_int received update
then
var Double THS= (se9k_THS_int.state as DecimalType).doubleValue
if (THS > 32767) THS = THS-(65536).doubleValue
var Double SF = (se9k_THSSF_int.state as DecimalType).doubleValue
if (SF > 32767) SF = SF-(65536).doubleValue
var Double result = THS * Math::pow(10,SF)
var String value = result.toString
logDebug("SE9K Temperatur Kuehlkoerper: ", value)
postUpdate(se9k_THS, result)
end
rule se9k_Status_map
when Item se9k_Status_int received update
then
var String str="-"
if (se9k_Status_int.state == 1) str = "AUS"
if (se9k_Status_int.state == 2) str = "Nachtmodus"
if (se9k_Status_int.state == 4) str = “AN/Produktion”
logDebug("Status Wechselrichter:  ", str)
postUpdate(se9k_Status, str)
end
rule se9k_DID_map
when Item se9k_DID_int received update
then
var String str="-"
if (se9k_DID_int.state == 101) str = "einphasig"
if (se9k_DID_int.state == 102) str = "Split phase"
if (se9k_DID_int.state == 103) str = “dreiphasig”
logDebug("Status Wechselrichter:  ", str)
postUpdate(se9k_DID, str)
end
rule se9k_Status__Vendor_map
when Item se9k_Status_vendor_int received update
then
var String str= se9k_Status_Vendor_int.state.toString
logDebug("Status Wechselrichter (Fehlermeldungen):  ", str)
postUpdate(se9k_Status_Vendor, str)
end

/etc/openhab2/sitemaps/solaredge9k.sitemap

sitemap solaredge9k label="solaredge9k" {

    Text item=se9k_Watt {

      	Frame label="Wechselrichter SE9k" {
                Text item=se9k_Watt
                Text item=se9k_kWh
                Text item=se9k_kWh_Jahr
      		Setpoint item=se9k_kWh_Jahr_Offset  minValue=-100000 maxValue=100000 step=0.1
                Text item=se9k_Hz
      		Text item=se9k_VA
                Text item=se9k_VAR
                Text item=se9k_PF
      		Text item=se9k_Amps
      		Text item=se9k_AmpA
                Text item=se9k_AmpB
                Text item=se9k_AmpC
                Text item=se9k_VoltA
                Text item=se9k_VoltB
                Text item=se9k_VoltC
                Text item=se9k_DCA
                Text item=se9k_DCV
                Text item=se9k_DCW
                Text item=se9k_THS
                Text item=se9k_Status
                Text item=se9k_Status_Vendor
      	}
      	Group item=se9kint label="Werte SE9K Wechselrichter (int)"
      }
}

log:

retrieve item 'se9k_kWh_Jahr_Offset' for widget org.eclipse.smarthome.model.sitemap.Setpoint
2018-10-27 10:48:10.774 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.779 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Hz' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.783 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Hz' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.787 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Hz' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.791 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.795 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.800 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.805 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.810 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.815 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VAR' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.820 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VAR' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.826 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VAR' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.831 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.836 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_PF' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.840 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_PF' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.842 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_PF' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.845 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.847 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Amps' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.850 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Amps' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.853 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Amps' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.855 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.858 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.861 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.864 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.866 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.869 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpB' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.872 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpB' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.874 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpB' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.877 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.880 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpC' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.883 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpC' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.885 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_AmpC' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.888 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.891 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.893 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.896 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.900 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.902 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltB' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.905 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltB' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.908 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltB' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.910 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.913 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltC' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.915 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltC' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.918 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_VoltC' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.921 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.923 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.926 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.928 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCA' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.930 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.933 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCV' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.935 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCV' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.938 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCV' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.941 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.943 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCW' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.946 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCW' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.948 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_DCW' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.951 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.954 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_THS' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.957 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_THS' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.959 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_THS' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.961 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.964 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Status' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.966 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Status' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.968 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Status' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.971 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.973 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Status_Vendor' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.976 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Status_Vendor' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.978 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9k_Status_Vendor' for widget org.eclipse.smarthome.model.sitemap.Text
2018-10-27 10:48:10.981 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Group
2018-10-27 10:48:10.983 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9kint' for widget org.eclipse.smarthome.model.sitemap.Group
2018-10-27 10:48:10.985 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9kint' for widget org.eclipse.smarthome.model.sitemap.Group
2018-10-27 10:48:10.988 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'se9kint' for widget org.eclipse.smarthome.model.sitemap.Group


(Miika Jukka) #43

Please learn to use code fences properly.


(Alexander Glanzer) #44

Sorry! Edit Done!


(Thomas Kuehne) #45

Those errors might all just be related to the fact that you just created the items. Can you please check that you installed and enabled the modbus (v1) binding?


(Rossko57) #46

The error is telling you that your sitemap includes Items like se9k_AmpA but that they can’t be found in the system.
There’ll be some error in your .items file preventing all or some of it from being read.
Missing bracket or quote maybe?


(Alexander Glanzer) #47

Hello,

im installed the Modbus Binding over the Paper UI

Im using an SE4K inverter can be there the Problem ?


(Rossko57) #48

There are two modbus bindings, the old v1 and the new v2 (which will only show up in openHAB versions 2.4 onwards)
Choose carefully, they are not compatible at all.

The error log you have provided is to do with Items and sitemap, not bindings.


(Alexander Glanzer) #49

OK and where i can get v1 ?


(Thomas Kuehne) #50

In the PaperUI, go to Configuration -> System -> Add-On Management.

There is a switch called „Include legacy v1.x bindings“ and turn that on.This will make the V1 modbus binding show up and give you the option to install it (remove the V2 binding while you‘re at it).


(Alexander Glanzer) #51

thanks, changed from v2 to v1
But now i got a new error message:

2018-10-27 13:21:44.670 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/3 error: connect timed out. Connection TCPMasterConnection@15a3c17[socket=Socket[unconnected]]. Endpoint ModbusTCPSlaveEndpoint@1166595[address=192.168.178.26,port=502]
2018-10-27 13:21:45.017 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/3 error: Connection refused (Connection refused). Connection TCPMasterConnection@15a3c17[socket=Socket[unconnected]]. Endpoint ModbusTCPSlaveEndpoint@2eb250[address=192.168.178.26,port=502]
2018-10-27 13:21:45.586 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 2/3 error: connect timed out. Connection TCPMasterConnection@15a3c17[socket=Socket[unconnected]]. Endpoint ModbusTCPSlaveEndpoint@2eb250[address=192.168.178.26,port=502]
2018-10-27 13:21:52.486 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'solaredge9k.items' has errors, therefore ignoring it: [3,19]: missing EOF at '“'

2018-10-27 13:21:53.527 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'solaredge9k.items' has errors, therefore ignoring it: [3,19]: missing EOF at '“'

2018-10-27 13:21:56.504 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - connect try 1/3 error: connect timed out. Connection TCPMasterConnection@15a3c17[socket=Socket[unconnected]]. Endpoint ModbusTCPSlaveEndpoint@1166595[address=192.168.178.26,port=502]

(Thomas Kuehne) #52

There are some syntax errors in your items file.

Please check the configuration for your modbus target for ip adress and port, the connect errors say that it cannot connect. Also make sure that you have no other active modbus connections to the inverter, it can only handle one. There is a connection refused message that seems to indicate that the modbus server in the inverter is busy. There is no 3/3 error, which seems to indicate the the connections works after all. I occasionally get those errors on the first or second try as well sometimes.


(Alexander Glanzer) #53

now, connection is fixed (restart the inverter)
Syntax Errors fixed, there was some false qutoe types in the files .
Now i get Data from the Inverter HAPPY !
Two more Questions, Log 1: What happens by sitemap file ?

==> /var/log/openhab2/openhab.log <==

2018-10-28 09:58:38.878 [INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'solaredge9k.sitemap', using it anyway:

Linkable widget should contain either only frames or none at all

2018-10-28 09:58:38.885 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'solaredge9k.sitemap'

2018-10-28 09:58:39.961 [INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'solaredge9k.sitemap', using it anyway:

Linkable widget should contain either only frames or none at all

2018-10-28 09:58:39.974 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'solaredge9k.sitemap'

Log 2:
How can i fix that ?

2018-10-28 10:01:21.765 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'se9k_kWh_add': Could not cast NULL to org.eclipse.smarthome.core.library.types.DecimalType; line 136, column 22, length 41

(Thomas Kuehne) #54

This error is mostl likely a cosmetic error that appears when you upload a new sitemap and the parser tries to load it when the filesystem isn‘t fully synced.


(Alexander Glanzer) #55

Ok Thank you very much =)
One more Question - sorry :wink:
Can i See anywhere the Daily generated Power, Weekly, Monthly ?
At the moment i can see only “WR Erzeugung seit Jahresanfang” ?


(Thomas Kuehne) #56

No, you woumd have build those functions yourself and i.e save the values of the meter esch day at midnight for daily, at midnight on Monday for weekly and midnight of tje firdt of the month for montgly and then simply build the differenced whenever you read the meter. I didn‘t do that because the solaredge monitoringportal is quite good for that. I was more focused on getting the currently generated power w
quadi instantaneous so that i could steer my dim loads.


(Sven Witterstein) #57

While i am still intrigued by openHAB (it sometimes does something… hehe, but for now it only loses most “things” all the time) and overlooked the “don’t use new modbus binding for 2.x”* part and was close to giving up on getting the three simple live figures in my SE9k+WND-Modbus-Meter: Production, House Consumption, Grid +/- to do exactly the same as Thomas, i.e. turning consumers on if excess is available (“hysteresis post”)…

I thought this would be a standard thing to do and took two days to no result other then I can now watch the SE-monitoring in the smartphone and then opening another app to remotely but manually flick a switch…

WHERE would I find the info how with the modbus 2 binding the whole setup should be ported, I am willing to help on that… maybe not so soon but come winter …