Intégration des rampes LED Chihiros

Suite au fil Rampes LEDs bluetooth et la découverte d’un dépôt Github avec un script python permettant de s’affranchir de l’appli propriétaire pour contrôler les rampes d’aquarium Chihiros, je me lance… sans rien connaitre mais c’est en forgeant…

Disclaimer: Ce n’est pas 100% jeedom, au moins pour le début

Les lampes communiquent en bluetooth et utilisent des clés. Le protocole a été cracké en reverse engineering par Michael Dietrich (@TheMicDiet) et semble en cours d’intégration dans Home Assistant.

  • Connection en ssh via l’invite de commande (cmd.exe)
  • Vérification de l’installation de python et du coup mise à jour de pip (23.3.1 en 24.0):
python3 --version
python3 -m pip install --upgrade pip
  • Copie des fichiers py du dépôt Github dans un nouveau dossier dans plugins/script/data/ en remplaçant l’extension par PY et en respectant l’architecture : le dossier racine est « chihiros_led_control »
    image

  • Lancement du script via /var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY et premier message d’erreur:

/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 1: Chihiros led control CLI entrypoint. : commande introuvable
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 3: import : commande introuvable
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 4: import : commande introuvable
from: can't read /var/mail/datetime
from: can't read /var/mail/typing
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 8: import : commande introuvable
from: can't read /var/mail/bleak
from: can't read /var/mail/rich
from: can't read /var/mail/rich.table
from: can't read /var/mail/typing_extensions
from: can't read /var/mail/chihiros_led_control
from: can't read /var/mail/chihiros_led_control.device
from: can't read /var/mail/chihiros_led_control.weekday_encoding
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 18: UART_SERVICE_UUID : commande introuvable
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 19: UART_RX_CHAR_UUID : commande introuvable
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 20: UART_TX_CHAR_UUID : commande introuvable
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 23: erreur de syntaxe près du symbole inattendu « ( »
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY: ligne 23: `app = typer.Typer()'

– Il manque des paquets
– Pourquoi il essaye de lire dans /var/mail et que cela ne fonctionne pas?
– Les " dans le script python ne semble pas être interprétés comme des échappements.

Le début du script python, avec les 3 clés de communication:

"""Chihiros led control CLI entrypoint."""

import asyncio
import inspect
from datetime import datetime
from typing import Any

import typer
from bleak import BleakScanner
from rich import print
from rich.table import Table
from typing_extensions import Annotated

from chihiros_led_control import commands
from chihiros_led_control.device import get_device_from_address
from chihiros_led_control.weekday_encoding import WeekdaySelect

UART_SERVICE_UUID = "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"
UART_RX_CHAR_UUID = "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
UART_TX_CHAR_UUID = "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"


app = typer.Typer()
pip list
  • J’installe les paquets et fait un rétablissement des droits des fichiers, histoire de.
    Bleak est un module pour la communication BT. Jeedom utilise le module Bluepy? Risqué d’installer Bleak en parallèle?
    Rich et Typing_extensions sont présents dans la liste
sudo pip3 install asyncio
sudo pip3 install inspect-it
sudo pip3 install typer

image
Via Réglages / Système / Configuration / _OS/DB

Et j’ai toujours la même erreur au lancement du script en ssh…

Coté Jeedom:

Et lancement… :drum:

Erreur exécution de la commande [Atlas][Chihiros][Test] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY 2>/dev/null;
/var/www/html/plugins/script/data/chihiros_led_control/chihirosctl.PY 2>&1 valeur retournée : 2. 
Détails : ...[le message d'erreur en ssh]

Ça va être compliqué cette affaire!? Je dois creuser la doc pour créer un plugin dédié?
:pray: Tapez pas, je débute dans cette partie là de la domotique…