Go Down

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

cseb

Je vais tester cela merci,

Entre temps j'ai reçu mes interfaces ORP et ma sonde ds18B20 et j'ai une autre question :
Comment se fait la calibration du ph?

D'avance merci

Loulou74

Salut,

Pour la calib du pH, regarde la fonction MQTT suivante:

{"PhCalib":[4.02,3.8,9.0,9.11]} -> multi-point linear regression calibration (minimum 1 point-couple, 6 max.) in the form [ProbeReading_0, BufferRating_0, xx, xx, ProbeReading_n, BufferRating_n]

Donc il faut au minimum une solution tampon ("buffer") calibrée, deux ou plus sont conseillées pour plus de précision de calibrage.
Tu mesures chaque solution tampon et tu notes les valeurs mesurées + les valeurs nominales et tu envoies le tout via MQTT au système.

Alexkids11

Bonjour, Super travail et merci pour ton partage.

Actuellement j'utilise domogarden pour ma piscine qui fonctionne a merveille, mais ton projet me correspond mieux puisque tout est accessible depuis internet et j'utilise moi même jeedom.

Cependant lors de l'installation je bloque sur la configuration de MQTT. Je rempli l'adress ip que je desir, un login et un mdp, mais en fait je ne sais pas si c'est ça qu'il faut faire. Peut m'indiquer comment faire pour lancer MQTT ou un lien ?

Merci,
Alex

Loulou74

Merci Alex, ça fait toujours plaisir.

Pour la config MQTT, tu dois avoir un broker MQTT (j'utilise Mosquitto) d'installé et l'avoir testé, par ex. via Jeedom (j'utilise le plugin jMQTT) ou bien un client lambda (j'utilise MQTT.fx). Une fois que tu es certain du bon fonctionnement du broker et des credentials (IP, login et mdp), ce sont ceux que tu dois utiliser dans le code de PoolMaster.

Alexkids11

Super, j'ai jeedom qui communique avec maintenant. Me reste plus qu'a comprendre ou envoyer les api et créer les virtuels.
Merci.

Loulou74

#35
Apr 28, 2019, 03:30 pm Last Edit: Apr 28, 2019, 03:32 pm by Loulou74
Super, j'ai jeedom qui communique avec maintenant. Me reste plus qu'a comprendre ou envoyer les api et créer les virtuels.
Merci.
Good!
Si Jeedom communique, tu peux maintenant créer un objet PISCINE dans le plugin jMQTT, tu l'inscris au topic "Home/Pool/#" et tu le mets en mode inclusion. A la prochaine réception d'infos au format JSON de la part de PoolMaster, il va alors créer une commande associée. Tu coches la case PARSE JSON et il va la décomposer en commandes individuelles que tu pourras rassembler dans un virtuel par exemple.

Petite subtilité pour décomposer les infos binaires imbriquées dans les variables IO et IO2, regarde la capture d'écran des paramètres Jeedom sur mon GIT

Pour envoyer des commandes à PoolMaster, tu crées des commandes dans ton objet PISCINE du plugin jMQTT de Jeedom, tu choisis le topic "Charmoisy/Pool/API" et tu mets la commande en valeur, par exemple "{"FiltPump":1}" pour allumer la filtration et "{"FiltPump":0}" pour l'éteindre

zaienj

Bonjour a toi loulou je voulais connaître ton système de domotique et super projet

Alexkids11

Merci du coup de main, je suis un peu perdu quand meme. :)
J'ai bien deux lignes qui se sont créé.
Home/Pool/err et Home/Pool/status . Mais quand je clique sur PARSE JSON il ne décompose aucune ligne.
J'ai peut être mal compris une consigne. Par contre les API fonctionnent bien en mettant comme topic Home/Pool/API .

Loulou74

Bonjour a toi loulou je voulais connaître ton système de domotique et super projet
Merci Zaienj, mon système domotique s'organise autour de:

