Anyone else has a similar setup?
Inverter / Luna / smartguard
And connected them with not only Emma devices. Tried 300s polls and unit id’s 1 to 5 never got a connection for the Luna (non Emma) modbus option
Anyone else has a similar setup?
Inverter / Luna / smartguard
And connected them with not only Emma devices. Tried 300s polls and unit id’s 1 to 5 never got a connection for the Luna (non Emma) modbus option
Looks like you removed the combined force discharge until Soc% flow card. Intentional?
// Teddy
I wanted to check if they work “splitted” in two separate cards (see description on card).
Yea i found it after some digging. Going to test this tomorrow. I tested the seperate cards that do what the combined card does just seperatly. See the post erlier i wrote regarding that.
I found the source (wrong register)…
Will update test version soon.
finally… found it ![]()
here’s to find out which modbus id you have to choose:
(didn’t try until nr. 8)
managed to add the device. let’s see how the rest works out. thx Andi for your multiple inputs and hints!
I tested the new test version just now. Turns out im afraid it is not entierly fixed im afraid. The combined card doesnt set the 47247 registry and it looks as it dont set the 47100 but it could be a effect on the 47247 is 0 or me not beeing able to catch it beeing set. The 47101 is set correctly when card runs.
When it comes to the 3 single cards i can only test 2 of them atm. Sins the 47247 is 0 and the desc for the “set charge W” have a desc btw that say 47102 that is probably a misspell this worked in the old version so it got broken in this one. The 47101 set SOC% works np.
// Teddy
Hello,
I’m having a problem with the Smart Charger (EMMA).
The Smart Charger (EMMA) isn’t displaying any data.
I’ve added the widget to the dashboard under Apps / Charging Status. The Smart Charger is displayed with the message “(No Charger registered)”.
I’ve tested the IP address using both the EMMA’s IP address and the wallbox’s IP address. Using the wallbox’s IP address, it shows "Smart Charger not available.
When using the EMMA’s IP address with Modbus 0, the Smart Charger is detected, but it is displayed that the device is not registered.
Thanks for your help.
Hi Thomas - The Widget is not for the EMMA Smart Charger implementation - Sorry
You have to configure the OCCP driver to get this up and running.
Andi
Hi Teddy Could you please check if you’re able to find the wrong config?
Operating Mode
| Flow ID | Title | Register | What is written |
|---|---|---|---|
luna2000_set_working_mode |
Set storage working mode | 47086 | Enum: 0=Adaptive, 1=Fixed Charge/Discharge, 2=Maximise Self-Consumption, 3=TOU (LG), 4=Fully Fed to Grid, 5=TOU (LUNA2000), 6=Third-party Scheduling |
luna2000_set_remote_mode |
Set remote charge/discharge mode | 47589 | Enum: 0=Local Control, 1=Remote Max Self-Consumption, 2=Remote Fully Fed to Grid, 3=Remote TOU, 4=Remote AI Control, 5=Remote Third-party Scheduling |
luna2000_set_excess_pv |
Set excess PV energy use (TOU) | 47299 | 0=Feed to Grid, 1=Charge Battery |
Force Charge / Force Discharge
| Flow ID | Title | Registers | What is written |
|---|---|---|---|
luna2000_set_force_charge_discharge |
Set force charge/discharge | 47100 | 0=Stop, 1=Force Charge, 2=Force Discharge |
luna2000_start_force_charge |
Start charging until SoC % | 47247 → 47101 → 47100=1 | Charge power (W), target SoC (%), then starts |
luna2000_start_force_discharge |
Start discharging until SoC % | 47249 → 47082 → 47100=2 | Discharge power (W), discharge cutoff SoC (%), then starts |
luna2000_start_force_charge_duration |
Start charging for minutes | 47247 → 47083 → 47100=1 | Charge power (W), duration (min), then starts |
luna2000_start_force_discharge_duration |
Start discharging for minutes | 47249 → 47083 → 47100=2 | Discharge power (W), duration (min), then starts |
luna2000_set_force_charge_power |
Set force charge power | 47102 | Charge power W — value only, does not start |
luna2000_set_force_discharge_power |
Set force discharge power | 47249 | Discharge power W — value only, does not start |
luna2000_set_force_charge_soc |
Set force charge target % | 47101 | Target SoC % — value only, does not start |
luna2000_start_force_discharge_soc (deprecated) |
Start discharging until SoC % | same as luna2000_start_force_discharge |
Replaced by luna2000_start_force_discharge |
Power Limits
| Flow ID | Title | Register | What is written |
|---|---|---|---|
luna2000_set_max_charge_power |
Set max charge power | 47075 (UINT32) | Maximum battery charge power W |
luna2000_set_max_discharge_power |
Set max discharge power | 47077 (UINT32) | Maximum battery discharge power W |
luna2000_set_power_limit_grid |
Set grid-tied power limit | 47079 (UINT32) | Total power limit at the grid connection point W |
luna2000_set_max_grid_charge_power |
Set max power charge from grid | 47244 (UINT32) | Hard upper limit for grid-charging power W |
luna2000_set_grid_charge_power |
Set grid charge power | 47242 | Schedule-based grid charge power W |
SoC Limits & Grid Charging
| Flow ID | Title | Register | What is written |
|---|---|---|---|
luna2000_set_charge_cutoff_soc |
Set charge cutoff SoC | 47081 | Maximum SoC battery charges to in normal operation (90–100 %) |
luna2000_set_discharge_cutoff_soc |
Set discharge cutoff SoC | 47082 | Minimum SoC battery discharges to (12–20 %) |
luna2000_set_backup_reserve_soc |
Set backup power reserve SoC | 47102 | SoC reserved for backup/off-grid — battery will not discharge below this |
luna2000_set_charge_from_grid |
Set charge from grid | 47087 | 0=Disable, 1=Enable |
luna2000_set_grid_charge_cutoff_soc |
Set grid charge cutoff SoC | 47088 | SoC % at which grid charging stops (20–100 %) |
Register reference
| Register | Function |
|---|---|
| 47075 | Max charge power |
| 47077 | Max discharge power |
| 47079 | Grid connection power limit |
| 47081 | Charge cutoff SoC (90–100 %) |
| 47082 | Discharge cutoff SoC (12–20 %) |
| 47083 | Force charge/discharge duration (minutes) |
| 47086 | Storage working mode |
| 47087 | Charge from grid on/off |
| 47088 | Grid charge cutoff SoC |
| 47100 | Force charge/discharge command |
| 47101 | Force charge target SoC |
| 47102 | Backup reserve SoC |
| 47242 | Grid charge power (schedule-based) |
| 47244 | Max grid charge power (hard cap) |
| 47247 | Force charge power |
| 47249 | Force discharge power |
| 47299 | Excess PV handling in TOU mode |
| 47589 | Remote control mode |

