OpenHAB4 und Huawei SUN2000-5KTL-M1 geht nicht

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
toki
Beiträge: 6
Registriert: 24. Sep 2017 16:24
Answers: 0

OpenHAB4 und Huawei SUN2000-5KTL-M1 geht nicht

Beitrag von toki »

Hallo zusammen,


ich habe über das FusionSolar Portal Modbus TCP auf dem Wechselrichter aktiviert. Ich kriege auch grundsätzlich eine Verbindung auf Port 502 hin. Über das Modbus Addon habe ich einiges eingerichtet:

TCP Slave:

Code: Alles auswählen

UID: modbus:tcp:PV-Anlage
label: Modbus TCP Slave
thingTypeUID: modbus:tcp
configuration:
  rtuEncoded: false
  timeBetweenTransactionsMillis: 15000
  connectMaxTries: 1
  reconnectAfterMillis: 0
  port: 502
  timeBetweenReconnectMillis: 100
  host: wechselrichter.fritz.box
  connectTimeoutMillis: 10000
  afterConnectionDelayMillis: 0
  id: 1
  enableDiscovery: false
Modbus Poller:

Code: Alles auswählen

UID: modbus:poller:PV-Anlage:slave105holding
label: slave105holding
thingTypeUID: modbus:poller
configuration:
  start: 32064
  length: 31
  refresh: 5000
  maxTries: 3
  cacheMillis: 50
  type: holding
bridgeUID: modbus:tcp:PV-Anlage
Modbus Data:

Code: Alles auswählen

UID: modbus:data:slave105holding:PV_Input_power
label: PV Input Power
thingTypeUID: modbus:data
configuration:
  readValueType: int32
  readTransform: JS(divide1000.js)
  writeTransform: default
  readStart: "32064"
  updateUnchangedValuesEveryMillis: 5000000
  writeMultipleEvenWithSingleRegisterOrCoil: false
  writeMaxTries: 3
bridgeUID: modbus:poller:PV-Anlage:slave105holding
channels:
  - id: number
    channelTypeUID: modbus:number-type
    label: Value as Number
    description: Number item channel
    configuration: {}
  - id: switch
    channelTypeUID: modbus:switch-type
    label: Value as Switch
    description: Switch item channel
    configuration: {}
  - id: contact
    channelTypeUID: modbus:contact-type
    label: Value as Contact
    description: Contact item channel
    configuration: {}
  - id: dimmer
    channelTypeUID: modbus:dimmer-type
    label: Value as Dimmer
    description: Dimmer item channel
    configuration: {}
  - id: datetime
    channelTypeUID: modbus:datetime-type
    label: Value as DateTime
    description: DateTime item channel
    configuration: {}
  - id: string
    channelTypeUID: modbus:string-type
    label: Value as String
    description: String item channel
    configuration: {}
  - id: rollershutter
    channelTypeUID: modbus:rollershutter-type
    label: Value as Rollershutter
    description: Rollershutter item channel
    configuration: {}
  - id: lastReadSuccess
    channelTypeUID: modbus:last-successful-read-type
    label: Last Successful Read
    description: Date of last read
    configuration: {}
  - id: lastReadError
    channelTypeUID: modbus:last-erroring-read-type
    label: Last Erroring Read
    description: Date of last read error
    configuration: {}
  - id: lastWriteSuccess
    channelTypeUID: modbus:last-successful-write-type
    label: Last Successful Write
    description: Date of last write
    configuration: {}
  - id: lastWriteError
    channelTypeUID: modbus:last-erroring-write-type
    label: Last Erroring Write
    description: Date of last write error
    configuration: {}

Soweit so gut, die Things sind allesamt online. Wenn ich nun ein Item hinzufüge, dann kriege ich als Wert aber nur NULL zurückgeliefert und leider meckert er auch einige Fehler im Logfile an. Hat jemand einen Tipp?


Fehlermeldungen

Code: Alles auswählen

