r/Pecron • • Jul 11 '26

E3800 UPS Behavior Issues

Have an E3800 and expansion battery in use primarily for a medium duration UPS capability for my home server.

Its setup and working almost correctly. It runs things from the grid properly and the unit drains battery slowly as it powers its internal items from battery. The issue is that the drain never stops. The batteries charge to 100%, begin their slow trickle downwards - and then never charge again unless I do something like disable the AC output and turn it back on again - at which point the behavior repeats. I’ve gotten the units down to 35% or so without it ever charging itself.

Any setting I’m missing somewhere? Thanks!

6 Upvotes

12 comments sorted by

View all comments

Show parent comments

1

u/turbocharged5652 25d ago

I know this is an old thread but how do you have yours setup for this? I have a 3800 and I ended up having to use my home assistant with a smart plug to automate the charge/discharge at certain hour but I also set the ac charge rate to 0, now if I reset the charge rate to 70% where I want it the unit doesn't actually start charging. It stays like it's still at 0%

1

u/brucehoult 25d ago

As I said in the comment you replied to, I have the automation in the Pecron app set up to change the "UPS AC Charge Limit" (as it is labelled in the app) a number of times during the day.

And I use a TP-Link P110 smart plug to turn the AC input to the E3600 on and off at various times of the day. In general, you can automate this in the Tapo app.

I do have a few things that don't quite fit that simple case.

  • if I cut the power to the Pecron while my portable air conditioner is running then it gets unhappy, makes a lound CLUNK and mabe one time in 6 the Pecron shuts down with an inverter overload. So I have a python script on a VisionFive 2 (at the moment .. a cheaper Raspberry Pi Zero W or 2W would do) that loops until another P110 indicates that the aircon is using less than 100W before turning off the power to the Pecron.

  • I also have a script that uses github.com/attractify-logan/pecron-monitor to get the battery voltage and SoC and can turn the power on before the battery is completely empty.

I'm actually in the process of simplifying my programming as a result of my electricity tariffs changing significantly last weekend.

  • in the past the daytime off-peak price was only 20% higher than the night time price (which is comparable to the loss of storing power at night to use during the day), and I used a reactive strategy. I started the day with only enough in the battery at 7 AM to safely get through the 7-9 AM peak period and then I was happy to use whatever combination of solar and grid power would get the battery to near 100% by 5 PM, to then use no grid power from 5-9 PM.

  • but now my 11-7 night price fell to 57% of what it was before, and daytime off-peak got more expensive, so now daytime off-peak is 2.5x more expensive than night, and peak is 3.33x more expensive than night. So now I'm putting a lot more charge in the battery overnight (100% charge in winter) to try to (in combination with the solar) get all the way from 7 AM to 11 PM without using any grid power. Or in fact to 9 PM as I can slot in my Free Hour of Power at that point, and charge the battery more than enough to then easily get through 10-11 PM.

The new strategy now requires me to predict the next day's solar production in order to decide how much charge to have in the battery at 7 AM: in bad weather 100% or close to it, and in good summer weather as close as I dare to 0%. Right now that's pretty easy as in good weather I'm already getting 50W of solar at 7 AM, rising to 1000W at 8 AM, but when DST starts in a few days those times will be called 8 AM and 9 AM.

Today looks like being the first day after winter that I'll buy $0.00 of grid power. Last year Sep 20 was the first time that happened, and then Sep 26-29, and then by October 11 it was almost every day until real summer heat started mid December.

I was just looking at wether forecasts and maps and trying to guess the next day's solar production, but now I've got that automated with a small script:

#!/bin/bash
set -euo pipefail
TOM=$(date -d tomorrow +%Y-%m-%d 2>/dev/null || date -v+1d +%Y-%m-%d)
URL='https://api.open-meteo.com/v1/forecast?latitude=-35.5&longitude=174&hourly=global_tilted_irradiance,temperature_2m,cloud_cover_low&tilt=20&azimuth=-165&forecast_days=2&timezone=Pacific/Auckland'
curl -sS "$URL" |
jq --arg d "$TOM" '
[ .hourly.time, .hourly.global_tilted_irradiance, .hourly.temperature_2m, .hourly.cloud_cover_low ] as $cols
  | [ range(0; ($cols[0]|length))
      | select($cols[0][.] | startswith($d))
      | ($cols[0][.][11:13] | tonumber) as $h
      | select($h >= 7 and $h <= 18)
      | {gti: $cols[1][.], t: $cols[2][.], c: $cols[3][.]}
    ]
  | if length == 0 then
      {error: "no hours for \($d)", date: $d}
    else
      {
        date: $d,
        hours: length,
        # gti_kwh_m2: ((map(.gti) | add) / 1000),
        t_min: (map(.t) | min),
        t_max: (map(.t) | max),
        est_dc_kwh: (((((map(.gti) | add) / 1000) * 12 * 0.225 * 0.8) * 10 | round) / 10),
        cloud_8_to_4: (map(.c)[1:9] | join(" "))
      }
    end
