Page 2 sur 3
Re: [TUTO] Domotiser son poêle à granulés
Publié : 30 nov. 2017, 21:36
par Gaz
J'ai réussi à me faire envoyer des notifications sur les niveaux 20 et 10% en modifiant la ligne 41
ou
par
J'ai aussi basculé la variable à Entier
Du coup les notifications arrivent bien, mais une toutes les minutes...à partir du niveau 20% restant.
Re: [TUTO] Domotiser son poêle à granulés
Publié : 01 déc. 2017, 18:11
par stephdes
Gaz a écrit :J'ai réussi à me faire envoyer des notifications sur les niveaux 20 et 10% en modifiant la ligne 41
ou
par
J'ai aussi basculé la variable à Entier
Du coup les notifications arrivent bien, mais une toutes les minutes...à partir du niveau 20% restant.
Tu as essayé avec le code modifié que j'ai posté ?
Car chez moi il fonctionne. Etrangement je n'ai pas les notifs toutes les minutes
Re: [TUTO] Domotiser son poêle à granulés
Publié : 02 déc. 2017, 01:41
par Gaz
Oui, mais j'avais des freeze de la variable.
Je devrais atteindre les 20% demain en soirée, je referais des tests.
Re: [TUTO] Domotiser son poêle à granulés
Publié : 03 déc. 2017, 14:24
par campeaux
Bonjour,
Félicitations pour ce beau travail.
Je cherche aussi des solutions pour domotiser un poel MCZ, mais en abordant la problématique plutôt sous l'angle du pilotage RF433.
Je suis d’ailleurs ce forum depuis longtemps mais les réponses apportées sont trop complexes à mettre en oeuvre :
http://www.touteladomotique.com/forum/v ... f=6&t=8706
J'ai une petite questions. Connaissez vous un moyen pour remonter à domoticz l'état du poel (en marche ou éteint) ?
Re: [TUTO] Domotiser son poêle à granulés
Publié : 04 déc. 2017, 17:13
par stephdes
campeaux a écrit :Bonjour,
Félicitations pour ce beau travail.
Je cherche aussi des solutions pour domotiser un poel MCZ, mais en abordant la problématique plutôt sous l'angle du pilotage RF433.
Je suis d’ailleurs ce forum depuis longtemps mais les réponses apportées sont trop complexes à mettre en oeuvre :
http://www.touteladomotique.com/forum/v ... f=6&t=8706
J'ai une petite questions. Connaissez vous un moyen pour remonter à domoticz l'état du poel (en marche ou éteint) ?
En fait, je n'ai pas pris le temps de me poser sur le sujet du RF 433. Enfin que partiellement car j'ai déjà récupéré l'ID du poêle mais c'est tout.
J'ai contacté Bert pour avoir les modèles de trames mais il m'a renvoyé vers un membre du forum touteladomotique. Pixelman je pense.
Pour l'instant je n'ai plus trop le temps mais ça m'intéresserait aussi de pouvoir piloter le poele avec Domoticz. Surtout au niveau ventilateurs...
Re: [TUTO] Domotiser son poêle à granulés
Publié : 09 déc. 2017, 00:13
par marsflow
Bonsoir,
Je ne comprend pas pourquoi récupérer la température des fumées.
Re: [TUTO] Domotiser son poêle à granulés
Publié : 09 déc. 2017, 10:45
par stephdes
marsflow a écrit :Bonsoir,
Je ne comprend pas pourquoi récupérer la température des fumées.
Dans ce cas précis, à connaître l'état du poêle : allumé / éteint
Re: [TUTO] Domotiser son poêle à granulés
Publié : 11 déc. 2017, 18:20
par Gaz
Au vue de la mesure de ma cuve qui est très variable

