Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

[Plugin Tiers][Sujet Principal] Plugin Modbus

Pour échanger sur les plugins classés en catégorie "Protocoles domotiques"
meute
Actif
Messages : 967
Inscription : 26 août 2017, 11:07
Localisation : Belgique

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par meute » 18 janv. 2018, 16:55

cadavor a écrit :
18 janv. 2018, 16:34
Dans le virtuel, il est possible d'effectuer un calcul automatique sur la valeur dans les options complémentaires.
Et d'y mettre :

Code : Tout sélectionner

If #value#>32767 then #value#=#value#-65535
Bien vu, en effet, j'avais pas pensé à cette possibilité.

Par contre moi j'avais fais une erreur sur la valeur à tester qui est bien >32767 (ou >=32768) et que je viens de corriger mais c'est bien 65536 qu'il faut soustraire ensuite et pas 65535 pour récupérer la valeur négative car 65535 = -1.
Sur les systèmes qui ne supportent que des calculs en 16 bits on soustrait 65535 et on soustrait ensuite encore 1 mais dans ce cas ci on peut sans problème soustraire 65536 en une fois.
Jeedom VM ESXI sur NUC
Ilot I/O Modbus Wago Z-Wave (11 volets,prises,présences) + RFXCom (sondes T°+RH, prises)
Pont Hue et une vingtaine d'ampoules,une flopée de Xiaomi aquara, Harmony Elite
8 Google Home et un PC tactile All-In accroché au mur

ppz1961
Timide
Messages : 12
Inscription : 07 janv. 2018, 22:46

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par ppz1961 » 20 janv. 2018, 02:45

Hello tout le monde,
je m'améliore chaque jour...
Question du jour:
quand je veux obtenir une valeur formatée en provenance d'un INT (exemple 164 pour une température de 16.4 celsius), est-ce mieux de:

aller dans la config avancée de mon modbus et changer la configuration d'une commande (par exemple #value#/10 et mettre 1 comme arrondi) pour obtenir la valeur formatée désirée (16.4)
OU
créer un virtuel qui prendra la valeur brute de mon INT modbus (164) et la formater pour obtenir le format souhaité (16.4)

J'avoue actuellement ne pas voir un avantage quelconque à faire un virtuel au lieu de fine-tuner la valeur modbus récupérée.

Votre avis est le bienvenu.
Michel

ppz1961
Timide
Messages : 12
Inscription : 07 janv. 2018, 22:46

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par ppz1961 » 20 janv. 2018, 03:06

Dans le virtuel, il est possible d'effectuer un calcul automatique sur la valeur dans les options complémentaires.
Et d'y mettre :

Code : Tout sélectionner

If #value#>32767 then #value#=#value#-65535
Question liée à ma précédente générique (virtuel ou pas):
est-ce mieux/conseillé/déconseillé de faire ce calcul dans la gestion avancée de la valeur brute (en provenance du plugin modbus, configuration de la commande, action sur la valeur) ou de faire cette même opération dans le virtuel relié ?

Je ne perçois pas d'à-priori pour une ou l'autre gestion.
Michel

meute
Actif
Messages : 967
Inscription : 26 août 2017, 11:07
Localisation : Belgique

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par meute » 20 janv. 2018, 08:34

Hello,

C'est 65536 qu'il faut soustraire.

Sinon pour tes questions le résultat est à mon avis le même mais moi je ne ferais aucun calcul dans le plugin modbus comme cela tu as toujours un endroit ou tu peux vérifier quelle valeur tu as reçue avant traitement et ou ta valeur est "vierge" de tout traitement ça peut des fois servir on sait jamais.

De plus tu auras de toute façon besoin de virtuels pour extraire des valeurs binaire des mots que tu vas lire car comme tu le sais déjà surement car ça a été développé dans des posts précédents il est vivement déconseillé de lire des COIL et il vaut mieux regrouper toutes les infos dans des registres contigu qu'elles soit de type "bit dans un registre" ou valeur numérique pour les lire en 1 fois. Et ensuite tu créée tes équipements virtuels qui vont utiliser les valeurs du modbus, les traiter et les rendre disponibles sous le bon format pour le reste de ton installation, donc autant tout faire dans les virtuels.

