The GivEnergy app stopped being reliable before the company went into administration. Inverters showing offline when they were clearly working. Scheduling changes that took minutes to apply or silently failed. Cloud dashboards that lagged by 30 minutes or simply wouldn't load. For a system I had spent over £10,000 installing and was depending on for overnight battery scheduling, this was not acceptable.
So I moved everything local. The monitoring, the scheduling, the automation logic — all of it now runs on a ThinkPad X201 that cost about £40 on eBay, running Proxmox as a hypervisor with Home Assistant as a virtual machine on top. The GivEnergy inverters communicate directly with Home Assistant via Modbus TCP using a project called GivTCP. No cloud. No app. No dependency on a company that has since proven it could not keep the lights on.
This is a writeup of how I did it — the hardware, the software stack, the configuration, and what it looks like in practice. It is aimed at people with GivEnergy systems who are already frustrated, or who are simply thinking ahead after reading the administration news.
GivEnergy entered administration on 9 April 2026. Hardware warranties have been voided, cloud services may not remain operational indefinitely, and the app's scheduling functions depend on GivEnergy's servers. If you have a GivEnergy system, local control via Home Assistant is now not just a preference but a practical necessity for long-term reliability.
Why Proxmox on a ThinkPad X201
The ThinkPad X201 is not the obvious choice for a home server. It is a 2010-era laptop with an Intel Core i5-520M processor, typically 4–8GB of RAM, and no dedicated graphics. What it has going for it is a fanless-equivalent idle power draw of around 8–12W, near-silent operation, a built-in UPS in the form of its battery, and a price point that means replacing it if something goes wrong is not a significant event.
I bought mine with 8GB RAM and a 256GB SSD already fitted, which is more than adequate. The total outlay was £42 including postage.
Why Proxmox rather than installing Home Assistant directly? Because Proxmox lets you run multiple virtual machines and containers on the same hardware. Home Assistant runs as one VM. I also run a Pi-hole container for network-wide ad blocking, and have the option to run other services without needing additional hardware. It also means Home Assistant updates and experiments are isolated — if something breaks in a VM you can roll back without affecting the underlying machine.
The X201's age means it does not support some of the newer virtualisation features, but Home Assistant OS runs comfortably in a KVM virtual machine on Proxmox even on this hardware. CPU usage at idle is around 3–5%. Memory usage with Home Assistant and a few integrations running is around 2.5GB. The machine is quiet, cool, and has been running continuously for months without incident.
The software stack
The complete stack is:
- Proxmox VE 8.x — the hypervisor, running on bare metal on the X201
- Home Assistant OS — running as a KVM virtual machine inside Proxmox
- GivTCP — a Home Assistant add-on that communicates with GivEnergy inverters directly via Modbus TCP over the local network
- Octopus Energy integration — pulls live tariff rates and intelligent dispatch data into Home Assistant
GivTCP is the key piece. It was built by the open-source community specifically to provide local control of GivEnergy systems. It communicates directly with the inverter over your local network using the Modbus protocol — the same protocol the inverter uses internally. No cloud, no API keys, no dependency on GivEnergy's servers.
Setting up Proxmox on the X201
Installing Proxmox is straightforward if you have ever installed Linux from a USB drive. The process:
- Download the Proxmox VE ISO from proxmox.com and write it to a USB drive using Balena Etcher or Rufus.
- Boot the X201 from the USB drive and follow the installer. Proxmox will install to the internal SSD and configure the network automatically if you are connected via ethernet (which you should be — the X201's wifi is not ideal for a server).
- Once installed, you access the Proxmox web interface from any browser on your network at
https://[x201-ip-address]:8006. Accept the self-signed certificate warning. - The installer asks for an email address, a password, and a hostname. Use something memorable for the hostname — I used
solar-server.
Give the X201 a static IP address on your router before you start. Most home routers let you reserve an IP for a specific device by MAC address. This means the Proxmox web interface is always at the same address and Home Assistant's network connection never changes. I use 192.168.1.50 for the server.
Installing Home Assistant OS as a Proxmox VM
The Home Assistant project maintains official documentation for running HAOS under Proxmox, and there is also a community script that does most of the work automatically. I used the community script because it handles the disk image download and VM configuration correctly for the X201's hardware:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm.sh)"
This script prompts you through the configuration — VM ID, RAM allocation, disk size, and so on. I gave Home Assistant 4GB of RAM and 32GB of disk, which is more than it needs but leaves room for the history database to grow. The script downloads the correct HAOS image, creates the VM, and boots it automatically.
Within a few minutes, Home Assistant is running and accessible at port 8123 on a new IP address (the VM gets its own IP via DHCP — note this down or set a reservation for it too).
Connecting GivTCP to the inverter
This is the part that actually makes the system useful. GivTCP communicates with the GivEnergy inverter directly over the local network using Modbus TCP on port 8899. The inverter must be on the same network as Home Assistant.
First, find your inverter's IP address. It will have been assigned by your router's DHCP. Log into your router and look for a device with a hostname like GivEnergy or similar. Again, set a static reservation — you do not want this changing.
In Home Assistant:
- Go to Settings → Add-ons → Add-on Store and search for GivTCP. Install it.
- In the GivTCP configuration, enter your inverter's local IP address and your inverter serial number (found on the sticker on the inverter itself, or in the GivEnergy portal under Devices).
- Start the add-on. If everything is correct, within a minute you will see entities appearing in Home Assistant for battery state of charge, solar generation, grid import/export, and dozens of other parameters.
invertor_ip: 192.168.1.xxx # your inverter's local IP
invertor_port: 8899
invertor_serial: SA2xxxxxxxxx # your serial number
num_batteries: 1 # adjust for your installation
run_time_series: true # enables historical data logging
Once GivTCP is connected, Home Assistant has real-time data from the inverter — updated every 30 seconds — without touching GivEnergy's cloud at all. The entities include:
- Battery state of charge (percentage)
- Solar generation (watts, real-time)
- Grid import and export (watts)
- Battery charge and discharge rates
- Inverter temperature
- AC and DC voltages
- All the scheduling parameters — charge targets, time slots, AC charge settings
Integrating with Octopus Intelligent Go
The Octopus Energy integration for Home Assistant pulls your current tariff rate, your intelligent dispatch schedule, and your account data directly into Home Assistant. This is where local control becomes genuinely powerful.
Install the Octopus Energy integration via HACS (Home Assistant Community Store) or from the integration page. Once configured with your Octopus account API key, you get entities including:
- Current electricity rate (updates as rates change)
- Intelligent dispatch planned and actual times
- Your standing charge
- Historical consumption data
With both GivTCP and Octopus Energy running in Home Assistant, you can write automations that respond to the actual tariff. For example, an automation that sets the battery's minimum state of charge to 100% when the off-peak rate is active, and 10% at other times — ensuring the battery always fills overnight on cheap power and is free to discharge during peak hours.
automation:
- alias: "Set battery charge target during IOG off-peak"
trigger:
- platform: state
entity_id: binary_sensor.octopus_energy_intelligent_dispatching
to: "on"
action:
- service: givenergy.set_charge_target
data:
target_soc: 100
- alias: "Reset battery charge target outside off-peak"
trigger:
- platform: state
entity_id: binary_sensor.octopus_energy_intelligent_dispatching
to: "off"
action:
- service: givenergy.set_charge_target
data:
target_soc: 10
What this looks like in practice
My Home Assistant dashboard shows a live view of the system: solar generation in real time (the 10.1 kWp system peaks at around 7–8 kW on a clear summer day), battery state of charge, grid import and export, and the current tariff rate. The history graphs show exactly what happened overnight — when the Octopus intelligent dispatch ran, how much the battery charged, and what it cost.
The Lovelace dashboard I built for this took an afternoon to put together. The key cards I use:
- Energy distribution card — shows the flow between solar, battery, grid, and home consumption visually
- Mini graph cards — battery state of charge over the last 24 hours, solar generation over the last 7 days
- Gauge card — current solar generation as a percentage of system capacity
- Markdown card — current Octopus rate and whether intelligent dispatch is active
The whole thing updates in real time, runs entirely locally, and has not missed a beat since I set it up. Contrast this with the GivEnergy app, which by the end was showing my inverter as offline for hours at a time when it was clearly generating normally.
"The Octopus intelligent dispatch ran at 1.47am last night. The battery went from 12% to 98% at 5.2p/kWh. Home Assistant logged every minute of it. The GivEnergy app showed nothing."
The X201 as a long-term home server
The ThinkPad X201 has some quirks worth knowing about. The battery — even a worn one — acts as a built-in UPS, meaning a brief power cut will not interrupt Home Assistant or corrupt the VM disk. The screen is unnecessary and can stay closed permanently. The machine throttles slightly under sustained load but since Home Assistant and GivTCP are both light workloads, this never occurs in practice.
Power consumption at idle is around 10W — roughly £18 per year at current rates, or about £11 on an overnight tariff if you charge the machine's battery during off-peak hours. For a machine running 24/7 providing solar monitoring, battery scheduling, and network services, that is a reasonable overhead.
The bigger concern is longevity. The X201 is 15 years old. I keep a second identical machine on a shelf as a spare. If the primary fails, I restore the Proxmox backup (which I take weekly to a NAS) onto the spare and am back up within an hour. The total cost of this redundancy is another £40.
What you gain by going local
Moving GivEnergy management to Home Assistant gives you things the official app never offered:
- 30-second data resolution — the GivEnergy cloud updated every 5–10 minutes at best. GivTCP polls every 30 seconds.
- Full scheduling control — you can set any charge target, any time slot, with immediate effect, from the Home Assistant UI or via automations.
- Integration with everything else — Octopus rates, weather forecasts, your car charger, your heating system. Home Assistant can make decisions across all of these simultaneously.
- Genuine history — Home Assistant stores whatever history you configure, indefinitely. Not 90 days on a cloud server that may stop working.
- No app subscription risk — GivEnergy's app future is now uncertain. A local Home Assistant installation is not dependent on any third party remaining in business.
The honest caveats
This is not a plug-and-play solution. Proxmox installation requires being comfortable booting from USB and configuring network settings. GivTCP configuration requires finding your inverter's IP address and serial number. Writing automations in Home Assistant has a learning curve.
If you are comfortable with home networking — setting static IPs, accessing a router admin panel, installing software — you will find this manageable. If you have never done any of those things, the learning curve is steeper. The Home Assistant community forum and the GivTCP GitHub repository both have excellent documentation and active communities who answer questions.
The time investment to get this working was about a weekend — one day setting up Proxmox and Home Assistant, one day configuring GivTCP and building the dashboard. Since then it has run without intervention.