Intégration des sorties de Niko Home Control (version 1)

Bonjour la communauté HACF
Je suis tout nouveau sur HomeAssistant et j’aimerais donner un coup de neuf à mon installation domotique actuelle. En effet, j’ai une installation Niko Home Control (NHC) v1 qui est un peu figée dans le temps et ne communique pas beaucoup avec le reste du monde.

Description

J’ai trouvé un moyen pour que NHC communique avec HA mais actuellement ils ne se comprennent pas tout à fait.

  • Un volet est une lampe
  • Une lampe est une lampe mais s’allume en plusieurs fois
  • Les lampes variables sont aussi des lampes mais ne réagissent pas au départ de HA

Pour les volets et lampes variable, je pense que le Domain n’est pas bon mais comment le changer ??
Les lampes s’allument au départ de HA mais au moyen d’un « double clic » et le statut n’est pas toujours bien suivi

J’ai intégrer (si l’on peut dire intégrer) NHC de la manière suivante
Ajout au fichier configuration.yaml des lignes suivantes

light:
  - platform: niko_home_control
    host: IP_ADDRESS

Ce n’est peut-être pas du tout la bonne méthode… Je ne sais pas, en tout cas après un reboot, j’ai retrouvé toutes sorties de NHC mais sous forme de lampe.

Ma configuration

## System Health
version core-2022.7.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.5
os_name Linux
os_version 5.15.32-v8
arch aarch64
timezone Europe/Brussels
config_dir /config
AccuWeather
can_reach_server ok
remaining_requests 29
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 8.2
update_channel stable
supervisor_version supervisor-2022.07.0
agent_version 1.2.1
docker_version 20.10.14
disk_total 29.0 GB
disk_used 4.5 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.6.0), Samba share (10.0.0), Node-RED (12.0.2), SNMP Server (1.0.0), ESPHome (2022.6.2), UniFi Network Application (2.3.0)
Dashboards
dashboards 2
resources 0
views 10
mode storage
Recorder
oldest_recorder_run 4 juillet 2022, 21:07
current_recorder_run 13 juillet 2022, 18:49
estimated_db_size 254.28 MiB
database_engine sqlite
database_version 3.38.5
Spotify
api_endpoint_reachable ok

ça ressemble à un intégration qui n’est pas terminé cotée dev

Et avec 4 utilisateurs actuels c’est pas idéal

Salut @Pulpy-Luke ,
Du coup, si je comprends bien, j’ai tout bien fait ET je ne risque pas de faire évoluer mon install …
C’est con d’autant en plus qu’on voit qu’il y a moyen…

Tu as 2 options :

  • te mettre au python et ajouter les autres entités (cover etc))
  • rentrer en contact avec le créateur de ce début d’intégration (peut-être celui qui a modifié le dernier code mais pas certain)

Humm, vu que je n’ai aucune notion de dev, je pense que je vais et m^me que j’ai déjà commencé à entreprendre l’option 2… Qui sait croise les doigts

Le plus simple selon moi ce serait de faire un script/programme Python.

Vu que j’y connais rien en Python, je ne serais même pas par ou commencer :slight_smile:

Dailleurs, je suis toujours occupé de me demander ou je dois mettre les 3 fichiers

__init__.py
light.py
manifest.json

Tu penses que c’est plus facile de faire un truc à part que de repartir des éléments de l’api déjà existant dans cette intégration ?

Je ne saurais pas te dire, je connais les bases de python , mais je n’ai jamais fais du python avec/ pour HA

Hello there,

Bon, je n’y connais (encore) rien dans la manière de coder une intégration. Pas frapper si je dis une connerie mais…

Je viens de regarder rapidement le code de l’intégration et je ne pense pas que ce soit possible de l’étendre facilement, car elle semble « focalisée » sur les lampes et elle ne fait que du « Pooling » : elle interroge NHC pour récupérer les status.

Je ne vois pas dans le code, ce qui permet de différencier les différents composants du NHC : lampes, volets, …

Par contre, je vois qu’elle importe im package Niko: import nikohomecontrol
il faudra voir comment celui-ci est codé pour savoir comment l’utiliser. Mais je ne le trouve pas.

Maintenant, je vois qu’il existe d’autres Lib sur Github (comme: GitHub - NoUseFreak/niko-home-control: Python connector for niko home control)
Peut-être jeter un coup d’oeil de ce côté.

Ou alors, faire comme moi : utiliser NodeRed et MQTT pour coupler Niko et HA. :wink:

1 « J'aime »

N’étant pas dev, je suis un peu pour ne pas dire totalement larguer et malheureusement, je ne peux aider. C’est un peu la raison pour laquelle je fais appel au secours :slight_smile:

