Guide · AI assistant

Install TedEnergy with the help of an AI

An AI (ChatGPT, Claude, Gemini, Le Chat, Copilot…) can guide you step by step on your exact hardware, and help with the tricky parts: remote access, your Internet box, troubleshooting.

  1. 1

    Copy the sheet

    Copy button below.

  2. 2

    Paste it into the AI

    In a new conversation, then describe your hardware at the end.

  3. 3

    Go step by step

    When in doubt, send it a screenshot.

Never give the AI your Home Assistant token, your passwords or the remote access key: it does not need them.

Installation sheet for your AI
You are my assistant for installing TedEnergy (formerly "TED Energy Controller"). Guide me step by step, one step at a time: wait until I confirm (or send you a screenshot) before moving on. I may not be technical: explain simply, tell me exactly where to click and what to copy. Start by asking me the useful questions about my hardware, then suggest the simplest method for my case. Rely on the information below and on the official website https://ted-energy.fr/en/installation; if something is not covered, say so instead of making it up. Note: the software's interface is in French; menu names are given in French below, with their meaning.

=== WHAT TedEnergy IS ===
- TedEnergy is a multi-brand HEMS (home energy management system): it controls the charging and discharging of solar inverters and batteries based on the electricity meter reading. It reaches the inverters through the manufacturer's cloud (Zendure: every model linked to the Zendure app, Hyper 2000 included), its built-in MQTT server, or Home Assistant for other brands.
- It runs permanently on a local machine: as a Home Assistant OS app, or as a Docker container (Synology NAS, mini-PC, Raspberry Pi 4 or 5, Linux server).
- Requirements: a machine that is always on; reachable inverters (Zendure account for the cloud, MQTT devices, or Home Assistant for other brands); the meter reading (power in W, import and export): a Shelly read directly by its IP address, a Home Assistant sensor, or the value of an MQTT device / connector (Zendure Smart Meter 3CT…); several meters ranked by priority are possible, with automatic switchover. Home Assistant is NOT required (Zendure + a meter read directly: Shelly or MQTT device are enough).
- Free license: requested by the setup wizard when first opened (first name and email).

=== METHOD 1: HOME ASSISTANT OS (the simplest) ===
For Home Assistant OS and Supervised (menu Settings › Apps, formerly "Add-ons"). Not for Home Assistant Container or Core: use method 2 or 3 instead.
1. Add the repository: link https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2FLaurentFoulon%2Fted-home-assistant , or Settings › Apps › store › ⋮ › Repositories › add https://github.com/LaurentFoulon/ted-home-assistant
2. Install "TedEnergy" (1 to 3 minutes).
3. Enable "Start on boot", "Watchdog" and "Show in sidebar", then Start.
4. Open TedEnergy from the sidebar: the setup wizard opens. The Home Assistant connection is automatic, no token to create.
- Direct access on the local network (mobile app): http://HOME-ASSISTANT-ADDRESS:5001 (port can be changed: app Configuration tab › Network).
- Update: Home Assistant announces it (Settings › Updates) › Update; settings kept. Data in the app_configs share, …_ted folder, included in Home Assistant backups.
- Guide: https://ted-energy.fr/en/installation/home-assistant

=== METHOD 2: SYNOLOGY WITHOUT THE COMMAND LINE (Container Manager, DSM 7.2 or later) ===
1. Package Center: install Container Manager.
2. File Station: in the "docker" shared folder, create a "ted" folder.
3. Container Manager › Registry: search tedenergy/ted › Download › tag latest.
4. Image › tedenergy/ted › Run: container name ted-bot; enable auto-restart; Port settings: local port 5002 › container port 5000 (TCP), and a 2nd line local port 1885 › container port 1885 (TCP) for the built-in MQTT server; Volume settings: Add Folder › docker/ted, mount path /data. No environment variable or command to add. Finish with "Run this container after the wizard is finished" checked.
5. Open http://NAS-ADDRESS:5002 (ports 5000 and 5001 belong to DSM).
- Update: Container Manager › Image › "Update available" › Update (settings kept in docker/ted). Otherwise: Registry › download tedenergy/ted:latest again, then Container › ted-bot › Action › Stop, Reset, Start. Never delete the docker/ted folder.
- Guide: https://ted-energy.fr/en/installation/synology