- des "nodes" filaires de type Arduino ethernet (comme le projet PoolMaster)
- des "nodes" radio (protocole LoraWan) pour les besoins distants et parfois autonomes (sur batterie)
- un broker MQTT (Mosquitto) qui relie les nodes entre eux et permet de les piloter, s'y connecter, etc.
- Jeedom (et un peu de NodeRed) pour le dashboard, historisation des données, appli mobile, etc.

Loulou74

Merci du coup de main, je suis un peu perdu quand meme. :)
J'ai bien deux lignes qui se sont créé.
Home/Pool/err et Home/Pool/status . Mais quand je clique sur PARSE JSON il ne décompose aucune ligne.
J'ai peut être mal compris une consigne. Par contre les API fonctionnent bien en mettant comme topic Home/Pool/API .
PoolMaster publie trois types d'infos sur trois topics:

1/ le statut de connection au broker MQTT sur "Home/Pool/status"
2/ les messages d'erreur sur "Home/Pool/err"
3/ le plus important, les données mesurées toutes les 30secs sur "Home/Pool". Ces données ont la forme d'un message au format JSON imbriqué du style "{"Tmp":818,"pH":321,"PSI":56,"Orp":583,"FilUpT":8995,"PhUpT":0,"ChlUpT":0,"IO":11,"IO2":0}" et c'est ce message qu'il faut parser, pas les autres

On dirait que tu ne reçois pas ce dernier. Es-tu certain que ta sonde de temp. d'eau DS18B20 fonctionne?

Pour débuger, lance le moniteur série (9600 bauds) de l'IDE Arduino pendant l'exécution du programme afin de voir ce qui est publié, et envoie moi ce qui est affiché si nécessaire.

Alexkids11

En fait rien n'etait branché dessus, je voulais que tout sois au point avant de tout brancher.
Donc j'ai tout branché a pars l'ecran lcd, mais c'est pas mieux...

sendile
Printed some characters to LCD Screen2: 81
Printed some characters to LCD Screen2: 81
Stored config version: 107. Loading settings from eeprom
107, 0, 0
8, 12, 20, 20, 59
1800, 1800
3600000, 7200000, 0, 0
7.40, 730.00, 0.50, 0.25, 10.00, 27.00, 3.00, 4.23, -2.28, -1268.78, 2718.63, 1.00, 0.00
1330000.00, 0.00, 0.00, 2857.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40
FreeRam: 3646 - Qeued messages: 1
published: Home/Pool/status - online
[memCheck]: 3885b
Payload: {"Tmp":0,"pH":0,"PSI":40,"Orp":0,"FilUpT":0,"PhUpT":0,"ChlUpT":0,"IO":24,"IO2":0} - Payload size: 94
Json parseObject() success -
Payload: {"Tmp":0,"pH":0,"PSI":40,"Orp":0,"FilUpT":0,"PhUpT":0,"ChlUpT":0,"IO":24,"IO2":0} - Payload size: 94
Printed some characters to LCD Screen1: 80
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
sending XML file
2060-07-20 17:18:12 - Error getting temperature from DS18b20_0
Ph: 18.87 - Orp: 0.00 - 2718.63mV
PSI: 3.54 - 3.54Bar
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
2060-07-20 17:18:14 - Error getting temperature from DS18b20_0
Ph: 18.87 - Orp: 0.00 - 2718.63mV
PSI: 2.30 - 2.92Bar
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
Printed some characters to LCD Screen2: 80
Trying to print too many characters to LCD Screen1: 84
sending XML file
2060-07-20 17:18:17 - Error getting temperature from DS18b20_0
Ph: 18.09 - Orp: 0.00 - 2718.63mV
PSI: 29.00 - 11.61Bar

Alexkids11

Petite question. J'ai vu que la sonde ds18b20 est branché sur la borne 20 donc sur quels bornes le rtc module est branché ? Car moi j'utiliser les bornes 20 (sda)et 21(scl) pour le cablage.
Merci

