Migration Domoticz vers HA besoin d'aide

Impeccable. Petite question, toutes tes cartes sont des 4 canaux ?

@Yanniel60 dans un de tes posts au dessus tu montres des fichiers yaml fournis par le fabriquant. Ca a l’air d’etre dans templates pour HA.

Il faut utiliser celui qui correspond à ton modèle ( avec surement quelques détails à adapter ) , mais t’as déjà la plus grosse partie du boulot de faite.
Prend un des fichiers avec marqué « discovery », celui qui correspond au nombre de canaux

C’est dommage qu’ils n’aient pas ajouté l’auto discovery home-assistant sur leur gestion du mqtt

C’est pour ça que je lui demandais le nombre de canaux :wink: pour adapter à sa config.

1 « J'aime »

Non,
17760… 4 Relais et 4 Sorties
50963… ..8 Relais et 8Sorties
13604… 2 Relais et 2 Sorties
15013…4 Relais et 4 Sorties
14868…8 Relais et 8 Sorties
16424…8 Relais et 8 Sorties
33865…8 Relais et 8 Sorties

Merci pour ta réponse mais je vais suivre pas à pas les instructions de David

Alors dans ce cas, tu vas trouver dans le SDK (cité plus haut dans les messages) la configuration propre à tes 3 types de relais (donc il y a du 2 canaux, du 4 et du 8 dans ton cas)

je te copie / colle ici le code pour du 2 canaux à modifier en conséquence :

# example relay board SN is 100,then replace "relay0" with "relay100"
switch:
 - platform: mqtt
   unique_id: Dingtian-relay0-all
   name: "Dingtian-relay0 Switch0 All ON/OFF"
   command_topic: "/dingtian/relay0/in/control"
   availability:
     - topic: "/dingtian/relay0/out/lwt_availability"
       payload_available: "online"
       payload_not_available: "offline"
   payload_on: '{"type":"ON/OFF","idx":"1","status":"ON","time":"0","pass":"0"}
   {"type":"ON/OFF","idx":"2","status":"ON","time":"0","pass":"0"}'
   payload_off: '{"type":"ON/OFF","idx":"1","status":"OFF","time":"0","pass":"0"}
   {"type":"ON/OFF","idx":"2","status":"OFF","time":"0","pass":"0"}'
   optimistic: false
   qos: 0
   retain: false

Tu dois modifier ici par rapport à ce que t’a donné MQTT Explorer. Ton 2 canaux c’est le 13604
Pour te retrouver parmi tes petits, dans les champs unique_id et name tu peux les renommer à ta convenance, sans espaces pour unique_id et à ta convenance pour name
Imaginons que ce soit dans ton salon par exemple.

unique_id: Dingtian-relais-salon
name: "Dingtian Relais Salon"

Ensuite le topic doit être modifié pour tomber au bon endroit.
Pour ton 2 canaux toujours:

command_topic: "/dingtian/relay0/in/control"

doit être modifié en :

command_topic: "/dingtian/relay13604/in/control"

Ainsi que le topic de disponibilité également :

availability:
     - topic: "/dingtian/relay0/out/lwt_availability"

Doit passer en :

availability:
     - topic: "/dingtian/relay13604/out/lwt_availability"

J’ai détaillé volontairement afin que tu comprennes le système. le rendu final devient ceci :

switch:
 - platform: mqtt
   unique_id: Dingtian-relais-salon
   name: "Dingtian Relais Salon"
   command_topic: "/dingtian/relay13604/in/control"
   availability:
     - topic: "/dingtian/relay13604/out/lwt_availability"
       payload_available: "online"
       payload_not_available: "offline"
   payload_on: '{"type":"ON/OFF","idx":"1","status":"ON","time":"0","pass":"0"}
   {"type":"ON/OFF","idx":"2","status":"ON","time":"0","pass":"0"}'
   payload_off: '{"type":"ON/OFF","idx":"1","status":"OFF","time":"0","pass":"0"}
   {"type":"ON/OFF","idx":"2","status":"OFF","time":"0","pass":"0"}'
   optimistic: false
   qos: 0
   retain: false

Evidemment à toi de remodifier le nom en conséquence.

Tout ceci, tu dois le copier / coller dans ton fichier configuration.yaml de Home Assistant.
Là pour quelqu’un qui vient d’arriver sur HA ça peut paraitre « chaud » mais tu verras que dans le temps, tu iras assez régulièrement dedans faire des modifs, au fur et a mesure que tu ajouteras des périphériques.

J’ai pour habitude d’utiliser File Editor car il est plus lisible et coloré.
Il faut l’installer depuis les modules complémentaires (Paramètres, modules complémentaires)
Tout en bas à droite « boutique des modules complémentaires » et dans la barre de recherche tu commences à taper File et tu le trouves :

