[new binding] Logger LSW for Sofar/Omnik/IE for SolarmanPV based on protocol v5 (iGEN tech)

I have decoded more or less 80 channels for new thing representing new inverter with logges sn23xxx.

This new one has more complex communication scheme (3 request instead of 1 and 4-5 more responses) than original one. It may take some time I scratch new descriptors for the new thing and patch here and there communication.

1 Like

Hello Piotr!

First of all, I would like to thank you very much for your work, which I have been using successfully for over a year. Recently, I installed a second PV installation also based on the SOFAR inverter and the LSE-3 logger (Ethernet). Unfortunately, I had a problem with connecting the logger to the new inverter (G3 - one phase). The remote firmware update made by the Polish branch of Sofar to ME_0D_2701_5.09 helped with above problems. By the way, they updated me second logger from version ME_08_2701_2.06 to ME_0D_2701_5.09. And it was a big mistake because I lost communication through your binding :frowning:
Unfortunately, it is not possible to go back to the previous working version of the firmware…

Both loggers have SN starting with 21xxx, but this is more about the firmware, not the HW of the logger I guess…

In openhab log I see 2 entries (different for both loggers).

Unknown response, length 9: A5:17:00:10:45:03:00:A1:02:
Unknown response, length 9: A5:17:00:10:45:03:00:CD:02:

Can I somehow help you get these loggers working?

@Straits_PL you could ask the support whether they have a modbus registers map for the firmware. Or try to look through the internet.

Maybe switching from ME_08_2701_2.06 to ME_0D_2701_5.09 has changed modbus registers for the inverter. The binding itself asks the logger for a specific registers for given SN - they should match.

Having this - adding a mapping would be fairly easy (, but still tedious).

Current test builds are here Handle loggers with SN 23xxxx · Issue #1 · ptrbojko/openhab-lsw4inverter-binding · GitHub

Hello, if anyone want to check the current build against hiw g3 sofar or lsw win sn 23/21? Go ahead https://github.com/ptrbojko/openhab-lsw4inverter-binding/suites/11794469478/artifacts/615392482

Track the issue here - Handle loggers with SN 23xxxx · Issue #1 · ptrbojko/openhab-lsw4inverter-binding · GitHub
You can support me there as well :slight_smile:

Hi all,

I have created a post under third party marketplace. I wish to be soon available straight from the TPM from your openhab instances.

Hi, I have the same problem my firmware is ME_0D_270A_1.08
Channel online is on but everything else is null.
in the log file I have this:

Blockquote
[al.protocolv5.UnknownResponseHandler] - Unknown response, length 9: A5:17:00:10:45:03:00:AE:02:
Blockquote

Have you solved?

Could you elaborate more? Which inverter do you have, what format of serial number does the wifi stick have? Also which version of binding do you use and which thing type?

You can file an issue here for better tracking - GitHub - ptrbojko/openhab-lsw4inverter-binding

Regards,
Piotr

Thanks for your kind response.
Serial number 2106******
inverter 3ph hyd 15000 zss
i tried both things versions with the same result.
I’ll try on github. I’m inexperienced.
Regards, Antonio

I’m not able :blush:

