Migration Domoticz vers HA

Bonjour,

J’ouvre ici un post pour documenter petit à petit ma migration d’une plateforme Domoticz vers Home Assistant. Je complèterais au fur et à mesure de mes avancées.

J’avais (j’ai toujours tant que la migration est pas achevée) une plateforme Domoticz qui fonctionne très bien au demeurant. Cependant, face au fait que de moins en moins de nouveaux produits sont intégrés (rapidement) et que les mises à jour apportent plus trop de choses depuis un moment, j’ai décidé d’aller voir un peu ailleurs pour faire évoluer mon installation. Et comme j’ai toujours un peu suivi HA, je me suis laissé tenté.

Déjà, j’avoue avoir failli laisser tomber plusieurs tant la mise en place d’une plateforme fonctionnelle satisfaisante a été ardue et qu’au début je ne voyais pas trop comment me passer de LUA pour arriver à faire des choses vraiment sympa. C’est pas plus difficile qu’une autre, c’est juste évidemment que dans une migration il faut casser des habitudes, renoncer à des trucs et en découvrir d’autres.

Je suis parti donc d’un RPi 3 avec DZ, Deconz, une clé z-wave et un bridge Philips Hue (tout est parti de là, des lampes Philips :slight_smile: ). Des lampes Philips Hue, des capteurs Aqara (température, ouverture de porte), sensitive stripe z-wave, des capteurs d’inondation et de CO Fibaro en z-wave, différentes prises et variateurs commandés en zigbee pour le matos de base. Une installation photovoltaïque SMA. Et enfin des scripts en tous genre pour le quotidien :

  • alertes lumineuses en tous genre
  • température des lumières en fonction du temps
  • éclairage adapté et veilleuses de nuit les semaines où mes enfants sont là
  • surveillance de la maison
  • alerte pour le givre (là, LUA me manque)

Je ne voulais pas d’accès direct à la plateforme depuis l’extérieur. Du coup, j’utilise Let’s Encrypt en challenge DNS et NGINX Home Assistant SSL proxy + DNSMasq pour avoir un nom de domaine avec un certif valide mais accessible que dans mon LAN. Tout simplement parce que j’avais pas envie de devoir importer manuellement des certifs auto-signés dans chaque device Android de la maison :upside_down_face: :woozy_face: J’avoue que cette partie-là m’a bien agacé…

J’ai installé HA sur un RPi 4 avec 4GB de RAM et il démarre sur un SSD. Il est dans mon réseau en parallèle du DZ toujours en prod le temps d’être sûr que tout est bien ok et de migrer les gateways zigbee et z-wave qui sont sur le même RPi.

Actuellement, j’ai migré :

  • toute l’automatisation de l’éclairage
  • toutes les alertes, même l’alerte givre !!! (mais sans la prévision à +8 heures parce que la plateforme météo que j’utilise ne me renvoie pas les infos pour le calcul de point de rosée si tôt. Mais j’ai trouvé comment faire même si c’est incroyablement fastidieux à mon goût)
  • tous mes capteurs zigbee et z-wave

Je n’ai pas encore:

  • pu migrer les gateways Deconz et Z-Wave sur la même machine que HA parce que bizarrement tout semble ok sauf que même en les reset d’usine, je n’arrive pas à ajouter mes capteurs… En cours d’investigation
  • pas pu connecter le SMA Manager de mon installation photovoltaïque
  • grouper les alertes pour ne pas appeler chaque service indépendamment (par flemme)

Ce que je trouve « négatif » dans HA:

  • C’est incroyablement « verbeux » et bourré d’étapes pour un faire un truc simple
  • LUA me manque pour les scripts
  • J’ai sûrement raté un truc mais il me semble que la DB grossie très vite alors que l’historique des logs est bien moins précis et complet
  • les redémarrages au moindre changement de n’importe quoi… (et mer** mon uptime ! :smiley: )

Ce que je trouve génial dans HA:

  • c’est beaucoup plus beau, ça on va pas se mentir !!! C’est un régal
  • l’app mobile est géniale
  • si tout demande beaucoup d’étapes en contrepartie on peut très facilement faire du « fine tuning » de tout depuis le même workflow
  • la quantité de trucs supportés, même très récents. Ça, ça commence à manquer fort à DZ
  • HACS (voir point précédent :stuck_out_tongue: )

Je vais donc continuer de migrer et intégrer tout ça et à le documenter.

2 J'aime

Salut,

Je suis justement entrain de bosser sur la taille de la base :

J’ai ajouté dans configuration.yaml

recorder: !include `recorder.yaml`

et dans le fichier recorder.yaml en question

purge_keep_days: 30
auto_purge: true
include:
  domains:
    - sensor
    - switch
    - binary_sensor
    - light
    - person
    - climate
    - group
    - zone
    - plant

exclude:
  domains:
    - automation
    - updater
    - media_player
    - camera
    - counter
    - cover
    - device_tracker
    - input_datetime
    - input_boolean
    - persistent_notification
    - remote
    - scene
    - script_started
    - sun
    - weather
    - zwave
  event_types:
    - service_removed
    - service_executed
    - platform_discovered
    - homeassistant_start
    - homeassistant_stop
    - feedreader
    - service_registered
    - call_service
    - component_loaded
    - automation_triggered
    - script_started
    - timer_out_of_sync
    - browser_mod

  entity_globs:
    - sensor.sun*
    - sensor.*_rssi_numeric
    - sensor.*_angle_*
    - media_player.browser*
    - light.browser*
    - sensor.time_*
    - sensor.date_*
    - sensor.internet_*
    - sensor.*_linkquality
    - sensor.*_angle_x
    - sensor.*_angle_y
    - sensor.*_angle_z
    - sensor.*_battery_numeric
    - sensor.*_strength
    - sensor.*_low_battery_level
    - climate.consigne_*
    - sensor.*_humidity_status
    - sensor.radiateur_*_battery_level
    - binary_sensor.router*

  entities:
    - sensor.last_boot
    - sensor.time
    - sensor.date

