Repository navigation
Releases: womat/ecoflow
Release list
v0.9.0
Changelog
Features
- bb5cdc2 feat(contrib)!: install under /opt/ecoflowd like the sibling services
Bug fixes
- c1b4961 fix: the Bearer scheme in any case and with more than one space (RFC 7235)
Documentation
- 1f04552 docu: work goes to main directly, a PR only when someone should review
Other
- f16b040 Add golangci-lint and update the dependencies (#83)
- 600ad08 Refresh the social preview and catch up stale docs (#82)
- d5cef63 Use a generic hostname in the certificate example (#84)
Docker
docker pull ghcr.io/womat/ecoflowd:0.9.0 – for linux/amd64, linux/arm64,
linux/arm/v7 and linux/arm/v6; see "Quick start: Docker" in the README.
Which file do I need?
| Archive | Machine |
|---|---|
linux_arm64 |
Raspberry Pi 3 / 4 / 5 / Zero 2 W with a 64-bit OS |
linux_armv7 |
Raspberry Pi 2 / 3 / 4 / 5 / Zero 2 W with a 32-bit OS |
linux_armv6 |
Raspberry Pi 1 and Zero (1st gen) |
linux_amd64 |
ordinary Linux PC/server, NAS |
darwin_arm64 |
Mac with Apple Silicon |
darwin_amd64 |
Mac with Intel |
windows_amd64 (zip) |
Windows |
Each archive holds ecoflowd, the systemd unit contrib/ecoflowd@.service,
README.md and LICENSE. Check the download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing
v0.8.0
Changelog
Other
Docker
docker pull ghcr.io/womat/ecoflowd:0.8.0 – for linux/amd64, linux/arm64,
linux/arm/v7 and linux/arm/v6; see "Quick start: Docker" in the README.
Which file do I need?
| Archive | Machine |
|---|---|
linux_arm64 |
Raspberry Pi 3 / 4 / 5 / Zero 2 W with a 64-bit OS |
linux_armv7 |
Raspberry Pi 2 / 3 / 4 / 5 / Zero 2 W with a 32-bit OS |
linux_armv6 |
Raspberry Pi 1 and Zero (1st gen) |
linux_amd64 |
ordinary Linux PC/server, NAS |
darwin_arm64 |
Mac with Apple Silicon |
darwin_amd64 |
Mac with Intel |
windows_amd64 (zip) |
Windows |
Each archive holds ecoflowd, the systemd unit contrib/ecoflowd@.service,
README.md and LICENSE. Check the download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing
v0.7.0
Changelog
Other
- 3cd4d63 Add a security policy and README badges (#76)
- 60af619 Bring the repo up to the standard of the other public projects (#80)
- 321bc5d Move modbusread to its own repository (#78)
- 04b46bb Note the firewall rule and file rights found while setting up --block (#74)
- 56b73cc Pin the actions to commit SHAs, check for vulnerabilities, add dependabot (#77)
- fb82c05 Put ecoflowd first, add a container image and a compose file (#79)
- 53b134b Show how a --block request travels, as a sequence diagram (#75)
Docker
docker pull ghcr.io/womat/ecoflowd:0.7.0 – for linux/amd64, linux/arm64,
linux/arm/v7 and linux/arm/v6; see "Quick start: Docker" in the README.
Which file do I need?
| Archive | Machine |
|---|---|
linux_arm64 |
Raspberry Pi 3 / 4 / 5 / Zero 2 W with a 64-bit OS |
linux_armv7 |
Raspberry Pi 2 / 3 / 4 / 5 / Zero 2 W with a 32-bit OS |
linux_armv6 |
Raspberry Pi 1 and Zero (1st gen) |
linux_amd64 |
ordinary Linux PC/server, NAS |
darwin_arm64 |
Mac with Apple Silicon |
darwin_amd64 |
Mac with Intel |
windows_amd64 (zip) |
Windows |
Each archive holds ecoflowd, the systemd unit contrib/ecoflowd@.service,
README.md and LICENSE. Check the download against checksums.txt:
sha256sum -c checksums.txt --ignore-missing
v0.6.0
What's Changed
- Tighten the docs: one place per finding by @womat in #64
- Settle whether night readings arrive: they do by @womat in #65
- Document how the app handles scheduled tasks (96/125, 96/127, 96/10) by @womat in #66
- Record the write test: the device accepts 96/125 without the app by @womat in #67
- Record the second write test: create and delete work without the app by @womat in #68
- Record the third write test: only the app refuses overlapping tasks by @womat in #69
- Record the fourth write test: own times are stored but not executed by @womat in #70
- Note the recommendation for task control and the missing direct block by @womat in #71
- Record the fifth write test: tasks switched from outside the app work by @womat in #72
- Add --block: switch the discharge block task over HTTPS by @womat in #73
Full Changelog: v0.5.1...v0.6.0
v0.5.1
What's Changed
- Point the install examples at v0.5.0 by @womat in #54
- Draw how ecoflowd gets its data by @womat in #55
- Drop exitRuntime, which nothing returns by @womat in #56
- Write the README in English by @womat in #57
- Translate the output format notes and name them mqtt-output.md by @womat in #58
- Translate the remaining docs to English by @womat in #59
- Bring five stale statements in line with what was measured by @womat in #60
- Say which measurement the frozen REST timestamp belongs to by @womat in #61
- Name what the tools do in the README heading by @womat in #62
- Keep the first minutely report after the fast stream ends by @womat in #63
Full Changelog: v0.5.0...v0.5.1
v0.5.0
⚠️ Breaking: new MQTT output format
ecoflowd --broker now publishes two JSON telegrams instead of one topic per value:
<topic>/state {"sn":"HC31…","timestamp":"2026-09-22T09:13:16Z","pv":975,"house":-459,"battery":515,"grid":0,"soc":63}
<topic>/energy {"sn":"HC31…","timestamp":"2026-09-22T09:13:18Z","pv":3301,"house":3206,"batteryIn":1545,"batteryOut":1562,"gridIn":62,"gridOut":175}
- Removed:
ecoflow/<SN>/pv,/house,/battery,/grid,/dcdc,/soc,/measured,/energy/…and the retainedecoflow/<SN>/statuswith its last will. Consumers subscribed toecoflow/<SN>/+must switch; the README has evcc (jq:) and Home Assistant (value_template) examples. - The serial is in the payload, not in the topic. With more than one device, give each instance its own
--topicin/etc/ecoflowd/<SN>.env. timestampis the device's measurement time. Check its age instead of an availability topic:timeoutin evcc,expire_afterin Home Assistant.dcdcis no longer published until its meaning is established.
Upgrading: the old retained status stays on the broker. Delete it once v0.5.0 is running, not before, because v0.4.x rewrites it:
mosquitto_pub -h <broker> -r -n -t ecoflow/<SN>/statusWhat's Changed
- Point the install examples at v0.4.2 by @womat in #45
- Answer two of the three questions a capture could settle by @womat in #46
- Settle the PV string report, and say why 110 is stuck by @womat in #47
- The portal's day total agrees after all - once the day is over by @womat in #48
- Retract a rate claim that was wrong, and read the night by @womat in #49
- Fetch the unit alongside the binary, and say why it stays in /usr/local/bin by @womat in #50
- Write down why the output is one topic per value, and why JSON would be better by @womat in #51
- Require go 1.27 rather than 1.27.1, and update x/net and x/sync by @womat in #53
- Publish two JSON telegrams instead of one topic per value by @womat in #52
Full Changelog: v0.4.2...v0.5.0
v0.4.2
What's Changed
- Make the version examples agree, and say how to pick one by @womat in #38
- Fix two faults that only show up after days of running by @womat in #39
- Stop corrupting the set frame and re-logging in on a bad line by @womat in #40
- Stop treating every refused login as a wrong password by @womat in #42
- Fix references that point nowhere and claims that stopped being true by @womat in #43
- Skip a damaged frame instead of ending the run on it by @womat in #44
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
- Ignore the built commands in the working directory by @womat in #33
- Say plainly where this writes, because it no longer writes nowhere by @womat in #34
- Bring api-status.md up to what was measured, and hang its sections right by @womat in #35
- Close the gaps between the README and what the tools do by @womat in #36
- Correct the instructions an agent is told to follow by @womat in #37
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- Probe the EcoFlow cloud API and record what it refuses by @womat in #5
- Try the documented POST endpoint too, and keep its field names by @womat in #6
- Prepare the questions for the installer visit by @womat in #7
- Record the device under test and how to check the Modbus switch by @womat in #8
- Timestamp MQTT messages and add the one command that asks by @womat in #9
- Bring the register map up to the current source by @womat in #10
- Cross-check the map against evcc, and rule out OpenHAB by @womat in #11
- Iterate the output lines instead of slicing them by @womat in #12
- Send the header that makes the portal endpoint answer by @womat in #14
- Add a status command so the portal answer reads at a glance by @womat in #15
- Close the last two gaps in the script's own documentation by @womat in #16
- Fix the grid direction: positive means export by @womat in #17
- Ignore Claude Code's per-user permission rules by @womat in #18
- Document the step-by-step workflow for a change by @womat in #19
- Document how to get a portal token and read live values by @womat in #20
- Keep the cloud channel awake instead of reading a frozen one by @womat in #21
- Open up the most frequent frame: it is the day's hourly energy by @womat in #22
- Open up the last two frequent frames: an ack and a parts list by @womat in #23
- Mask the real serial numbers in the examples by @womat in #24
- Let the wake-up call be switched off, so it can be measured by @womat in #25
- Decode the device frames in Go, checked against real captures by @womat in #26
- Add the way in: login, credentials, client id, topics by @womat in #27
- Add ecoflowd: read the channel and keep reading it by @womat in #28
- Add --fast, the one thing here that writes to the device by @womat in #29
- Publish the readings to a local broker by @womat in #30
- Ship ecoflowd: release archives and a systemd template by @womat in #31
- Simplify ecoflowd's configuration: no token file, no second name by @womat in #32
Full Changelog: v0.2.1...v0.4.0
v0.2.1
What's Changed
Full Changelog: v0.2.0...v0.2.1