• v0.7.0 7bffe43f4e

    v0.7.0
    All checks were successful
    Release / test-1 (push) Successful in 5m10s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 40s
    Release / hassfest (push) Successful in 1m45s
    Release / validate (push) Successful in 0s
    Validate / hacs (push) Successful in 40s
    Validate / hassfest (push) Successful in 2m1s
    Test / test (push) Successful in 4m23s
    Release / release (push) Successful in 51s
    Stable

    r3pek released this 2026-09-02 09:38:06 +01:00 | 0 commits to main since this release

    • New scene selection combo box on each tank device -- activates a
      scene tank-wide in one write; "None" resumes the normal schedule.
    • New per-device "Configured scenes" sensor: how many scene slots are
      used, with the device's own total capacity and a compact scene list
      as attributes.
    Downloads
  • v0.6.0 6d8d513c54

    v0.6.0
    All checks were successful
    Release / test-1 (push) Successful in 6m39s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 52s
    Release / hassfest (push) Successful in 2m5s
    Release / validate (push) Successful in 0s
    Validate / hacs (push) Successful in 47s
    Validate / hassfest (push) Successful in 2m4s
    Test / test (push) Successful in 4m43s
    Release / release (push) Successful in 51s
    Stable

    r3pek released this 2026-09-01 11:21:23 +01:00 | 3 commits to main since this release

    • LED auto-dim timeout and Max fan speed now show friendly labels
      ("Off", "30 seconds", "100%") instead of bare numbers.
    • New poll interval number entity on each tank device (10-300s,
      default 30s) -- applies to every device on that tank.
    • New time sync switch on each tank device, to disable the hourly
      clock sync if you'd rather manage it another way.
    • After the first poll, every device fetches identity + metadata +
      light/pump state in one round-trip via get_full_poll_batch() --
      PrimitiveType/Model are cached permanently, never re-fetched.
    • Light and pump devices now avoid re-fetching their own schedule a
      second time for the current-intensity/current-block lookup, via
      get_light_poll_batch().
    • Added a debug log confirming used_batch on every poll -- previously
      only failures were logged.
    Downloads
  • v0.5.0 cacbd1e824

    v0.5.0
    All checks were successful
    Release / test-1 (push) Successful in 7m39s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 45s
    Release / hassfest (push) Successful in 2m0s
    Release / validate (push) Successful in 0s
    Release / release (push) Successful in 55s
    Validate / hacs (push) Successful in 1m3s
    Test / test (push) Successful in 4m38s
    Validate / hassfest (push) Successful in 1m49s
    Stable

    r3pek released this 2026-08-31 11:29:23 +01:00 | 12 commits to main since this release

    • Fixed three Home Assistant device_registry deprecations (async_get_device,
      the via_device DeviceInfo field, and iterating .devices directly)
      that a newer core version turns into hard errors.
    • Diagnostics now include the gateway registry's own generation
      counter and each device's own batch health (batch_disabled,
      consecutive_batch_failures, supported_attributes).
    • Firmware version sensor now carries this device's own supported
      attributes as an entity attribute, by name rather than raw IDs.
    • A device whose batched metadata read fails 2 polls running now
      falls back to individual reads permanently for that device, logged
      at debug level.
    • Coordinators now fetch AdvancedFeatures/CalibrationInfo/hardware/
      firmware/channels in one round-trip (get_metadata_batch()) instead
      of five -- confirmed 6-14x faster over relay.
    • Fixed gateway election oscillating indefinitely in some multi-device
      tanks -- a stale, in-flight failure could get misattributed against
      the current gateway, sometimes triggering another promotion on top
      of one that already superseded it.
    • Breaking: LocalControlEnabled/AutoDimTimeout/MaxFanSpeed/
      FanShutdownEnabled are now switch/select entities, not read-only
      sensors. Old sensor.* entities won't be re-created; remove them
      manually and update any automations/dashboards to the new
      switch./select. entity_ids.
    • Every entry now gets a synthetic tank device, including a single,
      ad-hoc one -- previously only multi-device tanks got one.
    Downloads
  • v0.4.1 4e80c0b4df

    v0.4.1
    All checks were successful
    Release / test-1 (push) Successful in 5m5s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 46s
    Release / hassfest (push) Successful in 1m44s
    Release / validate (push) Successful in 0s
    Validate / hacs (push) Successful in 41s
    Validate / hassfest (push) Successful in 2m8s
    Test / test (push) Successful in 4m14s
    Release / release (push) Successful in 57s
    Stable

    r3pek released this 2026-08-23 23:07:52 +01:00 | 23 commits to main since this release

    • Fixed minimum_flow/maximum_flow (the flow sensor's own attributes)
      not converting to match a per-entity display unit override -- HA's
      own unit conversion only applies to the sensor's state, not its
      attributes, so this is now done manually to match.
    Downloads
  • v0.4.0 a3cd37ed77

    v0.4.0
    All checks were successful
    Release / test-1 (push) Successful in 5m27s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 46s
    Release / hassfest (push) Successful in 1m48s
    Release / validate (push) Successful in 0s
    Validate / hacs (push) Successful in 39s
    Validate / hassfest (push) Successful in 1m50s
    Test / test (push) Successful in 4m5s
    Release / release (push) Successful in 50s
    Stable

    r3pek released this 2026-08-23 22:31:56 +01:00 | 26 commits to main since this release

    • Added a "Bluetooth proxy hardware" section to the README, plus a
      validated ESPHome config for using an ESP32-S3 as one
      (esphome/mobius-bt-proxy.yaml).
    • The estimated flow sensor is no longer created for a pump the app
      itself wouldn't trust a flow reading for (a real AI Axis 20 reported
      ~8x its own rated max flow). Adds flow_reliable/minimum_flow/
      maximum_flow as its own attributes.
    • Added support for AquaIllumination devices (company ID 0x0001) --
      previously discovered by name but never identified, since every
      manufacturer-data lookup only checked EcoTech's own 0x0202.
    • New sensors for VorTech's own "Local Control"/"Led Auto Dim" and
      Radion's own "Max Fan Speed"/"Fan Shutdown" settings, when a device
      actually supports them.
    • Each tank's clock now gets nudged back to the current time once an
      hour, via one write to its own current gateway. Fixes devices
      occasionally losing sync with each other.
    • Added a reboot button for every device.
    Downloads
  • v0.3.4 88967b59b7

    v0.3.4
    All checks were successful
    Release / test-1 (push) Successful in 5m6s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 42s
    Release / hassfest (push) Successful in 1m43s
    Release / validate (push) Successful in 0s
    Validate / hacs (push) Successful in 41s
    Validate / hassfest (push) Successful in 1m51s
    Test / test (push) Successful in 4m2s
    Release / release (push) Successful in 48s
    Stable

    r3pek released this 2026-08-18 11:46:42 +01:00 | 39 commits to main since this release

    • Fixed a device's name sometimes staying stuck as "Mobius device
      (SERIAL)" even after it started working again.
    • Fixed the firmware version sensor showing "Unknown" for
      AquaIllumination-brand devices (AI Prime, AI Axis, and similar).
    • Now requires python-mobius 0.4.4 (still auto-installed, nothing to
      do manually), for its own fixes to the device model list and to the
      lunar-phase light intensity calculation.
    Downloads
  • v0.3.3 4300fc9e75

    v0.3.3
    All checks were successful
    Release / test-1 (push) Successful in 4m38s
    Release / test (push) Successful in 0s
    Release / hacs (push) Successful in 48s
    Release / hassfest (push) Successful in 1m54s
    Release / validate (push) Successful in 0s
    Validate / hacs (push) Successful in 51s
    Validate / hassfest (push) Successful in 2m23s
    Test / test (push) Successful in 4m31s
    Release / release (push) Successful in 1m7s
    Stable

    r3pek released this 2026-08-14 19:30:40 +01:00 | 45 commits to main since this release

    • Fixed some sensors (motor speed, flow rate, light intensity,
      calibration, and similar) sometimes showing "Unavailable" forever
      after a reboot, for one or two devices on a tank, even though
      everything else about that device kept updating normally. Caused by
      a relayed (non-gateway) device's own very first read sometimes
      failing right after startup -- often because Home Assistant's own
      Bluetooth cache isn't fully warmed up yet at that exact moment. That
      first read now gets a couple of quick retries, and, as a backstop,
      Mobius periodically checks for and fills in any sensors that still
      ended up missing.
    Downloads
  • v0.3.2 2f79014dd0

    v0.3.2
    All checks were successful
    Release / hacs (push) Successful in 44s
    Release / hassfest (push) Successful in 1m39s
    Release / validate (push) Successful in 0s
    Release / test-1 (push) Successful in 3m57s
    Release / test (push) Successful in 0s
    Validate / hacs (push) Successful in 37s
    Validate / hassfest (push) Successful in 1m44s
    Test / test (push) Successful in 4m11s
    Release / release (push) Successful in 50s
    Stable

    r3pek released this 2026-08-14 14:46:27 +01:00 | 47 commits to main since this release

    • Fixed relayed devices (anything reached through a gateway, not
      directly over BLE) sometimes getting stuck failing every single
      update for extended periods, even though the gateway itself and
      every other device on the tank kept working fine the whole time. If
      a device keeps failing to relay through its current gateway, a
      different gateway now gets tried automatically instead of needing a
      manual reload to recover.
    • Fixed a device occasionally going missing from Home Assistant's own
      Bluetooth cache for a long stretch, even while still nearby and
      broadcasting. Mobius now periodically checks its own gateway is
      still visible there and asks Home Assistant to do a quick active
      scan if not, rather than only finding out reactively once something
      actually failed to connect.
    • Now requires python-mobius 0.4.3 (still auto-installed, nothing to
      do manually) and won't automatically move to its next minor version
      even once one exists, to avoid a python-mobius change breaking
      Mobius before a matching update here has actually been tested
      against it.
    Downloads
  • v0.3.1 0c98b4b790

    v0.3.1
    All checks were successful
    Release / test-1 (push) Successful in 6m51s
    Release / test (push) Successful in 0s
    Test / test (push) Successful in 5m36s
    Validate / hacs (push) Successful in 44s
    Release / release (push) Successful in 1m5s
    Validate / hassfest (push) Successful in 1m45s
    Stable

    r3pek released this 2026-08-13 15:21:42 +01:00 | 60 commits to main since this release

    • Fixed the "Discovered at" sensor, which could show confusing,
      out-of-order values. It's now a "last seen" attribute on the mesh
      address sensor instead, updating about every 30 seconds.
    • Fixed gateway failover getting stuck bouncing between the same two
      devices forever on a tank with more than two, never trying the
      others.
    • A tank now checks and refreshes its own connection info (which
      device to reconnect through, addresses) about once a minute instead
      of every 12 hours, so a device that couldn't be reached comes back
      much sooner once it's reachable again.
    • Fixed newly-added devices sometimes never showing up in Home
      Assistant, even though they were clearly nearby and broadcasting.
    • Removing a device (or a whole tank) now also tells Home Assistant to
      forget it was seen before, so re-adding the same physical device
      later isn't silently blocked.
    • Now requires Home Assistant 2026.7.0 or newer.
    • Added a lot more detail to debug logging (Settings > Devices &
      Services > Mobius > Enable debug logging) -- connection attempts,
      gateway elections and failovers, and mesh scans are all covered now,
      to make it much easier to see what's going on if something isn't
      connecting.
    • The diagnostics download now also shows whether Home Assistant
      itself currently sees each device over Bluetooth, separately from
      what Mobius has cached -- useful for telling "Mobius's own cached
      info is stale" apart from "Home Assistant hasn't seen this device
      recently" when nothing's connecting.
    • Most sensors now have a proper icon instead of the generic default.
    Downloads
  • v0.3.0 e9f329df13

    v0.3.0
    Some checks failed
    Release / release (push) Failing after 9m30s
    Validate / hacs (push) Successful in 36s
    Validate / hassfest (push) Successful in 1m44s
    Test / test (push) Successful in 8m4s
    Stable

    r3pek released this 2026-08-10 01:38:26 +01:00 | 79 commits to main since this release

    • Devices can now be added as a full tank instead of one at a time.
      When a new device is found, Mobius checks whether it's part of a
      bigger setup and offers to add every device on that tank at once.
      Devices in the same tank are grouped together under one hub in the
      device list.
    • The "add tank" screen now lists the actual devices found, and lets
      you name the tank right there.
    • A newly found device that belongs to a tank you've already set up
      gets added to it automatically -- no need to set it up separately.
    • Mobius now periodically double-checks which devices are actually on
      each tank. If a device turns up on a different tank you've already
      set up (for example, after moving it to another aquarium), it gets
      moved there automatically. A device that just goes quiet is left
      alone, though -- it's not removed.
    • Fixed a real bug where a tank could fail to load at all if even one
      of its devices was temporarily unreachable, even after a restart.
      Now the tank loads as long as at least one device responds; a
      device that's still unreachable just shows unavailable instead of
      blocking the whole tank.
    • Setting up a tank now only needs to connect to one device, not one
      per device -- Mobius learns where the rest are from that single
      connection instead. Faster setup, less Bluetooth traffic.
    • Added Mesh address, Discovered at, and Mesh prefix diagnostic
      sensors.
    • Added a "Gateway device" sensor showing which device is currently
      relaying for the rest of a tank, by name.
    • Added support for Home Assistant's built-in diagnostics download
      (Settings > Devices & Services > Mobius > your tank > Download
      diagnostics), useful if you ever need to report an issue.
    • Various reliability and under-the-hood fixes.

    After upgrading: your existing Mobius devices will show as failed.
    This is expected -- remove them and Home Assistant will find them again
    automatically, this time offering to add each tank as a whole. Do this
    after upgrading, not before, so rediscovery happens under the new
    version from the start.

    Downloads