Installation domotique de Oula

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 !
oula85
Messages : 159
Enregistré le : 29 avr. 2015, 18:09
Localisation : Challans

Re: Installation domotique de Oula

Message par oula85 » 03 févr. 2020, 22:37

Code : Tout sélectionner

-- script domoticz/scripts/lua/script_device_compteurHC-HP.lua

-- Initialisation des variables locales
local capteurGlobal = uservariables['CapteurGlobal']
local capteurCptHP = uservariables['CapteurCptHP']
local capteurCptHC = uservariables['CapteurCptHC']
local idxCptHP = uservariables['IdxCptHP']
local idxCptHC = uservariables['IdxCptHC']
local flagHC = uservariables['FlagHC']
local flagHP = uservariables['FlagHP']
local lastValueCptElecGlobal = uservariables['LastValueCptElecGlobal']

-- Mode debug Oui / Non
local debug = uservariables['debug']

-- Fonction de mise à jour
function update(device, id, power, energy, index)
    commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
    return
end

commandArray = {} 

-- On prend en compte a chaque changement de valeur du compteur global
if (devicechanged[capteurGlobal]) then
    if (debug == 'OUI') then
        print('-- Calcul Compteurs HC / HP --')
        print('CapteurGlobal = '..capteurGlobal)
        print('CapteurCptHP = '..capteurCptHP)
        print('CapteurCptHC = '..capteurCptHC)
        print('idxCptHP = '..tostring(idxCptHP))
        print('idxCptHC = '..tostring(idxCptHC))
        print('flagHP = '..tostring(flagHP))
        print('flagHC = '..tostring(flagHC))
        print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))
    end 
    
    -- Recuperation des valeurs du compteur global
    local consoCumule
    local consoInstant
    consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;]+);([^;]+)")
    consoInstant = tonumber(consoInstant)
    consoCumule = tonumber(consoCumule) 
    
    if (debug == 'OUI') then
        print('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
    end

    -- Calcul de l'ecart avec le dernier envoi de donnees
    lastValueCptElecGlobal = tonumber(lastValueCptElecGlobal)
    local consoDelta = consoCumule - lastValueCptElecGlobal

    if (debug == 'OUI') then
        print('Delta conso = '..tostring(consoDelta))
    end

    local consoCumuleCible
    local consoInstantCible 

    if (otherdevices[flagHC] == 'On') then
        -- Periode heures creuse
        -- Recuperation des valeurs du compteur global
        consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
        -- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
        consoCumuleCible = tonumber(consoCumuleCible)

        if (debug == 'OUI') then
            print('Compteur cible = HC')
            print('Valeur precedente = '..tostring(consoCumuleCible))
            print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
        end

        consoCumuleCible = consoCumuleCible + consoDelta
        -- Mise à jour du compteur
        update(capteurCptHC, idxCptHC, consoInstant, consoCumuleCible, 1)

        -- Mise à 0 de la conso intantanee du compteur HP
        consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
        consoInstantHP = 0
        update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 2)
    else     
        -- Periode heures pleines
        -- Recuperation des valeurs du compteur global
        consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
        -- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
        consoCumuleCible = tonumber(consoCumuleCible)

        if (debug == 'OUI') then
            print('Compteur cible = HP')
            print('Valeur precedente = '..tostring(consoCumuleCible))
            print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
        end

        consoCumuleCible = consoCumuleCible + consoDelta
        -- Mise à jour du compteur
        update(capteurCptHP, idxCptHP, consoInstant, consoCumuleCible, 3)

        -- Mise à 0 de la conso intantanee du compteur HC
        consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
        consoInstantHC = 0
        update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 4)
    end

    -- Sauvegarde de la valeur du compteur global pour prochain calcul
    commandArray['Variable:LastValueCptElecGlobal'] = tostring(consoCumule)

    if (debug == 'OUI') then
        print('-- Fin Calcul Compteur HC / HP --')
    end
end

return commandArray 

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


oula85
Messages : 159
Enregistré le : 29 avr. 2015, 18:09
Localisation : Challans

Re: Installation domotique de Oula

Message par oula85 » 03 févr. 2020, 22:40

Code : Tout sélectionner

--script_time_doublage.lua
--Permet toutes les 15 minutes de renvoyer la commande actuelle sensée etre appliquée aux modules en 433 ( sans retour d'etat )
 
 
commandArray = {}
 
--recupere les minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
hours=tonumber(os.date('%H',time))
 
 
 
-------Toutes les 15 minutes
------------------------------------------------------------------------
 
if( (minutes==21) or (minutes==06) or (minutes==36) or (minutes==51) ) then
 
 
 
 --------Renforcement des envois de signal-------------------------------------
 ------------------------------------------------------------------------------
   print('check de tous les materiels rfxcom (sans retour d\'etat)');
 
 
   local check={}
   --Chauffage
   check['0']='Module Salon'
   check['1']='Module Cuisine'
   check['2']='Module Chambre 1'
   check['3']='Module Chambre 2'
   check['4']='Lampe Salon'
 
   --Parcours le Tableau
   for key, valeur in pairs(check) do
      print ('CHECK : '..valeur.. ' -> ' ..otherdevices[valeur])
      commandArray[valeur]=otherdevices[valeur]
   end
 
 
 --------FIN Renforcement des envois de signal-------------------------------------
 ------------------------------------------------------------------------------
 
 
 
 
end 
 
-------FIN Toutes les 15 minutes
------------------------------------------------------------------------

Répondre