Same here. Thing online, but everything else NULL
Deye with SN 23…

	10243	2023-04-26 06:50:40.444 [WARN ] [al.protocolv5.UnknownResponseHandler] - Unknown response, length 29: A5:10:00:10:15:00:21:67:8F:CD:F9:02:01:F0:95:0E:00:AE:08:00:00:AF:17:3A:64:06:00:C8:15:
	10263	2023-04-26 06:51:25.450 [WARN ] [al.protocolv5.UnknownResponseHandler] - Unknown response, length 14: A5:01:00:10:47:00:22:67:8F:CD:F9:00:36:15:
	10365	2023-04-26 06:52:10.460 [WARN ] [al.protocolv5.UnknownResponseHandler] - Unknown response, length 29: A5:10:00:10:15:00:23:67:8F:CD:F9:02:01:3C:96:0E:00:F9:08:00:00:AF:17:3A:64:06:00:62:15:
	10728	  at org.openhab.binding.lswlogger.internal.protocolv5.ExtractorsBuilder.lambda$1(ExtractorsBuilder.java:38) ~[?:?]
	10729	  at org.openhab.binding.lswlogger.internal.protocolv5.AbstractDataResponseHandler.lambda$0(AbstractDataResponseHandler.java:46) ~[?:?]
	10731	  at org.openhab.binding.lswlogger.internal.protocolv5.AbstractDataResponseHandler.extract(AbstractDataResponseHandler.java:46) ~[?:?]
	10732	  at org.openhab.binding.lswlogger.internal.protocolv5.AbstractDataResponseHandler.handle(AbstractDataResponseHandler.java:37) ~[?:?]
	10733	  at org.openhab.binding.lswlogger.internal.protocolv5.ResponseDispatcher.accept(ResponseDispatcher.java:32) ~[?:?]
	10734	  at org.openhab.binding.lswlogger.internal.protocolv5.states.ReadingResponseState$ReadingHandler.onRead(ReadingResponseState.java:70) ~[?:?]
	10736	  at org.openhab.binding.lswlogger.internal.protocolv5.states.ReadingResponseState$ReadingHandler.run(ReadingResponseState.java:63) ~[?:?]
	10737	  at org.openhab.binding.lswlogger.internal.protocolv5.states.StateMachine$MetaRunnableWrapper.handle(StateMachine.java:142) ~[?:?]
	10738	  at org.openhab.binding.lswlogger.internal.protocolv5.states.StateMachine.run(StateMachine.java:87) ~[?:?]

I’ve seen your ticket on github - will check in a day or two.

Yes. This was a firmware issue. If you want to fix it, you need to contact support customerservice@solarmanpv.com and ask them to upload the firmware ME_08_2791_2.06 or other appropriate one because in new firmware there is a bug causing incorrect responses on port 8899.

It took me almost 2 months to find someone who knew what I was talking about. Officially, it is impossible to go back to the older version of firmware. It is possible that after my signals they will improve something in the firmware and the new firmware will communicate correctly on port 8899, but there is no certainty.

Hello I think I have the same problem on a WIFI USB datalogger serial number 236******* on a ZCS Azzurro 1PH 5000TLM-V3 inverter

1 Like

The information about my inverter does not appear and the real-time production information is incorrect and changes randomly every day

I just sent an email with my problem and a screenshot, I hope to get an answer.
I asked them for working firmware.
Fingers crossed.

Hi gratteavecsapatte,

I have this version:

Do I need to ask for a firmware upgrade?
Can I ask you what have you sent in the request email to the customer service?

Thank you

Hi Piotr,

I have installed SOFAR HYD 10KTL-3PH-PRO inverter and Wifi Logger SN23xxx.
I have managed to get only Online (ON) and Operating state (grid connected) from channels till now.
No Active/reactive power is coming into my openhab items.

My Logger module version is LSW3_15_XXXX_1.68.

My debug info when suspend / enabled thing:


and following:
023-05-14 16:38:01.952 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Reading system info response]]]]]]] to pr
2023-05-14 16:38:01.953 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Reading system info response]]]]]]]
2023-05-14 16:38:01.953 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 3 messages 0
2023-05-14 16:38:01.953 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:38:01.954 [DEBUG] [ernal.protocolv5.states.StateMachine] - Trying to schedule task in 15 SECONDS during state Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Re]]]
2023-05-14 16:38:01.954 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Reading system info response]]]]]]]
2023-05-14 16:38:01.954 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:38:16.954 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Reading system info response]]]]
2023-05-14 16:38:16.955 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Reading system info response]]]]]]]
2023-05-14 16:38:16.955 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 3 messages 0
2023-05-14 16:38:16.955 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:38:16.956 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Wrapper [Reading system info response]]]]]]]]
2023-05-14 16:38:16.956 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:38:16.956 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Sending grid info request to process
2023-05-14 16:38:16.957 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Sending grid info request
2023-05-14 16:38:16.957 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Sending grid info request
2023-05-14 16:38:16.958 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:38:16.958 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Reaidng grid info response to process
2023-05-14 16:38:16.958 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Reaidng grid info response
2023-05-14 16:38:16.959 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 3 messages 0
2023-05-14 16:38:16.959 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:38:16.959 [DEBUG] [ernal.protocolv5.states.StateMachine] - Trying to schedule task in 15 SECONDS during state Reaidng grid info response
2023-05-14 16:38:16.959 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Reaidng grid info response
2023-05-14 16:38:16.959 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:38:19.156 [DEBUG] [swlogger.internal.connection.Channel] - Received 29 bytes
2023-05-14 16:38:19.157 [DEBUG] [swlogger.internal.connection.Channel] - Listening for data, buffers 3 messages 1
2023-05-14 16:38:24.837 [DEBUG] [swlogger.internal.connection.Channel] - Received 14 bytes
2023-05-14 16:38:24.838 [DEBUG] [swlogger.internal.connection.Channel] - Listening for data, buffers 2 messages 2
2023-05-14 16:38:31.959 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Wrapper [Reaidng grid info response] to process
2023-05-14 16:38:31.960 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Wrapper [Reaidng grid info response]
2023-05-14 16:38:31.960 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 1 messages 2
2023-05-14 16:38:31.960 [DEBUG] [otocolv5.states.ReadingResponseState] - Trying to read a message
2023-05-14 16:38:31.961 [WARN ] [al.protocolv5.UnknownResponseHandler] - Unknown response, length 29: A5:10:00:10:15:00:7F:74:E0:C1:8D:02:01:FC:F8:02:00:41:28:00:00:5E:F9:5D:64:05:00:D5:15:
2023-05-14 16:38:31.961 [DEBUG] [ternal.protocolv5.ResponseDispatcher] - Handler class org.openhab.binding.lswlogger.internal.protocolv5.UnknownResponseHandler matched response
2023-05-14 16:38:31.962 [DEBUG] [otocolv5.states.ReadingResponseState] - Trying to read a message
2023-05-14 16:38:31.962 [WARN ] [al.protocolv5.UnknownResponseHandler] - Unknown response, length 14: A5:01:00:10:47:00:80:74:E0:C1:8D:00:7A:15:
2023-05-14 16:38:31.963 [DEBUG] [ternal.protocolv5.ResponseDispatcher] - Handler class org.openhab.binding.lswlogger.internal.protocolv5.UnknownResponseHandler matched response
2023-05-14 16:38:31.963 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:38:31.963 [DEBUG] [ernal.protocolv5.states.StateMachine] - Trying to schedule task in 15 SECONDS during state Wrapper [Reaidng grid info response]
2023-05-14 16:38:31.964 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Wrapper [Reaidng grid info response]
2023-05-14 16:38:31.964 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:38:46.964 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Wrapper [Wrapper [Reaidng grid info response]] to process
2023-05-14 16:38:46.965 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Wrapper [Wrapper [Reaidng grid info response]]
2023-05-14 16:38:46.965 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 3 messages 0
2023-05-14 16:38:46.966 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:38:46.966 [DEBUG] [ernal.protocolv5.states.StateMachine] - Trying to schedule task in 15 SECONDS during state Wrapper [Wrapper [Reaidng grid info response]]
2023-05-14 16:38:46.966 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Wrapper [Wrapper [Reaidng grid info response]]
2023-05-14 16:38:46.966 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:40:43.782 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Wrapper [Wrapper [Wrapper [Reaidng grid info response]]] to process
2023-05-14 16:40:43.783 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Wrapper [Wrapper [Wrapper [Reaidng grid info response]]]
2023-05-14 16:40:43.783 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 3 messages 0
2023-05-14 16:40:43.783 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:40:43.784 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Wrapper [Wrapper [Wrapper [Reaidng grid info response]]]
2023-05-14 16:40:43.784 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:40:43.784 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Sending energy totals request to process
2023-05-14 16:40:43.784 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Sending energy totals request
2023-05-14 16:40:43.785 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Sending energy totals request
2023-05-14 16:40:43.785 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:40:43.785 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Reading energy totals response to process
2023-05-14 16:40:43.786 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Reading energy totals response
2023-05-14 16:40:43.786 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 3 messages 0
2023-05-14 16:40:43.786 [DEBUG] [otocolv5.states.ReadingResponseState] - No message to read, trying to schedule next read or switching to next state
2023-05-14 16:40:43.787 [DEBUG] [ernal.protocolv5.states.StateMachine] - Trying to schedule task in 15 SECONDS during state Reading energy totals response
2023-05-14 16:40:43.787 [DEBUG] [ernal.protocolv5.states.StateMachine] - Leaving Reading energy totals response
2023-05-14 16:40:43.787 [DEBUG] [ernal.protocolv5.states.StateMachine] - Waiting for state to process
2023-05-14 16:40:45.800 [DEBUG] [swlogger.internal.connection.Channel] - Received 29 bytes
2023-05-14 16:40:45.800 [DEBUG] [swlogger.internal.connection.Channel] - Listening for data, buffers 3 messages 1
2023-05-14 16:40:58.787 [DEBUG] [ernal.protocolv5.states.StateMachine] - Taken state Wrapper [Reading energy totals response] to process
2023-05-14 16:40:58.788 [DEBUG] [ernal.protocolv5.states.StateMachine] - Entering Wrapper [Reading energy totals response]
2023-05-14 16:40:58.788 [DEBUG] [swlogger.internal.connection.Channel] - Consuming messages, buffers 2 messages 1
2023-05-14 16:40:58.788 [DEBUG] [otocolv5.states.ReadingResponseState] - Trying to read a message
2023-05-14 16:40:58.789 [DEBUG] [otocolv5.AbstractDataResponseHandler] - Trying to extract message, length 29 bytes
2023-05-14 16:40:58.789 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.IllegalArgumentException: newPosition > limit: (36 > 29)

  •    at java.nio.Buffer.createPositionException(Buffer.java:318) ~[?:?]*
    
  •    at java.nio.Buffer.position(Buffer.java:293) ~[?:?]*
    
  •    at java.nio.ByteBuffer.position(ByteBuffer.java:1094) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.ExtractorsBuilder.lambda$1(ExtractorsBuilder.java:38) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.AbstractDataResponseHandler.lambda$0(AbstractDataResponseHandler.java:46) ~[?:?]*
    
  •    at java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.AbstractDataResponseHandler.extract(AbstractDataResponseHandler.java:46) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.AbstractDataResponseHandler.handle(AbstractDataResponseHandler.java:37) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.ResponseDispatcher.accept(ResponseDispatcher.java:32) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.states.ReadingResponseState$ReadingHandler.onRead(ReadingResponseState.java:70) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.connection.Channel.read(Channel.java:124) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.states.ReadingResponseState$ReadingHandler.run(ReadingResponseState.java:63) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.states.StateMachine$MetaRunnableWrapper.handle(StateMachine.java:142) ~[?:?]*
    
  •    at org.openhab.binding.lswlogger.internal.protocolv5.states.StateMachine.run(StateMachine.java:87) ~[?:?]*
    
  •    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]*
    
  •    at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]*
    
  •    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]*
    
  •    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]*
    
  •    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]*
    
  •    at java.lang.Thread.run(Thread.java:829) [?:?]*
    