Pour le calcul moi je fais tout directement dans la commande du virtuel, que ce soit l'extraction d'un bit ou la division et l’arrondi comme ça je ne dois pas aller spécifiquement dans la page des paramètres avancés de chaque info, tout est visible d'un coup d’œil sur la même page. Par contre la conversion WORD vers INT16 tu devras la faire dans les paramètres avancés, pas le choix.

Ensuite faut se méfier, je n'ai pas testé et je ne sais donc pas quel ordre les calculs seront effectués ... il faut impérativement que "l'action sur valeur" pour soustraire 65536 si nécessaire soit le premier calcul effectué pour transformer tes négatifs donc tu n'auras peut-être pas d'autre choix que de faire cette partie la dans le plugin modbus pour que ton virtuel puisse récupérer un INT16 avant de le diviser et l’arrondir.
Donc peut-être que la question ne se posera même pas et il faudra faire la conversion WORD vers INT16 dans le plugin modbus et la conversion INT16 vers nombre décimal dans le virtuel.
Jeedom VM ESXI sur NUC
Ilot I/O Modbus Wago Z-Wave (11 volets,prises,présences) + RFXCom (sondes T°+RH, prises)
Pont Hue et une vingtaine d'ampoules,une flopée de Xiaomi aquara, Harmony Elite
8 Google Home et un PC tactile All-In accroché au mur

ppz1961
Timide
Messages : 12
Inscription : 07 janv. 2018, 22:46

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par ppz1961 » 23 janv. 2018, 04:07

meute a écrit :
18 janv. 2018, 07:24

- Soit dans ton PLC tu additionnes toujours 1000 à ta valeur avant de la rendre dispo dans le mot modbus ce qui te donneras 100°c de plus vu que tes valeurs sont multipliées par 10, et du côté jeedom tu soustrais 1000 et tu divise par 10 pour obtenir la bonne valeur.
Comme cela tout ce qui est supérieur à -101°c sera lu correctement. Et la c'est plus facile car soustraire 1000 et diviser par 10 ça se fait facilement dans l'info d'un virtuel.
C'est ce que j'ai fait et c'est effectivement bien plus simple et homogène.
De fait, j'ai mis dans le plugin modbus toutes les valeurs brutes INT16 sans en rectifier le format. Donc une température donnée par mon TBox de 185 est récupérée dans Jeedom telle quelle et le virtuel va la rectifier pour sa présentation. C'est bien plus élégant et je peux comparer effectivement d'un seul coup d’œil si les valeurs jeedom/TBox sont cohérentes. Thx++

Tant que j'y suis:
trouves-tu mieux de faire le calcul #value#/10 dans le champs valeur [niveau commande] ou dans le champs valeur [niveau configuration - Formule de calcul (#value# pour la valeur) ] ? Le résultat est évidemment le même mais peut-être qu'une subtilité m'échappe encore à ce niveau...

Tertio, comment faire pour insérer un IF/THEN/ELSE dans ce champs valeur (niveau commande ou formule de calcul) pour obtenir un résultat visible ?
Explication:
J'ai un champs INT16 qui est numérique et représente l'état de commande de ma géothermie : 1 pour Chauffage, 2 pour Climatisation, 3 pour Ventilation seule (la ventilation étant obligatoire en mode chauffage et refroidissement).

Je voudrais afficher un champs #[Geo][TBox INT16][setting]# qui est un résultat texte précisant l'état lié au numérique modbus lié.

IF #[Geo][TBox INT16][Therm]# = 1 THEN #[Geo][TBox INT16][setting]# = 'chauffage'
OR
#[Geo][TBox INT16][Therm]# = 2 THEN #[Geo][TBox INT16][setting]# = 'climatisation'
ELSE
#[Geo][TBox INT16][setting]# = 'ventilation'

Un lien ou une idée ?
Thx
Michel

ppz1961
Timide
Messages : 12
Inscription : 07 janv. 2018, 22:46

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par ppz1961 » 23 janv. 2018, 04:39

Hello Modbusiens et Modbusiennes,

Mon Tbox (maître TCP) polle différents slave modbus (TCP ou RTU).
Pour ne pas saturer le processeur, je polle généralement en activant un trigger, poll effectif, fermeture du trigger. Ce qui me permet de placer ces routines dans des time frames. En effet, il y a des paramètres qui varient peu et peuvent être pollés moins fréquemment. D'autres nécessitent un poll plus rapide pour que mon plc puisse réagir (en autonome) de façon plus adéquate.