2024-02-10 09:50:09.129 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Execution of scheduled (5000ms) poll task BasicPollTask [getEndpoint=ModbusIPSlaveEndpoint [address=wechselrichter.fritz.box, port=502], request=ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32064, length=31, maxTries=3], getResultCallback()=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@2c11578f, getFailureCallback()=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@2c11578f] failed unexpectedly. Ignoring exception, polling again according to poll interval.
java.lang.NullPointerException: Cannot invoke "java.util.Map.put(Object, Object)" because "this.global" is null
	at com.oracle.truffle.js.scriptengine.GraalJSBindings.put(GraalJSBindings.java:130) ~[?:?]
	at javax.script.SimpleScriptContext.setAttribute(SimpleScriptContext.java:246) ~[java.scripting:?]
	at org.openhab.core.automation.module.script.ScriptTransformationService.transform(ScriptTransformationService.java:187) ~[?:?]
	at org.openhab.binding.modbus.internal.SingleValueTransformation.transform(SingleValueTransformation.java:140) ~[?:?]
	at org.openhab.binding.modbus.internal.CascadedValueTransformationImpl.transform(CascadedValueTransformationImpl.java:50) ~[?:?]
	at org.openhab.binding.modbus.internal.ValueTransformation.transformState(ValueTransformation.java:48) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.lambda$16(ModbusDataThingHandler.java:999) ~[?:?]
	at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.processUpdatedValue(ModbusDataThingHandler.java:967) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.onRegisters(ModbusDataThingHandler.java:845) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.lambda$11(ModbusDataThingHandler.java:799) ~[?:?]
	at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.onReadResult(ModbusDataThingHandler.java:799) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.lambda$2(ModbusPollerThingHandler.java:144) ~[?:?]
	at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.notifyChildren(ModbusPollerThingHandler.java:142) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.handleResult(ModbusPollerThingHandler.java:88) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.handle(ModbusPollerThingHandler.java:105) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusLibraryWrapper.invokeCallbackWithResponse(ModbusLibraryWrapper.java:332) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.lambda$1(ModbusManagerImpl.java:216) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.SimpleStopWatch.timeRunnable(SimpleStopWatch.java:152) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.accept(ModbusManagerImpl.java:216) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.accept(ModbusManagerImpl.java:1) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl.executeOperation(ModbusManagerImpl.java:613) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$ModbusCommunicationInterfaceImpl.lambda$1(ModbusManagerImpl.java:810) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:840) [?:?]
2024-02-10 09:50:24.501 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Execution of scheduled (10000ms) poll task BasicPollTask [getEndpoint=ModbusIPSlaveEndpoint [address=wechselrichter.fritz.box, port=502], request=ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=30073, length=10, maxTries=3], getResultCallback()=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@31dc4737, getFailureCallback()=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@31dc4737] failed unexpectedly. Ignoring exception, polling again according to poll interval.
java.lang.NullPointerException: Cannot invoke "java.util.Map.put(Object, Object)" because "this.global" is null
	at com.oracle.truffle.js.scriptengine.GraalJSBindings.put(GraalJSBindings.java:130) ~[?:?]
	at javax.script.SimpleScriptContext.setAttribute(SimpleScriptContext.java:246) ~[java.scripting:?]
	at org.openhab.core.automation.module.script.ScriptTransformationService.transform(ScriptTransformationService.java:187) ~[?:?]
	at org.openhab.binding.modbus.internal.SingleValueTransformation.transform(SingleValueTransformation.java:140) ~[?:?]
	at org.openhab.binding.modbus.internal.CascadedValueTransformationImpl.transform(CascadedValueTransformationImpl.java:50) ~[?:?]
	at org.openhab.binding.modbus.internal.ValueTransformation.transformState(ValueTransformation.java:48) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.lambda$16(ModbusDataThingHandler.java:999) ~[?:?]
	at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.processUpdatedValue(ModbusDataThingHandler.java:967) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.onRegisters(ModbusDataThingHandler.java:845) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.lambda$11(ModbusDataThingHandler.java:799) ~[?:?]
	at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.onReadResult(ModbusDataThingHandler.java:799) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.lambda$2(ModbusPollerThingHandler.java:144) ~[?:?]
	at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.notifyChildren(ModbusPollerThingHandler.java:142) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.handleResult(ModbusPollerThingHandler.java:88) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.handle(ModbusPollerThingHandler.java:105) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusLibraryWrapper.invokeCallbackWithResponse(ModbusLibraryWrapper.java:332) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.lambda$1(ModbusManagerImpl.java:216) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.SimpleStopWatch.timeRunnable(SimpleStopWatch.java:152) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.accept(ModbusManagerImpl.java:216) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.accept(ModbusManagerImpl.java:1) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl.executeOperation(ModbusManagerImpl.java:613) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$ModbusCommunicationInterfaceImpl.lambda$1(ModbusManagerImpl.java:810) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:840) [?:?]
2024-02-10 09:50:40.411 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Execution of scheduled (5000ms) poll task BasicPollTask [getEndpoint=ModbusIPSlaveEndpoint [address=wechselrichter.fritz.box, port=502], request=ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32064, length=31, maxTries=3], getResultCallback()=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@2c11578f, getFailureCallback()=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@2c11578f] failed unexpectedly. Ignoring exception, polling again according to poll interval.
java.lang.NullPointerException: Cannot invoke "java.util.Map.put(Object, Object)" because "this.global" is null
	at com.oracle.truffle.js.scriptengine.GraalJSBindings.put(GraalJSBindings.java:130) ~[?:?]
	at javax.script.SimpleScriptContext.setAttribute(SimpleScriptContext.java:246) ~[java.scripting:?]
	at org.openhab.core.automation.module.script.ScriptTransformationService.transform(ScriptTransformationService.java:187) ~[?:?]
	at org.openhab.binding.modbus.internal.SingleValueTransformation.transform(SingleValueTransformation.java:140) ~[?:?]
	at org.openhab.binding.modbus.internal.CascadedValueTransformationImpl.transform(CascadedValueTransformationImpl.java:50) ~[?:?]
	at org.openhab.binding.modbus.internal.ValueTransformation.transformState(ValueTransformation.java:48) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.lambda$16(ModbusDataThingHandler.java:999) ~[?:?]
	at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.processUpdatedValue(ModbusDataThingHandler.java:967) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.onRegisters(ModbusDataThingHandler.java:845) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.lambda$11(ModbusDataThingHandler.java:799) ~[?:?]
	at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
	at org.openhab.binding.modbus.internal.handler.ModbusDataThingHandler.onReadResult(ModbusDataThingHandler.java:799) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.lambda$2(ModbusPollerThingHandler.java:144) ~[?:?]
	at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:807) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.notifyChildren(ModbusPollerThingHandler.java:142) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.handleResult(ModbusPollerThingHandler.java:88) ~[?:?]
	at org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator.handle(ModbusPollerThingHandler.java:105) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusLibraryWrapper.invokeCallbackWithResponse(ModbusLibraryWrapper.java:332) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.lambda$1(ModbusManagerImpl.java:216) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.SimpleStopWatch.timeRunnable(SimpleStopWatch.java:152) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.accept(ModbusManagerImpl.java:216) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$PollOperation.accept(ModbusManagerImpl.java:1) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl.executeOperation(ModbusManagerImpl.java:613) ~[?:?]
	at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$ModbusCommunicationInterfaceImpl.lambda$1(ModbusManagerImpl.java:810) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:840) [?:?]

Dongle firmware V100R001C00SPC125
Inverter (SUN2000-5KTL-M1) Firmware: V100R001C00SPC153


Vielen Dank! :)

Benutzeravatar
udo1toni
Beiträge: 15715
Registriert: 11. Apr 2018 18:05
Answers: 256
Wohnort: Darmstadt

Re: OpenHAB4 und Huawei SUN2000-5KTL-M1 geht nicht

Beitrag von udo1toni »

Mein erster Tipp wäre, mal die nackte IP einzutragen, statt des intern aufgelösten fqdn, meiner Erfahrung nach funktioniert das mit der FRITZ!Box nur, wenn die FRITZ!Box gerade Lust dazu hat.

Dass die Things Online angezeigt werden, ist leider kein sicherer Indikator, dass die Kommunikation auch ordnungsgemäß funktioniert, teilweise (je nach Binding...) kann das auch bedeuten: "Die Konfiguration scheint soweit in Ordnung zu sein". Z.B. bei mqtt ist ein Thing solange Online, bis man das LWT passend einträgt. Und anschließend muss das LWT auch noch den passenden Status haben :) damit die Anzeige auf Offline springt.
Bei Modbus hab ich aber keine Ahnung, wie "echt" diese Anzeige ist.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.2.3 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

magarethe
Beiträge: 68
Registriert: 18. Dez 2019 22:16
Answers: 0

Re: OpenHAB4 und Huawei SUN2000-5KTL-M1 geht nicht

Beitrag von magarethe »

Hallo Forum,

ich weiss, das das Thema vielleicht längst erledigt ist. Aber ich poste hier trotzdem mal meine Konfig-Files für meine SUN2000
Kleiner Hinweis noch zum Dongle, der lieferte erst nach einem Firmware-Update sauber die Daten. Hier wurde mir durch den Herstellersupport geholfen. (fri.energy)


sun2000.things

Code: Alles auswählen

//Choose the bridge you want to use and delete the other one.
Bridge modbus:tcp:localhostTCP "SUN2000" @ "location" [ host="HIER DEINE IP DER SUN2000", port=502, id=1 ]{



Bridge poller slave101holding [ start=30073, length=10, refresh=10000, type="holding" ]{
    
        Thing data Rated_power                      [ readStart="30073", readValueType="uint32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_active_power             [ readStart="30075", readValueType="uint32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_apparent_power           [ readStart="30077", readValueType="uint32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_reactive_power_fed       [ readStart="30079", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_reactive_power_absorbed  [ readStart="30081", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]

   }

Bridge poller slave102holding [ start=32000, length=1, refresh=10000, type="holding" ]{


        Thing data Standalone_tele_indicationbit0          [ readStart="32000.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit1          [ readStart="32000.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit2          [ readStart="32000.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Standalone_tele_indicationbit3          [ readStart="32000.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit4          [ readStart="32000.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit5          [ readStart="32000.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit6          [ readStart="32000.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit7          [ readStart="32000.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit8          [ readStart="32000.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit9          [ readStart="32000.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit10         [ readStart="32000.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit11         [ readStart="32000.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit12         [ readStart="32000.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit13         [ readStart="32000.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit14         [ readStart="32000.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit15         [ readStart="32000.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

   }

Bridge poller slave102aholding [ start=32002, length=1, refresh=10000, type="holding" ]{
    
        Thing data Operating_statusbit0                 [ readStart="32002.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Operating_statusbit1                 [ readStart="32002.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Operating_statusbit2                 [ readStart="32002.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]  

   }

Bridge poller slave103holding [ start=32008, length=1, refresh=10000, type="holding" ]{

        
        Thing data Alarm_1bit0                          [ readStart="32008.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit1                          [ readStart="32008.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit2                          [ readStart="32008.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit3                          [ readStart="32008.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit4                          [ readStart="32008.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit5                          [ readStart="32008.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit6                          [ readStart="32008.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit7                          [ readStart="32008.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit8                          [ readStart="32008.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit9                          [ readStart="32008.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit10                         [ readStart="32008.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit11                         [ readStart="32008.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit12                         [ readStart="32008.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit13                         [ readStart="32008.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit14                         [ readStart="32008.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit15                         [ readStart="32008.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

    }

Bridge poller slave103aholding [ start=32009, length=1, refresh=10000, type="holding" ]{        
        
        Thing data Alarm_2bit0                          [ readStart="32009.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit1                          [ readStart="32009.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit2                          [ readStart="32009.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit3                          [ readStart="32009.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit4                          [ readStart="32009.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit5                          [ readStart="32009.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit6                          [ readStart="32009.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit7                          [ readStart="32009.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit8                          [ readStart="32009.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit9                          [ readStart="32009.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit10                         [ readStart="32009.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit11                         [ readStart="32009.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit12                         [ readStart="32009.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit13                         [ readStart="32009.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit14                         [ readStart="32009.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit15                         [ readStart="32009.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

    } 

//Bridge poller slave103bholding [ start=32010, length=1, refresh=10000, type="holding" ]{        
                
        
    //    Thing data Alarm_3bit0                          [ readStart="320010.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit1                          [ readStart="320010.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit2                          [ readStart="320010.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit3                          [ readStart="320010.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit4                          [ readStart="320010.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit5                          [ readStart="320010.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit6                          [ readStart="320010.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit7                          [ readStart="320010.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit8                          [ readStart="320010.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit9                          [ readStart="320010.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit10                         [ readStart="320010.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit11                         [ readStart="320010.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit12                         [ readStart="320010.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit13                         [ readStart="320010.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit14                         [ readStart="320010.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit15                         [ readStart="320010.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

//   }

Bridge poller slave104holding [ start=32016, length=8, refresh=10000, type="holding" ]{
    
        Thing data Pv_1_Voltage                    [ readStart="32016", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Pv_1_Current                    [ readStart="32017", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Pv_2_Voltage                    [ readStart="32018", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Pv_2_Current                    [ readStart="32019", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_3_Voltage                    [ readStart="32020", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_3_Current                    [ readStart="32021", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_4_Voltage                    [ readStart="32022", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_4_Current                    [ readStart="32023", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]

   }

Bridge poller slave105holding [ start=32064, length=31, refresh=10000, type="holding" ]{
    
        Thing data Input_power                    [ readStart="32064", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Uab                            [ readStart="32066", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Ubc                            [ readStart="32067", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Uca                            [ readStart="32068", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Ua                             [ readStart="32069", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Ub                             [ readStart="32070", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Uc                             [ readStart="32071", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data La                             [ readStart="32072", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Lb                             [ readStart="32074", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Lc                             [ readStart="32076", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_peak_of_current_day     [ readStart="32078", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_power                   [ readStart="32080", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Reactive_power                 [ readStart="32082", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Power_factor                   [ readStart="32084", readValueType="int16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Frequency                      [ readStart="32085", readValueType="uint16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Inverter_efficiency            [ readStart="32086", readValueType="uint16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Cabinet_temperature            [ readStart="32087", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Insulation_resistance          [ readStart="32088", readValueType="uint16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Device_status                  [ readStart="32089", readValueType="uint16",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Fault_code                     [ readStart="32090", readValueType="uint16",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Start_up_time                  [ readStart="32091", readValueType="uint32",readTransform="JS(divide1.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Shutdown_time                  [ readStart="32093", readValueType="uint32",readTransform="JS(divide1.js)",updateUnchangedValuesEveryMillis="5000000" ]

    }

Bridge poller slave106holding [ start=32106, length=2, refresh=10000, type="holding" ]{
    
        Thing data E_total                       [ readStart="32106", readValueType="uint32",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]

    }

Bridge poller slave107holding [ start=32114, length=2, refresh=10000, type="holding" ]{            
        
        Thing data E_day                         [ readStart="32114", readValueType="uint32",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]  

    }

Bridge poller slave108holding [ start=40122, length=6, refresh=10000, type="holding" ]{
    
        Thing data Reactive_power_compensation_pf [ readStart="40122", readValueType="int16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Reactive_power_compensation_qs [ readStart="40123", readValueType="int16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_power_derating_percent  [ readStart="40125", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_power_derating_fixed    [ readStart="40126", readValueType="uint32",readTransform="JS(divide1.js)",updateUnchangedValuesEveryMillis="5000000" ]
    }


}
sun2000.items

Code: Alles auswählen


//*********************
//Groups for model
//*********************
Group e_PV_System_1         (e_Inverters, L_r02)                ["Equipment"]
Group e_PV_Inverter_1       (e_PV_System_1)                     ["Inverter"]
Group e_PV_Inverter_2       (e_PV_System_1)                     ["Inverter"]
Group e_PV_Battery_1        (e_PV_Inverter_1)                   ["Battery"]
Group e_PV_Powermeter       (e_PV_Inverter_1)                   ["Sensor"]


//*********************
//Inverter 1
//*********************
Number  I_PV_Inv1_Rated_power                                                                                                         { channel="modbus:data:localhostTCP:slave101holding:Rated_power:number" }
Number  I_PV_Inv1_Maximum_active_power                                                                                                { channel="modbus:data:localhostTCP:slave101holding:Maximum_active_power:number" }
Number  I_PV_Inv1_Maximum_apparent_power                                                                                              { channel="modbus:data:localhostTCP:slave101holding:Maximum_apparent_power:number" }
Number  I_PV_Inv1_Maximum_reactive_power_fed                                                                                          { channel="modbus:data:localhostTCP:slave101holding:Maximum_reactive_power_fed:number" }
Number  I_PV_Inv1_Maximum_reactive_power_absorbed                                                                                     { channel="modbus:data:localhostTCP:slave101holding:Maximum_reactive_power_absorbed:number" }



Number:ElectricPotential    I_PV_Inv1_Pv1Voltage            "String 1 Spannung[%.1f V]"             <energy>        (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave104holding:Pv_1_Voltage:number" }
Number:ElectricCurrent      I_PV_Inv1_Pv1Current            "String 1 Strom[%.2f A]"                <energy>        (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Current"] { channel="modbus:data:localhostTCP:slave104holding:Pv_1_Current:number" }
Number:ElectricPotential    I_PV_Inv1_Pv2Voltage            "String 2 Spannung[%.1f V]"             <energy>        (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave104holding:Pv_2_Voltage:number" }
Number:ElectricCurrent      I_PV_Inv1_Pv2Current            "String 2 Strom[%.2f A]"                <energy>        (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Current"] { channel="modbus:data:localhostTCP:slave104holding:Pv_2_Current:number" }

Number:Power                I_PV_Inv1_InputPower            "DC Eingangsleistung[%.3f kW]"                          (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Power"]   { channel="modbus:data:localhostTCP:slave105holding:Input_power:number", unit="kW" }
Number:ElectricPotential    I_PV_Inv1_Uab                   "Uab[%.1f V]"                                           (e_PV_Inverter_1, g_LogSens) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave105holding:Uab:number" }
Number:ElectricPotential    I_PV_Inv1_Ubc                   "Ubc[%.1f V]"                                           (e_PV_Inverter_1, g_LogSens) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave105holding:Ubc:number" }
Number:ElectricPotential    I_PV_Inv1_Uca                   "Uca[%.1f V]"                                           (e_PV_Inverter_1, g_LogSens) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave105holding:Uca:number" }
Number:ElectricPotential    I_PV_Inv1_Ua                    "Ua[%.1f V]"                                            (e_PV_Inverter_1, g_LogSens) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave105holding:Ua:number" }
Number:ElectricPotential    I_PV_Inv1_Ub                    "Ub[%.1f V]"                                            (e_PV_Inverter_1, g_LogSens) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave105holding:Ub:number" }
Number:ElectricPotential    I_PV_Inv1_Uc                    "Uc[%.1f V]"                                            (e_PV_Inverter_1, g_LogSens) ["Measurement", "Voltage"] { channel="modbus:data:localhostTCP:slave105holding:Uc:number" }
Number:Dimensionless        I_PV_Inv1_La                    "La"                                                    (e_PV_Inverter_1, g_LogSens) ["Measurement" ]           { channel="modbus:data:localhostTCP:slave105holding:La:number" }
Number:Dimensionless        I_PV_Inv1_Lc                    "Lc"                                                    (e_PV_Inverter_1, g_LogSens) ["Measurement" ]           { channel="modbus:data:localhostTCP:slave105holding:Lc:number" }
Number:Power                I_PV_Inv1_ActivePeakDay         "Tages Peak[%.3f kW]"                                   (e_PV_Inverter_1, g_LogSens) ["Measurement", "Power"]   { channel="modbus:data:localhostTCP:slave105holding:Active_peak_of_current_day:number", unit="kW" }
Number:Power                I_PV_Inv1_ActivePower           "Wirkleistung[%.3f kW]"                 <energy>        (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Power"]   { channel="modbus:data:localhostTCP:slave105holding:Active_power:number", unit="kW" }
Number:Power                I_PV_Inv1_ReactivePower         "Blindleistung[%.3f var]"                               (e_PV_Inverter_1, g_LogSensHi) ["Measurement", "Power"]   { channel="modbus:data:localhostTCP:slave105holding:Reactive_power:number", unit="kvar" }
Number:Dimensionless        I_PV_Inv1_PowerFactor           "Power factor"                                          (e_PV_Inverter_1, g_LogSensHi) ["Measurement" ]           { channel="modbus:data:localhostTCP:slave105holding:Power_factor:number" }
Number:Frequency            I_PV_Inv1_Frequency             "Frequenz[%.2f Hz]"                                     (e_PV_Inverter_1, g_LogSens) ["Measurement", "Frequency"]{ channel="modbus:data:localhostTCP:slave105holding:Frequency:number" }
Number:Dimensionless        I_PV_Inv1_InverterEfficiency    "Wechselrichtereffizienz[%.1f %%]"      <settings>      (e_PV_Inverter_1, g_LogSens) ["Measurement" ]           { channel="modbus:data:localhostTCP:slave105holding:Inverter_efficiency:number", unit="%" }
Number:Temperature          I_PV_Inv1_CabineTemperature     "Temperatur Wechselrichter[%.1f °C]"    <temperature>   (e_PV_Inverter_1, g_LogSens) ["Measurement", "Temperatur"]{ channel="modbus:data:localhostTCP:slave105holding:Cabinet_temperature:number" }
Number:ElectricResistance   I_PV_Inv1_InsulationResistance  "Isolationswiderstand[%.1f MOhm]"                       (e_PV_Inverter_1, g_LogSens) ["Measurement" ]           { channel="modbus:data:localhostTCP:slave105holding:Insulation_resistance:number", unit="MOhm" }
Number:Dimensionless        I_PV_Inv1_DeviceStatus          "Wechselrichterstatus[MAP(inverter_device_status.map):%s]" <settings> (e_PV_Inverter_1, g_LogSens) { channel="modbus:data:localhostTCP:slave105holding:Device_status:number" }
Number:Dimensionless        I_PV_Inv1_FaultCode             "Fehler Code[%d]"                       <error>         (e_PV_Inverter_1, g_LogSens)  { channel="modbus:data:localhostTCP:slave105holding:Fault_code:number" }
Number                      I_PV_Inv1_StartUpTime           "Anschaltzeit"                                          (e_PV_Inverter_1, g_LogSens)  { channel="modbus:data:localhostTCP:slave105holding:Start_up_time:number" }
Number                      I_PV_Inv1_ShutdownTime          "Abschaltzeit"                                          (e_PV_Inverter_1, g_LogSens)  { channel="modbus:data:localhostTCP:slave105holding:Shutdown_time:number" }

Number:Energy               I_PV_Inv1_EnergyTotal           "Energieertrag total[%.2f Kwh]"         <line>          (e_PV_Inverter_1, g_LogSens) ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave106holding:E_total:number", unit="kWh" }
Number:Energy               I_PV_Inv1_EnergyDay             "Energieertrag Tag[%.2f Kwh]"           <line>          (e_PV_Inverter_1, g_LogSens) ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave107holding:E_day:number", unit="kWh" }

Number:Power                I_PV_Bat1_ChargeDischargePow    "Lade-/Entladeleistung[%.3f kW]"        <line>          (e_PV_Battery_1, g_LogSensHi)  ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave109holding:EnergyStor1ChDischPwr:number", unit="W" }
Number:ElectricPotential    I_PV_Bat1_BusVoltage            "Batterie Busspannung[%.2f V]"          <line>          (e_PV_Battery_1, g_LogSens)  ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave109holding:EnergyStor1BusVoltage:number" }
Number:Dimensionless        I_PV_Bat1_SOC                   "Ladestand[%.0f %%]"                    <line>          (e_PV_Battery_1, g_LogSens)  ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave109holding:EnergyStor1BatterySOC:number", unit="%"}
Number:Energy               I_PV_Bat1_CurDayChargeEnergy    "Energie geladen[%.2f kWh]"             <line>          (e_PV_Battery_1, g_LogSens)  ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave110holding:EnergyStor1CurDayCharg:number", unit="kWh" }
Number:Energy               I_PV_Bat1_CurDayDischargeEnergy "Energie entladen[%.2f kWh]"            <line>          (e_PV_Battery_1, g_LogSens)  ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave110holding:EnergyStor1CurDayDischarge:number", unit="kWh" }

Number:Power                I_PV_Powermeter_ActivePower     "Leistung[%.3f kW]"                     <line>          (e_PV_Powermeter, g_LogSensHi) ["Measurement", "Power"] { channel="modbus:data:localhostTCP:slave111holding:PowermeterActivePower:number", unit="W" }
Number:Energy               I_PV_Powermeter_FedToGrid       "Energie eingespeist[%.3f kWh]"         <line>          (e_PV_Powermeter, g_LogSensHi) ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave111holding:PositiveActiveElectricity:number", unit="kWh" }
Number:Energy               I_PV_Powermeter_SuppliedFromGrid "Energie bezogen[%.3f kWh]"            <line>          (e_PV_Powermeter, g_LogSensHi) ["Measurement", "Energy"] { channel="modbus:data:localhostTCP:slave111holding:ReverseActivePower:number", unit="kWh" }


//*********************
//PV System
//*********************

// Number:Power                I_PV1_ActivePower               "Wirkleistung[%.3f kW]"                 <energy>        (e_PV_System_1, g_LogSensHi) ["Measurement", "Power"]
// Number:Power                I_PV1_ReactivePower             "Blindleistung[%.3f var]"                               (e_PV_System_1, g_LogSensHi) ["Measurement", "Power"]
// Number:Power                I_PV1_InputPower                "DC Eingangsleistung[%.3f kW]"                          (e_PV_System_1, g_LogSensHi) ["Measurement", "Power"]

// Number:Energy               I_PV1_EnergyTotal               "Energieertrag total[%.2f Kwh]"         <line>          (e_PV_System_1, g_LogSens) ["Measurement", "Energy"]
// Number:Energy               I_PV1_EnergyDay                 "Energieertrag Tag[%.2f Kwh]"           <line>          (e_PV_System_1, g_LogSens) ["Measurement", "Energy"]

// Number:Power                I_PV1_SelfConsumption           "Eigenverbrauch[%.3f kW]"               <energy>        (e_PV_System_1, g_LogSensHi) ["Measurement", "Power"]

Bei mir hat das bis vor kurzem sehr gut funktioniert! Jetzt wurde mein System wegen einer Wallbox, aber auf die Huawei EMMA umgestellt.
Hier laufen jetzt alle Anfragen drüber, der Dongle war somit obsolet!

Meine EMMA Config-Dateien poste ich im dauffolgenden Beitrag.

Gruß Magarethe
Zuletzt geändert von magarethe am 27. Jun 2026 10:53, insgesamt 2-mal geändert.

magarethe
Beiträge: 68
Registriert: 18. Dez 2019 22:16
Answers: 0

Re: OpenHAB4 und Huawei EMMA Konfig

Beitrag von magarethe »

Hallo Forum,

hier wie versprochen meine Config-Dateien für die Huawei EMMA, die Voraussetzung für eine Wallbox ist.

emma.things

Code: Alles auswählen

Bridge modbus:tcp:emma "Huawei EMMA" [
    host="HIER DEINE IP VON DEINER EMMA",
    port=502,
    id=0,
    connectMaxTries=3,
    reconnectAfterMillis=10000,
    timeBetweenTransactionsMillis=500,
    connectTimeoutMillis=5000
] {

    Bridge poller pv "EMMA PV" [
        start=30354,
        length=2,
        refresh=10000,
        type="holding"
    ] {
        Thing data pv_power "PV-Leistung roh" [
            readStart="30354",
            readValueType="uint32"
        ]
    }

    Bridge poller load "EMMA Hausverbrauch" [
        start=30356,
        length=2,
        refresh=10000,
        type="holding"
    ] {
        Thing data load_power "Hausverbrauch roh" [
            readStart="30356",
            readValueType="uint32"
        ]
    }

    Bridge poller grid "EMMA Netzleistung" [
        start=30358,
        length=2,
        refresh=10000,
        type="holding"
    ] {
        Thing data grid_power "Netzleistung roh" [
            readStart="30358",
            readValueType="int32"
        ]
    }

    Bridge poller battery "EMMA Batterie" [
        start=30360,
        length=2,
        refresh=10000,
        type="holding"
    ] {
        Thing data battery_power "Batterieleistung roh" [
            readStart="30360",
            readValueType="int32"
        ]
    }

    Bridge poller inverter "EMMA Wechselrichter" [
        start=30364,
        length=2,
        refresh=10000,
        type="holding"
    ] {
        Thing data inverter_power "Wechselrichterleistung roh" [
            readStart="30364",
            readValueType="int32"
        ]
    }

    Bridge poller soc "EMMA Batterie SOC" [
        start=30368,
        length=1,
        refresh=10000,
        type="holding"
    ] {
        Thing data battery_soc "Batterie SOC roh" [
            readStart="30368",
            readValueType="uint16"
        ]
    }
	
	Bridge poller pv_yield_today "EMMA PV Tagesertrag" [
    start=30346,
    length=2,
    refresh=60000,
    type="holding"
	] {
		Thing data pv_yield_today "PV Tagesertrag roh" [
			readStart="30346",
			readValueType="uint32"
		]
	}
	
	Bridge poller feedin_today "EMMA Einspeisung heute" [
    start=30330,
    length=2,
    refresh=60000,
    type="holding"
	] {
		Thing data feedin_today "Einspeisung heute" [
			readStart="30330",
			readValueType="uint32"
		]
	}
	
	Bridge poller consumption_today "EMMA Hausverbrauch heute" [
		start=30324,
		length=2,
		refresh=60000,
		type="holding"
	] {
		Thing data consumption_today "Hausverbrauch heute" [
			readStart="30324",
			readValueType="uint32"	
		]
	}
}
emma.items

Code: Alles auswählen

Number EMMA_PV_Leistung_Roh "PV-Leistung roh [%d]" {
    channel="modbus:data:emma:pv:pv_power:number"
}

Number EMMA_Hausverbrauch_Roh "Hausverbrauch roh [%d]" {
    channel="modbus:data:emma:load:load_power:number"
}

Number EMMA_Netzleistung_Roh "Netzleistung roh [%d]" {
    channel="modbus:data:emma:grid:grid_power:number"
}

Number EMMA_Batterieleistung_Roh "Batterieleistung roh [%d]" {
    channel="modbus:data:emma:battery:battery_power:number"
}

Number EMMA_Wechselrichterleistung_Roh "Wechselrichterleistung roh [%d]" {
    channel="modbus:data:emma:inverter:inverter_power:number"
}

Number EMMA_Batterie_SOC_Roh "Batterie Füllstand [%d]" {
    channel="modbus:data:emma:soc:battery_soc:number"
}

Number EMMA_PV_Tagesertrag "PV Tagesertrag [%.2f kWh]" {
    channel="modbus:data:emma:pv_yield_today:pv_yield_today:number"
}

Number EMMA_Einspeisung_Heute "Einspeisung heute [%.2f kWh]" {
    channel="modbus:data:emma:feedin_today:feedin_today:number"
}

Number EMMA_Hausverbrauch_Heute "Hausverbrauch heute [%s kWh]" {
    channel="modbus:data:emma:consumption_today:consumption_today:number"
}
Bei mir laufen diese Config Files sehr sauber. Sollte ich noch weitere POLL´s rausfinden (es gibt zur Zeit noch keine offizielle Beschreibung) dann poste ich die hier selbstverständlich. Oder aber vielleicht kennt ja jemand noch andere intessanten POLL-Abfragen. Danke

Vielleicht kann das ja hier jemand brauchen. :-)

P.S. Ich habe jetzt doch eine Dokumentation gefunden. https://github.com/user-attachments/fil ... itions.pdf
Gruß Magarethe

Antworten