Pulled the Huawei modbus register documentation from Huawei and according to that your correct on your list. But for some reason it seam that 47249 isnt used at all in my case when i run this thru the FusionSolar app because when i do that it sets the 47247 and not 47249 when force discharging and as we know in my case it doesnt set and start thru the flow cards. Would it be possible to add the yellow marked register objects to the app settings registar read live page? sins they are missing in my case.
I would like to set varius force charge/discharge settings wish FusionSolar app and see what the registar values end up in real life. Sins documentation and my system dont seam to agree with how it is supposed to work it seam.
Hi Thomas. Looks like you’ve installed the device with the wrong Modbus ID.
Hey @Andi
I have spent alot of time testing diff things to verify the settings. It is correct the way you have it above in the list. Exept 1 that i found was wrong
luna2000_set_force_charge_power |
Set force charge power | 47102 |
|---|
Your trying to change the backup soc with 47102 it should be using 47247
However im going to switch my testing to what cards in your list actualy change the settings they are supposed to in the system and what doesnt stick so to say.
Atm with the current version i know that the “luna2000_start_force_discharge” fail on setting 2 of the 3 registar values.
// Teddy
Woops forgot one thing almost the most important one for me ;
luna2000_start_force_discharge |
Start discharging until SoC % | 47249 → 47082 → 47100=2 |
|---|---|---|
Is supposed to be
47249 → 47101 → 47100=2
// Teddy
Hi Teddy - shoudl be fine now - You’ll find the Configuration as well here:
YAY combined discharge card is working again ![]()
// Teddy
@Andi Something happened this evening. Im running 1.2.17 sins it was released on test. It was supposed to do that 50% discharge. It did start the discharge however it decided for some reason to not change the setting from the morning when it discharged to 2% so it basecly decided to discharge it again to that. I have sent you a diag Andi if you want to check for a reason. No errors from the card exept the followup timeline message i have telling me the card was triggered sucessfuly. Exept it didnt trigger it entierly correct. check 20:00 in the log and you should see it.
Hi Teddy
Your force-discharge flow writes three registers: discharge power, target SoC, and then the “enable force discharge” mode. They were written independently, and the mode-enable was always sent last, even if the target-SoC write had failed. Your diag shows exactly that:
[err] Force discharge: SOC write failed: Req timed out
So the new 50% target never made it into the battery — but force-discharge got enabled anyway. The battery then discharged toward whatever target was still sitting in the register: the 2% from your morning run. That’s why it “decided” to drain again. And because the flow card is fire-and-forget (it has to return fast so it doesn’t hit Homey’s ~10s flow timeout while the Modbus writes retry), the card still reported success — which is why your follow-up timeline message said it triggered fine. It technically did; it just ran to the wrong number.
Fix (in 1.2.18): the target SoC is now a hard precondition. If it can’t be written, force mode is not enabled at all — the battery is left untouched instead of running to a stale target — and you get a timeline notification telling you the run was skipped. Same guard added to force-charge. Pushing it to the test channel; you’ll get it automatically since you’re already on test.
Cheers, and thanks for the report
Andi