De plus, les plc permettent de poller un ensemble de tags successifs en une seule commande et de gérer le tout par après.

Dans Jeedom, j'ai la possibilité de définir la latence de poll (X secondes) de mon TBox. Si je laisse la connection ouverte, j'ai compris (interprété ?) que c'est comme si je faisais un poll en continu (pas de trigger).

Selon votre expérience, est-ce mieux de créer dans le plugin modbus un "superpoll" qui va aller poller tous mes registres en une seule fois (et gestion ultérieure par les virtuels et autres commodités) OU créer différents composants modbus (avec la même adresse IP mais avec un temps de poll différent) qui iront poller une partie des registres nécessaires selon besoin ?

Bref, la facilité (1 seul composant avec beaucoup d'E/S modbus) ou la subtilité (plusieurs composants avec moins d'E/S modbus et des temps de polls qui pourraient être différents) ?

Merci pour vos lumières.
Michel

FXdB13
Timide
Messages : 11
Inscription : 16 mai 2017, 21:40

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par FXdB13 » 22 févr. 2018, 14:17

Bonjour à tous,
je souhaite piloter une pompe avec ce variateur :
https://www.automation24.fr/variateur-d ... 1d3fn-n20n
Est-ce que ce plugin me permettra de le faire via Jeedom ?
Sinon, que me conseilleriez-vous ?
Merci pour vos conseils.

djedevienne
Timide
Messages : 28
Inscription : 17 sept. 2016, 10:05

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par djedevienne » 22 févr. 2018, 19:09

Salut oui tu pourras piloter ton variateur mais d'après ce que je vois C est du modbus RTU. Tu devras passer par un convertisseur modbus RTU vers modbus tcp . Moi je connais la mgate mb3170 de moxa mais peut être un peu cher je l'utilise au travail elle est top!! Mais en regardant le fil de cette discussion tu trouveras d autres solution

Envoyé de mon SM-G950F en utilisant Tapatalk


FXdB13
Timide
Messages : 11
Inscription : 16 mai 2017, 21:40

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par FXdB13 » 23 févr. 2018, 12:07

Ok merci pour l'info. Je vais faire mon enquête sur les convertisseurs pas trop chers.

Avatar de l’utilisateur
jiminy
Actif
Messages : 532
Inscription : 26 févr. 2016, 18:27
Localisation : Montpellier

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par jiminy » 23 févr. 2018, 12:20

Il y a u plugin modbus RTU en beta dans le market mais avec uniquement une config pour chaudière De Dietrich
Donc à voir si c'est possible de faire une config pour cette pompe.

Avatar de l’utilisateur
jiminy
Actif
Messages : 532
Inscription : 26 févr. 2016, 18:27
Localisation : Montpellier

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par jiminy » 23 févr. 2018, 16:23

sarakha63 a écrit :
23 févr. 2018, 14:53
Il n'y aura pas d'autres config... Le plugin à pour vocation de vous permettre de saisir vos commandes c'est tout.

