Blocky gérer le temps et la température

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Blocky gérer le temps et la température

Message par balajol »

Re,
Pour Blockly avec 2 DUMMY Peut être ?

IF T°>= -17, Mise à on d'un Premier Dummy qui se mettra à Off Automatiquement au bout de 10 Minutes.
set DUMMY2 = On (Off après 590s)
ElseIf le DUMMY2 à Off et Dummy à On et T° >= -17

Set ......


tu auras eu Deux T° Anormales en 10 mn

Etant donner l'heure :roll: A tester ;)
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Blocky gérer le temps et la température

Message par Wolfen38 »

Comme toi je débute avec domoticz et au tout début j'utilisais les blocky.

Mais très vite tu te rends compte que c'est assez limité et que ça vaut le coup de passer au lua.

Tu cherches sur le forum des exemples de scripts qui ressemblent a ce que tu veux, tu modifies, tu tatonnes, ça merde, tu modifies... Et t'apprend comme ça.

Ça vaut le coup de s'y pencher
Urbann
Messages : 59
Inscription : 23 oct. 2018, 17:01

Re: Blocky gérer le temps et la température

Message par Urbann »

Pour répondre à vil1driver
vil1driver a écrit : 24 janv. 2019, 22:42 Lua n'est pas compliqué mais je parlais bien de blocky
Cela doit être possible, les calculs en blocky ayant à priori été ajoutés en novembre dernier ?
Sinon patienter ou le faire en lua effectivement
J'ai mis à jour la dernière version de Domoticz (4.10363 du 23 janvier 2019)
Je n'ai pas vu de possibilité de calcul avec Blocky

Je pense que Wolfen38 à raison et qu'il faut passer par LUA mais je trouve dommage qu'une fonction aussi simple ne soit pas possible avec Blocky.
patoche
Messages : 192
Inscription : 25 oct. 2015, 15:51

Re: Blocky gérer le temps et la température

Message par patoche »

RPI2 OSMC + domoticz + Rfx 433e + chacon dio, teleinfo 433 via arduino nano, sonde T° innovaley et TFA 303139, sonde T° piscine DIY 433 oregon, OWL 180, RPI zero W + camera
patoche
Messages : 192
Inscription : 25 oct. 2015, 15:51

Re: Blocky gérer le temps et la température

Message par patoche »

Urbann a écrit : 25 janv. 2019, 09:17 Pour répondre à vil1driver
vil1driver a écrit : 24 janv. 2019, 22:42 Lua n'est pas compliqué mais je parlais bien de blocky
Cela doit être possible, les calculs en blocky ayant à priori été ajoutés en novembre dernier ?
Sinon patienter ou le faire en lua effectivement
J'ai mis à jour la dernière version de Domoticz (4.10363 du 23 janvier 2019)
Je n'ai pas vu de possibilité de calcul avec Blocky

Je pense que Wolfen38 à raison et qu'il faut passer par LUA mais je trouve dommage qu'une fonction aussi simple ne soit pas possible avec Blocky.

Ici pour pour ajouter des fonctions au blockly

https://easydomoticz.com/forum/viewtopic.php?t=7113
RPI2 OSMC + domoticz + Rfx 433e + chacon dio, teleinfo 433 via arduino nano, sonde T° innovaley et TFA 303139, sonde T° piscine DIY 433 oregon, OWL 180, RPI zero W + camera
Douns
Messages : 64
Inscription : 04 oct. 2018, 20:38
Localisation : Meurthe-et-Moselle

Re: Blocky gérer le temps et la température

Message par Douns »

Salut,

J'ai tenté en blocky mais c'est trop limité.

J'ai à la place codé vite fait ton script en LUA. J'ai pas testé mais l'idée est là.

Le script est à créer en time afin qu'il tourne toutes les minutes.
Il faut aussi créer une uservariable compteur_frigo afin de s'en servir comme compteur de type entier initialisé à 0

Code : Tout sélectionner

--fonction pour séparer utilisée pour les sonde de T° avec hydro
local function split(s, delimiter)
	local result = {}
	for match in (s..delimiter):gmatch('(.-)'..delimiter) do
		table.insert(result, match)
	end
	return result
end

commandArray = {}

--Si simple thermometre sans humidité alors : remplacer par
-- local thermometre_frigo = tonumber(otherdevices['temperature_frigo'])
local thermometre_frigo = tonumber(split(otherdevices['temperature_frigo'],";")[1])
local compteur_frigo=uservariables['compteur_frigo']

--Condition frigo>=-18
if thermometre_frigo>=-18 then
    
    --on incrémente la uservariable  (vu que time est lancé toutes les minutes, ça fait +1 minute)
    compteur_frigo=compteur_frigo+1
    
    --si le compteur atteind 10min alors... Attention si on met >= la condition sera lancée toutes les minutes. Avec =, une seule fois
    if compteur_frigo==10 then
        
        --notification
        commandArray[#commandArray +1]={['SendNotification']='frigo#10 min que le frigo >=10 min!'}
        
        --email
        commandArray[#commandArray +1]={['SendEmail']='frigo#10 min que le frigo >=10 min!#email@toto.fr'}
    end
    
    --on incrémente la uservariable
    commandArray[#commandArray +1]={['Variable:compteur_frigo']=tostring(compteur_frigo)}
else
    
    --tout va bien, on met le compteur à 0
    commandArray[#commandArray +1]={['Variable:compteur_frigo']=tostring(0)}
end
   
return commandArray
Domoticz V4.10717 sur raspberry pi 3 B+
RFLink Gateway Nodo 433Mhz
Contrôleur Aeon Labs Z-Wave Plus Z-Stick GEN5
Urbann
Messages : 59
Inscription : 23 oct. 2018, 17:01

Re: Blocky gérer le temps et la température

Message par Urbann »

Merci Douns. En plus le script est bien commenté
Je vais regarder ça de plus près
C'est une bonne opportunité pour se lancer en LUA
Par contre ce genre d'activité est chronophage donc je risque de ne pas répondre immédiatement...
Je ne lâche pas le morceau.

Je rappelle le projet
Surveiller la température d'un congélateur avec un SONOFF équipé d'une sonde étanche DS18B20 (on ne se sert pas du relais)
En Blocky on peut facilement créer une alarme si la température remonte au dessus de la consigne et envoyer un SMS d'alerte.
A l'usage il s'avère que chaque fois que l'on ouvre la porte, ça déclenche une alarme et que si l'on remonte la consigne, on perd l'efficacité de la surveillance de la température.
L'idéal est de surveiller une élévation de la température pendant un certain temps (10mn) pour décider que c'est une anomalie.
Douns
Messages : 64
Inscription : 04 oct. 2018, 20:38
Localisation : Meurthe-et-Moselle

Re: Blocky gérer le temps et la température

Message par Douns »

De rien, je te l'ai commenté pour ça ! :lol:
Et sur le coup je suis même tenté de l'utiliser parceque c'est pas une excellente idée!

Par contre je partirais d'un esp et j'ajouterais la sonde dbs18 plutôt que de partir d'un sonoff (moins cher avec un peu d'elec, un boitier en imprimante 3d et j'ai le matos en stock : j'achète !).

Il faudra avec cette sonde que tu utilises la ligne commentée pour récupérer la température.

Question pratique : par où vas tu faire passer le fil de la sonde ? Par la porte ?
Domoticz V4.10717 sur raspberry pi 3 B+
RFLink Gateway Nodo 433Mhz
Contrôleur Aeon Labs Z-Wave Plus Z-Stick GEN5
Répondre