Investigate migration of PowerwallDashboard (PWDash) away from InfluxDB.
Backround and ground rules:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
PWDash currently uses Influxdb 1.8; the current release is about to be 3.0 (as of March 2026), which may also have data retention limits as a free product. Whilst 1.8 is stable, this is a risk long term as it is no longer supported. For example, it may not be compatible with future OS releases.
Platforms/OS for PWDash that MUST be supported:
- Linux (amd64), tested on:
- Ubuntu 22.04.5 LTS, 25.10
- Alma Linux 8.10, 9.7, 10.1
- Debian 12.13, 13.3
- macOS, tested on:
- macOS Tahoe 26 (Intel)
- Windows (amd64), tested on:
- Windows 11, WSL2 Ubuntu
- Raspberry Pi OS 64-bit/Debian 13 (aarch64) on RPi 4B
- Synology
- Unraid
The current InfluxDB based PWDash MAY be supported for a (limited) time in parallel with a migrated solution, the migration process MUST accommodate this, such as updating migratiuon scripts.
The migration process MUST be designed to minimize disruption to users and ensure seamless transition, see the above issue #574 for ground rules.
Tasks
- Investigate use of TimescaleDB.
- Running TimescaleDB in Docker.
- Test Outflux to migrate schema and data.
- Assumption: fields as columns, tags in JSONB as they are arbitrary.
- How are InfluxDB queries to be migrated.
- Automated tool would be ideal.
- Investigate use of native Postgres.
- Running Postgres in Docker.
- Schema design.
- Assumption: fields as columns, tags in JSONB as they are arbitrary.
- Custom data migration tool.
- How are InfluxDB queries to be migrated.
- Automated tool would be ideal.
- Benchmarking
- Create stable and repeatable test environments.
- Acquire RPi4.
- Create VMs for Linux variants.
- WSL2/Ubuntu 22.04.5 LTS is available.
- macOS on Intel is available.
- macOS on M series not available, noting that performance will not be an issue.
- Create repeatable benchmark scripts.
- Mimic daily activity (default and heavy usage).
- Migration.
- Consider changes required to setup.sh and upgrade.sh.
- Create stable and repeatable test environments.