Vouloir faire du modbus sans avoir une idée de la table d'adressage avant c'est un peu comme acheter une voiture mais oublier qu'il faut le permis ;)
Bien d'accord Ludovic,
Quelle que soit la chaudière (ou la pompe, ou ...), modbus (ou bus EMS pour les chaudières équipées d'un régulateur Bosch, ou le bus des Wiessmann, ou autre) c'est juste un protocole.
Après pour la config c'est presque toujours du reverse engineering, les fabricants sont presque tous muets, heureusement qu'il y a Internet pour trouver des infos !

xavax
Actif
Messages : 1206
Inscription : 01 sept. 2017, 14:03
Localisation : Lille

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par xavax » 24 févr. 2018, 09:38

Bonjour, j’ai ce type de vmc, croyez vous qu’il soit possible de l’intégrer dans jeedom ? http://blog.domoconcept2b.fr/2014/10/vm ... ble-en-ip/



Envoyé de mon iPhone en utilisant Tapatalk

xavax
Actif
Messages : 1206
Inscription : 01 sept. 2017, 14:03
Localisation : Lille

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par xavax » 27 févr. 2018, 15:27

apparemment c'est compliqué a intégrer, voir impossible. j'ai trouvé la donc pourtant c'est bien du modbud TCP/IP https://www.easycontrols.net/fr/service ... er%C3%A4te

Reemkuz
Timide
Messages : 8
Inscription : 25 févr. 2018, 14:14

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par Reemkuz » 01 mars 2018, 20:11

Bonjour,

Tout fonctionnait très bien jusqu’à ce message dans le log du plugin :

[2018-03-01 20:03:58][ERROR] : Impossible de lancer le démon Modbus
Traceback (most recent call last):
File "/var/www/html/plugins/modbus/ressources/modbus_master.py", line 45, in <module>
hrs.sort(key=int)
ValueError: invalid literal for int() with base 10: ''
[2018-03-01 20:04:40][ERROR] : Impossible de lancer le démon Modbus

Du coup je ne peux plus lancer le demon......
Je suis sous débian 9 sur un NUC.
J'ai essayé:
- Redémarrage JEEDOM > NOK
- Arrêt et relance Plugin > NOK
- Arrêt relance Demon > NOK

Si vous avez une idée ?
Merci,

Reemkuz
Timide
Messages : 8
Inscription : 25 févr. 2018, 14:14

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par Reemkuz » 01 mars 2018, 20:35

J'ai éditer le fichier en question, l'erreur se trouve ici (ligne 45) ??

elif o == "--hrs":
hrs = a.split(',')
hrs.sort(key=int)

Reemkuz
Timide
Messages : 8
Inscription : 25 févr. 2018, 14:14

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par Reemkuz » 01 mars 2018, 21:08

Bon j'ai trouvé, une valeur (adresse) était vide....
ValueError: invalid literal for int() with base 10: ''

Reemkuz
Timide
Messages : 8
Inscription : 25 févr. 2018, 14:14

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par Reemkuz » 02 mars 2018, 16:38

Bonjour à tous,

Afin d’alléger le système, je concatène dans mon automate des bits (16 au max) dans un mot que Jeedom viens scruter (info, numérique, Holding)
Je souhaite créer des virtuels de type info qui prendront la valeur de chaque bits décodé.
Question, comment décoder des bits dans 1 mot ? quelle est la formule à appliquer dans mes virtuels ?
D'avance merci,
Reemkuz

Avatar de l’utilisateur
cadavor
Actif
Messages : 879
Inscription : 21 juin 2015, 22:00
Localisation : 34

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par cadavor » 02 mars 2018, 17:01

Reemkuz a écrit :
02 mars 2018, 16:38
Bonjour à tous,

Afin d’alléger le système, je concatène dans mon automate des bits (16 au max) dans un mot que Jeedom viens scruter (info, numérique, Holding)
Je souhaite créer des virtuels de type info qui prendront la valeur de chaque bits décodé.
Question, comment décoder des bits dans 1 mot ? quelle est la formule à appliquer dans mes virtuels ?
D'avance merci,
Reemkuz
Utilises les masques binaires
Jeedom Stable 3.2.11
Rpi3 + SSD 120Go + Aeotec Z-Stick Gen5
Z-Wave FGR + FGMS + FGDS + FGFS + FGK + FGWPE + ZW062
Orvibo AllOne + Playbulb + Miband2 + Creative Axx20 (TTS)

Reemkuz
Timide
Messages : 8
Inscription : 25 févr. 2018, 14:14

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par Reemkuz » 02 mars 2018, 17:04

Masques binaires ?

Reemkuz
Timide
Messages : 8
Inscription : 25 févr. 2018, 14:14

Re: [Plugin Tiers][Sujet Principal] Plugin Modbus

Message par Reemkuz » 02 mars 2018, 22:11

Re,

J'ai réussi à dé-concaténer mes mots dans des bits:
Capture.PNG
Capture.PNG (69.59 Kio) Consulté 283 fois
Test avec expression OK

Coté Virtuel je galère (l'objectif est de mettre la valeur d'une variable dans un virtuel pour afficher l’état sur le dashboard)
Si quelqu'un à une idée..un screen.....

Merci,

Répondre

Revenir vers « [Catégorie] Protocoles domotiques »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités