quand la gelée blanche ne se forme plus?

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: quand la gelée blanche ne se forme plus?

Message par papoo »

Comment dire?
J’ai complètement oublié de regarder
Je n’ai eu pour l’instant que trois jours de givre
Je vais être plus attentif la prochaine fois
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: quand la gelée blanche ne se forme plus?

Message par landaisbenj »

Avec le rechauffement climatique ca va pas s'arranger ? xD ok je sors :-{)
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
iloveraffa
Messages : 7
Inscription : 23 nov. 2018, 12:23

Re: quand la gelée blanche ne se forme plus?

Message par iloveraffa »

Vous avez pu le tester ces derniers jours ? :)
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: quand la gelée blanche ne se forme plus?

Message par papoo »

l'humidité n'est pas descendue suffisamment pour que je puisse déterminer le seuil à partir duquel la gelée ne se forme plus.
il faut dire qu'il n'a quasiment pas arrêté de pleuvoir cest derniers temps
mais j'en ai profité pour refaire mon script en Dzvents avec prise en compte de ce seuil.
je fini les tests et vous le propose.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: quand la gelée blanche ne se forme plus?

Message par benp »

Bonjour,

Le problème n'est pas si simple car la température d'une voiture peut être inférieure à l température de l'air ambiant à cause de son rayonnement.
Dans mon cas, ma voiture givre vers le ciel mais rarement vers ma maison. Il faudrait idéalement utiliser un capteur de température sur le pare brise considéré. Sinon, il faut faire une correction de température qui tient compte au moins du vent et peut être de la couverture nuageuse...

Pour le calcul, il faut ensuite regarder le point de givrage (qui est différent du point de rosée):
https://fr.wikipedia.org/wiki/Point_de_givrage

Une autre approche est d'utiliser les formules de mon script de calcul de l'humidité équivalente à une température donnée pour la glace:
viewtopic.php?f=17&t=8252&p=67852
Si l'humidité relative à la glace passe à 100%, il y a givre.

Ceci n'est que mon avis théorique. Postez des données pratiques de givre/non givre pour pouvoir affiner.

Autres sources:
http://domo-attitude.fr/anticiper-givre-domoticz/
https://pon.fr/script-calcul-et-alerte-givre/
https://easydomoticz.com/forum/viewtopi ... 5&start=80
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
benp
Messages : 98
Inscription : 29 oct. 2017, 09:35

Re: quand la gelée blanche ne se forme plus?

Message par benp »

Hourra: Il a gelé cette nuit donc j'ai des données.
Voila ce que ça donne à 6h35
Capture.PNG
Capture.PNG (9.79 Kio) Consulté 4400 fois
J'ai du givre important sur la voiture et tout juste sur l'herbe. Pas de givre coté maison comme d'habitude.

J'utilise une sonde oregon scentific température+humidité THGN132N sous abri météo. J'ai donc une bonne représentation de la température de l'air.
Je ne sais pas quelle formule utilise domoticz pour calculer le point de rosée (équilibre liquide/vapeur)
En utilisant la formule:
Image

Source: https://fr.wikipedia.org/wiki/Point_de_givrage
On obtient un point de givrage de -8.04°C
Note: C'est la formule de papoo dans son script visible ici:
https://github.com/papo-o/domoticz_scri ... _givre.lua

On peut recalculer le point de rosée de domoticz à partir de la formule:
Capture03.PNG
Capture03.PNG (3.57 Kio) Consulté 4400 fois
Source: https://weather.station.software/blog/w ... st-points/
Résultat: point de rosée: -8.37°C
papoo utilise une formule différente, domoticz peut-être encore une autre.

Quand on aime, autre formule de calcul direct du point de givrage:
Ice-point temperature (Ti) from air temperature (T) and relative humidity (%):
Image
Source: http://www.fao.org/3/y7223e/y7223e0i.htm
Résultat: point de givrage -7.6°C

Bilan:
Le point de givrage est d'environ -8°C pour une température d'air de -2.2°C
La température de mon pare brise et donc au moins de 5°C inférieure à la température de l'air.
Ceci sous réserve que mes mesures soient justes, en particulier l'humidité. On suppose aussi que la sonde oregon mesure une humidité relative au point de rosée.

Note:
Si il y avait eu un vent suffisant à la même température/humidité, la température de mon pare brise aurait été de -2.2°C et le givre ne se serait pas formé.

Bref, comme dit dans mon post précédent, le calcul du givre n'est pas facile, même en temps réel. Il faut au moins tenir compte du vent, voire de la couverture nuageuse.
Il existe aussi peut-être des données la dessus sur internet...
Si pas de données sur internet, on peut obtenir des résultats de manière collaborative en postant des données ici.
Il faut pour cela avoir un matériel comparable.
Domoticz 2021.1/ Plugin Zigate 5.1.006/ Zigate Firmware 3.1e
romain1206
Messages : 54
Inscription : 30 janv. 2019, 21:30

Re: quand la gelée blanche ne se forme plus?

Message par romain1206 »

bonjour,

j'ai un soucis sur le script, je n'ai plus de MAJ

Code : Tout sélectionner

 2019-10-31 08:18:00.430 Status: LUA: --- --- --- Température Ext : 2.5
2019-10-31 08:18:00.430 Status: LUA: --- --- --- Humidité : 92
2019-10-31 08:18:00.430 Error: EventSystem: in script_device_givre.lua: [string "--[[ ..."]:128: attempt to compare nil with number
de plus dans les parametres si je mets le nom de device j'ai un autre message d'erreur

local dev_freeze_point = nil --'point_de_givre'

Code : Tout sélectionner

--[[   
~/opt/domoticz/scripts/lua/script_device_givre.lua
auteur : papoo
MAJ : 28/02/2018
création : 06/05/2016
Principe :
Calculer via les informations température et hygrométrie d'une sonde extérieure
 le point de rosée ainsi que le point de givre
puis en comparant ensuite le point de givre et l'a température extérieure, création d'une alerte givre.
http://pon.fr/script-calcul-et-alerte-givre/
http://easydomoticz.com/forum/viewtopic.php?f=21&t=1085&start=10#p17545
https://github.com/papo-o/domoticz_scripts/blob/master/Lua/script_device_givre.lua
--]]

--------------------------------------------
------------ Variables à éditer ------------
-------------------------------------------- 

local debugging = true  					-- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local temp_ext  = 'temp_humidite_barometre' 	-- nom de la sonde de température/humidité extérieure
local dev_dew_point = nil  	-- nom de l'éventuel dummy température point de rosée si vous souhaitez le suivre sinon nil
local dev_freeze_point = nil --'point_de_givre'	-- nom de l'éventuel dummy température point de givre si vous souhaitez le suivre sinon nil
local dev_hum_abs_point = nil -- 'Humidité absolue' -- nom de l'éventuel dummy humidité absolue si vous souhaitez le suivre sinon nil
local dev_freeze_alert = 'alerte_givre'	-- nom de l'éventuel dummy alert point de givre si vous souhaitez le suivre sinon nil

--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local nom_script = 'Point de rosée et point de givrage'
local version = 1.2						-- version du script

commandArray = {}

--------------------------------------------
---------------- Fonctions -----------------
-------------------------------------------- 
--package.path = package.path..";/home/pi/domoticz/scripts/lua/fonctions/?.lua"   -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script
--require('fonctions_perso')                                                      -- ligne à commenter en cas d'utilisation des fonctions directement dans ce script

-- ci-dessous les lignes à décommenter en cas d'utilisation des fonctions directement dans ce script( supprimer --[[ et --]])
function voir_les_logs (s, debugging) -- nécessite la variable local debugging
    if (debugging) then 
		if s ~= nil then
        print (s)
		else
		print ("aucune valeur affichable")
		end
    end
end	-- usage voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)

--------------------------------------------
function round(value, digits)
	if not value or not digits then
		return nil
	end
		local precision = 10^digits
		return (value >= 0) and
		  (math.floor(value * precision + 0.5) / precision) or
		  (math.ceil(value * precision - 0.5) / precision)
end

