Aller au contenu

Gestion Compteur D'eau / Consommation Et Pilotage


Messages recommandés

Posté(e)

Ah ouais, forcément, si toute la pression est sortie, le trop plein ne suffit plus, surtout avec l'échancrure qui n'arrange rien..

 

Quelle galère :(

Invité chris6783
Posté(e)

Oui c la galère ton histoire mais si tu as effectivement beaucoup de pression il faudrait installer un régulateur de pression sur l'arrivée maison. Ce genre de flotteur n'est pas fait pour encaisser 5 ou 6 bar en permanence avec les coups de béliers àchaque fermeture de robinet....

Posté(e)

Comme tu dis, ce genre de flotteur c'est de la merde en barre même si c'est une marque, la preuve ! Donc j'ai monté comme dans mon WC du bas un unifil 380 de Geberit et roulez jeunesse, pas de soucis ça encaisse les bar sans problème ! Mais sinon effectivement, j'ai un reducteur de pression sur l'eau chaude uniquement (parce que j'ai pas voulu refaire l'installation complète de la plomberie). Au prochain gros travaux, je refais tout !

Posté(e)

Pourquoi sur l'eau chaude? En général, le groupe de sécurité sur l'eau froide du chauffe eau supporte mal les pressions supérieures à quatre bars.

Posté(e)

Bah oui justement, il est sur l'entrée du ballon d'eau chaude :P J'ai donc un déséquilibre entre la pression sur le froid et le chaud. D'où l'intérêt de le mettre en tête d'installation mais pour le moment c'est pas possible sans transformation.

Posté(e)

J'allais dire, au final, et souvent comme toujours, une marque de qualité comme Gebertit ou autre doit limiter ce risque. Mais le risque 0 n'existe jamais.

  • 2 semaines après...
Posté(e)

Bonjour a tous 

petit question :

j'ai un Gianola et un eco-devices 

ils sont loin l'un de l'autre y a t'il une limite dans la distance qui peux les sépare ? (pour ne pas avoir de perte)

 

merci

Posté(e)

Salut. Quelle distance pour avoir un ordre d'idée ? Je ne pourrais pas te dire si ça marche, mais si c'est à5 m pourquoi pas, mais 100m c'est autre chose.

  • 9 mois après...
Posté(e)

Merci beaucoup pour cet excellent tuto que j'ai utilisé (voir mon dernier post à ce sujet).

Bien cordialement.

 

Yves

  • Upvote 1
  • 3 semaines après...
Posté(e)

Bonsoir à tous,

 

Je viens d'installer mon Gianola, sonde raccordée sur Fibaro FGK-10X.

Chaque litre est matérialisé par le détecteur d'ouverture sous l'ID 222.0.1

 

Après je suis bloqué... dans ma config sur HC2

 

Merci d'avance pour votre aide

 

Mave

  • 3 ans après...
Posté(e) (modifié)

petit déterrage de topic vu que je suis en train de mettre en place un Gioanola.

à quoi correspond "production d'eau" ? s'agit-il de la consommation ?

merci

Stef

Modifié par couillerot
  • 2 semaines après...
Posté(e) (modifié)

Bonsoir à tous !

 

j'ai installé le compteur Gioanola relié à l'Eco-Device, insérer le VD et la scène ad'hoc mais je n'ai pas de remontée d'infos... une idée sur le pourquoi du comment ?

 

Voici le code du main loop :

local thismodule = fibaro:getSelfId();
local ip = fibaro:get(thismodule, 'IPAddress');
 
HC2 = Net.FHttp(ip)-- ip de l'éco-device
response = HC2:GET("/api/xdevices.json?cmd=10")

response = json.decode(response)

    -- renseignement des index dans plusieures variables distinctes
fibaro:setGlobal("Compteur_eau", response.INDEX_C1)

local TVA5_5 = 1.055
local TVA10 = 1.10

local function roundToNthDecimal(num, n)
  local mult = 10^(n or 0)
  return math.floor(num * mult + 0.5) / mult
end

-- production eau
local function production(L) 
      local cout = tonumber(L * 0.001393 * TVA5_5) 
      --fibaro:debug("production J: ".. cout .. " €")
    return cout
end
-- redevance pollution domestique
local function abonnement(J) 
      local abonnement = tonumber(J * 0.1781 * TVA5_5) 
      fibaro:debug("abonnement J: ".. abonnement .. " €")
    return abonnement
end
-- assainissement
local function assainissement(L) 
      local assainissement = tonumber(L * 0.0024 * TVA10) 
      fibaro:debug("assainissement J: ".. assainissement .. " €")
    return assainissement
end
-- modernisation
local function modernisation(L) 
      local modernisation = tonumber(L * 0.000366 * TVA5_5) 
      fibaro:debug("modernisation J: ".. modernisation .. " €")
    return modernisation
end
-- Abonnement collecte TVA 10
local function pollution(J) 
      local pollution = tonumber(J * 0.1287 * TVA10) 
      fibaro:debug("pollution J: ".. pollution .. " €")
    return pollution
end

local selfId = fibaro:getSelfId()
--local vanne = fibaro:getValue(700, "value");
--local Compteur_eau = fibaro:getGlobal("Compteur_eau")
local Compteur_eau = fibaro:getGlobal("IC1")
local Compteur_eau_jour = fibaro:getGlobal("Compteur_eau_jour")
local Compteur_eau_mois = fibaro:getGlobal("Compteur_eau_mois") 
local Compteur_eau_annee = fibaro:getGlobal("Compteur_eau_annee") 
local total = Compteur_eau / 1000

--fibaro:debug(vanne)
--if vanne == "0" then
--fibaro:call(selfId, "setProperty", "ui.Label5.value", " Vanne Fermée ")
--fibaro:debug("vanne fermée")

--end

--if vanne == "1" then
--fibaro:call(selfId, "setProperty", "ui.Label5.value", " Vanne Ouverte ")
--fibaro:debug("vanne Ouverte")
 
--end


local calc_jour = (tonumber(Compteur_eau) - tonumber(Compteur_eau_jour)) 
fibaro:debug(calc_jour)
local calc_mois = (tonumber(Compteur_eau) - tonumber(Compteur_eau_mois)) 
fibaro:debug(calc_mois)
local calc_annee = (tonumber(Compteur_eau) - tonumber(Compteur_eau_annee)) 
fibaro:debug(calc_annee)

euro = tonumber(0.001393)--prix au litre
--local prixjour = ( euro * calc_jour)
local prixjour = roundToNthDecimal(    
                        production(calc_jour) 
                      + assainissement(calc_jour) 
                      + modernisation(calc_jour) 
                      + pollution(calc_jour) 
                      + abonnement(1)         --abonnement sur 1J
                  ,2)

jour = string.sub(prixjour, 1, 4)-- prix jour
fibaro:debug(jour)

--local prixmois = ( euro * calc_mois) 
local prixmois = roundToNthDecimal(    
                        production(calc_mois) 
                      + assainissement(calc_mois) 
                      + modernisation(calc_mois) 
                      + pollution(calc_mois) 
                      + abonnement(30)         --abonnement sur 30J
                  ,2)
mois = string.sub(prixmois, 1, 4)-- prix jour
fibaro:debug(mois)

--local prixannee = ( euro * calc_annee) 
local prixannee = roundToNthDecimal(    
                        production(calc_annee) 
                      + assainissement(calc_annee) 
                      + modernisation(calc_annee) 
                      + pollution(calc_annee) 
                      + abonnement(365)         --abonnement sur 30J
                  ,2)
annee = string.sub(prixannee, 1, 4)-- prix jour
fibaro:debug(annee)

fibaro:call(selfId, "setProperty", "ui.Label1.value", calc_jour.. " L / "..jour.." €")
fibaro:call(selfId, "setProperty", "ui.Label2.value", calc_mois.. " L / "..mois.." €")
fibaro:call(selfId, "setProperty", "ui.Label3.value", calc_annee.. " L / "..annee.." €")
fibaro:call(selfId, "setProperty", "ui.Label4.value", total.." m3 ")

fibaro:sleep(60*1000) --sleep 60s

 

Modifié par couillerot
Posté(e)

voici ce que j'obtiens avec le debug du VD :

 

pnk2.jpg

 

et pourtant, dans le panneau, la variable "Compteur_eau" reprend bien les données de l'eco-devices... ???

 

Stef

Posté(e) (modifié)

@couillerot tu as quoi si tu fais un debug sur : response.INDEX_C1 ? tu es certain que ta connexion à l'eco est ok? ta variable "Compteur_eau" ( fibaro:setGlobal("Compteur_eau", response.INDEX_C1) ligne 10 sur le code que tu as copié) ne semble pas valorisée dès le départ ça ressemble quand même à un pblm de connexion à ton eco.

EDIT:

Dernier truc ton erreur est retournée ligne 48 il y a un bug dans les vd avec un décalage d'1 ligne vers le haut ce qui donne ton erreur ligne 47. Mais ce qui m'intrique sur le snapshot de ton code c'est qu'il y a un décalage de 10 ligne par rapport au code source que tu as mis plus haut comme s'il manquait 10 à ton vd?? 

Modifié par TonyC
Posté(e)

Salut Tony,

Pour la variable "Compteur_eau", j'ai testé en la créant directement dans le tableau des variables et il remonte bien la valeur réelle de l'eco...

Pour les 10 lignes manquantes, je peux l"expliquer par le fait que dans le code source les 10 premières lignes ne sont pas présentent, je les avais rajouter pour test :)

Stef

Posté(e)
local Compteur_eau = fibaro:getGlobal("IC1")

Où la variable globale "IC1" est-elle renseignée ?

Si elle n'existe pas, Compteur_eau vaudra nil...

Posté(e)
local selfId = fibaro:getSelfId()
--local vanne = fibaro:getValue(700, "value");
--local Compteur_eau = fibaro:getGlobal("Compteur_eau")
local Compteur_eau = fibaro:getGlobal("IC1")
local Compteur_eau_jour = fibaro:getGlobal("Compteur_eau_jour")
local Compteur_eau_mois = fibaro:getGlobal("Compteur_eau_mois") 
local Compteur_eau_annee = fibaro:getGlobal("Compteur_eau_annee") 
local total = Compteur_eau / 1000

pas fait attention que la ligne était commentée mais si c'est ok sur la connexion à l'eco alors il faut juste dé commenter la ligne ou la variable  Compteur_eau = fibaro:getGlobal("Compteur_eau") devrait suffire non ? la var IC1 n'est

pas utilisée par la suite donc pas besoin de la valoriser à son tour.

Il y a une raison pour avoir commenté cette ligne?

 

en essayant tout simplement ça ? 

local selfId = fibaro:getSelfId()
--local vanne = fibaro:getValue(700, "value");
local Compteur_eau = fibaro:getGlobal("Compteur_eau")
--local Compteur_eau = fibaro:getGlobal("IC1")
local Compteur_eau_jour = fibaro:getGlobal("Compteur_eau_jour")
local Compteur_eau_mois = fibaro:getGlobal("Compteur_eau_mois") 
local Compteur_eau_annee = fibaro:getGlobal("Compteur_eau_annee") 
local total = Compteur_eau / 1000

 

 

 

Posté(e)

je vous remets le code du VD et de la scène (très, très largement inspiré du code de Moicphil), ce sera peu être plus clair...

 

Le VD

local thismodule = fibaro:getSelfId();
local ip = fibaro:get(thismodule, 'IPAddress');
HC2 = Net.FHttp(ip)
response = HC2:GET("/api/xdevices.json?cmd=10")
response = json.decode(response)
fibaro:setGlobal("Compteur_eau", response.INDEX_C1)

local TVA5_5 = 1.055
local TVA10 = 1.10

local function roundToNthDecimal(num, n)
  local mult = 10^(n or 0)
  return math.floor(num * mult + 0.5) / mult
end

-- production eau TVA 5_5
local function production(L) 
      local cout = tonumber(L * 0.001393 * TVA5_5) 
      fibaro:debug("production J: ".. cout .. " €")
    return cout
end

-- redevance abonnement TVA 5_5
local function abonnement(J) 
      local abonnement = tonumber(J * 0.1781 * TVA5_5) 
      fibaro:debug("abonnement J: ".. abonnement .. " €")
    return abonnement
end

-- assainissement TVA 10
local function assainissement(L) 
      local assainissement = tonumber(L * 0.0024 * TVA10) 
      fibaro:debug("assainissement J: ".. assainissement .. " €")
    return assainissement
end

-- modernisation TVA 5_5
local function modernisation(L) 
      local modernisation = tonumber(L * 0.000366 * TVA5_5) 
      fibaro:debug("modernisation J: ".. modernisation .. " €")
    return modernisation
end

-- Abonnement pollution TVA 10
local function pollution(J) 
      local pollution = tonumber(J * 0.1287 * TVA10) 
      fibaro:debug("pollution J: ".. pollution .. " €")
    return pollution
end

local selfId = fibaro:getSelfId()
local Compteur_eau = fibaro:getGlobal("Compteur_eau")
local Compteur_eau_jour = fibaro:getGlobal("Compteur_eau_jour")
local Compteur_eau_mois = fibaro:getGlobal("Compteur_eau_mois") 
local Compteur_eau_annee = fibaro:getGlobal("Compteur_eau_annee") 
local total = Compteur_eau / 1000


local calc_jour = (tonumber(Compteur_eau) - tonumber(Compteur_eau_jour)) 
fibaro:debug(calc_jour)
local calc_mois = (tonumber(Compteur_eau) - tonumber(Compteur_eau_mois)) 
fibaro:debug(calc_mois)
local calc_annee = (tonumber(Compteur_eau) - tonumber(Compteur_eau_annee)) 
fibaro:debug(calc_annee)

--prix au litre
euro = tonumber(0.001393)

--local prixjour = ( euro * calc_jour)--
local prixjour = roundToNthDecimal(    
                        production(calc_jour) 
                      + assainissement(calc_jour) 
                      + modernisation(calc_jour) 
                      + pollution(calc_jour) 
                      + abonnement(1)        
                  ,2)
jour = string.sub(prixjour, 1, 4)
fibaro:debug(jour)

--local prixmois = ( euro * calc_mois)-- 
local prixmois = roundToNthDecimal(    
                        production(calc_mois) 
                      + assainissement(calc_mois) 
                      + modernisation(calc_mois) 
                      + pollution(calc_mois) 
                      + abonnement(30)    
                  ,2)
mois = string.sub(prixmois, 1, 4)
fibaro:debug(mois)

--local prixannee = ( euro * calc_annee)--
local prixannee = roundToNthDecimal(    
                        production(calc_annee) 
                      + assainissement(calc_annee) 
                      + modernisation(calc_annee) 
                      + pollution(calc_annee) 
                      + abonnement(365)
                  ,2)
annee = string.sub(prixannee, 1, 4)
fibaro:debug(annee)

fibaro:call(selfId, "setProperty", "ui.Label1.value", calc_jour.. " L / "..jour.." €")
fibaro:call(selfId, "setProperty", "ui.Label2.value", calc_mois.. " L / "..mois.." €")
fibaro:call(selfId, "setProperty", "ui.Label3.value", calc_annee.. " L / "..annee.." €")
fibaro:call(selfId, "setProperty", "ui.Label4.value", total.." m3 ")

fibaro:sleep(60*1000) --sleep 60s

la Scène :

 

--[[
%% autostart
--]]
local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do
 
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
    
local Jour = tonumber(os.date("%d", os.time()))
local Mois = tonumber(os.date("%m", os.time()))
local Annee = tonumber(os.date("%y", os.time()))
local Heure = tonumber(os.date("%H", os.time()))
local Minute = tonumber(os.date("%M", os.time()))
local compteur = fibaro:getGlobal("Compteur_eau") 
    
--------------------------------------------    
--Envoi index dans variable à  minuit tous les jours
if Heure == tonumber("23") and Minute == tonumber("59")  then
  
fibaro:setGlobal("Compteur_eau_jour", compteur)  
      
fibaro:debug(indexprod)      
end
 
    
--------------------------------------------    
--Envoi index au 1er du mois    
if Jour == tonumber("01") then
 
fibaro:setGlobal("Compteur_eau_mois", compteur)       
end
    
     
-------------------------------------------- 
--Envoi index au 28/07   
if Jour == tonumber("01") and Mois == tonumber("01") then

fibaro:setGlobal("Compteur_eau_annee", compteur)   
end

    
fibaro:sleep(30*1000);    
end
end

j'ai créé la variable Compteur_eau dans le panneau et la valeur est bien remontée de l'Eco-Device... mais à priori, le VD n'arrive pas à la "traiter" comme il se doit !

 

Stef

×
×
  • Créer...