une fois installé tu peux cocher les cases comme ici :


De ce fait il apparaitra dans la barre latérale gauche.

Quand tu cliques dessus, après tu vas choisir « Browse Filesystem »

Et tu choisis configuration.yaml

Une fois dedans, à la fin du fichier tu copies / colles le code cité au dessus.
Fais en 1 seul d’abord (le relais 2 canaux). Pour vérifier que c’est ok, on continuera après pour le reste.

une fois collé, enregistre en haut à droite :

Si tu as un point d’exclamation c’est qu’il y a un problème d’indentation. Sinon c’est que tout va bien.

Pour finir:

Outils de développement et vérifier la configuration:


Si tout est OK, tu peux redémarrer HA, et apprécier ton nouvel appareil.
Tu vas le voir apparaître dans « Outils de développement » et « Etats »

Si tu commences à taper Relais tu vas le voir apparaître.
Après il te restera à créer une jolie carte sur le lovelace.
:wink:

Bonjour David
Dans le SDK du fabriquant il y a beaucoup plus de paramètres.
Je pense que je dois reporter les valeurs pour chaque relais et chaque sortie.
Il y a un relais 0 all, je pense qu’il doit commander les 4 relais simultanément.
Je fais le test et te tiens au courant de mon avancement
CI dessous le SDK du fabriquant:

Configure a default setup of Home Assistant (frontend, api, etc)

default_config:

Text to speech

tts:

  • platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

example relay board SN is 100,then replace « relay0 » with « relay100 »

switch:

  • platform: mqtt
    unique_id: Dingtian-relay0-all
    name: « Dingtian-relay0 Switch0 All ON/OFF »
    command_topic: « /dingtian/relay0/in/control »
    availability:
    • topic: « /dingtian/relay0/out/lwt_availability »
      payload_available: « online »
      payload_not_available: « offline »
      payload_on: ‹ {« type »:« ON/OFF »,« idx »:« 1 »,« status »:« ON »,« time »:« 0 »,« pass »:« 0 »}
      {« type »:« ON/OFF »,« idx »:« 2 »,« status »:« ON »,« time »:« 0 »,« pass »:« 0 »} ›
      payload_off: ‹ {« type »:« ON/OFF »,« idx »:« 1 »,« status »:« OFF »,« time »:« 0 »,« pass »:« 0 »}
      {« type »:« ON/OFF »,« idx »:« 2 »,« status »:« OFF »,« time »:« 0 »,« pass »:« 0 »} ›
      optimistic: false
      qos: 0
      retain: false

relay1~2

  • platform: mqtt
    unique_id: Dingtian-relay0-r1
    name: « Dingtian-relay0 Switch1 »
    state_topic: « /dingtian/relay0/out/r1 »
    command_topic: « /dingtian/relay0/in/r1 »
    availability:

    • topic: « /dingtian/relay0/out/lwt_availability »
      payload_available: « online »
      payload_not_available: « offline »
      payload_on: « ON »
      payload_off: « OFF »
      state_on: « ON »
      state_off: « OFF »
      optimistic: false
      qos: 0
      retain: false
  • platform: mqtt
    unique_id: Dingtian-relay0-r2
    name: « Dingtian-relay0 Switch2 »
    state_topic: « /dingtian/relay0/out/r2 »
    command_topic: « /dingtian/relay0/in/r2 »
    availability:

    • topic: « /dingtian/relay0/out/lwt_availability »
      payload_available: « online »
      payload_not_available: « offline »
      payload_on: « ON »
      payload_off: « OFF »
      state_on: « ON »
      state_off: « OFF »
      optimistic: false
      qos: 0
      retain: false

input1~2

binary_sensor:

  • platform: mqtt
    unique_id: Dingtian-relay0-i1
    name: « Dingtian-relay0 Input1 »
    state_topic: « /dingtian/relay0/out/i1 »
    availability:

    • topic: « /dingtian/relay0/out/lwt_availability »
      payload_available: « online »
      payload_not_available: « offline »
      payload_on: « ON »
      payload_off: « OFF »
      qos: 0
  • platform: mqtt
    unique_id: Dingtian-relay0-i2
    name: « Dingtian-relay0 Input2 »
    state_topic: « /dingtian/relay0/out/i2 »
    availability:

    • topic: « /dingtian/relay0/out/lwt_availability »
      payload_available: « online »
      payload_not_available: « offline »
      payload_on: « ON »
      payload_off: « OFF »
      qos: 0

J’ai fais pas mal d’essai avec les SDK du Fabriquant, sans résultat.
Pour faire simple lorsque je copie ton fichier dans Configuration Yaml, j’obtiens les résultats suivants:
Bien que j’ai l’indicateur au vert sur la droite du panneau de File editor j’ai le message d’erreur suivant au redémarrage de HA:

Dans outils et développement/Vérifier la configuration je n’ai pas de message d’erreur avant le redémarrage.
Si je supprime platform: mqtt j’ai toujours le vert sur la droite du panneau de file Editor.
par contre dans développement/Vérifier la configuration j’ai le message suivant:

J’ai essayé avec le fichier sdk ci dessus du constructeur même problème.

Je ne comprend pas pourquoi le fichier SDK du constructeur est différent du tien?

les fichiers SDK du fabriquant sont ICI concernant home assistant il y à deux versions une nommée HomeAssistant et la deuxième HomeAssistant 2022.9.

Effectivement,
Essaie au tout début par

mqtt:
  switch:
    

à la place de:

switch:
 - platform: mqtt

Normalement après correction c’est ça:

mqtt:
  switch:
    - name: "Dingtian Relais Salon"
      unique_id: Dingtian-relais-salon
      command_topic: "/dingtian/relay13604/in/control"
      availability:
    - topic: "/dingtian/relay13604/out/lwt_availability"
      payload_available: "online"
      payload_not_available: "offline"
      payload_on: '{"type":"ON/OFF","idx":"1","status":"ON","time":"0","pass":"0"}
   {"type":"ON/OFF","idx":"2","status":"ON","time":"0","pass":"0"}'
      payload_off: '{"type":"ON/OFF","idx":"1","status":"OFF","time":"0","pass":"0"}
   {"type":"ON/OFF","idx":"2","status":"OFF","time":"0","pass":"0"}'
      optimistic: false
      qos: 0
      retain: false

Et pour répondre à ta question, il s’agit bien du même SDK. J’ai puisé dans ce dossier :

relay_sdk\sdk_v2_0_0\HomeAssistant


Le même visiblement que dans le message 14 que tu as posté.

  • Je viens de remarquer que dans ton exemple il y avait un petit trais rouge devant la ligne name et la ligne topic.
    j’ai effacé les deux traits, j’ai repris ton premier exemple car avec le deuxième exemple j’avais un message d’erreur.
    Et maintenant c’est bon j’ai Dingtian dans outils et développement.
    -L’icone est en grisée c’est normal?
1 « J'aime »

C’est bon signe, pas d’erreur de syntaxe ni d’indentation.
Par défaut, les relais envoient toutes les 30 secondes leur état. Tu n’as qu’une seule ligne Dingtian dans outils et développement ? Tu as tapé relais ou Dingtian dans la barre de recherche ? Je veux bien une capture d’écran de ce qu’il trouve s’il te plaît.


Afin d’éviter toute erreur de synthase j’avais recopié ton fichier tel quel dans /homeassistant/configuration.yaml en me disant que je changerais les noms ensuite, il garde toujours le nom « bureau » bien que modifié dans la config.
Mais bon dans un premier temps c’est pas bien grave.

ok. Si tu essaies de le forcer en on, le relais répond ?

à la place de: Etat* unavailable tu rentres on au clavier et tu appuies sur le bouton bleu Définir l'état

Le relais ne réagit pas.
Concernant les essais la platine 2 relais n’est pas simple pour moi géographiquement à tester.
De plus actuellement elle est raccordée sur Domoticz, est il pourrais y avoir un conflit., Elle commande ma VMC.
J’ai voulu rajouter dans la config.yaml, une cartes 4 relais qui se trouve à proximité sur mon bureau.
J’ai rajouté au fichier config yaml en dessous de la config de la carte 2 relais mais ça ne fonctionne pas il doit y avoir une subtilité?

Je peux effacer la config de la carte 2 relais dans config.yaml et mettre à la place la carte 4 relais
17760 en sélectionnant le SDK configuration_4ch_discovery.yam ?

Oui bien sûr si c’est plus facile pour toi, tout à fait.
J’ai voulu commencer facile avec le moins de relais, c’est pour ça que j’avais choisi la 2 canaux. Mais tu peux tout à fait choisir une 4 canaux.
Efface la config oui, sans soucis, et essaye avec la 17760 à 4 canaux. :wink:

EDIT : (tu copies / colles à partir de la ligne 19 hein, pour le fichier configuration_4ch_discovery.yaml)

Ce que tu peux essayer, dans un premier temps, c’est d’envoyer les commandes, depuis MQTT Explorer, pour voir si ton relais réagit bien et t’assurer ainsi de la bonne syntaxe et du bon topic des commandes.

Je fais référence toujours au SDK, tu trouveras dans le dossier relay_sdk\sdk_v2_0_0\MQTT
un fichier MQTT_sub_and_pub.txt avec ceci à l’intérieur :

example SN is 100

MQTT id:
ETH:dingtian-relay100
WIFI:dingtian-wrelay100