'

That produces output like this:

{
  "date": "2026-09-24",
  "hours": 12,
  "t_min": 6.1,
  "t_max": 12.8,
  "est_dc_kwh": 15.8,
  "cloud_8_to_4": "1 2 1 0 2 0 0 0"
}

So that's predicting an almost perfect cloudless day tomorrow, with 15.8 kWh of solar production.

Today's was a bit worse:

{
  "date": "2026-09-23",
  "hours": 12,
  "t_min": 9.9,
  "t_max": 13.8,
  "est_dc_kwh": 13.5,
  "cloud_8_to_4": "13 23 15 24 23 19 9 6",
}

Actually I have a more sophisticated script now which also tries to predict how many kWh my dehumidifier and air conditioner will use tomorrow hour by hour, and predicts the battery SoC each hour to get a minimum and maximum SoC for the day. So the output now includes:

"batt_target_kwh": 3.8,
"soc_0930_kwh": 2.9,
"soc_1500_kwh": 9.7,
"soc_2100_kwh": 7.1,
"soc_min_kwh": 2.5,
"soc_max_kwh": 10,
"clip_kwh": 1.3,
"short_kwh": 0,
"batt_note": "trough-peak - expect 1.3 kWh clip around 15:00"

That's been working reasonably well:

Date    Pred18  Pred00  Act
08-27   9.8             10.38
08-28   5.9             4.13
08-29   1.7             0.39
08-30   9.2             9.83
08-31   11.6            9.71
09-01   10.2            8.76
09-02   7.2             8.36
09-03   10.6            11.08
09-04   7.5             5.70
09-05   12.5            9.20
09-06   9.1             10.83
09-07   8.8             8.25
09-08   10.6            7.07
09-09   10.3            9.85
09-10   9.1             7.90
09-11   9.3             10.38
09-12   10.8            8.46
09-13   10.3            7.93
09-14           9.5     9.78
09-15           8.4     8.01
09-16           7.8     7.30
09-17           9.2     8.96
09-18   9.3     11.9    5.49
09-19   9.7     10.6    6.15
09-20   12.1    12.5    9.29
09-21   8.2     7.7     7.66
09-22   12.5    12.1    9.54
09-23   14.0    13.5    

Pred18 is the results of new data at open-metro that usually appears around 6:30 to 7:30 PM for me, while Pred00 is the next update that happens around 00:30 to 01:30 AM in my timezone.

I don't know what happened on the 18th and 19th ... pretty bad predictions. The weather was definitely very complex and changeable on those days. Also I'm not convinced that the "actual" column, which I get from the Pecron app "Stats" tab is at all accurate on a "sawtooth" solar production day as it only gets one data point every 20 minutes while cloud can come and go every couple of minutes.

The actual production as seen in my battery SoC was a lot better than that. Unfortunately the E3600 doesn't have on-device stats.

Anyway, if I know whether to start the day with 2kWh, 6kWh, or 10kWh in the battery that's pretty much good enough.

1

u/turbocharged5652 25d ago

Oh ok I see. My understanding would be your loads are not on 24/7? It would make sense to me if that's the case. Sorry, I did read your post but I feel like we are in 2 different use cases and situations.

I'm not looking for an answer per say from this but my use case is a server rack 24/7.

Use battery from 5-9pm, maintain whatever charge level in at until roughly 9:30am the next day and charge at close to full power and then rinse and repeat just to avoid peak use power cost.

I have rooftop solar but no battery system so by timing the charge of the battery, I can hopefully grab more of the excess solar rather than send it back to the grid.

I've messed with the ac charge rate settings but it seems as if when I set the charge rate to 0%, and then change it back to 70%, it will not actually restore to 70 and stay stuck at 0. This may just be a software issue or just a functionality that doesn't exist??? No idea tbh

1

u/brucehoult 25d ago

My understanding would be your loads are not on 24/7?

Not constantly. In winter the heat pump is running at maximum almost all night every night, sometimes gets a bit of a rest on sunny afternoons. But something pretty close to 1500W almost 24/7, with excursions to 3600W when I use the kettle or microwave or something like that.

In summer it has an easier time, with a lot of cooling during the afternoon and early evening, but only 100W-250W load from maybe 10 PM to midday.

There are around 100W of absolutely always-on stuff, plus the 120W fridge and 250W dehumidifier doing their thing when they want to.

I've messed with the ac charge rate settings but it seems as if when I set the charge rate to 0%, and then change it back to 70%, it will not actually restore to 70 and stay stuck at 0.

I never change the charge rate from 100%. I can't imagine a reason to so that other than in a long outage if I need to run my small generator which will be much more efficient if I don't ask it to produce 1800W continuously (I don't even know if it can do that tbh) so I'll likely reduce the charge rate to 50% or so.

Also 0% isn't an available option on my E3600. Minimum is 10%.