Go Down

Topic: PoolMaster: gestion et domotisation de ma piscine (Read 6186 times) previous topic - next topic

Loulou74

Du coup tu branches la sonde sur la pin 6:

#define ONE_WIRE_BUS_A 6

Et le RTC sur les pins 20 et 21 du bus I2C

Pour les topics il ne faut pas ajouter la "wildcard" # dans le code, juste dans les clients qui souscrivent au topic (Jeedom et MQTT.fx par ex.).
Si tu ne veux pas essayer MQTT.fx, essaye de faire souscrire Jeedom au topic "#" pour voir tout ce qui passe par le broker Mosquitto (via le log temps réel de Jeedom par ex.)

Alexkids11

Bonjour Loulou74, j'ai pris mon temps pour essayer d'avancé, voila ce que j'ai fait.

J'ai installé MQTT.fx, la il ma trouvé 3 topics : Home/Pool/API , Home/Pool/status et Home/Pool/Err .
Je retrouve les mêmes sur JMQTT .
Ce qui est bizzare c'est que sur JMQTT ou MQTT.fx le status est offline alors que depuis le moniteur série de l'arduino le status est online.
Quand je regarde les logs sur jeedom et ça tourne en boucle.

[2019-05-04 09:48:05][DEBUG] : daemon starts, pid is 26980
[2019-05-04 09:48:05][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending CONNECT
[2019-05-04 09:48:05][INFO] : Equipment Home: subscribes to "Home/#" with Qos=1
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending SUBSCRIBE (Mid: 1, Topic: Home/#, QoS: 1, Options: 0x00)
[2019-05-04 09:48:05][INFO] : Subscribes to the API topic "jeedom/api"
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending SUBSCRIBE (Mid: 2, Topic: jeedom/api, QoS: 1, Options: 0x00)
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received CONNACK (0)
[2019-05-04 09:48:05][DEBUG] : mosquitto: connection response is Connection Accepted.
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending PUBLISH (d0, q1, r1, m3, 'jeedom/status', ... (6 bytes))
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received SUBACK
[2019-05-04 09:48:05][DEBUG] : mosquitto: topic subscription accepted, mid=1
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received PUBLISH (d0, q1, r1, m1, 'Home/Pool/status', ... (7 bytes))
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending PUBACK (m1, rc0)
[2019-05-04 09:48:05][DEBUG] : Payload offline for topic Home/Pool/status
[2019-05-04 09:48:05][INFO] : -> Home|Poolstatus offline
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received PUBLISH (d0, q1, r1, m2, 'Home/Pool/Err', ... (32 bytes))
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending PUBACK (m2, rc0)
[2019-05-04 09:48:05][DEBUG] : Payload Trying to print 83 chars to LCD1 for topic Home/Pool/Err
[2019-05-04 09:48:05][INFO] : -> Home|PoolErr Trying to print 83 chars to LCD1
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received PUBLISH (d0, q1, r1, m3, 'Home/Pool/API', ... (10 bytes))
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom sending PUBACK (m3, rc0)
[2019-05-04 09:48:05][DEBUG] : Payload {"Mode":0} for topic Home/Pool/API
[2019-05-04 09:48:05][INFO] : -> Home|PoolAPI {"Mode":0}
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received SUBACK
[2019-05-04 09:48:05][DEBUG] : mosquitto: topic subscription accepted, mid=2
[2019-05-04 09:48:05][DEBUG] : mosquitto: Client jeedom received PUBACK (Mid: 3, RC:0)
[2019-05-04 09:48:06][DEBUG] : mosquitto: disconnectedunexpectedly
[2019-05-04 09:48:06][WARNING] : exception thrown by MQTT client: The connection was lost.
[2019-05-04 09:48:06][INFO] : relance le démon dans 15s

Alexkids11

Et pour ce qui est de la sonde j'ai toujours la meme erreur : Error getting temperature from DS18b20_0
Alors j'ai changé de pin, j'ai changé de sonde, j'ai vérifier son fonctionnement en installant un code simple pour pouvoir la lire. Je ne comprends pas d'ou viens le problème.

Merci Loulou74 du coup de main pour résoudre mes problemes, mais je vais abandonné car trop de soucis.

Loulou74

Et pour ce qui est de la sonde j'ai toujours la meme erreur : Error getting temperature from DS18b20_0
Alors j'ai changé de pin, j'ai changé de sonde, j'ai vérifier son fonctionnement en installant un code simple pour pouvoir la lire. Je ne comprends pas d'ou viens le problème.

Merci Loulou74 du coup de main pour résoudre mes problemes, mais je vais abandonné car trop de soucis.

Dommage mais je comprends.
J'ai pas encore testé mon code sur la config Arduino Mega 2560 donc je ne suis pas surpris qu'il y aie quelques bugs à résoudre.

TheLapin

#49
May 07, 2019, 05:15 pm Last Edit: May 07, 2019, 05:20 pm by TheLapin
Et pour ce qui est de la sonde j'ai toujours la meme erreur : Error getting temperature from DS18b20_0
Alors j'ai changé de pin, j'ai changé de sonde, j'ai vérifier son fonctionnement en installant un code simple pour pouvoir la lire. Je ne comprends pas d'ou viens le problème.

Merci Loulou74 du coup de main pour résoudre mes problemes, mais je vais abandonné car trop de soucis.

une question toute bête mais je la pose quand même : tu as bien changé l'adresse de la sonde DS18b20 ?
(ligne 277)

DeviceAddress DS18b20_0 = { 0x28, 0x92, 0x25, 0x41, 0x0A, 0x00, 0x00, 0xEE };
Chaque sonde a sa propre adresse qui permet d'avoir plusieurs sondes sur le même pin

Autre question : il y a bien la résistance de 4.7k de tirage sur le pin de data

Alexkids11

une question toute bête mais je la pose quand même : tu as bien changé l'adresse de la sonde DS18b20 ?
(ligne 277)

DeviceAddress DS18b20_0 = { 0x28, 0x92, 0x25, 0x41, 0x0A, 0x00, 0x00, 0xEE };
Chaque sonde a sa propre adresse qui permet d'avoir plusieurs sondes sur le même pin

Autre question : il y a bien la résistance de 4.7k de tirage sur le pin de data
C'est peut être pas bête du tout comme question. Non je n'ai pas changé l'adresse de la sonde, je peux mettre quoi comme adresse car sur ma sonde je n'ai rien d'ecrit.

Oui il y a bien la résistance de 4.7kohms .

Apres ma sonde fonctionne bien avec d'autres codes, mais il n'y a pas d'adresse a mettre.   

Loulou74

#51
May 07, 2019, 08:48 pm Last Edit: May 07, 2019, 08:49 pm by Loulou74
C'est peut être pas bête du tout comme question. Non je n'ai pas changé l'adresse de la sonde, je peux mettre quoi comme adresse car sur ma sonde je n'ai rien d'ecrit.

Oui il y a bien la résistance de 4.7kohms .

Apres ma sonde fonctionne bien avec d'autres codes, mais il n'y a pas d'adresse a mettre.   
Merci Lapin.
@Alexkids11: il est bien écrit dans la doc (section "compatibility") et dans le code qu'il faut mettre l'adresse MAC de ta sonde. C'est important car si par la suite tu voulais ajouter une seconde sonde, par ex. pour la temp. ext., et bien sans la bonne adresse par sonde, tu ne saurais pas discriminer laquelle a retourné quelle temp. (à part si elles sont sur des pins différents).

Il y a pléthore de sketchs sur le net pour trouver l'adresse de ta sonde, par ex. ici: http://henrysbench.capnfatz.com/henrys-bench/arduino-temperature-measurements/ds18b20-arduino-user-manual-introduction-and-contents/ds18b20-user-manual-part-2-getting-the-device-address/

Alexkids11

#52
May 08, 2019, 07:04 am Last Edit: May 08, 2019, 09:10 am by Alexkids11
Pour moi je pensais que c'etait une adresse a choisir comme pour l'adresse mac du shield ethernet, donc je ne m'etais pas posé la question.

Mais effectivement j'ai fais le boulé et maintenant j'ai bien la valeur de la sonde.

Me reste plus qu'a résoudre la communication, du coup ça me fait penser que j'ai du passer a coté d'un truc logique pour vous. Mais pas pour moi :).
Encore merci pour votre patience.

Loulou74

@Alexkids11: j'ai ajouté (version 3.0.2) un peu de code debug autour de la fonction MQTTClient.Publish()
Si tu as encore le courage tu peux essayer cette nouvelle version et me donner ce que le port série de dit
A+

Alexkids11

J'ai télécharger le nouveau fichier et en le configurant j'ai laissé MqttServerClientID = "ArduinoPool2"; .
Je l'avait modifier sur l'ancienne version. Donc avant de téléversé la nouvelle version je modifie la configuration de JMQQT en remettant ArduinoPool2.
Je relance le demon et la il me trouve une nouvelle entrée que je peux parsé, avec toute les valeurs.
J'ai tout d'accessible.

Je téléverse la nouvelle version, je n'ai plus les info sur JMQQT. j'ai l'entrée Poolstatus offline.
Je remet MqttServerClientID = "Jeedom"  , uniquement dans l'arduino et la ça me remet Poolstatus online avec toutes les infos accessibles.
Bref ça fonctionne avec la nouvelle et l'ancienne version en laissant le MqttServerClientID différent de la configuration de JMQQT.


Petite question : sur la nouvelle version ou peut on configuer les pins de l'écran lcd ? Je n'ai pas trouvé .

En tout cas, encore merci.

Loulou74

Un truc important en MQTT est de ne pas avoir plusieurs clients qui se connectent au broker MQTT (Mosquitto) avec le même ID. Ton Arduino ET Jeedom sont deux clients distincts donc ils ne doivent pas avoir le même ID.
Donc tu laisses MqttServerClientID = "ArduinoPool2" (ou un autre nom quelconque) dans ton Arduino et tu mets autre chose dans jMQTT.

Pour les pins du lcd, j'ai changé le code car j'utilise maintenant un LCD qui communique via le port I2C.
Si ton LCD n'est pas I2C, change la ligne 192:

Code: [Select]
LiquidCrystal_I2C lcd(0x27,20,4);  // set the I2C LCD address to 0x27 for a 20 chars and 4 lines display

par l'ancien code:

Code: [Select]
//pin definitions, may vary in your setup
const int rs = 9, en = 10, d4 = 11, d5 = 12, d6 = 13, d7 = 42;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Alexkids11

Merci pour cette éclaircissement, tout s'explique, depuis le début j'avais tout faux.

Sylvaindu13

Bonjour à tous,
Avant tout, merci à toi Loulou74 pour ce super projet.

J'avais longtemps hésité par faute de connaissances dans le domaine de la domotique pour monitorer ma piscine avec mon smartphone ou PC.
Mais à la découverte de ton projet je me suis vite motivé et c'est chose presque faite...

J'ai donc réuni  tous les composants nécessaires à la réalisation de la gestion de ma piscine.
Cependant, étant novice en Domotique j'ai beaucoup de mal à faire communiquer tout ce petit monde.
En parcourant les différents posts j'ai donc installé Mosquitto broker sur mon PC (sous W10) + MQTT.fx malheureusement par manque d'expérience et d'informations je n'arrive pas a communiquer avec MQTT.fx en ayant préalablement renseigné le  MQTT broker profile settings avec le login, password et IP .

Pour info, il n' y a que le shield ethernet sur le Mega2560 pour tester la communication sur mon PC et ma carte Ethernet W5100 est bien reconnue par mon routeur.
J'installerai plus tard le module RTC , capteur de T° etc...

Il y aurait il un tuto qui pourrait m'aider de A à Z ou bien pourrait on dire ce que j'ai oublié d'installer ou faire ou bien suis-je entrain de faire fausse route tout simplement.

Par avance, merci pour toutes les informations que vous pourrez m'apporter.
voici ci-après un extrait du log du moniteur série.

22:43:00.300 -> Stored config version: 108. Loading settings from eeprom
22:43:00.304 -> 108, 0, 0
22:43:00.304 -> 8, 12, 20, 20, 59
22:43:00.328 -> 1800, 1800
22:43:00.328 -> 3600000, 7200000, 0, 0
22:43:00.363 -> 7.40, 730.00, 0.50, 0.25, 10.00, 27.00, 3.00, 4.23, -2.28, -1000.00, 2500.00, 1.00, 0.00
22:43:00.467 -> 1330000.00, 0.00, 0.00, 2857.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40
22:43:03.102 -> Failed to connect to the MQTT broker
22:43:03.135 -> [memCheck]: 3947b
22:43:04.101 -> Failed to connect to the MQTT broker
22:43:04.135 -> Failed to connect to the MQTT broker
22:43:06.511 -> 2063-03-16 17:18:13 - Error getting temperature from DS18b20_0
22:43:06.579 -> Ph: 7.27 - Orp: 2.12 - 378.79mV
22:43:06.613 -> PSI: 15.43 - 15.43Bar
22:43:08.922 -> 2063-03-16 17:18:16 - Error getting temperature from DS18b20_0
22:43:08.990 -> Ph: 5.80 - Orp: 1.68 - 601.17mV
22:43:09.025 -> PSI: 11.34 - 13.38Bar
22:43:10.745 -> Trying to print too many characters to LCD Screen1: 83
22:43:11.332 -> 2063-03-16 17:18:18 - Error getting temperature from DS18b20_0

Loulou74

Bonjour Sylvaindu13,

On dirait que ton souci vient plus de ta config broker MQTT que de PoolMaster.
Avant tout je suis étonné que tu l'aies installé sur un PC Win10. Ton PC tourne en continu? Perso je l'aurais plutôt installé sur un Raspberry Pi ou une VM sur un NAS. Ensuite, MQTT.fx sur le PC, ok, car tu l'utilises rarement, et pour du debug principalement. Il y a foultitude de tutos sur Mosquitto. Donc je commencerais par la.

Sylvaindu13

Bonjour Loulou74
Merci beaucoup pour ta réponse.
Effectivement, c'était juste un problème d'IP.
il fallait que je mette l'adresse du PC sur lequel était installé le broker MQTT,  ça fonctionne maintenant.
Sinon, oui je compte investir dans un NAS ultérieurement.
C'était seulement un test pour que je comprenne comment ça fonctionne. Ensuite je souhaiterai monitorer le tout avec mon smartphone, je pense utiliser BLINK ou un autre ...
Honnêtement je ne sais pas quoi utiliser car je n'ai pas encore bien compris à quel moment on calibre les sondes ORP et PH et quel client utiliser pour le faire.

Bonne soirée.

Go Up