notice: publish default send every 30 second
publish                                 example value
/dingtian/relay100/out/lwt_availability  online,offline
/dingtian/relay100/out/r1~8              ON or OFF
/dingtian/relay100/out/i1~8              ON or OFF
/dingtian/relay100/out/relay1~8          {"idx":"1","status":"OFF"}
/dingtian/relay100/out/input1~8          {"idx":"1","status":"HIGH"} or {"idx":"1","status":"LOW"}
/dingtian/relay100/out/ip                192.168.1.100
/dingtian/relay100/out/sn                1
/dingtian/relay100/out/mac               bc:34:88:00:00:ff
/dingtian/relay100/out/input_cnt         4
/dingtian/relay100/out/relay_cnt         4
/dingtian/wrelay100/out/lwt_availability  online,offline
/dingtian/wrelay100/out/r1~8              ON or OFF
/dingtian/wrelay100/out/i1~8              ON or OFF
/dingtian/wrelay100/out/relay1~8          {"idx":"1","status":"OFF"}
/dingtian/wrelay100/out/input1~8          {"idx":"1","status":"HIGH"} or {"idx":"1","status":"LOW"}
/dingtian/wrelay100/out/ip                192.168.1.100
/dingtian/wrelay100/out/sn                1
/dingtian/wrelay100/out/mac               bc:34:88:00:00:ff
/dingtian/wrelay100/out/input_cnt         4
/dingtian/wrelay100/out/relay_cnt         4


subscribe                               example value
/dingtian/relay100/in/control            {"type":"ON/OFF",'idx':'1',"status":"ON","time":"0","pass":"0"}
/dingtian/relay100/in/r1~8               ON or OFF
/dingtian/wrelay100/in/control            {"type":"ON/OFF",'idx':'1',"status":"ON","time":"0","pass":"0"}
/dingtian/wrelay100/in/r1~8               ON or OFF


MQTT LWT topic
/dingtian/relay100/out/lwt_availability         online,offline
/dingtian/wrelay100/out/lwt_availability        online,offline


MQTT upgrade topic
/dingtian/relay100/out/upgrade_status     upgrading,success,fail
/dingtian/relay100/in/upgrade         	{"upgrade_url":"https://192.168.1.9:8070/relay.dtf"}

Depuis MQTT Explorer, si je reprends ton image,

Développe ta ligne 17760. sur la partie droite, dans la partie Publish tu dois renseigner le topic.

/dingtian/relay17760/out/r1
Rempli par ON (en majuscules) laisse au format json

comme ceci :

Et appuies sur Publish pour voir

Bonsoir David,
Le fichier que tu m’indiques MQTT-sub-pub.txt
j’en fais quoi?
Je le copie dans config.yaml?

Le fichier mentionné ci dessus pour l’instant je ne l’ai pas encore installé.

J’ai fais le test que tu m’indique de réaliser, lorsque j’active PUBLISH rien ne se passe au niveau du relais, mais MQTT Explorer réagit sur le relais 1.

Par contre lorsque j’active le relais manuellement dans l’interface Dingtian MQTT Explorer réagit bien.

Les sorties de la carte Dingtian fonctionnent vers MQTT Explorer lorsque j’active une sortie sur la carte DINGTIAN la sortie correspondante passe bien du statut HIGH au statut LOW
Pour faire simple ça fonctionne dans un sens.

Mais c’est peut être parce que le fichier MQTT-sub-pub.txt n’est pas installé???

Bonsoir à toi,
En fait le fichier MQTT_sub_and_pub.txt c’est juste une notice, un mode d’emploi pour savoir quels ordres donner dans quel topics. Ce n’est pas un fichier à installer quelque part. :wink:
Si ça fonctionne dans un sens c’est qu’il y a une erreur quelque part. soit de syntaxe (mais y’a peu de chance on envoie juste un ON) soit de topic.
Le truc étonnant, c’est que si on regarde tout au début du fichier, il est précisé :

ETH:dingtian-relay100
WIFI:dingtian-wrelay100

Je pense que tu n’as que des modèles wifi, on est d’accord ?
Dans ce cas on devrait voir normalement dans MQTT Explorer toutes tes cartes qui sont censées s’appeler dingtian-wrelayXXXX Et d’après ta capture d’écran MQTT Explorer on ne voir que du relayxxxx et non pas wrelayXXXX

On est pas loin du tout, on est à un cheveu là.
Et si tu navigues directement sur r1 ?

Et que tu publies à droite un ON ou un OFF ?

Je te confirme que toutes mes carte sont en Ethernet et pas en WIFI.


Je suis directement sur r1 voila le résultat ci dessus.

Je constate que:
La carte Dingtian renvois les informations régulièrement à MQTT Explorer c’est pour cela quelle repasse toute seule sur Off dans MQTT explorer

1 « J'aime »

OK, désolé d’insister mais tu as essayé en majuscule la commande ON ?