mon install domoticz gestion climatique

Décrivez votre installation de Domotique : ce que vous gérez, quels sont les points forts de votre config.
Illustrez par des photos, partagez et faites nous envie !
kpom
Messages : 14
Inscription : 04 janv. 2023, 14:34

mon install domoticz gestion climatique

Message par kpom »

Bonjour ce post sera le résumer de mon projet dans l état actuel, son évolution et ses problèmes

le but de mon installation est la gestion de deux/trois espaces intérieur qui reproduise la condition idéal pour leurs occupants
il y a donc
- 3 éclairages avec 2 plages d'activité différente
- 1 système d'extraction d'air ainsi que d'intraction et aussi un dernier qui permet un transfert de l espace 1 vers le 2 eme
- 2 chauffage
- 1 humidificateur
- 3 brassage d'air actif en simultané

coté information
il y a actuellement
- 2 sonde DHT22 t°C hydro
- 3 sonde température en radio ( qui risque de disparaitre car crash rare mais pénible ) la 3 eme sonde est a l extérieur des espaces pour connaitre la température de la pièces dans laquel ce trouve le système

j'ai aussi
un bouton virtuel (clim auto) qui permet de désactivé la gestion de l ensemble sauf des lampes pour des maintenance par exemple
un autre bouton pour passer du mode 12h a 18h de lumiere

il y a bien entendu d'autre dispositif brancher en h24 donc non géré par domoticz comme
pompe a eau, pompe air, chauffe eau

