Eine Entwicklungsumgebung muss möglichst schlank sein, damit sie schnell startet und Entwicklungen müssen einfach in die Dev-Umgebung überragen werden können.
Um eigene Integration zu entwickeln, habe ich mich für eine DEV-Umgebung als Container unter Dockerdesktop entschieden.
Die Umgebung hat vor allem einen Vorteil, der /config Ordner der Home Assistant Instanz kann auf einen lokaler Ordern in das Filesystem des Rechners umgeleitet werde.
Dann kann man mit eine beliebigen Entwicklungsumgebung super einfach Änderungen am Code vornehmen und diese testen.
Einfach geht das mit Docker.Desktop und dem Plugin „Portainer“.
Docker.Desktop installieren, unter Extentions das PlugIn Portainer suchen und installieren.
Dann in Portainer einen s.g. Stack mit folgendem docker compose anlegen und den Stack deployen:
version: '1'
services:
homeassistant:
container_name: homeassistant
image: "homeassistant/home-assistant:latest"
volumes:
- /home/guido/Dokumente/dockers/config:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
ports:
- "8123:8123"
Damit wird ein Container im Docker angelegt, in dem Container Homeassistant installiert und der config Ordner in den angegebenen Ordner umgeleitet. Zudem wird die lokale Zeit in den Container synchronisiert.
Für ein Windows System müsste die Zeile für den config-ordner so etwa aussehen: – C:\Users\NAME\dockers\config:/config
In meinem lokalen Filesystem unter Ubuntu sieht es dann so aus.

Jetzt für die Entwicklung einer eigenen Integration den Ordern „custom_components“ anlegen und schon kann eine Entwicklung in die Homeassistant Instanz kopiert und entwickelt werden.
Im lokalen Filesystem sind unter .storage auch die device- und entity-registry im Zugriff, was für das Debugging sehr hilfreich ist. Auch auf das Log vom Homeassistant kann direkt zugegriffen werden.