Evidement à adapter en fonction de tes besoins. Tu peux installer l’add-on sqlite pour voir ce que contient la base et identifier les éléments présents
La requête suivante aide pas mal

SELECT entity_id, count(entity_id)
FROM "states"
GROUP by entity_id
ORDER by count(entity_id);

J’ai gagné plusieurs centaines de mega

1 J'aime

Excellent, merci pour cette astuce !

Est-ce qu’il y a moyen d’inclure un domaine genre sensor mais d’exclure un élément particulier genre un sensor dont on voudrait garder une trace plus longue qu’un mois ?

Oui, c’est bien expliqué dans la documentation :

Gérer une durée spéciale je ne pense pas (c’est pas dans la doc). Par contre attention, tu ne peux pas historiser un truc qui n’est pas inclus…
Pour ce genre de cas particulier, à mon avis, c’est un truc comme grafana qu’il faut utiliser, afin d’externaliser les données

Tu peux par exemple inclure tout le domaine sensor et exclure les entités date et time qui n’ont pas lieu d’être sauvegardées:

recorder:
  include:
    domains:
      - sensor
  exclude:
    entities:
      - sensor.time
      - sensor.date

Ah ok… Je viens de comprendre la question…

Je rejoins @Pulpy du coup :wink:

1 J'aime

Je vois tout à fait, merci à vous deux ! :slight_smile:

Comme @emost je migre doucement de Domoticz vers HA et les scripts en lua me manquent :slight_smile:

Tu as oublié qqchose @emost, les mises à jour Domoticz. A chacune d’elles, tu attends que les autres essuient les plâtres et tu serres les fesses pour que ton système redémarre.

Mais ça j’ai jamais eu trop de souci. Une seule fois et c’était clairement de « ma faute ». Ceci dit, j’upgrade DZ toujours en ligne de commande et pas depuis l’interface web.

  • Pour la partie « verbeux » qu’est ce qui te parait « bourré d’étapes » ? Je trouve ça plutôt logique et surtout très cohérent (je suis un ex-jeedom et là, ça manquant d’uniformité entre les divers plugin, par exemple)
  • Pour la partie LUA et les scripts. je suppose que c’est pour les automatisations et avoir un vrai langage de programmation et pas du jinja2. Il y a deux autres moyens disponibles sous HA: Nodered (donc du javascript et un assemblage de noeud) ou appdaemon (du python). Je pense donc qu’avec l’un ou l’autre on doit trouver son bonheur.
  • Pour les redémarrages, c’est effectivement en phase de mise en place le point bizarre. Je n’ai jamais compris que pour rajouter une entité il faille redémarrer le core. Et encore, il y a deux ans, il fallait redémarrer pour tout (automatisation…). Ca s’arrange petit à petit. Je ne connais pas suffisamment le fonctionnement interne pour comprendre ce besoin de redémarrage.

Par contre, la bonne nouvelle c’est qu’une fois que l’on a un système prêt c’est super stable. J’ai un odroid C2 pour gérer la partie alarme de ma domotique. Je n’y touche jamais. Ca doit faire 18 mois que ça tourne. Je suis toujours en 0.102.3 :slight_smile:

Alors c’est pas incohérent du tout, le fait que ça soit bourré d’étapes, mais pour configurer le moindre truc parfois tout bête, il faut passer par plein d’étapes et fichiers de config. Pour tout. Et quand tu es habitué pour certaines action à une page et 3 clics pour tout mettre en place (j’exagère un peu), ça déroute :slight_smile: Je m’y fais bien ceci dit et comme je le disais, pour du fine tuning, c’est vraiment bien. Parfois ça continue de m’agacer un peu mais sinon, à l’usage, je trouve ça long mais bien.

Oui, pour LUA et les scripts c’est ça. Quand je vois ce que j’ai du pondre comme espèce de pseudo-code pour certains trucs par rapport à ce que je faisais avec LUA pour les éléments un peu complexes et Blocky pour les éléments plus simples, en natif sur la plateforme, bah ça clairement c’est un point qui reste négatif pour le moment.

Pour les redémarrages, je vois bien le pourquoi du comment et que ça doit pas être simple pour les dev pour arranger ça mais tant mieux si ça évolue parce que voilà, c’est pénible :slight_smile:

J’en doute pas pour la stabilité, ça m’a l’air bien robuste C’est une des choses qui m’a fait choisir HA pour remplacer DZ. Je ne conçois pas une domotique instable :upside_down_face:

Les devs de HA ont fait le choix d’une solution à base de jinja2 mais, aussi d’ouvrir de façon « propre » l’accès à des outils tiers comme appdaemon et nodered. Donc, je ne dirait pas que c’est négatif en tant que tel. C’est aussi, je pense, l’autre force de HA la modularité et des choix assumés de ce qui est dans HA ou dehors. C’est aussi grâce à ces choix qu’il y a HACS… Les fondations sont solides, le rez de chaussée est fonctionnel. Après, chacun arrange les étages à son goût.

Oui oui, je te rejoins sur ça et je suis pas en train de faire une comparaison objective des plus ou moins. D’ailleurs je suis « acquis » à HA là, même avec tout ce que j’ai qui ne « marche pas » encore comme je voudrais.

C’est juste que subjectivement, j’aimais beaucoup avoir un langage comme LUA en natif et Blocky pour les choses simples. Et que là, dans HA, bah je trouve que, subjectivement, ça me correspond moins et c’est plus difficile de coder l’équivalent.