concernant les conditions du système nécessaire:
- lumiere on/off 18/6 ou 12/12
- température entre 18 et 24 mais je suis plus entre 15 et 28 donc on va s'amélioré cette hiver surtout sans être avec le chauffage ON dès que la lumière est OFF. J'ai travaillé le problème a la source niveau isolation mais au détriment du renouvellement d air pour le moment (evolutif)
- humidité par d action pour le moment me reste un problème, c est que mon nouvelle humidificateur est en veille dès que je le rallume. faut que je lise bien la notice sinon faire un bypass
j'ai besoin aussi d activer le renouvellement d'air même si je suis dans la bonne plage de température car lumiere on la lumière chauffe et active le système mais lumière off faut que je fasse un truc genre On 5min toute les heures entre tel heure et tel heure
-PH 5.8 a 6.2
-EC différente valeur au long du cycle mais fixe sur une période défini mais faudrait que je puisse déjà monitoré cette valeur car je pense ajouter quelque script sous certaine conditions ( en gros si une grosse chute ajouter tel produit car c'est le moment idéal )

concernant les évolutions j'aimerai ajouter
une gestion de humidité de la terre pour une arrosage auto pour un espace
une gestion du ph EC et température d'eau d'un réservoir
pompe péristaltique pour ajout de complément
ainsi que son niveau max et critique pour gérer les complément sur une base d'un niveau max et coupure pompe lorsque le niveau viendrai a être critique
gestion d un ajout d'eau ( pompe a eau car plus gros volume a ajouter que les complément)
gestion de la consommation électrique

au delà du fait que la gestion automatique permet de passer moins de temps a devoir m'occuper de tous cela. la gestion permet d'avoir une stabilité de l'environnement ainsi qu'un monitoring très utile pour un suivie en temps réel mais surtout avoir un recule sur l'ensemble d'une période et d'optimisé et affiné certains paramètre sans oublié que cette gestion permet de détecter un éventuel problème. bref tous ça pour dire que cela me permet de faire mieux a chaque nouveau cycle

Voila pour la présentation du système c'est encore brouillon mais je vais bien entendu éditer ce post pour détaillé plus et surtout rentré dans le technique (et profiter de vos conseils pour épuré car je suis doué pour me compliqué la vie)

scripts LUA domoticz
LUMIERE PRINCIPALE

Code : Tout sélectionner

local executionTimeon = '16:25'
local executionTimeoff = '10:25'
local executionTimeflo = '04:25'
commandArray = {}
--cro--
if os.date('%H:%M') >= executionTimeon and otherdevices['Lampe x160 (1)'] == 'Off' and otherdevices['ON=12H / OFF=18H'] == 'Off' and otherdevices['Lampe x160 Off'] == 'Off' then
        commandArray['Lampe x160 (1)']='On'
        else
      if os.date('%H:%M') == executionTimeoff and otherdevices['Lampe x160 (1)'] == 'On' and otherdevices['ON=12H / OFF=18H'] == 'Off' then
                  commandArray['Lampe x160 (1)']='Off'
        end
        end
--flo
if os.date('%H:%M') >= executionTimeon and otherdevices['Lampe x160 (1)'] == 'Off' and otherdevices['ON=12H / OFF=18H'] == 'On' and otherdevices['Lampe x160 Off'] == 'Off' then
        commandArray['Lampe x160 (1)']='On'
        else
if os.date('%H:%M') == executionTimeflo and otherdevices['Lampe x160 (1)'] == 'On' and otherdevices['ON=12H / OFF=18H'] == 'On' then
        commandArray['Lampe x160 (1)']='Off'                
        end
        end
return commandArray
LUMIERE SECONDAIRE

Code : Tout sélectionner

local executionTime = '16:25'
local executionTimeoff = '10:25'
commandArray = {}

if os.date('%H:%M') >= executionTime and otherdevices['Lampe TN110 (2)'] == 'Off' then
        commandArray['Lampe TN110 (2)']='On'
else
if os.date('%H:%M') == executionTimeoff and otherdevices['Lampe TN110 (2)'] == 'On'then
        commandArray['Lampe TN110 (2)']='Off'
    end
    end
return commandArray
EXTRACTION

Code : Tout sélectionner

commandArray = {}
--gestion Temperature PM --
if(otherdevices_temperature ['t et h PM'] >= 23 and otherdevices['Extra PM=>Principale (5)'] == 'Off' and otherdevices['clim auto'] == 'On') then
   -- commandArray['Extracteur (3)']="On"
    commandArray['Extra PM=>Principale (5)']="On"
   -- commandArray['Ventilateur x2P x1PM (8)']="Off"
    else
if(otherdevices_temperature ['t et h PM'] <= 22 and otherdevices['clim auto'] == 'On'and otherdevices['Extra PM=>Principale (5)'] == 'On') then
   -- commandArray['Extracteur (3)']="Off"
    commandArray['Extra PM=>Principale (5)']="Off"
  --  commandArray['Ventilateur x2P x1PM (8)']="On"
end
end
-- gestion temperature principale --
if(otherdevices_temperature ['t et h box'] >= 24 and otherdevices['Extracteur (3)'] == 'Off' and otherdevices['clim auto'] == 'On') then
    commandArray['Extracteur (3)']="On"
    else
if(otherdevices_temperature ['t et h box'] <= 23.5 and otherdevices['Extracteur (3)'] == 'On' and otherdevices['clim auto'] == 'On') then
   commandArray['Extracteur (3)']="Off"
end
end
--gestion renouvellement d'air la nuit PM 
--if(otherdevices_temperature ['Temp Pm'] <= 24 and otherdevices['Lampe TN110 (2)'] == 'Off' and otherdevices['Extracteur (3)'] == 'Off' and otherdevices['Extra PM=>Principale (5)'] == 'Off' and uservariables['Tempo extra on'] == 0) then
--    commandArray['Extracteur (3)']="On FOR 5"
  --  commandArray['Extra PM=>Principale (5)']="On FOR 5"
   -- commandArray['Ventilateur x2P x1PM (8)']="Off"
  --  commandArray['Variable:Tempo extra on']='20'
--else
--if(otherdevices_temperature ['Temp Pm'] <= 20 and otherdevices['Lampe TN110 (2)'] == 'Off' and otherdevices['Extracteur (3)'] == 'On' and otherdevices['Extra PM=>Principale (5)'] == 'On')  then
 --   commandArray['Extracteur (3)']="Off"
  -- commandArray['Extra PM=>Principale (5)']="Off"
  --  commandArray['Ventilateur x2P x1PM (8)']="On"
--end
--end
--gestion renouvellement d'air la nuit --
--if(otherdevices_temperature ['Temp box'] <= 22 and otherdevices['Lampe x160 (1)'] == 'Off' and otherdevices['Extracteur (3)'] == 'Off' and uservariables['Tempo extra on'] == 0)  then
   -- commandArray['Extracteur (3)']="On FOR 5"
--    commandArray['Ventilateur x2P x1PM (8)']="Off"
   -- commandArray['Variable:Tempo extra on']='20'
--else
--if(otherdevices_temperature ['Temp box'] <= 20 and otherdevices['Lampe x160 (1)'] == 'Off' and otherdevices['Extracteur (3)'] == 'On')  then
    --commandArray['Extracteur (3)']="Off"
 --   commandArray['Ventilateur x2P x1PM (8)']="On"
--end
-- gestion Clim auto --
if(otherdevices['clim auto'] == 'Off') then
    commandArray['Extracteur (3)']="Off"
    commandArray['Extra PM=>Principale (5)']="Off"
end
return commandArray
*le renouvèlement est en commentaire car pas aboutie faut que je l applique uniquement sur plage horaire

INTRA

Code : Tout sélectionner

commandArray = {}

if (otherdevices_temperature ['t et h box'] >= 24 and otherdevices['clim auto'] == 'On' and otherdevices['intra Principale (4)'] == 'Off')  then
 commandArray['intra Principale (4)']='On'
else 
if (otherdevices_temperature ['t et h box'] <= 23.5 and otherdevices['clim auto'] == 'On' and otherdevices['intra Principale (4)'] == 'On') then
    commandArray['intra Principale (4)']='Off'
end
end
if (otherdevices['clim auto'] == 'Off')  then
 commandArray['intra Principale (4)']='Off'
end

return commandArray
BRASSAGE

Code : Tout sélectionner

commandArray = {}

if (otherdevices['clim auto'] == 'On' and uservariables['Tempo extra on'] == 10 and otherdevices['Ventilateur x2P x1PM (8)'] == 'Off') then
     commandArray['Ventilateur x2P x1PM (8)']='On'
     else
if (otherdevices['clim auto'] == 'On' and uservariables['Tempo extra on'] == 5 and otherdevices['Ventilateur x2P x1PM (8)'] == 'On') then
     commandArray['Ventilateur x2P x1PM (8)']='Off'
else
if (otherdevices['clim auto'] == 'Off' and otherdevices['Ventilateur x2P x1PM (8)'] == 'On') then
    commandArray['Ventilateur x2P x1PM (8)']="Off"
end
end
end
return commandArray
Avec deux autres pour gérer une fonction de timer
1

Code : Tout sélectionner

commandArray = {}

local compteur = uservariables['Tempo extra on']
if (compteur > 0) then 
    compteur = compteur - 1
    commandArray ['Variable:Tempo extra on'] = tostring(compteur)
end

return commandArray
2

Code : Tout sélectionner

commandArray = {}
if(uservariables['Tempo extra on'] == 0 ) then
    commandArray['Variable:Tempo extra on']='10'

end
return commandArray
Scripts .sh
RESET pour alim dht22

Code : Tout sélectionner

#!/usr/bin/env python3
#-- coding: utf-8 --

import RPi.GPIO as GPIO
import time


GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

GP = 11

GPIO.setup(GP, GPIO.OUT, initial=GPIO.HIGH)

state = GPIO.input(GP)

if state :
 GPIO.output(GP, GPIO.LOW)
 time.sleep(2)
 GPIO.output(GP, GPIO.HIGH)
SONDE DHT ( j'en met q u un car la seul difference c est le pin et le idx)

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: latin-1 -*-

# basé sur le script Adafruit et adapté pour Domoticz



# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola

# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import os
import sys
import Adafruit_DHT
from requests.auth import HTTPBasicAuth
import requests

############# Parametres ################################

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='x
domoticz_port='x'
user='x'
password='x'
domoticz_idx='71'


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du DHT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#sensor est 11,22,ou 2302
# pin est le numero d la pin que vous avez cablée

sensor=22
pin=10

############# Fin des parametres #################################

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# le fomat pour la temp hum est celui ci
#/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT

def maj_widget(val_url):
    requete='http://'+domoticz_ip+':'+domoticz_port+val_url
    # print requete
    r=requests.get(requete,auth=HTTPBasicAuth(user,password))
    if  r.status_code != 200:
          print "Erreur API Domoticz"



humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

if humidity is not None and temperature is not None:

    print('Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(temperature, humidity))
    # l URL Domoticz pour le widget virtuel
    url='/json.htm?type=command&param=udevice&idx='+str(domoticz_idx)
    url+='&nvalue=0&svalue='
Pièces jointes
IMG_20231020_173333.jpg
IMG_20231020_173333.jpg (2.04 Mio) Consulté 5853 fois
IMG_20231020_173119.jpg
IMG_20231020_173119.jpg (7.11 Mio) Consulté 5853 fois
IMG_20231020_173010.jpg
IMG_20231020_173010.jpg (5.14 Mio) Consulté 5853 fois
IMG_20231020_172753.jpg
IMG_20231020_172753.jpg (5.46 Mio) Consulté 5853 fois
IMG_20231020_172607.jpg
IMG_20231020_172607.jpg (4.23 Mio) Consulté 5853 fois
interface.jpg
interface.jpg (214.8 Kio) Consulté 5853 fois
Dernière modification par kpom le 20 oct. 2023, 18:04, modifié 1 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: mon install domoticz gestion climatique

Message par Keros »

C'est un projet pour des animaux ? Tu parles d'occupants :roll:

Tu as des risques si ton système tombe en panne ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
kpom
Messages : 14
Inscription : 04 janv. 2023, 14:34

Re: mon install domoticz gestion climatique

Message par kpom »

non on est plus sur du végétale. j'adore découvrir et apprendre dans ce domaine et même si ça reste des être vivant j'ai beaucoup moins de scrupule que d'enfermer des animaux. même si mon projet pourrai être appliquer pour des terrariums ou aquariums avec quelques variantes ou choses a enlever ajouter. on reste sur une base très commune.

je ne juge pas non plus le faite d élevé des animaux mais je préfère avec des plantes car j'ai plus de marge même si cela peut généré beaucoup de stress ou foiré un cycle ou l'objectif escompté. je dit ça car j'ai aussi un jolie aquarium. et si j arrive a tous mes objectifs en domotique il pourrai être envisageable de lié les deux (aquaponie) mais bon j avance a mon rythme car il y a beaucoup de choses a assimilé et maitrisé pour crée une symbiose

les risques sont donc de perdre un type de plante encore pire si je l'ai depuis plusieurs année. même si je retrouve la même c'est pas vraiment pareil. je sais pas expliqué autrement que cette exemple:
tu prends un chien lorsque que tu le perds tu aura beau reprendre la même race le même sexe la même ligné, l'élevé de la même manière, il pourra lui ressemblé avoir un comportement semblable mais il aura pas le même caractère.
Donc imagine si en plus de l avoir depuis plusieurs année si c est une variété rare ou difficile a avoir ou même impossible a acheter car devenu protégé ou interdit a l'import. bon c est pas mon cas mais juste de transformé une plante en bansai ou avoir le phénotype parfait c est déjà une pièces précieuse.

j'ai jamais configuré de notif et j'ai déjà eu des problèmes avec des conséquences dramatique. surtout du au froid et l utilisation de chauffage non adapté qui a crée un dessèchement ajouter a un arrosage décalé de 24h car oublie. ça repart des fois mais faut des conditions absolument parfaite ce qui n'étais pas le cas et puis c est la fin.

ou des pompes qui tourne a vide du a une consommation d eau excessive du a la température élevé.

en gros soit on repart de zero et dans quelque choses de familier mais nouveau soit faut remplacer du matériel sans parler du temps investie pour rien ça peut devenir assez frustrant

concernant les pannes sans parler de coupure total de courant sur la durée car dans ce cas je peux soit ne rien faire soit dépensé énormément d'argent. donc les pannes que je considère serai plus une bug ou le Raspberry plante totalement ou d'éventuel bug du a par exemple une sonde qui n actualise plus ça valeur et que les scenarios ne démarre pas du a une informations erroné. il y aurai aussi a considéré la panne du matériel genre lampe, extracteur, pompe etc...
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: mon install domoticz gestion climatique

Message par lost »

kpom a écrit : 20 oct. 2023, 00:42 non on est plus sur du végétale....
Zamal à la tête moi :o
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: mon install domoticz gestion climatique

Message par Keros »

Tu parlais d'occupants et en lisant ton premier message, je comprenais entre les lignes que ce n'était pas pour des personnes, d'où ma question... maladroite à propos des animaux, mais j'étais loin de penser que cela pouvait aussi se faire pour des végétaux.

La domotique a parfois des ratés et cela peut avoir des effets : en fonction des occupants, il peut y avoir des cas où il peut y avoir un risque vital en quelques heures. Les choses à mettre en place ne sont pas forcément les mêmes pour avoir un système fiable pour nos êtres chers.

Gros projet en tout cas :)

Tu fais tout en DIY ? Tu pars sur quoi comme serveur domotique ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
kpom
Messages : 14
Inscription : 04 janv. 2023, 14:34

Re: mon install domoticz gestion climatique

Message par kpom »

Effectivement je suis rester plutôt vague car on rentre vite dans un autre domaine qui concerne plus trop le contexte du forum mais j'essaie de donner l info essentiel pour que cela reste compréhensible.

Après pour imager tous ça cette vidéos YouTube montre un projet qui m inspire beaucoup, le mec a carrément développé son appli que je n'est pas eu le courage d essayer car certains détails ne me plait pas

Je suis pas mal sur le DIY, le serveur domotique si je dit pas de connerie c est un Raspberry v1 avec carte sd avec rasbian et domoticz d installer + une carte 8 relais. une horloge (j'ai plus le nom mais brancher sur le Raspberry) histoire que ça tourne même hors ligne. j'ai entièrement fabriquer les espaces d'accueil en osb tir les cable dans des zone hors espaces. mis les prise a l extérieur sans que ça puisse être exposé a l'humidité. bon après c est un vrai bordel coté branchement. Si vous regardez les photos l espace avec les prises est du a une modification de l'emplacement de l'extracteur et des changement sont prévu a ce niveau

je suis pas contre un système clé en main mais j'ai pas encore gagné au loto donc... comme dans la video avec les sondes atlas scientifique et les pompes. l angoisse d'ailleurs il a tous eu gratos pour le projet et en description il y a sont site avec beaucoup plus de détail il y a même un système pour la culture de champignons

Avant cette installation j avais fais un système de mise a niveau de réservoir avec plusieurs flotteur et des voyants pour donné une idée de la santé du système et uniquement avec des relais Finder soudé en faisant des scoubidou.
genre: vert RAS jaune MISE A NIVEAU orange RESERVE CRITIQUE rouge TOUS EST A SEC ON COUPE TOUS

Apres je vais éditer le 1er post pour ajouter plus de contenu (script .lua et .sh) photo du système domotique. et les toiles d araignée faut pas croire que je suis un gros crade on a juste un terrain d'entente. les led attire les nuisibles, les araignée font le ménage. j'ai même une grosse tégénaire qui ce cache sous l espace qui s' occupe des genre de mille pattes. j'en ai vu un longer l'espace extérieur. elle a été encore plus efficace qu'un physio qui s'occupe d un mec complètement rond a l'entrée d'une discothèque

n'hésitez pas a m indiquer si vous souhaitez plus de détail sur certains point. après je suis encore un débutant qui prend des infos partout, les assembles mais ça reste assez basique pour l'instant. je préfère un truc simple qui marche dans l ensemble que trop complexe et qui bug tous le temps mais c est plus par manque de connaissance et aussi la raison de la création de ce post.
kpom
Messages : 14
Inscription : 04 janv. 2023, 14:34

Re: mon install domoticz gestion climatique

Message par kpom »

Bon je viens de me motiver a faire un script un peu plus poussé

celui ci genre donc le climat qui compose extracteur intra chauffage et 3 mode: thermostat, hiver et nuit grâce a 2 sonde a l intérieur de chaque espace et une 3 eme a l extérieur

le but est d'active le mode hiver en dessous d'une température de la pièces pour exclure une activation du chauffage hors contexte (genre lecture sonde erroné activation pour rien)
pour le mode nuit il permet d activer la circulation d air sur quelque minutes toute les 10 minutes
ce qui permet d entre croiser les modes et respecter une température différente selon le contexte.
le scripts fonctionne a première vu je n'ai pas pu test le mode nuit j'ai un évents trigger qui s'affiche a chaque action je n e sais pas si c est corrigeable. pas plus de charge cpu donc je vais voir si c est fiable

Code : Tout sélectionner

 local atMinute = 25 -- minute a laquel depart en On (pour cycle de timer et repetition )
 local consigneC = 19  --Température de cave
 local consignePM = 22.5  --Température de PM lumiere On
 local consigneP = 24  --Température de P lumiere On
 local consignePMH = 20  --Température de PM HIVER lumiere On
 local consignePH = 20  --Température de P HIVER lumiere On
 local consignePMN = 20  --Température de PM lumiere Off
 local consignePN = 20  --Température de P lumiere Off
 local consignePMHN = 18  --Température de PM HIVER lumiere Off
 local consignePHN = 18  --Température de P HIVER lumiere Off
 local hysteresis = 0.2 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
 local sondeC = 'Cave' --Nom de la sonde de température qui ative le mode hiver 
 local sondePM = 't et h PM' --Nom de la sonde de température PM
 local sondeP = 't et h box' --Nom de la sonde de température P 
 local thermostat = 'clim auto' --Nom de l'interrupteur virtuel du thermostat
 local mode = 'Mode Hiver'  --Mode Hiver
 local modeN = 'Mode Nuit'  --Mode Nuit
 local lumP =  'Lampe x160 (1)' --Nom de Lumiere P à allumer/éteindre
 local lumPM =  'Lampe TN110 (2)' --Nom de Lumiere P à allumer/éteindre
 local radiateurPM = 'Chauffage (7)' --Nom du radiateur PM à allumer/éteindre
 local radiateurP = 'Chauffage Box (6)' --Nom du radiateur P à allumer/éteindre
 local extraPM =  'Extra PM=>Principale (5)' --Nom de Extra PM à allumer/éteindre
 local extraP =  'Extracteur (3)' --Nom de Extra P à allumer/éteindre
 local intraP =  'intra Principale (4)' --Nom de Intra P à allumer/éteindre
 --------------------------------
 -- End of edit section --
 --------------------------------
 	
 commandArray = {}
 if (devicechanged[sondeC]) then
         local temperature = devicechanged[string.format('%s_Temperature', sondeC)] --Temperature relevée dans la cave
    -- Action que si le "Thermostat" est actif
     if (otherdevices[thermostat]=='On') then
         print('-- Gestion du thermostat On --')
     
     elseif(otherdevices[thermostat]=='Off' and (otherdevices[extraPM]=='On' or otherdevices[radiateurPM]=='On'or otherdevices[extraP]=='On' or otherdevices[radiateurP]=='On'or otherdevices[intraP]=='On' or otherdevices[modeN]=='On' or otherdevices[mode]=='On')) then
         print('-- Gestion du thermostat Off --')
         commandArray[extraPM]='Off'
         commandArray[extraP]='Off'
         commandArray[intraP]='Off'
         commandArray[radiateurPM]='Off'
         commandArray[radiateurP]='Off'
         commandArray[mode]='Off'
         commandArray[modeN]='Off'
    end
    -- Mode Hiver
         if (temperature < (consigneC - hysteresis) and otherdevices[mode]=='Off' ) then
             print('Allumage du mode hiver')
             commandArray[mode]='On'
 	
             elseif (temperature > (consigneC + hysteresis) and otherdevices[mode]=='On') then
                 print('Extinction du mode hiver')
                 commandArray[mode]="Off AFTER 1 MINUTES"
        end
    -- Mode Nuit   
         if (otherdevices[lumP] == 'Off' and otherdevices[modeN]=='Off') then
             print('Allumage du mode Nuit')
             commandArray[modeN]='On'
 	
             elseif (otherdevices[lumP] == 'On' and otherdevices[modeN]=='On') then
                 print('Extinction du mode Nuit')
                 commandArray[modeN]="Off AFTER 1 MINUTES"
         end 
    end


if (devicechanged[sondePM]) then
         local temperaturePM = devicechanged[string.format('%s_Temperature', sondePM)] --Temperature relevée dans PM
        
          
	-- gestion Chauffage/Extraction PM Mode HIVER
         if (temperaturePM <= (consignePMH - hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'On' and (otherdevices[extraPM]=='Off' or otherdevices[radiateurPM]=='On')) then
             print('Mode HIVER Allumage radiateurPM Coupure extraPM ')
             commandArray[radiateurPM]='On AFTER 1 MINUTES'
             commandArray[extraPM]='Off'
             
             elseif (temperaturePM >= (consignePMH + hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'On' and (otherdevices[extraPM]=='Off' or otherdevices[radiateurPM]=='On')) then
                 print('Mode HIVER Extinction radiateurPM Allumage extraPM')
                 commandArray[radiateurPM]='Off AFTER 1 MINUTES'
                 commandArray[extraPM]="On AFTER 20 MINUTES FOR 2 MINUTES REPEAT 2 INTERVAL 20 MINUTES"
        end
    -- gestion Chauffage PM Mode HIVER Nuit
         if (temperaturePM <= (consignePMHN - hysteresis) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'On' and (otherdevices[extraPM]=='On' or otherdevices[radiateurPM]=='Off')) then
             print('Mode HIVER Nuit Allumage radiateurPM Coupure extraPM')
             commandArray[radiateurPM]='On AFTER 1 MINUTES'
             commandArray[extraPM]='Off'
             
             elseif (temperaturePM >= (consignePMHN + hysteresis) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'On' and (otherdevices[extraPM]=='Off' or otherdevices[radiateurPM]=='On')) then
                 print('Mode HIVER Nuit Extinction radiateurPM Allumage extraPM')
                 commandArray[radiateurPM]='Off AFTER 1 MINUTES'
                 commandArray[extraPM]="On AFTER 30 MINUTES FOR 1 MINUTES REPEAT 2 INTERVAL 30 MINUTES"
        end
    -- gestion Extraction PM Mode Normal 
         if (temperaturePM <= (consignePM - hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'Off' and otherdevices[extraPM]=='On') then
             print('Mode Normal Extinction extraPM')
             commandArray[extraPM]='Off'
             
             elseif (temperaturePM >= (consignePM + hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'Off' and otherdevices[extraPM]=='Off') then
                 print('Mode Normal Allumage extraPM')
                 commandArray[extraPM]='On'
          end
    -- gestion Extraction PM Mode Normal Nuit  
         if (temperaturePM <= (consignePMN - hysteresis) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'Off' and otherdevices[extraPM]=='On') then
             print('Mode Normal Nuit Extinction extraPM')
             commandArray[extraPM]='Off'
             
             elseif ((temperaturePM >= (consignePMN + hysteresis) or tonumber(os.date('%M')) == atMinute) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'Off' and otherdevices[extraPM]=='Off') then
                 print('Mode Normal Nuit Allumage extraPM')
                 commandArray[extraPM]="On FOR 2 MINUTES REPEAT 5 INTERVAL 10 MINUTES"
        end
       
        
        
end

if (devicechanged[sondeP]) then
         local temperatureP = devicechanged[string.format('%s_Temperature', sondeP)] --Temperature relevée dans P

  	-- gestion Chauffage P Mode HIVER  
  	     if (temperatureP <= (consignePH - hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'On' and (otherdevices[extraP]=='On' or otherdevices[radiateurP]=='Off')) then
             print('Mode HIVER Allumage radiateurP Coupure extraP')
             commandArray[radiateurP]='On AFTER 1 MINUTES'
              commandArray[extraP]='Off'
             
             elseif (temperatureP >= (consignePH + hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'On' and (otherdevices[extraP]=='Off' or otherdevices[radiateurP]=='On')) then
                 print('Mode HIVER Extinction radiateurP Allumage extraP')
                 commandArray[radiateurP]='Off AFTER 1 MINUTES'
                 commandArray[extraP]="On AFTER 10 MINUTES FOR 2 MINUTES REPEAT 2 INTERVAL 20 MINUTES"
        end
    -- gestion Chauffage P Mode HIVER Nuit  
  	     if (temperatureP <= (consignePHN - hysteresis) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'On' and (otherdevices[extraP]=='On' or otherdevices[radiateurP]=='Off')) then
             print('Mode HIVER Nuit Allumage radiateurP Coupure extraP')
             commandArray[radiateurP]='On AFTER 1 MINUTES'
             commandArray[extraP]='Off'
             
             elseif (temperatureP >= (consignePHN + hysteresis) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'On' and (otherdevices[extraP]=='Off' or otherdevices[radiateurP]=='On')) then
                 print('Mode HIVER Nuit Extinction radiateurP Allumage extraP')
                 commandArray[radiateurP]='Off AFTER 1 MINUTES'
                 commandArray[extraP]="On AFTER 20 MINUTES FOR 1 MINUTES REPEAT 2 INTERVAL 20 MINUTES"
        end
    -- gestion Extraction P Mode Normal 
         if (temperatureP <= (consigneP - hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'Off' and (otherdevices[extraP]=='On' or otherdevices[intraP]=='On')) then
             print('Mode Normal Extinction extraP et intraP')
             commandArray[extraP]='Off'
             commandArray[intraP]='Off'
             
             elseif (temperatureP >= (consigneP + hysteresis) and otherdevices[modeN] == 'Off' and otherdevices[mode] == 'Off' and (otherdevices[extraP]=='Off' or otherdevices[intraP]=='Off')) then
                 print('Mode Normal Allumage extraP et intraP')
                 commandArray[extraP]='On'
                 commandArray[intraP]='On'
        end
    -- gestion Extraction P Mode Normal Nuit 
         if (temperatureP <= (consignePN - hysteresis) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'Off' and otherdevices[extraP]=='On' and otherdevices[intraP]=='On') then
             print('Mode Normal Nuit Extinction extraP et intraP')
             commandArray[extraP]='Off'
             commandArray[intraP]='Off'
             
             elseif ((temperatureP >= (consignePN + hysteresis) or tonumber(os.date('%M')) == atMinute) and otherdevices[modeN] == 'On' and otherdevices[mode] == 'Off' and otherdevices[extraP]=='Off' and otherdevices[intraP]=='Off') then
                 print('Mode Normal Nuit Allumage extraP et intraP')
                 commandArray[extraP]="On FOR 2 MINUTES REPEAT 5 INTERVAL 10 MINUTES"
                 commandArray[intraP]="On FOR 2 MINUTES REPEAT 5 INTERVAL 10 MINUTES"
        end
  
end     
return commandArray
je me suis aussi fais les dents sur un autre scripts qui genre le brassage il est beaucoup plus court et plus simple a mettre en place que le précèdent

Code : Tout sélectionner

local atMinute = 24 

commandArray = {}

--gestion BRASSAGE mi temps
if(otherdevices['Ventilateur x2P x1PM (8)'] == 'Off' and tonumber(os.date('%M')) == atMinute and  otherdevices['clim auto'] == 'On') then
   commandArray['Ventilateur x2P x1PM (8)']="On FOR 2 MINUTES REPEAT 15 INTERVAL 2 MINUTES"
end

return commandArray
vu la simplicité j envisage de le compiler dans l'autre quand je serai sur de pas avoir de soucis. j'envisage aussi d ajouter les 2 lampes et comme ça il n'y aura plus qu'un seul et unique scripts

au delà d avoir les lampes qui s allume a tel heure et s éteigne a tel heure il faut aussi prendre en compte un redémarrage système et que si cela tombe pendant un cycle allumer que cela rallume la lampe. je me dépatouille comme ça pour le moment

Code : Tout sélectionner

local executionTime = '16:25'
local executionTimeoff = '10:25'
commandArray = {}

if (os.date('%H:%M') >= executionTime or os.date('%H:%M') < executionTimeoff) and otherdevices['Lampe TN110 (2)'] == 'Off' then
        commandArray['Lampe TN110 (2)']='On'
else
if os.date('%H:%M') == executionTimeoff and otherdevices['Lampe TN110 (2)'] == 'On'then
        commandArray['Lampe TN110 (2)']='Off'
    end
    end
return commandArray
Voila pour le coté script. Mais ce n'est pas tous, après pas mal de recherche j'ai diffèrent solution possible enfin surtout diffèrent prix concernant la mesure de L'ec/ph/t°C d'eau

LA ROLLS atlas-scientific
https://atlas-scientific.com/kits/wi-fi ... onics-kit/
ou acheter les compos un par 1 avec une carte qui s'empile sur le Raspberry
https://atlas-scientific.com/electrical ... itebox-t3/
on passe de 550 a 450 $/€

l'entre deux Gravity
https://www.dfrobot.com/product-1110.html sonde ph 57€
https://www.dfrobot.com/product-1123.html sonde ec 70€
https://www.dfrobot.com/product-689.html sonde t°C 7€
https://www.dfrobot.com/product-1730.html carte interface convetisseur analog I2C ADS1115 16€
https://www.dfrobot.com/product-1621.html Analog Signal Isolator 20 € x2
soit environ 190€

la méthode du rat
https://fr.aliexpress.com/item/10050044 ... 452cdhO6TI
60€
bon l humidité dans l eau euh... je me suis dit si capteur non immergé mais je l'ai vu au fond de l eau sur certain illustration donc a ce prix je me pose plus trop de question reste a savoir comment je vais récupérer les infos sur domoticz (je rêve d'un matériel a ajouter et de voir les résultat apparaitre dans dispositifs mais ce serai tellement simple je n'y crois pas)
bon il y a peut être al température a ajouter pour 10 15 € sur Amazon avec une résistance et c'est plié

Ah et j'ai vu aussi ça, elles sont trop mignonne !!!
https://fr.aliexpress.com/item/10050056 ... 6271d4f837
histoire de rentabilisé l envoi avec 2 unité j'arrive a 15 € sans frais de port et ça permet d avoir quelque chose a commander pour géré la diminution du ph

bon j'attends vos avis !
après je reste conscient que les sondes sont surement cheap mais ça donne l occasion d essayer
et pour la solution a 190€ c est tentant mais ça a l'aire plus compliquer niveau prog. pas vraiment peur du câblage même si je vais me faire un peu plus ch...
ça reste deux fois moins chère que la 1ere solution ou faut que j'ajoute un dongle wifi ^^ franchement ça fais baver mais trop chère sachant que c est pas le dernière achat après je retourne tellement le truc que j'ai vraiment d avoir un regard neuf sur le projet
Répondre