2023-05-14 16:42:36.894 [DEBUG] [swlogger.internal.connection.Channel] - Received 14 bytes
2023-05-14 16:42:36.894 [DEBUG] [swlogger.internal.connection.Channel] - Listening for data, buffers 2 messages 1
2023-05-14 16:44:36.936 [DEBUG] [swlogger.internal.connection.Channel] - Received 14 bytes
2023-05-14 16:44:36.937 [DEBUG] [swlogger.internal.connection.Channel] - Listening for data, buffers 1 messages 2
2023-05-14 16:45:43.785 [DEBUG] [swlogger.internal.connection.Channel] - Received -1 bytes
2023-05-14 16:45:43.786 [DEBUG] [swlogger.internal.connection.Channel] - Listening for data, buffers 0 messages 3

My logger screen:

Any hint?
Thank you.
Marek.

It seems that KTL-3PH- line is closed to KTLX line and current sn23x thing may be a mix for them, where there should be separate thing definitions.

I have scratched a debug thing for such case, in which you can test specific modbus addresses exposed by an inverter. You may look it through issues on github repo for this project. Or wait until I publish new version on the third party marketplace.

Hi Piotr,

thank you, I have not found the related issue in git. Anyway what should be the testing scenario?
What dou you mean by"modbus addresses exposed by inverter"?
Sorry,maybe I got it, modbus addresses like registers for reading values (items) right?
What debug info should I reply back to you?

Thanks once more.
Marek.

1 Like