[Résolu] SonOff SNZB-02 / ZiGate

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
pacofrancisco
Messages : 65
Inscription : 15 avr. 2021, 16:31

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

Message 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
pacofrancisco
Messages : 65
Inscription : 15 avr. 2021, 16:31

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

Message 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
}
Répondre