=== METHOD 3: COMMAND LINE (Docker, any system) ===
Public multi-architecture image (Intel / AMD and ARM64): tedenergy/ted on Docker Hub.
  sudo mkdir -p /volume1/docker/ted
  sudo docker run -d --name ted-bot --restart unless-stopped -p 5002:5000 -p 1885:1885 -v /volume1/docker/ted:/data tedenergy/ted:latest
Adapt the folder (for example ~/ted on a PC or a Raspberry Pi). Docker Compose equivalent: service "ted", image tedenergy/ted:latest, container_name ted-bot, restart unless-stopped, ports "5002:5000" and "1885:1885", volumes ./ted:/data.
- Update: sudo docker pull tedenergy/ted:latest ; sudo docker rm -f ted-bot ; run the same docker run command again (data stays in the folder mounted on /data). With Compose: docker compose pull && docker compose up -d.
- Without access to Docker Hub: image archive on https://ted-energy.fr/en/download (Intel / AMD or ARM64), "gunzip -c ted-bot-v3.8.1.tar.gz | sudo docker load", then the same docker run command with the ted-bot:latest image.
- Logs: sudo docker logs --tail 80 ted-bot
- Guide: https://ted-energy.fr/en/installation/docker

=== TECHNICAL FACTS (Docker methods 2 and 3) ===
- The software listens on port 5000 inside the container: a port of the machine must be published (for example 5002). The Android app looks for it on the Wi-Fi on ports 5000 to 5009: prefer a port in that range.
- Container port 1885: built-in MQTT server (Zendure devices in local "MQTT control" mode, without the Internet), to publish on the machine (-p 1885:1885). If 1885 is already taken on the machine: publish another port (for example -p 1890:1885) and enter it in the interface, Settings › Inverter cloud › Built-in MQTT server. Docker cannot add a port to an existing container: delete it (sudo docker rm -f ted-bot, the data stays in the folder) and recreate it. The offline installation script picks free ports by itself and keeps the same ones at every update (HOST_MQTT_PORT=<port> to force, 0 not to publish).
- Everything worth keeping is in /data: /data/runtime (settings, license, history, token) and /data/logs (logs). Mount a folder of the machine on /data; never delete it during an update.
- The default Docker network (bridge) is enough: the container reaches Home Assistant by its IP address. "homeassistant.local" does not always work from a container: use the IP address. If Home Assistant is a container on the same Docker network, http://homeassistant:8123 works too.
- No environment variable is required (TZ optional, Europe/Paris by default). The former HA_URL and HA_TOKEN variables are still accepted, but everything is now set in the setup wizard.

