Aller au contenu

Messages recommandés

Posté(e)

Hello,

 

A mon tour, de répondre en retard, désolé.

J'ai bien vu ton message (motif mail) et j'ai oublié de répondre.

 

Donc oui, j'ai bien trouvé une solution.

Mon module, comme une autre personne sur ce topic d'ailleurs (après relecture complet) n'avait pas l'air de fonctionner correctement.

 

Côté Jeedom (le but étant de récupéré des données sur Jeedom), je me suis aussi confronté à des soucis.

En effet, deux plugins existent : Modbus RTU et Modbus TCP.

 

Plusieurs soucis :

- Les deux plugins sont laissés à l'abandon

- Les convertisseurs RS <-> Ethernet ne font forcément (du moins ce n'est pas le cas pour les plus basique) du Modbus TCP. Ils font du Modbus RTU over Ethernet. Si on sélectionne le mode TCP server sur un convertisseur Ethernet, on fait du Modbus RTU over Ethernet. Certains convertisseurs, comme le dernier modèle que j'ai acheté propose une option de plus : Modbus TCP.

- Le plugin Modbus RTU est uniquement compatible avec des convertisseurs USB (il ne fait pas du Modbus Over Ethernet)

- Le plugin Modbus TCP n'existe plus sur le market

- J'ai pu récupéré le plugin Modbus TCP (que l'on peut modifier en RTU via la simple édition d'un fichier) mais il me retournait des "None" comme valeurs.

- Après avoir chercher... J'ai trouvé que certains "check" du script envoyait des None dans certains cas... Après avoir commenté le code (oui, pas top top comme solution), je récupère bien des valeurs sans soucis.

 

J'ai juste la valeur du ballon que je n'arrive pas à récupérer.

Il m'affiche 65535...

 

Sinon, le reste c'est OK pour le moment.

 

  • 5 semaines après...
Posté(e)

Hello,

Je cherche à récupérer les plages horaires des différents programmes P2, P3 et P4.

Je n’ai pas le tableau des adresses sous les yeux mais il me semble qu’il n’était indiqué que les adresses du programme P4.

 

Ensuite, je cherche à comprendre comment convertir les données récupérées en données lisible.
 

Ex : pour le lundi en programme P4, j’avais récupéré les données 15 / 0 / 65520. Pour un autre jour ou programme : 31 / 49152 / 65520


J’ai bien lu qu’il y avait 30min par bit mais euh...

Si quelqu’un a une formule de calcul pour trouver les heures, je suis preneur.

 

Posté(e)

Bonjour,

Pour chaque jour, 3 mots consécutifs de 16bits (soit 48 bits pour 48 1/2h  d'une journée) sont utilisés pour paramétrer les plages de chauffage. Ainsi

chaque bit du premier mot sert pour les tranches horaires allant de 0h00 à 7h30,

pour le second mot cela couvrira les tranches allant de 8h00 à 15h30

le dernier mot couvrira les tranches de 16h00 à 23h30

Il n'y a pas de formule à appliquer mais une gestion de tableau de bits, la position d'un bit parmi 48 détermine les 30minutes concernées et si 0 pas de chauffage, si 1 chauffage

C'est le même principe pour l'ECS.

Cordialement

  • 4 semaines après...
Posté(e)

Bonjour à tous,


tout d'abord, merci beaucoup pour le travail effectué ici. Votre travail vous a beaucoup facilité la mise en place d’une communication directe avec le chauffage. Dans la suite, je voudrais vous demander de comprendre mon mauvais français. Malheureusement, je ne parle qu'un peu le français et j'ai donc eu recours à un traducteur.
  
J'ai un "Diematic-Delta" et utilise un "Raspberry-Pi" pour lire les valeurs. Cela fonctionne à merveille. Même l'écriture fonctionne, mais malheureusement pas toujours comme décrit dans le tableau publié ici. Lors de l'écriture de certaines valeurs / registres, j'ai des problèmes et j'ai donc quelques questions:

 

1. J'aimerais écrire les registres 17, 26 et 38 (Dérogation A, B, C) (Dérogation de Jour, Dérogation de Nuit, Dérogation de Antigel ...) mais les valeurs ne sont pas acceptées.

Je peux voir dans le terminal que les valeurs correctes sont écrites, mais l'état du registre ne change pas.

Existe-t-il des dépendances sur d'autres registres (par exemple, registre 114-114, Traitement Derogations) qui peuvent empêcher l'écriture des registres?

Si oui, quelles sont les conditions pour écrire DEROG A-C ? J'utilise des capteurs d'ambiance analogiques / télécommandes analogiques pour les circuits A-C.

 

2. À propos de la télécommande analogique / du capteur d'ambiance:
j'ai remplacé les anciens capteurs d'ambiance par de nouveaux capteurs d'ambiance numériques sans fil de "Homematic". Pour transférer les relevés de température sur le chauffage, j'utilise actuellement le "Raspberry Pi" en conjonction avec un circuit électronique fabriqué par l'utilisateur qui convertit les relevés en valeurs de tension analogiques et est connecté aux connecteurs S.AMB-A, B et C. Cependant, ce WEG n’est pas précis à 100%, les valeurs ont une petite déviation. Je souhaite donc transmettre les valeurs mesurées via Modbus à l'appareil de chauffage. Cependant, les registres pour AMB A-C (18, 27 et 39) ne sont pas inscriptibles selon le tableau. Y a-t-il un moyen d'écrire ces valeurs de toute façon? Dans le terminal, je vois les demandes des participants 47, 48 et 49. J'ai déjà essayé de répondre à ces demandes avec mes valeurs mesurées, ce qui est confirmé par une commande d'écriture du participant respectif -> mais au final, des valeurs identiques ne sont pas reprises.

 

Y a-t-il des expériences ou des idées de votre côté?
Je vous remercie d'avance et attend vos réponses avec impatience.

Marc

Posté(e)

Bonjour,

La Diematic delta fonctionne avec 4 esclaves modbus:

  • 32: pour gérer les lectures/écritures paramètres généraux type date, températures...
  • 47: pour gérer les dérogations circuit A @17
  • 48: pour gérer les dérogations circuit B
  • 49: pour gérer les dérogations circuit C

En ce qui me concerne je n'utilise que le circuit A, je ne connaît pas les adresses concernant B et C.

Quand on modifie les dérogations par 32 c'est immédiatement remis dans l'état antérieur, il faut passer par l'esclave 47 ou 48 ou 49 selon le circuit choisi.

Pour ce qui me concerne j'ai utilisé le 47 et pour la mise au point du séquencement je me suis rendu compte que le dialogue n'était pas une simple lecture écriture. Il y avait un enchaînement de messages avec l'écriture d'un registre qui faisait office de verrou de protection du registre dérogation. Ce registre verrou est en 101 pour la dérogation A. C'est sans doute le même pour les autres circuits, à vérifier.

Pour les modes Jour/nuit/HG ne pas perdre de vue qu'il y a le mode temporaire et permanent. Si on est en mode temporaire au passage à minuit la régulation reviendra en mode auto. Ce sont les bits Perm Derog ECS ou Circ A qui gère celà.

Pour le HG la mise au point a été un peu plus compliquée car le bit Tous Circuits à 1 perturbe la sortie du HG et le retour à un fonctionnement normal. Je le force à 0 quand je manipule les dérogations et c'est beaucoup mieux.

Bonne chance dans vos mises au point.

Posté(e)

Bonjour,

 

les infos que tu fournis sont intéressantes, de mon coté j'ai toujours buté sur deux limitations sur la diematic 3 :

 

- le mode jour/nuit etc.. n'est pas mis  à jour sur la commande à distance même si elle est prise en compte par la chaudière

- la sortie manuelle du mode hors gel marche mal, la date de début de la période hors gel (mémorisée automatiquement par la chaudière) n'est pas réinitialisée, ce qui fait que la mise hors gel suivante sera perturbée

 

As tu des exemple de code de ton implémentation ? De mon coté j'ai toujours laissé ce bit "Tout Circuits" à 0)

Cordialement,

Benoit

Posté(e) (modifié)

Bjr à tous,

y a t-il un tuto pour Home Assistant qui explique de A à Z comment appareiller sa chaudière De Dietrich MC25 LP équipée d'un diematic 3?

Modifié par Pat054
Posté(e)

@domip, je ne connais pas la diematic 3. Je crois savoir que certaines régulations sont de type maître/esclave. La diematic delta elle est purement esclave, tout est à l'initiative de la régulation, suite à ses émissions de messages environ toutes les 5 secondes. Comme dit plus haut pour la diematic delta c'est via l'esclave 47 que je manipule les dérogations.

Pour ce qui concerne le HG, je n'utilise pas le mode avec un nombre de jours, je n'ai pas vu que la diematic delta avait besoin d'une date de début de période. En revanche il faut donner le nombre de jours de HG et à chaque passage à minuit le reste de jours est mis à jour. Je ne sais plus si c'est au passage à 0  ou à -1 que le mode HG est désactivé. Moi je force le HG permanent et la veille de mon retour, à distance, je remets le mode auto actif. C'est en faisant cette manip que j'avais remarqué des perturbations principalement sur l'ECS, je les ai solutionnées en forçant le mode Tout circuits à 0.

@Pat054, je n'ai pas connaissance de l'existence d'un tel tuto

 

Cordialement

Posté(e) (modifié)

Merci @yve--reg mais peux tu me décrire ton installation ça me donnera peut-être des idées pour extraire les infos de ma chaudière MC25LP?

Modifié par Pat054
Posté(e)

@Pat054,

Mon installation matérielle reprend des caractéristiques décrites dans des posts de ce fil. A savoir un convertisseur RS485-Plus-1 connecté à une prise CDI de la régulation et à un port USB du RPI3.

Pour le logiciel en C j'ai développé l'interface modbus qui échange avec la régulation et un serveur web pour la présentation et l'accès à distance pour la modification des paramètres.

Posté(e)

Merci yve--reg pour ces infos.

 

Une question :

- ou as tu trouvé les infos sur les adresses 47/48/49 ? parmi toutes les docs que j'ai lu à ce sujet, je n'avais pas vu cela. S'il y en a de disponible, je suis intéressé.

J'ai toujours un problème sur le fonctionnement du HG que je n'ai jamais réussi à résoudre. Je ne sais pas comment forcer le HG permanent, je n'ai jamais réussi (et ça fait quelques années que j'essaye !)

 

 @Pat054 , un exemple web en pour la MC25LP est dispo ici https://github.com/Benoit3/Diematic

 

je crois qu'il y a un plugin jeedom dispo, mais rien en Home Assistant. Il faut aller voir sur les forums associés.

 

Posté(e)

Merci @domip

J'en suis qu'au debut: la réflexion.

Je voudrais connecter ma chaudière à un appareil RS485 modbus Rtu en WIFI car pas de câblage ethernet proche. Puis lire a distance les paramètres de ma chaudière (pour le moment je ne sais pas comment). J'ai déjà home assistant HA sur un raspberry pi. Je suppose que l'exemple que tu m'as transmis fait le lien entre HA et l'appareil RS485. Et une fois tout ceci fait: pouvoir afficher une consigne de t° (salon) pour que la chaudière régule celle-ci. Voilà où j'en suis

Posté(e)
Le 01/11/2019 à 09:40, yve--reg a dit :

Bonjour,

La Diematic delta fonctionne avec 4 esclaves modbus:

  • 32: pour gérer les lectures/écritures paramètres généraux type date, températures...
  • 47: pour gérer les dérogations circuit A @17
  • 48: pour gérer les dérogations circuit B
  • 49: pour gérer les dérogations circuit C

En ce qui me concerne je n'utilise que le circuit A, je ne connaît pas les adresses concernant B et C.

Quand on modifie les dérogations par 32 c'est immédiatement remis dans l'état antérieur, il faut passer par l'esclave 47 ou 48 ou 49 selon le circuit choisi.

Pour ce qui me concerne j'ai utilisé le 47 et pour la mise au point du séquencement je me suis rendu compte que le dialogue n'était pas une simple lecture écriture. Il y avait un enchaînement de messages avec l'écriture d'un registre qui faisait office de verrou de protection du registre dérogation. Ce registre verrou est en 101 pour la dérogation A. C'est sans doute le même pour les autres circuits, à vérifier.

Pour les modes Jour/nuit/HG ne pas perdre de vue qu'il y a le mode temporaire et permanent. Si on est en mode temporaire au passage à minuit la régulation reviendra en mode auto. Ce sont les bits Perm Derog ECS ou Circ A qui gère celà.

Pour le HG la mise au point a été un peu plus compliquée car le bit Tous Circuits à 1 perturbe la sortie du HG et le retour à un fonctionnement normal. Je le force à 0 quand je manipule les dérogations et c'est beaucoup mieux.

Bonne chance dans vos mises au point.

 

 

Merci pour l'information.
Pouvez-vous décrire la procédure exacte?

Dois-je activer le registre 101 (registre AUTEL) via le maître (32) ou via l'esclave 47 (circuit A)?

 

Mon processus est le suivant:
Je lis depuis le maître (32) au démarrage tous les registres 1-123 et enregistre les valeurs dans un dictionnaire.

Ensuite, je passe à ESCLAVE A (47). L'esclave demande les registres 17, 18 et 101. Après avoir répondu aux trois valeurs, je reviens sur le maître (32) et lis ses valeurs.

 

Enquête: 47 03 | 0011 | 0002 | ...
Réponse: 47 03 04 | 0024 | 0090 | ...

Enquête: 47 03 | 0065 | 0001 | ...
Réponse: 47 03 02 | 0008 | ...

Enquête: 47 03 | 0001 | 007B | ...
....

Enquête: 32 10 f6 | ...
...
 
Je réponds aux demandes par exemple avec le mode jour, la température et pour le registre 101, je réponds avec 8 = 1000 = dérogations.

Ensuite, l'esclave A (47) demande tous les registres de 1 à 123. Dois-je répondre avant que quelque chose se passe?

Pouvez-vous décrire le processus exact pour moi?

Posté(e)

Bonjour à tous,

@Domip, hélas je n'ai pas de documentation décrivant ces esclaves 32,47,48,49. C'est le résultat de tâtonnements dans le monitoring des échanges avec la régulation que j'ai mené avec @Briseis. Nous avons un peu divergé dans la compréhension du mécanisme, en particulier pour le HG qui a été le plus difficile à régler. Lui et moi avons eu des implémentations différentes qui nous satisfont et c'est l'essentiel.

Tu dis ne pas avoir réussi à implémenter le mode permanent, ceci se réalise avec soit le bit Derog Perm CircA à 1 soit le bit Derog Perm ECS pour l'eau. Je pense que les 2 à 1 ne sont pas incompatibles.

@Pat054, Je n'ai pas HA ni autre application en interface. J'ai un moment envisagé Domoticz, mais je trouve celà trop compliqué et j'ai un peu laissé tomber. J'ai un autre projet en cours qui n'a rien à voir: c'est remplacer l'electronique d'un pilote automatique de barre franche bateau par une solution à base d'Arduino.

J'ai retrouvé des traces des échanges quand je tentais de décrypter les messages Diematic-Delta, je les retranscris ci après:

esclave ordre adresse long   donnée sens (regul< >CDI)   signification

32          10     0001    007B  F6           >                           écriture page 1

32          10     0001    007B                 <                           acquittement

32          03     0001    007B                 >                           écriture

32          03     F6        010A                <                           acquittement

32          10     00F7    007B  F6           >                           écriture page 3

32          10     00F7    007B                 <                           acquittement

32          03     00F7    007B                 >                           écriture

32          03     F6        003E                <                           acquittement

47          03     0011    0002                 >

47          03     04       0084 00A1         <

47          03     0065    0001                 >                          écriture 101 à 1   levée du verrou   

47          03     02        0000                 <                          acquittement

47          10     0001    007B  F6            >                         écriture page 1 en particulier @17

47          10     0001    007B                 <                          acquittement

47          10     00F7    007B  F6           >                           écriture page 3

47          10     00F7    007B                 <                           acquittement

47          10     0065    0001    02 0000  >                          écriture 101 à 1  pose du verrou   

47          10     02        0000                 <                          acquittement

48          03 etc

voilà, j'espère que ceci pourra vous aider, sans dote que c'est différent sur une Diematic-3

Cordialement

  • 2 semaines après...
Posté(e)

Bonjour,

 

même si c'est différent sur la régul Diematic 3, cela m'a donné quelques idées à essayer, en particulier qu'il existait un mode hors gel permanent. Et bingo cela fonctionne.

J'ai poussé un peu plus loin, j'ai réussi à trouver un contournement qui permet de mettre à jour l'affichage de la commande à distance CDI2.

 

Tout est dispo  ici .

 

Benoit

  • 1 mois après...
Posté(e) (modifié)

Bonjour,

je me suis mis à la domotique et j'ai installé la version PHP de domip avec le même genre de config ( merci pour le partage ).

J'ai une De Dietrich à mazout de 2006 et j'ai réussi à adapter les PHP pour du monitoring, c'est nickel.

J'essaye d'adapter le fichier index.php pour paramétrer une api JSON Domoticz avec par exemple TEMP_ECS, TEMP_AMB_B et TMP_EXT.

J'ai enlevé tout ce que pouvais servir pour la page Web pour le mettre dans un Crontab.

Mais vu mon niveau au ras des paquerettes en PHP, je n'arrive pas initialiser les variables TEMP_ECS, TEMP_AMB_B et TMP_EXT.

Je bloque avec la lecture du tableau "Diematic.class.php"

 

<?php
$modbus_ip='192.168.1.55';
$modbus_port=20108;

require_once("Diematic.class.php");

if (isset($_GET['log'])) $log=intval($_GET['log']); else $log=null;

//Creation of regulator access
$regulator=new Diematic($modbus_ip,$modbus_port);

//request data synchro
$regulator->synchro();

 

$TEMP_EXT = ?????????????
$TEMP_AMB_B = ???????????
$TEMP_ECS = ????????????

$json = file_get_contents('http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=26&nvalue=0&svalue='.$TEMP_EXT);
$obj = json_decode($json);

$json = file_get_contents('http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=27&nvalue=0&svalue='.$TEMP_AMB_B);
$obj = json_decode($json);

$json = file_get_contents('http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=28&nvalue=0&svalue='.$TEMP_ECS);
$obj = json_decode($json);

 

if ($log==1) echo "<PRE>",$regulator->log,"</PRE>";

unset($regulator);

?>

 

Voila mon projet pour paramétrer mes devices (ça marche avec des valeurs numériques à la place des variables).

J'ai gardé le log=1 pour vérifier que la communication modbus fonctionne.

Si quelqu'un peut me renseigner, merci d'avance et bonne journée.

 

Edit : j'ai enfin trouvé avec pas mal de recherche sur le Web

Je donne le résultat pour aider un débutant comme moi, il est peut-être pas très académique mais ça fontionne.

$TEMP_EXT = print_r (($regulator->diematicReg['TEMP_EXT']->value), true);

$TEMP_AMB_B = print_r (($regulator->diematicReg['TEMP_AMB_B']->value), true);
$TEMP_ECS = print_r (($regulator->diematicReg['TEMP_ECS']->value), true);


 

 

 

Modifié par Domopat24
Posté(e)

Bravo pour avoir trouvé.

 

Je pense que :

$TEMP_EXT = $regulator->diematicReg['TEMP_EXT']->value;

 

ou

$json = file_get_contents('http://192.168.1.10:8080/json.htm?type=command&param=udevice&idx=26&nvalue=0&svalue='. $regulator->diematicReg['TEMP_EXT']->value);

 

doivent aussi donner le résultat attendu.

 

Benoit

 

Posté(e)

@ Domip Merci pour ton aide je vais m'en servir pour faire une petite boucle plus agréable à lire.

 

J'ai gardé une de tes premières versions php, vu l'age de ma chaudière c'est suffisant.

J'ai rajouté un test non nul pour la mise à jour des variables,

car au niveau de la com pi <--->chaudière parfois ça coince.

C'est surement dû à la version Soft 402 De Dietrich.

 

Encore merci à tous et à toi en particulier.

Patrick

 

Posté(e)

Bonsoir,

 

si tu prends la dernière version, tu auras beaucoup moins d'erreurs de récupération des données. La synchro maitre/esclave a été modifiée dans ce sens il y a quelques semaines.

Benoit

  • 1 mois après...
  • 4 semaines après...
Posté(e)

Bonjour

 

Merci Benoit, j'ai installé le plugin, chez moi il fonctionne.

Je ne l'ai pas mis en route car je n'ai pas pris le temps de tout paramétrer.

Je suis sur d'autres projets hors domotique et donc j'ai gardé ma version PHP modifiée.

 

Patrick

 

  • 2 mois après...
Posté(e) (modifié)

Bonjour à tous,

 

Je retrouve espoir sur la domotisation de ma chaudière De Dietrich DTG 125 FF de 2002 avec système Diematic Delta en lisant vos échanges ! Je viens de la réparer, du coup je me suis motivé sur le sujet.

 

@briseis Ton cas de figure semble très proche du mien, du coup, je souhaiterais savoir si tu as amélioré ton système depuis ou si tu pouvais me donner quelques conseils.

 

J'aimerais disposer des informations et interagir avec la chaudière avec le moins d'équipement intermédiaires possible. L'idéal serait de me contenter d'un boitier Ethernet / RS485 puis de l'interroger via une API Rest mais de ma compréhension, le protocole ModBus est légèrement modifié par De Dietrich ce qui nécessite du code à un niveau suffisamment bas pour communiquer. C'est bien ça ?

 

J'ai migré sur Jeedom depuis 1 an et il y a 2 plugin ModBus disponibles mais je ne suis pas certains qu'ils soit possible de les utiliser pour communiquer avec la chaudière pour la même raison que ci-dessus.

 

En résumé, suis-je contraint de passer par un Rasberry Pi ou puis-je faire plus simple ?

 

En espérant que tu sois encore actif sur le sujet et que tu pourras m'apporter tes lumières ;). Tout autre conseil des éminents membres du forum est le bienvenu également, j'ai vu que @yve--reg semblait également en connaitre un rayon sur le sujet.

 

Merci d'avance, cordialement

Modifié par Milkshake
  • 3 mois après...
Posté(e)

Bonjour,

 

je cherche a realiser l'instalation decrite dans le tuto

https://github.com/Benoit3/Diematic/

Mon use case est simple, je veux mettre la Chaudiere en mode Hors gel quand je pars, et l'allumer quand j'arrive

J'ai un doute car dans la documentation il est question de :

Citation

 

Temporary anti freezing, no more available

antifreezing mode has replaced it

 

Dans les captures d'ecran de l'interface je n'ai pas vu de bouton correspondant a mon besoin

J'ai commence par creer une issue sur le github

peut-etre n'etait-ce pas le bon cannal

 

desole je n'ai pas d'accent sur ce clavier

 

Merci pour votre aide, et desole si j'ai rate une reponse evidente

 

Amaury

 

Posté(e)
Il y a 1 heure, Amaury a dit :

...

Mon use case est simple, je veux mettre la Chaudiere en mode Hors gel quand je pars, et l'allumer quand j'arrive

...

 

Bonjour,

 

Si ton objectif est uniquement de pouvoir activer / désactiver la fonction hors gel à distance, pourquoi ne pas. simplement utiliser la prise relais téléphonique ?

Dans mon cas, j'ai une régulation diematic delta, la carte est équipée d'une broche 2 pin "relais téléphonique" et il suffit de connecter ces deux broches pour que la chaudière se mette en hors gel.

Si ta carte est aussi équipée de ce connecteur "relais téléphonique", tu tire 2 cables faible section,  (cable téléphonique, internet, etc ...) de cette prise de ta chaudière jusqu'a l'endroit ou tu veut mettre ton pilotage (par exemple la ou tu as ton raspberry), puis tu connectes ces deux fils à un relais. La tension et l'intensité sont très faible, et un relais analogique (et pas electro mécanique) est largement suffisant. J'ai pris un CMOS 4066 ( 4 switch) à 0,5€, et tu pilote le relais directement par une de tes broches du GPIO du rasbery.

 

Laurent

 

×
×
  • Créer...