Page 2 sur 2

Re: [Résolu] SonOff SNZB-02 / ZiGate

Publié : 01 déc. 2022, 23:10
par Keros
Un petit projet qui te permettrait de faire de grandes choses plus tard ;)

N'hésite pas à continuer ce sujet si tu as d'autres difficultés.

Bonne continuation.

Re: [Résolu] SonOff SNZB-02 / ZiGate

Publié : 02 déc. 2022, 09:27
par pacofrancisco
Exactement, depuis que je me suis mis à utiliser dzVents, j'ai pu créer des fonctionnalités bien particulières, que l'interface graphique ne permet absolument pas !
Je vais avancer en essayant d'utiliser les fonctions data de dzvents pour avoir des valeurs moyennes d'humidité et/ou température sur des périodes données.
L'idée m'est venue en lisant le script disponible ici https://github.com/msvds/dzVents_v2/blo ... midity.lua

Re: [Résolu] SonOff SNZB-02 / ZiGate

Publié : 06 déc. 2022, 19:33
par pacofrancisco
salut tout le monde.
J'ai mis en oeuvre le script permettant d'automatiser le fonctionnement de la ventilation en fonction de detecteurs de présence et également avec une mesure de taux d'humidité moyenne dans différentes pièces.

J'ai créé pour ce faire 2 scripts, l'un pour les detecteurs de mouvement de WC, l'autre pour l'humidité dans les pièces type salle de bains & autres.

Le premier :

Code : Tout sélectionner

return 
 {
        logging = {marker = "script_WC_detector"},
        on = 
        {
            devices = {
            'Detecteur WC 1',
            'Detecteur WC 2'
            ,
            }
        },
        execute = function(domoticz, switch)
            local tempo_VMC = 20
            local VMC = 'VMC Switch'
            if (switch.state == 'On')
               then
                    if (domoticz.devices(VMC)._state == 'On') 
                        then
                            domoticz.devices(VMC).switchOff().afterMin(tempo_VMC)
                        else
                            domoticz.devices(VMC).switchOn().forMin(tempo_VMC)
                    end
               end
        end
 }
Le second :

Code : Tout sélectionner

return {
    active = true, -- set to false to disable this script
	logging = {marker = "script_device_humidity"},
	on = {
		timer = {'every 1 minutes'}
	},
	
	data = {
        PIECE1 = { history = true, maxItems = 5 },
        PIECE2 = { history = true, maxItems = 5 },
        PIECE3 = { history = true, maxItems = items }
    },
	execute = function(domoticz, device)

	    --#########
	    --VARIABLES
	    --#########
	    local items = 5
	    local tempo_VMC = 45
	    local VMC = 'VMC Switch'
	    local seuil_humidite = 65

	    -- add new data
	    domoticz.data.PIECE1.add(domoticz.devices('capteur1').humidity)
	    domoticz.data.PIECE2.add(domoticz.devices('capteur2').humidity)
	    domoticz.data.PIECE3.add(domoticz.devices('capteur3').humidity)

    if  ( (domoticz.data.PIECE1.avg() > seuil_humidite) or (domoticz.data.PIECE2.avg() > seuil_humidite) or (domoticz.data.PIECE3.avg() > seuil_humidite))
       then
            if (domoticz.devices(VMC).active) 
                then
                    domoticz.devices(VMC).switchOff().afterMin(tempo_VMC)
                    domoticz.log("PROLONGATION VMC : L'humidité de la PIECE1 sur les " .. items .. " dernières minutes est de " .. domoticz.data.sdb.avg() .. ".",domoticz.LOG_INFO)
                    domoticz.log("PROLONGATION VMC : L'humidité de la PIECE2 sur les " .. items .. " dernières minutes est de " .. domoticz.data.sdd.avg() .. ".",domoticz.LOG_INFO)
                    domoticz.log("PROLONGATION VMC : L'humidité de la PIECE3 sur les " .. items .. " dernières minutes est de " .. domoticz.data.sdd.avg() .. ".",domoticz.LOG_INFO)
                else
                    domoticz.devices(VMC).switchOn().forMin(tempo_VMC)
                    domoticz.log("DEMARRAGE VMC : L'humidité de la PIECE1 sur les " .. items .. " dernières minutes est de " .. domoticz.data.PIECE1.avg() .. ".",domoticz.LOG_INFO)
                    domoticz.log("DEMARRAGE VMC : L'humidité de la PIECE2 sur les " .. items .. " dernières minutes est de " .. domoticz.data.PIECE2.avg() .. ".",domoticz.LOG_INFO)
                    domoticz.log("DEMARRAGE VMC : L'humidité de la PIECE3 sur les " .. items .. " dernières minutes est de " .. domoticz.data.PIECE3.avg() .. ".",domoticz.LOG_INFO)
            end
        else
            domoticz.log("L'humidité de la PIECE1 sur les " .. items .. " dernières minutes est de " .. domoticz.data.PIECE1.avg() .. ".",domoticz.LOG_INFO)
	        domoticz.log("L'humidité de la PIECE2 sur les " .. items .. " dernières minutes est de " .. domoticz.data.PIECE2.avg() .. ".",domoticz.LOG_INFO)
	        --domoticz.log("L'humidité de la PIECE3 sur les" .. items .. " dernières minutes est de " .. domoticz.data.PIECE3.avg() .. ".",domoticz.LOG_INFO)
    end
end
}