Aller au contenu

Allumer les bobines électriques en cas de surplus de la centrale photovoltaïque


Rombaj

Messages recommandés

Bonjour,
pourriez-vous m'aider avec la scène? Je suis un débutant complet et je ne sais pas ce que je fais mal. La scène est allumée pendant 15 minutes puis éteinte pendant 15 minutes. Comment peut-il être réglé pour s'allumer pendant 15 minutes et se rallumer après 1 minute ? J'avoue que je n'ai pas écrit cette scène, mais je veux utiliser l'énergie au maximum.

Bien merci

 

-- Binary switch type should handle actions turnOn, turnOff
-- To update binary switch state, update property "value" with boolean
 
function QuickApp:onInit()
    self:debug("onInit")
 
    self:run();
end
 
function QuickApp:turnOn()
    self:updateProperty("value"true)   
 
    self:run();
end
 
function QuickApp:turnOff()
    self:updateProperty("value"false)
 
    -- Turn all coils off
    fibaro.call(541,'turnOff'-- 2000w
    fibaro.call(531,'turnOff'-- 1200w
    fibaro.call(647,'turnOff'--  600w
    fibaro.call(645,'turnOff'--  300w
end
 
function QuickApp:run()
    -- 69 is Quick app ID
    if fibaro.getValue(693,"value"then
        self:DoActions()
    end
 
    -- Timer for 15 minutes
    fibaro.setTimeout(
        15 * 60000,
        function() 
            self:run()
        end
    )
end
 
function QuickApp:DoActions()
    -- 497 is production meter ID
    local currentPower = fibaro.getValue(497,"value")
 
    if currentPower > 4415 then
        -- Turn on all needed coils
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(531,'turnOn'-- 1200w
        fibaro.call(647,'turnOn'--  600w
        fibaro.call(645,'turnOn'--  300w
 
    elseif currentPower > 4070 then
        -- Turn on all needed coils
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(531,'turnOn'-- 1200w
        fibaro.call(647,'turnOn'--  600w
 
        -- Turn off all not needed coils
        fibaro.call(645,'turnOff'-- 300w
 
    elseif currentPower > 3750 then
        -- Turn on all needed coils
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(531,'turnOn'-- 1200w
        fibaro.call(645,'turnOn'--  300w
 
        -- Turn off all not needed coils
        fibaro.call(647,'turnOff'-- 600w
 
    elseif currentPower > 3400 then
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(531,'turnOn'-- 1200w
 
        -- Turn off all not needed coils
        fibaro.call(647,'turnOff'-- 600w
        fibaro.call(645,'turnOff'--  300w
 
    elseif currentPower > 3220 then
        -- Turn on all needed coils
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(647,'turnOn'--  600w
        fibaro.call(645,'turnOn'-- 300w
 
        -- Turn off all not needed coils
        fibaro.call(531,'turnOff'-- 1200w
 
    elseif currentPower > 2870 then
        -- Turn on all needed coils
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(647,'turnOn'--  600w
 
        -- Turn off all not needed coils
        fibaro.call(531,'turnOff'-- 1200w
        fibaro.call(645,'turnOff'-- 300w
 
    elseif currentPower > 2550 then
        -- Turn on all needed coils
        fibaro.call(541,'turnOn'-- 2000w
        fibaro.call(645,'turnOn'-- 300w
 
        -- Turn off all not needed coils
        fibaro.call(531,'turnOff'-- 1200w
        fibaro.call(647,'turnOff'--  600w
 
    elseif currentPower > 2200 then
        fibaro.call(541,'turnOn'-- 2000w
 
        -- Turn off all not needed coils
        fibaro.call(531,'turnOff'-- 1200w
        fibaro.call(647,'turnOff'--  600w
        fibaro.call(645,'turnOff'-- 300w
 
    elseif currentPower > 1870 then
        fibaro.call(531,'turnOn'-- 1200w
        fibaro.call(647,'turnOn'--  600w
 
        -- Turn off all not needed coils
        fibaro.call(541,'turnOff'-- 2000w
        fibaro.call(645,'turnOff'-- 300w
 
    elseif currentPower > 1550 then
        fibaro.call(531,'turnOn'-- 1200w
        fibaro.call(645,'turnOn'-- 300w
 
        -- Turn off all not needed coils
        fibaro.call(647,'turnOff'--  600w
        fibaro.call(541,'turnOff'-- 2000w
 
    elseif currentPower > 1200 then
        fibaro.call(531,'turnOn'-- 1200w
 
        -- Turn off all not needed coils
        fibaro.call(645,'turnOff'-- 300w
        fibaro.call(541,'turnOff'-- 2000w
        fibaro.call(647,'turnOff'--  600w
 
    elseif currentPower > 980 then
        fibaro.call(647,'turnOn'--  600w
        fibaro.call(645,'turnOn'-- 300w
 
        -- Turn off all not needed coils
        fibaro.call(541,'turnOff'-- 2000w
        fibaro.call(531,'turnOff'-- 1200w
 
    elseif currentPower > 640 then
        fibaro.call(647,'turnOn'--  600w
 
        -- Turn off all not needed coils
        fibaro.call(645,'turnOff'-- 300w
        fibaro.call(541,'turnOff'-- 2000w
        fibaro.call(531,'turnOff'-- 1200w
 
    elseif currentPower > 330 then
        fibaro.call(645,'turnOn'-- 300w
 
        -- Turn off all not needed coils
        fibaro.call(541,'turnOff'-- 2000w
        fibaro.call(531,'turnOff'-- 1200w
        fibaro.call(647,'turnOff'--  600w
    else
        -- Turn all coils off
        fibaro.call(541,'turnOff'-- 2000w
        fibaro.call(531,'turnOff'-- 1200w
        fibaro.call(647,'turnOff'--  600w
        fibaro.call(645,'turnOff'--  300w
    end   
end
Lien vers le commentaire
Partager sur d’autres sites

pour info dans la HC3/HC3L, il y a deux automatismes : des <Scènes> et des <QuickApp>.

 

Ce que tu as donné comme code, cela concerne un QuickApp, et pas une scène ...

 

Maintenant, il est nulle part fait référence dans le code à un timer de 1 min, mais seulement de 15 min.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...