Allow enabling I2C and 1wire via Home Assistant CLI

There are countless posts on the forum about problems with integrations that require I2C or 1wire.
The main reason for the problems is the complicated procedure of enabling I2C and 1Wire.

Take a look at some I2C instructions/problems:


Same with 1wire:

we have HA CLI that has host and hardware parameters.
Ideally, we should be able to enable/disable I2C and 1wire via CLI, similar to raspi-config (https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c)

I propose adding commands:
ha host i2c - should return information about the current status of I2C
ha host i2c --enable - should enable I2C
ha host i2c --disable - should disable I2C
ha host 1wire - should return information about the current status of 1wire
ha host 1wire --enable - should enable 1wire
ha host 1wire --disable - should disable wire

I imagine this would be quite difficult to implement. By design, HA runs in a series of docker containers and is isolated from the underlying hardware or operating system - other than via the volumes and ports exposed during container creation. raspi-config requires root level access because it modifies /boot/config.txt.

I guess an addon could mount /boot/config.txt but I doubt it would have enough privilege to modify it.

Currently we have Homa Assistant CLI that has option to import settings from USB using ha os import

source is available here: https://github.com/home-assistant/cli/blob/0fecb671cfd6b25c5fc1d9ef74b4eeb390f0785c/cmd/os_import.go

You misunderstood my feature request. I don’t want to have raspi-config, I would like to have more commands in HA CLI.
Extra addon isn’t needed :slight_smile:

Aah, quite right. Apologies @Misiu

1 Like

I’ve tried several times to enable I2C on RPI4 using Import from USB method, no luck.
My only success was using this method: https://github.com/Misiu/argon40/issues/1#issuecomment-657207579

I think this should be added to CLI, supervisor and OS repos.

CLI import from USB option - github.com/home-assistant/cli/blob/0fecb671cfd6b25c5fc1d9ef74b4eeb390f0785c/cmd/os_import.go
and supervisor endpoint to handle this: https://github.com/home-assistant/supervisor/blob/9dba78fbcd3e08ab6eb761c86558300382c6a69a/supervisor/api/os.py#L41
this calls: github.com/home-assistant/supervisor/blob/9f7e0ecd5533e6b38c027b5c7de69f00542211cd/supervisor/hassos.py#L115 which restarts “hassos-config.service”.

OS repo: https://github.com/home-assistant/operating-system/blob/4b4e22c355b32ffaa12cca27086c705980dfa88f/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-config.service

but that’s all I found.

I can try to add commands to CLI, add API to the supervisor, but I have no knowledge and experience with OS development, so I don’t know what job and where must be done to add support for this in OS.

Besides that, I am using Home Assistant with Raspberry Pi 3 and 4, so I don’t know what other hardware supports I2C and 1Wire (there should be a check somewhere if those commands are supported on specific hardware)