dathosim / Pronote2Homeassistant

Tuto et bout de code pour ajouter des éléments de Pronote dans Home assistant
Apache License 2.0
42 stars 20 forks source link

Intégration sur HA OS via AppDaemon #1

Closed plouf34 closed 1 year ago

plouf34 commented 2 years ago

Bon, j'avance, mais je suis bloque. A l’execution du script, erreur sur les dernieres lignes du pronote.py. Il n’aime pas les doubles underscore autours de location et file

2022-01-29 13:33:51 ERROR (SyncWorker_6) [homeassistant.components.python_script] Error loading script pronote.py: Line 128: "__location__" is an invalid variable name because it starts with "_", Line 128: "__file__" is an invalid variable name because it starts with "_", Line 129: "__location__" is an invalid variable name because it starts with "_"
2022-01-29 13:33:55 ERROR (SyncWorker_5) [homeassistant.components.python_script] Error loading script pronote.py: Line 128: "__location__" is an invalid variable name because it starts with "_", Line 128: "__file__" is an invalid variable name because it starts with "_", Line 129: "__location__" is an invalid variable name because it starts with "_"

System Health

version core-2021.12.10
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.91
arch aarch64
timezone Europe/Paris
Home Assistant Community Store GitHub API | ok -- | -- Github API Calls Remaining | 4985 Installed Version | 1.20.0 Stage | running Available Repositories | 1051 Downloaded Repositories | 67
Home Assistant Cloud logged_in | true -- | -- subscription_expiration | 20 février 2022 à 01:00 relayer_connected | true remote_enabled | true remote_connected | true alexa_enabled | true google_enabled | true remote_server | eu-central-1-3.ui.nabu.casa can_reach_cert_server | ok can_reach_cloud_auth | ok can_reach_cloud | ok
Home Assistant Supervisor host_os | Home Assistant OS 7.2 -- | -- update_channel | stable supervisor_version | supervisor-2021.12.2 docker_version | 20.10.9 disk_total | 56.6 GB disk_used | 26.7 GB healthy | true supported | true board | odroid-n2 supervisor_api | ok version_api | ok installed_addons | File editor (5.3.3), Check Home Assistant configuration (3.9.0), InfluxDB (4.3.0), Glances (0.14.2), Samba share (9.5.1), Home Assistant Google Drive Backup (0.105.2), Z-Wave JS to MQTT (0.34.1), Z-Wave JS (0.1.52), Mosquitto broker (6.0.1), Ring-MQTT with Video Streaming (4.9.0), Studio Code Server (4.1.0), Terminal & SSH (9.3.0), Grafana (7.4.1), SQLite Web (3.2.1), Zigbee2mqtt (1.22.2-1), MariaDB (2.4.0), Enedisgateway2mqtt (0.7.7-3), phpMyAdmin (0.7.0), SSH & Web Terminal (10.0.2)
Lovelace dashboards | 3 -- | -- resources | 46 views | 13 mode | storage
Spotify api_endpoint_reachable | ok -- | --
Elekrea commented 2 years ago

Même config', même problème.

dathosim commented 2 years ago

J'ai supprimé les "__" sur directory dans la dernière version... Mais en fait je me demande comment vous excutez le script ? (car il est fait pour être exécuté en SSH directement sur le serveur qui héberge HA)

Elekrea commented 2 years ago

Après avoir enlevé les "__", j'ai désormais l'erreur suivante :

Logger: homeassistant.components.python_script.pronote.py
Source: components/python_script/__init__.py:222
Integration: Python Scripts (documentation, issues)
First occurred: 10:58:48 (1 occurrences)
Last logged: 10:58:48

Error executing script: __import__ not found
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/python_script/__init__.py", line 222, in execute
    exec(compiled.code, restricted_globals)
  File "pronote.py", line 1, in <module>
ImportError: __import__ not found
dathosim commented 2 years ago

Rappel : le script python est fait (aujourd'hui) pour être exécuté "en dehors" de Home assistant. Pour information, moi je suis sur une VM Linux Debian (Hôte) et HA tourne dans des Docker de cette VM Du coup, si je suis sur la VM je peux faire ce que je veux sans risquer de corrompre HA. J'ai donc installé Python3, puis pip3 et enfin grâce à pip3 les dépendances : comme pronotepy (hyper simple tout cela sur une debian ou Ubuntu) Et enfin j'exécute le script (puis le place dans la crontab) de mon serveur "hote" (cette Debian) Mais le json qui est généré est accessible par le conteneur Docker de HA...et le tour est joué !

ça semble compliqué de faire fonctionner ce script "DANS" HA en plus y'a tellement d'installation différente de HA (Supervised, en docker,HASS.IO,...) et d'ailleurs je ne comprends pas tout à cela...

Bref, dans HA, c'est pas gagné :-( désolé...

myfp31 commented 2 years ago

Bonjour,

Effectivement, ce ne semble pas gagné avec Home Assistant OS qui ne permet que très peu de chose en python (import de package interdit...). Je suis passé par AppDaemon (qui sécurise l'exécution du script dans une sandbox) et après quelques adaptations du script, je peux générer le fichier JSON pas exactement comme initialement mais je récupère bien les variables.

Il me faut maintenant faire l'équivalent du crontab qui n'est pas présent dans HA OS.

Si vous êtes toujours intéressé, je pourrais tenter de partager ce que j'ai fait

pour appdaemon, un bon tuto en Français : https://domo.rem81.com/2022/02/05/ha-addon-appdaemon-programme-python/

plouf34 commented 2 years ago

Avec plaisir si tu pouvais partager.

myfp31 commented 2 years ago

Bonjour, j'ai tenté une première version en espérant que cela est compréhensible : https://github.com/myfp31/Pronote2HomeassistantAppdaemon./blob/main/README.md