Cela dit, si ton installation fonctionne bien comme ça, je suis preneur pour faire comme toi et profiter de tes bases et expériences sur le sujet MQTT/Node-RED en attendant une intégrations qui ne viendra jamais sauf si quelques courageux ici s’y mettent :slight_smile:

p.s. je veux bien tester la contribution dont tu fais références mais euh… comment dire…
Comment est-ce que je mets ça en place ?

J’ai l’impression d’avoir 3 mains gauche mais ça viendra :slight_smile:
Quand on ne dev pas et qu’on ne fait pas joujou avec Linux, tout ça parait très abstrait :frowning:

Ce n’est pas une question d’avoir des mains gauches… C’est pas forcément évident de coder une intégration (voir de coder tout cour). C’est un métier je sais de quoi je parle.

Et concernant l’autre lien Github, il ne s’agit pas d’une integration HA, mais juste d’une librairie qui permet d’interagir avec HA. Elle pourrait être utilisée dans le cadre du développement d’une nouvelle integration.

Mais on va trouver une solution. Pas de soucis pour moi de partager ce que j’ai fait et puis dans discuter.
Je vais regarder comment partager cela le plus facilement possible.

Es-tu sur le Discord ?

Je t’envoie ça en PM

Bonjour à tous, je prend le sujet en cours de route.

Je voudrais moi aussi intégrer Niko Home Control 1 avec HA.

Quelqu’un a t’il avancé ? Je suis développeur et je pourrais sans doute aider. Sinon j’essayerai de le faire par moi même.

J’ai répondu à ton message, mais je propose de continuer la discussion ici pour partager avec tout le monde.

Ps: je suis DEV aussi donc on devrait pouvoir s’entendre :wink:

Tout d’abord bienvenue à toi @Pengouin , par la suite, oui, tu es le bienvenu pour compléter nos connaissances, tests etc…
@Akinaria m’a permis au moyen de MQTT d’avoir mes volets comme des volets et des lumière comme des lumières et bizarrement dans certains cas des lumières comme des switches.
Je crois que quand tu n’es pus en phase de mise en place, c’est plus ou moins stable mais je n’en suis pas encore la.

Je suis occupé avec des intégrations d’appareils en Zigbee et très régulièrement, je perds les statuts et je peux tout resynchroniser, faire ON/OFF à tous les interrupteurs etc…

Je ne sais plus, @Akinaria , tu avais du Zigbee aussi ? Perso, j’utilise Zigbee2MQTT

NHCv1 n’est pas encore mort… Croyons-y

Merci pour vos réponses.

J’ai codé une intégration il y a 2-3 ans mais je pense que ça a bien changé depuis. Il faut que je me replonge dedans.

Dans mon cas je voudrais faire cette intégration pour mon frère ce qui veut dire que si c’est possible je préfère essayer une véritable intégration plutôt que NodeRed + MQTT qui sera sans doute un peu trop complexe pour lui. Mais je surestime peut être la difficulté. Si cette lib python posté plus haut marche vraiment ça doit être faisable non ?

Mon problème c’est que je n’ai pas le hardware à la maison pour tester. Je vais voir si je peux bricoler quelque chose pour accéder à l’installation de mon frère à distance.

Perso, j’aimerais aussi vraiment passer par une « vrai » intégration (ce serait mieux pour tout le monde).

Mais j’ai jamais eu le temps de m’y mettre et mes bases en python ne sont … que des bases. Quoique, c’est un language comme un autre donc cela ne me rebute pas. C’est surtout comment coder une intégration de base qui me manque.

Pour le reste, @Pengouin, je peux te filer le flow NodeRed qui te donnerait la logique et ensuite, on voit ensemble comment coder une intégration ensuite. Et je suis certain que @VincentVV serait près à faire du testing :wink:

Pour l’accès au Hardware, il est peut-être possible d’utiliser le bridge Nico.
A noter que la communication se fait via des Sockets UDP, pour celle d’écoute cela risque d’être risqué de passer par le NET.
Je pense que le mieux serait peut-être d’installer un VPN chez ton frangin.

En effet je pensais à une solution type VPN ou un petit PC sur place avec un accès distant. J’ai prévu d’aller sur place début octobre. J’en profiterais pour tester cette librairie Python car si elle fonctionne ça peut considérablement nous faciliter la vie.

On en reparle dans un petit mois :wink:

J’ai hâte en effet :slight_smile:
Malgré tout le flow NodeRed fonctionne relativement bien.

C’est perfectible au niveau de l’envoie de la position du volet, au niveau également du statut des entités lors du reboot etc… mais dans l’ensemble, ça fonctionne bien