Loulou74

En fait rien n'etait branché dessus, je voulais que tout sois au point avant de tout brancher.
Donc j'ai tout branché a pars l'ecran lcd, mais c'est pas mieux...

sendile
Printed some characters to LCD Screen2: 81
.
.
.

PSI: 29.00 - 11.61Bar
Bon à première vue je ne vois pas ce qui cloche, il rentre bien dans la fonction PublishDataCallback() et publie les données de mesure. Avant de rajouter plus de fonctions debug dans le code, vérifie bien dans ton code que la variable "PoolTopic" est bien égale à "Home/Pool" et que ton objet jMQTT dans Jeedom a bien souscrit au topic "Home/Pool/#"

Alternativement, utilise le client MQTT.fx, souscrit au topic # et regarde si et sur quel topic les données de mesure sont publiées.

Enfin, tu as un souci avec la sonde de température, as-tu bien renseigné son adresse unique (variables "DS18b20_0" et "sDS18b20_0") dans le code

Loulou74

#43
Apr 29, 2019, 09:30 pm Last Edit: Apr 29, 2019, 09:51 pm by Loulou74
Petite question. J'ai vu que la sonde ds18b20 est branché sur la borne 20 donc sur quels bornes le rtc module est branché ? Car moi j'utiliser les bornes 20 (sda)et 21(scl) pour le cablage.
Merci
Mon hardware est un CONTROLLINO, donc pas un Arduino 2560. Il faut donc que tu revoies les affectations de la sonde de temp, du RTC, voire des relais et autre. Si tu veux bien fais moi un retour sur tes affectations finales et je l'intègrerai dans le code pour ceux qui ont un Arduino 2560

[edit] en regardant mon code actuel je vois que j'avais déjà réaffecté la sonde de temp à la pin 6 car je suis en train de tester un périphérique I2C et donc j'avais besoin de la pin 20

Alexkids11

Bon à première vue je ne vois pas ce qui cloche, il rentre bien dans la fonction PublishDataCallback() et publie les données de mesure. Avant de rajouter plus de fonctions debug dans le code, vérifie bien dans ton code que la variable "PoolTopic" est bien égale à "Home/Pool" et que ton objet jMQTT dans Jeedom a bien souscrit au topic "Home/Pool/#"

Alternativement, utilise le client MQTT.fx, souscrit au topic # et regarde si et sur quel topic les données de mesure sont publiées.

Enfin, tu as un souci avec la sonde de température, as-tu bien renseigné son adresse unique (variables "DS18b20_0" et "sDS18b20_0") dans le code
Encore merci pour ton aide,
Mon objet jMQTT est bien souscrit au topic "Home/Pool/#" et dans le code j'ai la variable PoolTopic = "Home/Pool" . Je vais la modifier pour PoolTopic = "Home/Pool/#" .

Pour ma sonde je pense que c'est un problème physique est non logiciel. Je réessayerai le code et la sonde se soir ou demain.

Pour les pins adressé voila ce que j'ai fait .
 
//Data wire is connected to input digital pin 20 on the Arduino
#define ONE_WIRE_BUS_A 20

  #define FILTRATION_PUMP 38
  #define PH_PUMP         36
  #define CHL_PUMP        42
 
  //Digital input pins connected to Acid and Chl tank level reed switches
  #define CHL_LEVEL       28
  #define PH_LEVEL        30
 
  //Analog input pins connected to Phidgets 1130_0 pH/ORP Adapters.
  //Galvanic isolation circuitry between Adapters and Arduino required!
  #define ORP_MEASURE     A9
  #define PH_MEASURE      A8
 
  //Analog input pin connected to pressure sensor
  #define PSI_MEASURE     A7


Il me manque juste le rtc module je ne sais pas ou le brancher.


Go Up