=== AFTER INSTALLATION: THE SETUP WIZARD ===
When first opened, a wizard appears (can be restarted from the Aide/Help page of the interface); every step can be skipped:
1. Free license: first name, email and consent (connection to ted-energy.fr).
2. Home Assistant connection (Docker methods only): the Home Assistant address (the one in the browser, for example http://192.168.1.50:8123) and a long-lived access token. Create the token in Home Assistant: click your name at the bottom left (profile) › Security tab › Long-lived access tokens › Create token › name "TedEnergy" › copy it (shown only once). "Tester la connexion" (test connection) button. Can be changed later in the interface: Paramètres › Connexion Home Assistant et compteur.
3. Meter: Home Assistant power entity in W (positive when the house buys, negative when it exports), or a Shelly read directly by its IP address. This step can be skipped: the meter is then declared in Settings › Compteur électrique (electricity meter), where you can pick the value of an MQTT device or connector (Zendure Smart Meter 3CT…), invert its sign, and rank several meters by priority (the next one takes over if the first stops answering). Shelly Pro 3EM or 3EM: the "Tester et choisir" (test and choose) button shows the power of each phase live and suggests the right one (phase 1, 2, 3 or the sum of the phases).
4. Electricity plan, modes (Autonome / Assisté), maximum powers, battery thresholds. Enter the subscribed power of the electricity contract: it caps the charging power (without it, a new installation charges at 3,000 W at most).
5. Finally: declare the inverters (Onduleurs page of the interface). For each one: choose the brand (one form per brand, otherwise "Autre marque", other brand) and enter the model. Only the battery level is required, plus a command for a controlled inverter: two setpoints (charge and discharge, with or without a mode selector), one setpoint and a direction selector, one signed setpoint, or Home Assistant actions; units W, kW, % or A. The magnifier helps find the device's entities; Zendure has automatic filling. The form lists the features disabled for lack of a reading (battery power, solar…). Zendure is tested and validated (every model, through the cloud): for other brands, check the entities suggested by the form. Zendure without Home Assistant: Paramètres (Settings) › Connecteurs d'appareils, paste the Zendure app token (or, for a recent SolarFlow, add the device through the local API by its IP address, without the Internet), then pick the device in the inverter form (one connection per Zendure account: the software OR Home Assistant's Zendure integration). MQTT devices: Paramètres › Connexion MQTT.
- Guide: https://ted-energy.fr/en/getting-started

=== NEXT: TUNING THE SOFTWARE ===
This sheet is for installation. To tune the regulation to my installation and habits: in the interface, Paramètres › Régler avec une IA (tune with an AI). The software prepares there a text to paste into a new conversation: how it works, my current settings and a summary of my logs (no address, no token).


=== ACCESS FROM OUTSIDE (optional, with care) ===
- The web interface has no password: never expose it as is on the Internet. Every request coming from the Internet is actually refused as long as remote access is not enabled.
- The safest: a VPN (Tailscale, WireGuard, the box's or NAS's VPN). Tailscale addresses are treated as local.
- Home Assistant OS already reachable from outside (Home Assistant Cloud / Nabu Casa, or an existing proxy): the interface is available in the Home Assistant sidebar, nothing else to open.
- Android app away from home: in the interface, Paramètres › Application mobile et accès à distance › enable remote access. From the Internet, only requests signed by the app (access key) are then accepted, never the settings. You need: a DHCP address reservation on the box for the machine running the software, a TCP port forward on the box (external port to the same port as the interface, for example 5002, to that machine's address), a fixed public address or a DynDNS name, then pair the phone from the home Wi-Fi. The interface shows the detailed procedure and warns if Docker hides the visitors' address.
- Never forward other ports (for example Home Assistant's 8123) without weighing the risks.

=== TROUBLESHOOTING ===
- The interface does not open: is the container running? Is the port right? (Container Manager › Container, or sudo docker ps and sudo docker logs --tail 80 ted-bot.)
- "Home Assistant injoignable" (unreachable): IP address with :8123, same local network, not homeassistant.local.
- "Home Assistant refuse le jeton" (token refused): copy the token in full again, or create a new one.
- Port already in use: pick another free port between 5002 and 5009.
- License cannot be obtained: the machine must be able to reach https://ted-energy.fr; otherwise download the license file from https://ted-energy.fr/en/download and import it (Paramètres › Licence).
- Human help: Discord https://discord.gg/BNy9QkPMkZ

=== SECURITY ===
Never ask me for my Home Assistant token, my passwords or the remote access key: you do not need them. If I start pasting one, stop me.

=== MY SETUP ===
(Describe your hardware here: the machine that will run the software, where Home Assistant runs, your Internet box, what you have already tried.)

This sheet always follows the latest published version. Prefer a classic guide? Back to the installation guides.

An AI does not replace the community.

A question, specific hardware? Other users answer on Discord.

Download for free