-
-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solarman DDZY422-D2 #187
Comments
about the log details, If you could explain how to extract them it would be helpful and I would be able to past the code here. thanks ! :) |
Hi @bobybob69, like this: |
Hi @davidrapan Thanks for looking at the thread it was running on my screenshot but I didn't understand the file was downloading when clicking on stop 😅 please found bellow the log file home-assistant_solarman_2024-10-02T19-02-14.489Z.log.zip Let me know if you get everything thanks for looking at it ! and let me know if you need anything else to help |
Extracted flow from the log file:
Hi @githubDante, Exception with code 05 (0x05) | Acknowledge. Does it says anything useful? The profile is made for D3 version so it can be just about incompatibility but I'm curious what are your thoughts? |
Hi @davidrapan, Incompatible profile 100% - wrong start address or quantity |
Thanks @githubDante, So you will have to try probe registers using built-in service for reading and create new profile for your device @bobybob69 |
Hi @davidrapan and @githubDante thanks for looking at the log. Well, I'm not familiar with that. After comparing D2 and D3 it seems like it's just difference of power distribution (simple-phase or triple-phase) Let me know I would be more than happy to help learn and implement that with one of you guys Thanks for helping |
Let me know if there is anything I could do to help integrate the D2 guys Thanks ! |
It's quite simple. You just have to copy for example inverter_definitions/solarman_dtsd422-d3.yaml into inverter_definitions/custom/solarman_ddzy422-d2.yaml
And you will have to find those register which shows matching values in the Solarman App. Sadly without documentation there is no other way than trial and error. |
hi @davidrapan , thanks for the tips ! I try to do the copy / paste yaml parts. But the integration mark an error (see bellow) , I attach also the log. Since the integration failed, there is nothing more for me to do using the Developper ACTION parts .. ? ![]() Any tips that I could try to implement the D2 ? Thanks ! ![]() |
It's not relevant during this process and you can ignore it. Using ACTIONS will still work. |
Bellow are the log after adding the proper modbus register but I still have an issue.. Any thought @davidrapan ? |
According to the log requests to your Smart Meter still contains invalid addresses. |
Humm... progress but still some errors.. any thoughts @davidrapan from where I can found these modbus register ? any macOS tools I can use to read theses address using the IP ? I sent an email to see if they have theses for me as there is nothing on the user guide unfortunately I found these on the net , what do you think ? |
Yeah it's not publicly available information and not sure if solarman will be willing to provide the docs.
I told you using the ACTIONS through this integration. That is the best tool you can get.
I don't have the device so I can't really tell. But take it slowly. Just start even with single sensor defined in the file with registers you verified that works using said ACTIONS. 😉 |
Found this through google Edit: oops, looks like @bobybob69 found it too, sorry |
Hey @davidrapan @githubDante If I understand, There is an action I use to read values , but how can I read values from a devices that's not listed of even setup ? From what I understand from your previous message ![]() Bellow is what I'm seeing from the actions section when I choose reading value code 4 : ![]() Here's my config for the smart meter : ![]() I'm not familiar with the modbus things so sorry if I'm asking basic questions :) Any tips would be helpful :) Thanks guys ! |
I told you that you have to setup the device first. And ignore when it shows errors. Then try read different registers and find those which works... |
I'm sorry if I don't understand but I just want to make I understand what you say @davidrapan
Did my thinking is on the right way ? If no please let me know Thanks for your help I will owe you a coffee at the end 😜 |
I'm saying again. it does not matter if it shows errors. IGNORE THEM! Just add it so you can use the ACTIONS. Thats all. |
hey guys @davidrapan @githubDante , I just get an answer from solarman, does this helps ? Single Phase meter DDZY422-D2 parameters_1728884136958_yiy4p.pdf |
To be faire @davidrapan , I should miss something.. I'm sorry. When you say "if it show error ignore them" what do you mean ? Here's the status of the meter actually ![]() How can I ignore this error ? Even in this state, iit doesn't appear on the action menu .. :( |
What I mean is that even you see error ACTIONS will still work so you just can leave it as it is. |
Well @davidrapan , don't ask me how, I change few line on the code (helped by ChatGPT) and now the smart meter is added ![]() now when I'm in the action menu what would be the best to troubleshoot each register ? I think I'm not using the correct syntax for the register .. ? ![]() what about this screenshot, I'm on the right way ? thanks for helping |
Yes you are. That means that you just can't read register number 1 so you need to continue with 2... and so on. But to be 100% sure I would also try reading using Modbus Function Code 3 (it has separate service for that). |
hi @davidrapan , hope you're well ! all of them failed with the same error : Échec de l'exécution de l'action solarman.read_holding_registers. V5 frame does not contain a valid Modbus RTU frame I don't understand at all what could be the issue. Any thought / Tips ? I was looking for an app that could read modbus from the solarman smart meter, but I don't found anything else. Perhaps there is something wrong on the config no ? Here's the code I try to set and that made the smart meter being available on HA without error as shared previously If @githubDante you also have thoughts to help don't hesitate to share :) Thanks guys for your support Solarman Smart Meter DDZY422-D2default: requests:
parameters:
|
There are two ACTIONS for reading:
Did you also tried with the other one? |
Hey @davidrapan , yes I try with both methods. How can I be sure the meter is reachable from HA after I set it up ? The IP if a fixed one so I'm 100% sure this is the good one. What I'm less sure is the YAML for the config. What's your thought ? Thanks and have a great day |
Show me all Total * sensors in HA. |
You have Total Load Consumption and Total Energy Import/Export are 0 kWh. Total * are displayed as Unknown currently when they are 0 kWh as a fail safe against number cycle through 0 during inverter reboots, etc. |
But the solarman app is telling me that I have an import from the grid of 385W and a production of 0kw/h, perhaps I should restart the inverter to try to obtain this data? |
Show me. |
It's proly bs but what if this device needs different values in Frame Type and/or Sensor Type, @githubDante? |
In my ignorance, I believe that this inverter model should have a specific .yaml file for it. I find it incomprehensible that some values are 0 and some are unknown. I have requested specific information about this model from zcscompany.com, which is who the installation company has redirected me to, but they have not clarified anything for me. |
@Picard2002, I wasn't talking about your inverter but solarman meter. 😉 |
Could it be a firmware version issue? I've seen other users commenting on this in the Joubert integration version number:LSW3_15_270A_1.68System extended version:V1.1.00.10 |
I don't think so, the encapsulation of the RTU packet is for the datalogger, not the device to which is connected. |
Yeah, I thought so... and it's true that the device was talking... maybe server mode could reveal something useful. |
/Is it possible that the stick logger is the one that sends the solar production data and the electricity import/export data is the solarman ddzy-422-d2 meter? |
Is it possible that the stick logger is the one that sends the solar production data and the electricity import/export data is the solarman ddzy-422-d2 meter? |
No. |
I don't know if it can be useful, I found this somewhere on sofar The verification allow the error to be existedduring the transmission between Master and Slave. Sometimes because of the electrical noise and other interruptions, a set of data may change during the transmission from one device to another. The CRC verification ensure that Master or Slave not to respond to the incorrect data that has changed during the transmission. This verification improvesthe security and efficiency of whole system.We are using 16-bit circulation Redundary Check(CRC16),CRC occupies two bytes,containsone 16-bit Binary value.CRC value calculated by transmitting device,then attach to the data frame, the receiving device recalculate the CRC value . Comparedwith the received CRC value, if two valuesare not equal, an error arises.Set all bytes to “1”for a 16-bit register,Then operatedby 8 bit bytesin frame and current value of register continuity, only 8 data bits per byte participate in generation CRC value.start bits; stop bits and other possible parity bits will not affect CRC value generation.During the CRC value generation, each 8-bit byte XOR with the content in register,then shift the result to low-bit, high-bit supplement with “0”,the last significant bit(LSB) remove and test. If the LSB is “1”, the register XOR with a present fixed value, if the LSB shows”0”, not do any treatment. Repeat the above process until perform 8 times shift operation. The next 8-bit bytes XOR with current value of register, also perform another 8 shift XOR operation as above -mentioned, the final value we get is the CRC value.The Process of generating a CRC valueStep1: Preset all bytes to “1”For 16-bit register, defined as CRC register(0FFFFH)Step2: XOR the first 8-bit byte in data frame with the low byte in CRC registerStep3: Shift the CRC register one bit to the right,high-bit supplement with “0”, the LSB remove and testStep4: If the LSB is “0”, repeat step3(Next Shift), if the LSB is “1”, the register XOR with a preset fixed value,(0A001H)Step 5:Repeat step 3 &4, until perform 8 times shift operation.Step 6: Repeat from step2 to 5 to deal with next 8-bit byte, until end of all bytes processing complete.Step 7: Finally,the value of CRC register is the value of CRC 2.Instructions2.1Broadcast data frame information (address 0x88)Broadcast data with no response2.1.1.Auto Timing(Slave Address)0x88(Function Code)0x02Register Address(Hi)0x50 |
The CRC is incorporated in the RTU frame and is checked/verified for every response from the the datalooger. It's part of the MODBUS protocol. Frames with invalid CRC are not processed at all. |
I don't know what to do anymore, or what else I can contribute. I do a lot of tests, I read documents, but I don't know how I could integrate Sofar 5ktlm-g3. Perhaps, and so as not to bother you any more, I could try to install an Ianmetter meter to have energy import and export data and use the data from this integration to obtain production data. |
But I have your device (Sofar 5ktlm-g3) confirmed working from others (including all the necessary sensors). |
Could it be a problem with the USB device firmware? Although I can't find any update files, I am seeing messages where users are commenting on the firmware version of their devices |
USB? What setup are you running? |
sofar_g3hyd.yaml, but lsw3 not work crc error, and wifikit crc error |
So why you are talking about USB? You are really confusing. |
In my case, I have two devices linked to my inverter, on one hand a solarman ddzy422-d2 smart meter, which I have not been able to integrate as it gives me an unknown v5 exception, on the other hand I have a lsw3 usb stick logger connected to the inverter, as I have not been able to integrate the ddzy422-d2, I am trying to obtain data through the usb stick logger with which I have been able to obtain some data, but not those of energy import/export with the sofar_g3hyd.yaml configuration, I am very sorry for the confusion and the inconvenience. |
Okay, let's totally forget that you have USB variant as it's highly irrelevant. FW of the stick logger (proly) won't affect anything about modbus. On the other hand you could try update INVERTER FW. |
Inverter firmware updated to the latest version (the only one available on the sofar website for this model) I receive data, but I still have the same problem without import/export data, just to contribute something I am searching the web for "sofar solar modbus registers" and several different documents appear in which the addresses (I don't know if I should call them that) are different for these sensors. |
Try them then. 😉 |
They don't work either, perhaps it would be good to know if other users of this same inverter (5ktlm-g3), manage to obtain this energy import/export data, because if the solarman smart app shows them, something is missing, or there is a fault in my inverter or installation. I also think that I should open a specific thread for this inverter, since I have been commenting on the solarman ddzy422-d2 thread, since I installed the integration. |
Start new thread and include all data you have available (all registers you tried w/ what result, etc). 😉 |
Continuation regarding Sofar 5KTLM-G3 in #388 |
Hello everyone, Has anyone found a solution for the DDZY422-D2 ? I spend time looking for a correct configuration but I still have the same error.. |
Describe the bug
A clear and concise description of what the bug is.
I try to install my Solarman DDZY422-D2 Smart Meter using the integration ha-solarman.
When setting everything up, I got an error message "Échec de la configuration, nouvel essai: [SERIALNUMBER] Querying IP-ADRESS:PORT failed: [0, 0]."
Attach the debug log
As a file or using the 'code' formatting.
To Reproduce
Steps to reproduce the behavior:
From the setting, add an integration
set your IP address
Port
Serial number
select solarman_dtsd422-d3.yaml
apply setting
Wait for the confirmation and notice the error message "Échec de la configuration, nouvel essai: [SERIALNUMBER] Querying IP-ADRESS:PORT failed: [0, 0]."
Expected behavior
A clear and concise description of what you expected to happen.
I don't know if it's the right configuration path as it's the D3 on the choice list
Screenshots
If applicable, add screenshots to help explain your problem.
Metadata:
Version: 24.09.27
Additional context
Add any other context about the problem here.
I don't know if it's a bug report or if it's a request feature to add the configuration .yaml for the D2 smart meter (I thought D2 / D3 where the same.. ?)
The text was updated successfully, but these errors were encountered: