Sign inSign up

djflix/ecoflow-iobroker-unraid-bridge

By djflix

•Updated 5 days ago

Make your Ecoflow back up battery visible as a UPS by exposing IOBroker messages

Image
0

162

djflix/ecoflow-iobroker-unraid-bridge repository overview

Config is done through YAML (/config/config.yaml) or environment variables:

EnvPurpose
MQTT_BROKERe.g. tcp://192.168.1.10:1883 (or ssl://…:8883)
MQTT_USERNAME / MQTT_PASSWORDbroker auth
MQTT_TOPICScomma-separated subscription list (default #)
MQTT_DEVICE_SNonly track this serial (e.g. R641ZDH4F2A20008)
MQTT_QOS, MQTT_STALE_AFTERsubscription QoS, COMMLOST timeout (default 90s)
MQTT_TLS, MQTT_TLS_INSECURE, MQTT_TLS_CA_FILETLS to the broker
UPS_MODEL, UPS_NAME, UPS_SERIALidentity shown in Unraid
UPS_CAPACITY_WH245 for River 3, 286 for River 3 Plus/Plus Wireless
UPS_NOMINAL_OUT_WATTSrated AC output for LOADPCT (300 for River 3)
UPS_NOMINAL_IN_VOLTS230 (EU) / 120 (US)
UPS_LOW_BATTERY_PCTLOWBATT floor (default 20)
UPS_MIN_DSG_SOCfirmware discharge limit (auto-detected when telemetry has it)
NIS_LISTENNIS listen address (default :3551)

This is what a config.yaml can look like:

# ecoflow-ups-bridge configuration
# All values can be overridden with environment variables (see README).

mqtt:
  # Broker that carries your EcoFlow device telemetry
  # (e.g. the Mosquitto broker addon in Home Assistant).
  # tcp://host:1883, or ssl://host:8883 to force TLS.
  broker: tcp://192.168.1.10:1883
  username: ""
  password: ""
  client_id: ecoflow-ups-bridge

  # Topics to subscribe to. Default "#" subscribes to everything and the
  # bridge auto-detects EcoFlow telemetry (it ignores anything it can't
  # parse). Narrow this once you know your bridge's topic, e.g.:
  #   topics: ["ecoflow/#"]
  #   topics: ["/app/device/property/R641ZDH4F2A20008"]
  topics:
    - "#"

  # Serial number of your unit (e.g. R641ZDH4F2A20008). Set this if more
  # than one EcoFlow device publishes to the same broker.
  device_sn: ""

  qos: 0

  # Mark the UPS as COMMLOST if no telemetry arrives for this long.
  stale_after: 90s

  # Log incoming payloads, parser matches, and NIS status diagnostics.
  # Payloads are truncated at 4 KiB; enable temporarily while troubleshooting.
  debug: false

  tls:
    enabled: false
    insecure_skip_verify: false
    ca_file: ""

ups:
  name: ECOFLOW            # UPSNAME shown in Unraid
  model: River 3           # MODEL shown in Unraid
  serial: ""               # SERIALNO (auto-detected from MQTT if empty)
  capacity_wh: 245         # River 3 = 245, River 3 Plus = 286, + battery = 245
  nominal_out_watts: 300   # rated AC output (LOADPCT denominator)
  nominal_in_volts: 230    # NOMINV (120 for US models)
  nominal_battery_volts: 51.2
  line_freq: 50.0          # 60.0 for US models

  # Report LOWBATT when the charge drops to this level. Unraid applies its
  # own shutdown thresholds on top of this.
  low_battery_pct: 20

  # Firmware discharge floor (matches the app's "Discharge limit", usually 0
  # or 10). Auto-detected from telemetry when available.
  min_dsg_soc: 0

  # Inverter efficiency used for runtime estimates.
  efficiency: 0.85

  # Consider the unit "on mains" when input power is at least this many
  # watts (chargers trickle at ~0W at 100%).
  online_input_watts: 2

  # Upper bound for the reported TIMELEFT.
  max_timeleft_min: 600

  # Report NOMINV as LINEV when the payload has no AC input voltage.
  report_nominal_linev: true

server:
  # apcupsd NIS listen address. This is what Unraid's "UPS Server" points to.
  listen: ":3551"
  hostname: ""             # HOSTNAME field; defaults to system hostname

# Optional: override the payload keys used to find each value.
# Defaults cover River 3 (Gen3: DisplayPropertyUpload/RuntimePropertyUpload),
# and River/Delta 2 ("quat20": pd/inv/bms_bmsStatus, nested or flat params).
# Each list is tried in order; first match wins.
# fields:
#   soc:
#     - "DisplayPropertyUpload.bmsBattSoc"
#   input_watts:
#     - "DisplayPropertyUpload.powGetAcIn"
#   output_watts:
#     - "DisplayPropertyUpload.powOutSumW"
#   ac_connected:
#     - "DisplayPropertyUpload.plugInInfoAcInFlag"
#   battery_volts:
#     - "RuntimePropertyUpload.bmsBattVol"
#   ac_in_volts:
#     - "RuntimePropertyUpload.plugInInfoAcInVol"
#   remain_time_min:
#     - "DisplayPropertyUpload.bmsDsgRemTime"

Tag summary

Content type

Image

Digest

sha256:145958ea7…

Size

6 MB

Last updated

5 days ago

docker pull djflix/ecoflow-iobroker-unraid-bridge