Bonjour,
Pouvez-vous m’aider : Je cherche à faire causer HA sur raspi 4 avec quelques composants i2c.
J’ai utilisé HAssOS i2c config.
J’ai bien les i2c-0, i2c-1, i2c-10 et i2c-22 in /dev.
Donc normalement OK pour cette étape.
Etape suivante : je crée un script AppDaemon pour ouvrir SMBus.
Sans oublier l’ajout du package dans la config AppDaemon :
system_packages:
- py3-smbus
python_packages: []
init_commands: []
log_level: info
Voici le script simpliste :
import appdaemon.plugins.hass.hassapi as hass
import smbus
class I2CDEV:
def __init__(self, i2c_bus=1, addr=0x40):
self.bus = smbus.SMBus(i2c_bus);
self.addr = addr
def read(self,address):
data = self.bus.read_i2c_block_data(self.addr, address, 2)
return ((data[0] * 256 ) + data[1])
class i2cTest(hass.Hass):
def initialize(self):
self.i2cDev = I2CDEV(i2c_bus=1,addr=0x43)
self.adapi = self.get_ad_api()
self.adapi.run_in(self.lireMesure, 20)
def lireMesure(self, kwargs):
config = self.i2cDev.read(0)
self.log("config: 0x{:02x}".format(config))
Et voici le résultat :
2024-03-20 14:48:09.903133 WARNING i2cTest: ------------------------------------------------------------
2024-03-20 14:48:09.903587 WARNING i2cTest: Unexpected error running initialize() for i2cTest
2024-03-20 14:48:09.903963 WARNING i2cTest: ------------------------------------------------------------
2024-03-20 14:48:09.908173 WARNING i2cTest: Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/appdaemon/app_management.py", line 162, in initialize_app
await utils.run_in_executor(self, init)
File "/usr/lib/python3.11/site-packages/appdaemon/utils.py", line 304, in run_in_executor
response = future.result()
^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/apps/i2cTest.py", line 17, in initialize
self.i2cDev = I2CDEV(i2c_bus=1,addr=0x43)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/apps/i2cTest.py", line 6, in __init__
self.bus = smbus.SMBus(i2c_bus);
^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 1] Operation not permitted
2024-03-20 14:48:09.908631 WARNING i2cTest: ------------------------------------------------------------
Pourquoi PermissionError ???
Manquerait-il un user dans un group ?
Par ailleurs j’ai fait l’essai d’un addon sur le même principe et cet addon fonctionne :
I2C test starting...
Create INA219 instance ...
... created
config: 0xeef
Donc ce n’est pas un problème SMBus mais d’autorisation d’accès de SMBus dans AppDaemon.
Pouvez-vous m’aider ?
.YO.
Ma configuration
version | core-2024.3.1 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.12.2 |
os_name | Linux |
os_version | 6.1.73-haos-raspi |
arch | aarch64 |
timezone | Europe/Paris |
config_dir | /config |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
GitHub API Calls Remaining | 5000 |
Installed Version | 1.34.0 |
Stage | running |
Available Repositories | 1475 |
Downloaded Repositories | 4 |
HACS Data | ok |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Home Assistant OS 12.1 |
---|---|
update_channel | stable |
supervisor_version | supervisor-2024.03.0 |
agent_version | 1.6.0 |
docker_version | 24.0.7 |
disk_total | 28.5 GB |
disk_used | 5.8 GB |
healthy | true |
supported | true |
board | rpi4-64 |
supervisor_api | ok |
version_api | ok |
installed_addons | Advanced SSH & Web Terminal (17.2.0), File editor (5.8.0), Samba share (12.3.1), Mosquitto broker (6.4.0), Zigbee2MQTT (1.36.0-1), AppDaemon (0.16.4), Samba Backup (5.2.0), I2C Test (1.0.7) |
Dashboards
dashboards | 2 |
---|---|
resources | 0 |
views | 4 |
mode | storage |
Recorder
oldest_recorder_run | 10 mars 2024 à 03:28 |
---|---|
current_recorder_run | 19 mars 2024 à 19:11 |
estimated_db_size | 290.20 MiB |
database_engine | sqlite |
database_version | 3.44.2 |