- Lecture pellet.png (462.4 Kio) Consulté 10427 fois
J'ai remarqué que si la valeur mesuré était hors plage (supérieurement à la hauteur de la cuve déclaré dans ton script) et ce durant une heure, alors la variable pellet était plus mise à jour pour les heures suivantes.
Du coup je te propose un script simple qui vérifie que le dernier update à était fait il y a moins de 1h par exemple, si c’est pas le cas, alors il modifie la variable.
Code : Tout sélectionner
--[[
Script_time_Debogage_Compteur_Pellet.lua
Auteur : Gaz
version : 1.0
MAJ : 10/12/2017
création : 10/112/2017
Principe :
Vérifie si il y a pas plus de 10mins entre deux MAJ cohérente du niveau de pellet
]]--
function timedifference(s)
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
commandArray = {}
if (timedifference(otherdevices_lastupdate['Niveau pellet']) > 600) then -- en secondes
commandArray['Variable:pellet']= tostring(30) -- Remise à 30 de la varriable
end
Re: [TUTO] Domotiser son poêle à granulés
Publié : 12 janv. 2018, 15:22
par Obone
i9987popo a écrit :Bonjour à tous, moi j'ai un Jotul, je gère également le poêle a granulés avec le contact sec, maintenant j'aimerais également jouer sur la puissance de la flamme et de la ventilation, mais la cela se complique. Si des personnes ont des infos sur les poeles Jotul ou Palazetti (Jotul utilise l’électronique de Palazetti) je suis preneur.
Il y a derrière le poele un prise ressemblant a RJ11, quelqu'un sait a quoi elle sert ? C'est peut être par cette prise que l'on pourrait commander la flamme et la ventilation non ?
Bonjour, ton poele est il compatible avec la "connexion box" ?
Je possède un palazzetti et avec ce boitier de connexion il est facile de récupérer beaucoup d'infos sur le poêle.
Nicolas
Re: [TUTO] Domotiser son poêle à granulés
Publié : 19 janv. 2018, 16:13
par marsflow
Boujour à tous,
je vous donne mon amélioration pour le problème de température qui donne des erreurs du niveau pellet,
c'est du bidouillage je l'avoue, j'apprends pour le moment, il aurait fallu connaitre les commandes string etc, mais pour le moment j'en suis incapable,
vous aurez besoin de 6 variables utilisateur type chaîne :
pellet
pelletII
pellet III
pelletIV
pelletV
pellet_erreur
il y'a des choses qui sont pas du tout obligatoire, mais ça fonctionne et pour le moment ça me va très bien.
Code : Tout sélectionner
--[[
auteur : Steph D
modifié par : marsflow
version : 1.0
MAJ : 19/01/2018
création : 28/10/2017
Principe :
Calculer en % le niveau de pellet dans un poêle Skia
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local pellet = 'Lecture pellet' -- nom du capteur de lecture niveau pellet
local pelletid = 91 -- Idx du dummy pellet
val_pelletmini = 0 -- Seuil mini de prise en compte valeur
val_pelletmax = 45 --Seuil maxi de prise en compte valeur
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
------------------- --------------------
-- Fonction arrondir à deux décimales --
------------------- --------------------
function arrondir(num, dec)
if num == 0 then
return 0
else
local mult = 10^(dec or 2)
return math.floor(num * mult + 0.5) / mult
end
end
----------------------------------------
commandArray = {}
now=os.date("*t")
if (devicechanged[pellet])then
--------------------------------------------
---------------- Fonctions -----------------
--------------------------------------------
val_pellet = tonumber(otherdevices_svalues[pellet])
val_pelletupdate = tonumber(otherdevices_svalues[pellet])
val_pellet = ((val_pelletmax-val_pellet)/val_pelletmax)*100
val_pelletA = arrondir (val_pellet,0)
val_delta = (uservariables['pelletII'] + uservariables['pelletIII'] + uservariables['pelletIV'] + uservariables['pelletV'])
val_delta_2 = (val_delta /4)/val_pelletA
val_var2 = (uservariables['pelletII']) + 1 - 1
val_var3 = (uservariables['pelletIII']) + 1 - 1
val_var4 = (uservariables['pelletIV']) + 1 - 1
val_var5 = (uservariables['pelletV']) + 1 - 1
val_var_erreur = (uservariables['pellet_erreur']) + 1 - 1
val_var_erreur_raz = 1
if (val_pelletupdate < val_pelletmax) then
print('Delta 2 : ' .. val_delta_2)
print('Delta : ' .. val_delta)
print('val_deltaA : ' .. val_pelletA)
print('variable 2 : ' ..uservariables['pelletII'])
print('variable 3 : ' ..uservariables['pelletIII'])
print('variable 4 : ' ..uservariables['pelletIV'])
print('variable 5 : ' ..uservariables['pelletV'])
print('compteur erreur : ' ..uservariables['pellet_erreur'])
end
if (val_pelletupdate < val_pelletmax) and (val_delta_2 < 1.0909090909090909090909090909091) and (val_delta_2 > 0.92307692307692307692307692307692) then
commandArray={['UpdateDevice']= pelletid .. "|0|" .. val_pelletA}
commandArray['Variable:pellet']= tostring(val_pelletA)
commandArray['Variable:pelletV']= tostring(val_var4)
commandArray['Variable:pelletIV']= tostring(val_var3)
commandArray['Variable:pelletIII']= tostring(val_var2)
commandArray['Variable:pelletII']= tostring(val_pelletA)
commandArray['Variable:pellet_erreur']= tostring(val_var_erreur_raz)
print('val_deltaA mise à jour : ' .. val_pelletA)
elseif (val_delta_2 < 1.0909090909090909090909090909091) and (val_var_erreur < 3) then
commandArray['Variable:pellet']= tostring(val_var2)
commandArray['Variable:pellet_erreur']= tostring(uservariables["pellet_erreur"] +1)
print('valeur trop haute : ' .. val_pelletA)
print('compteur erreur : ' ..uservariables['pellet_erreur'])
elseif (val_delta_2 > 0.92307692307692307692307692307692) and (val_var_erreur < 3) then
commandArray['Variable:pellet']= tostring(val_var2)
commandArray['Variable:pellet_erreur']= tostring(uservariables["pellet_erreur"] +1)
print('valeur trop basse : ' .. val_pelletA)
print('compteur erreur : ' ..uservariables['pellet_erreur'])
elseif (val_var_erreur >= 3) then
commandArray={['UpdateDevice']= pelletid .. "|0|" .. val_pelletA}
commandArray['Variable:pellet']= tostring(val_pelletA)
commandArray['Variable:pelletV']= tostring(val_pelletA)
commandArray['Variable:pelletIV']= tostring(val_pelletA)
commandArray['Variable:pelletIII']= tostring(val_pelletA)
commandArray['Variable:pelletII']= tostring(val_pelletA)
commandArray['Variable:pellet_erreur']= tostring(val_var_erreur_raz)
print('valeur remise à zéro: ' .. val_pelletA)
print('compteur erreur : ' ..uservariables['pellet_erreur'])
end
if (val_pellet<20) and (val_pellet>10) then
commandArray['SendNotification']='Poêle: niv. <20% !'
elseif (val_pellet<10) then
commandArray['SendNotification']='Poêle: niv. <10% !'
end
end
return commandArray
je donnerai un peu plus d'explication plus tard.