function dewPoint (T, RH)
	local b,c = 17.67, 243.5
	RH = math.max (RH or 0, 1e-3)
	local gamma = math.log (RH/100) + b * T / (c + T) 
	return c * gamma / (b - gamma)
end
function freezing_point(dp, t) 
	if not dp or not t or dp > t then
    return nil, " La température du point de rosée est supérieure à la température. Puisque la température du point de rosée ne peut être supérieure à la température de l'air , l\'humidité relative a été fixée à nil."
end

T = t + 273.15
Td = dp + 273.15
return (Td + (2671.02 /((2954.61/T) + 2.193665 * math.log(T) - 13.3448))-T)-273.15
  
end

function hum_abs(t,hr)
-- https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/
-- Formule pour calculer l'humidité absolue
-- Dans la formule ci-dessous, la température (T) est exprimée en degrés Celsius, l'humidité relative (hr) est exprimée en%, et e est la base des logarithmes naturels 2.71828 [élevée à la puissance du contenu des crochets]:
-- Humidité absolue (grammes / m3 ) =  (6,122 * e^[(17,67 * T) / (T + 243,5)] * rh * 2,1674))/(273,15 + T)
-- Cette formule est précise à 0,1% près, dans la gamme de température de -30 ° C à + 35 ° C
ha = round((6.112 * math.exp((17.67 * t)/(t+243.5)) * hr * 2.1674)/ (273.15 + t),1)
return ha
end

--------------------------------------------
-------------- Fin Fonctions ---------------
-------------------------------------------- 

time=os.date("*t")
if time.min % 2 == 0 then  -- si script_time
--if devicechanged[temp_ext] then  -- si script_device
--print("script_device_givre.lua")

    voir_les_logs("=========== ".. nom_script .." (v".. version ..") ===========",debugging)
    Temp, Humidity = otherdevices_svalues[temp_ext]:match("([^;]+);([^;]+)")		
    voir_les_logs("--- --- --- Température Ext : ".. Temp,debugging)
    voir_les_logs("--- --- --- Humidité : ".. Humidity,debugging)

	if dev_dew_point ~= nil then
		DewPoint = round(dewPoint(Temp,Humidity),2)
		voir_les_logs("--- --- --- Point de Rosée : ".. DewPoint,debugging)
		commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[dev_dew_point] .. "|0|" .. DewPoint} -- Mise à jour point de rosée
    end    
    if  dev_freeze_point ~= nil then   
		FreezingPoint = round(freezing_point(DewPoint, tonumber(Temp)),2)
		voir_les_logs("--- --- --- Point de Givrage : ".. FreezingPoint,debugging)
		commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[dev_freeze_point] .. "|0|" .. FreezingPoint} -- Mise à jour point de givrage
	end

    if  dev_hum_abs_point ~= nil then   
        hum_abs_point = hum_abs(Temp, Humidity)
		voir_les_logs("--- --- --- Humidité absolue : ".. hum_abs_point,debugging)
		commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[dev_hum_abs_point] .. "|0|" .. hum_abs_point} -- Mise à jour humidité absolue
	end    
    
    
    if dev_freeze_alert ~= nil then
        if(tonumber(Temp)<=1 and tonumber(FreezingPoint)<=0)  then
            voir_les_logs("--- --- --- Givre --- --- ---",debugging)
            commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[dev_freeze_alert]..'|4|'..FreezingPoint}
            if (time.min == 50 and time.hour == 6) then
            commandArray['SendNotification'] = 'Alert#Présence de givre!'
            end
        elseif(tonumber(Temp)<=3 and tonumber(FreezingPoint)<=0)then
            voir_les_logs("--- --- --- Risque de Givre --- --- ---",debugging)
            commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[dev_freeze_alert]..'|2|'..FreezingPoint}
            if (time.min == 50 and time.hour == 6) then
            commandArray['SendNotification'] = 'Alert#Risque de givre!'
            end
        else
            voir_les_logs("--- --- --- Aucun risque de Givre --- --- ---",debugging)
            commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[dev_freeze_alert]..'|1|'..'Pas de givre'}
        end
    end
voir_les_logs("========= Fin ".. nom_script .." (v".. version ..") =========",debugging)
end	

return commandArray


Répondre