Mymodbus - Débutant Modbus

As-tu la version beta d’installée?

Je suis pas sur que cela soit possible de lire sur deux registres dans l’état actuel du plugin, même si l’option est présente dans la béta.

Antoine

Si c’est possible @Noyax37 le fait en lissant deux registres il ajoute le second dans le champ option pour avoir le deuxième bit.
J’ai pas de pc sous la main pour te faire une capture d’ecran, mais si noyax passe par la il pourais te montrer.
Sinon j’ai le temps un soir je te le fait :wink:

Non, version Stable Tonio16.
@Bebel27, je veux bien une capture avec plaisir :slight_smile:
Car dans le champ Options, on a « Unité » « Min » et « Max » et je ne vois pas où ça pourrait aller :thinking:

Merci

Par contre Il faut être sur la bêta pour pouvoir le faire.

Je viens de trouver une copie d’écran d’une discution, ça devrait t’aider

Calcul complet.

‹ * 65536 + #[Onduleur][SofarSolar HYD 6000][Total temps de production LO]# ›

1 « J'aime »

Min et Max c’est juste pour borner la valeur dans Jeedom. Unité, cela donne l’unité pour ton affichage.

Antoine

1 « J'aime »

@Bebel27
Merci pour l’info,
Du coup, j’ai installé la beta sur une autre machine
Celle avec la version stable est une Pro en 4.1.18 et celle où je viens d’installer la beta est un Rpi en 3.55
Dans le log, j’ai cash ceci:

PHP Parse error:  syntax error, unexpected '>' in /var/www/html/plugins/mymodbus/core/php/mymodbus.inc.php on line 76

J’ai relancé les dépendances et le demon 2x
Màj Core?

Du coup, je n’ai rien qui fonctionne.

J’ai configuré ainsi.
Le « Voltage L1 » marche bien sur la version stable. Ici pas de réponse (due à l’erreur dans le log?)
Sinon, pour « Current L1 » selon vous les champs sont bien remplis? (Sauf l’adresse qui n’est pas bonne sur la capture = 41028 du à l’offset de -1)
32bits et &1 de manière à aller lire l’adresse suivante
J’ai juste?

Merci pour vos éclaircissements!

@Tonio16 merci, j’avais capté ça :wink: justement je ne comprenais pas où j’étais censé mettre l’info.
J’avais mal compris que l’option n’était que sur la beta.

Bonjour, dans paramètres cela te permet d’appliquer des opérations à la valeur que tu as récupérée. Donc pour reprendre ton exemple sur la mesure de tension, tu es bien en unit16 donc pas de soucis par contre tu as un facteur 0.1 donc dans paramètres tu peux ajouter * 0.1 ou /10 pour avoir une lecture directe en volt. Pour l’intensité qui est par contre en unit32, il faut que tu fasses 2 lignes pour récupérer les 2 registres (1 pour le 41029 et 1 pour le 41030) et que tu saches sur quel registre en unit16 tu retrouves le poids fort. Par exemple tu as sur le registre 41029 le poids faible et sur le 41030 le poids fort tu peux donc soit créer un virtuel qui fera 65536 * [registre 41030] + [registre 41029] soit mettre en paramètre de 41029 => « + (65536 * [registre 4130] » ou dans le paramètre de 4130 => " * 65536 + [registre 41029]"

Je ne sais pas si c’est très clair, tu me diras :wink:

j’ai oublié de préciser qu’il faut tout laisser en 16bits car pour l’instant le 32 bits ne fonctionne pas si j’ai bien compris

Juste pour info, ça te servira à quoi de récupérer l’adresse MAC? Parce que si cela ne te sert à rien alors pas la peine de se faire de noeuds au cerveau :wink:

Pour ce qui est de l’écriture dans un registre, la doc que tu nous montres spécifies que le function code doit être à 10 pour faire cette opération or le « discrete input » du plugin utilise la function code 02 qui sert à lire certains registres https://4-20ma.io/ModbusMaster/group__discrete.html

Il me semble que pour l’instant la function code 10 (Modbus function 0x10 Write Multiple Registers.) n’est pas reprise dans ce plugin

D’ailleurs @Bebel27 est ce que tu pourrais nous indiquer quelle function code tu utilises pour chaque type d’e/s de ton plugin stp?

La fonction write multiple register est bien sur la bêta tu peux ecrire un registre sur ce format. Néanmoins tu peux écrire un seul registre car je n’ai pas trouver nécessaire de pouvoir écrire plusieurs registres avec la même valeurs, du mois pour faire de la domotique.

ok très bien :+1:

on peut toujours contourner en écrivant la même chose sur plusieurs registres en plusieurs fois :wink:

Oui c’est vrais.
Sauf que la dernière fois j’ai rajouter ce format pour un utilisateur qui doit écrire un registre sur son onduleur sous ce format là

Edit, j’ai retrouvé c’était pour une Vmc et le format d’écriture était (16) write multiple registers.
Vmc de marque Nilan
D’ailleur c’était pas 10 le code mais 16

tout dépend si tu es en héxa ou en décimal :wink:

Bonjour à tous,
J’ai mis un peu de temps à m’y remettre :slight_smile:
Pour reprendre ce que j’ai compris:
Pour écrire des valeurs sur l’automate en question je dois utliser la fonction « write multiple registers »
Car il est idiqué 0x10 sur la doc du produit.

Du coup, cette fonction n’est pas disponible sur la version stable mais elle l’est sur la Beta.

Le souci c’est que quand j’installe la beta (jeedom 3.3) le plugin ne fonctionne pas:

PHP Parse error:  syntax error, unexpected '>' in /var/www/html/plugins/mymodbus/core/php/mymodbus.inc.php on line 76

Auriez-vous une piste svp?
Ah et autre question: peut-on avoir à la fois une version stable et une version beta sur la même machine sans que ça foute le bazaar?

En vous remerciant,

J’ai installé Jeexplorer pour aller voir le fichier en question et à la ligne 76, il y a ça:

if(($old_value<=>$new_value)|| empty($cache_value)){

Je ne touche à rien, j’attends vos avis.

En tout cas, j’ai supprimé le plugin, redémarré jeedom, réinstallé le plugin et l’erreur arrive dans le log dès que je crée la 1ère commande info. (j’ai pas essayé pour voir si action ça faisait le même souci)
Et s’affiche en boucle (en fonction de la durée du polling)

La communication modbus peut-elle être supervisée ?
Bien que cela ne change pas la valeur, mais que nous pouvons savoir qu’il reçoit bien la réponse modbus

Merci

Personnellement je ne supervise pas mais je regarde le dernier changement d’état d’une info et si le temps est trop long on peut générer une alerte

J’ai un capteur d’alarme. Il envoie toujours 0 et lorsque l’alarme se déclenche, il envoie un 1.
Si le capteur ou la communication modbus tombait en panne, je perdrais l’alarme. C’est pourquoi je veux savoir : comment surveiller qu’il y a une communication Modbus, même si la valeur reçue ne change pas ?

Un message a été scindé en un nouveau sujet : Comment changer une valeur qui est récupérée par le plugin