Calaos, Home Automation Forum

Full Version: Programmation fermeture partielle VR en fonction du soleil
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Je souhaite programmer mes VR pour qu'ils se ferment partiellement en fonction du soleil, afin de limiter la chaleur qui rentre par les vitrages.
C'est à dire fermeture à 70% des VR ouest le matin, du lever du soleil jusqu'à environ 14h puis réouverture et fermeture à 70% des VR coté ouest.

L'idéal serait que ça se déclenche tout seul lorsqu'il y a du soleil et qu'il fait chaud... mais j'ai pas encore trouvé de critère intelligent... sinon un bouton pour valider la condition.

Ma question c'est :comment je peux programmer ca ?
J'ai essayé de créer le script...

A noter :
- Pour simplifier je n'ai mis que 4 VR représentatifs... j'en ai 17 au total.
- Je ne connais pas la commande qui permet l'ouverture total ou l'ouverture de X% de volets... j'ai mis au pif... Confused

Comment se comporte le volet s'il est complètement ouvert et que je lui demande de s'ouvrir de 30% ?

Si quelqu'un veut bien jeter un oeil pour me corriger ? Merci d'avance.

Code:
Scénario :
Si Variable "Maison Vide" = "Vrai" alors
    Si "Variable Temps" = "beau" alors
        Si Variable "Position du Soleil " = "levé Est" alors
            Si Variable "Température Salle à Manger" <= 22°C alors
                Ouverture Totale VR
            Sinon
                Ouverture 30% VR Est et Sud
                Ouverture Totale VR Ouest et Nord
        Sinon Si "Position du Soleil " = "midi" alors
            Si Variable "Température Salle à Manger" <= 22°C alors
                Ouverture Totale VR
            Sinon
                Ouverture 30% VR Sud
                Ouverture Totale VR Est, Ouest et Nord
        Sinon Si "Position du Soleil " = "Levé Ouest" alors
            Si Variable "Température Chambre 1" <= 20°C alors
                Ouverture Totale VR
            Sinon
                Ouverture Total VR Est et Sud et Nord
                Ouverture 30% VR Ouest
Sinon
Si Variable "Position du Soleil " != "couché" alors
Ouverture Totale VR
Sinon rien
Fin du script


Code:
SCRIPT LUA :

local maison_vide = calaos:getInputValue("input_XX")
local temps = calaos:getInputValue("input_XX")
local position_soleil = calaos:getInputValue("input_XX")
local temperature_sam = calaos:getInputValue("input_XX")
local temperature_ch1 = calaos:getInputValue("input_XX")

if maison_vide = true then
   if temps = “beau” then
      if position_soleil = "levé Est" then
         if temperature_sam <= 22 then
         calaos:setOutputValue("output_xx", up 100%)        --VR Ouest
           calaos:setOutputValue("output_xx", up 100%)        --VR Est
           calaos:setOutputValue("output_xx", up 100%)        --VR Sud
         calaos:setOutputValue("output_xx", up 100%)        --VR Nord
      else
         calaos:setOutputValue("output_xx", up 100%)        --VR Ouest
         calaos:setOutputValue("output_xx", up 30%)          --VR Est
           calaos:setOutputValue("output_xx", up 30%)          --VR Sud
         calaos:setOutputValue("output_xx", up 100%)        --VR Nord
   elseif position_soleil = "midi" then
      if temperature_sam <= 22 then
         calaos:setOutputValue("output_xx", up 100%)        --VR Ouest
      calaos:setOutputValue("output_xx", up 100%)        --VR Est
         calaos:setOutputValue("output_xx", up 100%)        --VR Sud
       calaos:setOutputValue("output_xx", up 100%)        --VR Nord
      else
       calaos:setOutputValue("output_xx", up 100%)        --VR Ouest
       calaos:setOutputValue("output_xx", up 100%)        --VR Est
         calaos:setOutputValue("output_xx", up 30%)          --VR Sud
       calaos:setOutputValue("output_xx", up 100%)        --VR Nord
   elseif position_soleil = "levé OuEst" then
      if temperature_ch1 <= 20 then
         calaos:setOutputValue("output_xx", up 100%)        --VR Ouest
       calaos:setOutputValue("output_xx", up 100%)        --VR Est
         calaos:setOutputValue("output_xx", up 100%)        --VR Sud
       calaos:setOutputValue("output_xx", up 100%)        --VR Nord
      else
       calaos:setOutputValue("output_xx", up 30%)          --VR Ouest
       calaos:setOutputValue("output_xx", up 100%)        --VR Est
         calaos:setOutputValue("output_xx", up 100%)        --VR Sud
       calaos:setOutputValue("output_xx", up 100%)        --VR Nord
      end
   else
      if position_soleil != "Couché" then
      calaos:setOutputValue("output_xx", up 100%)        --VR Ouest
      calaos:setOutputValue("output_xx", up 100%)        --VR Est
         calaos:setOutputValue("output_xx", up 100%)        --VR Sud
      calaos:setOutputValue("output_xx", up 100%)        --VR Nord
      end
else
end
return true
Code:
local maison_vide = calaos:getInputValue("input_0")
local temps = calaos:getInputValue("input_0")
local position_soleil = calaos:getInputValue("input_0")
local temperature_sam = calaos:getInputValue("input_0")
local temperature_ch1 = calaos:getInputValue("input_0")

if maison_vide then
  if temps == "beau" then
     if position_soleil == "levé Est" then
        if temperature_sam <= 22 then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx","set 100")        --VR Est
        calaos:setOutputValue("output_xx","set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
          else
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 30")          --VR Est
        calaos:setOutputValue("output_xx", "set 30")          --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
     elseif position_soleil == "midi" then
        if temperature_sam <= 22 then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
        else
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 30")          --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
     elseif position_soleil == "levé OuEst" then
        if temperature_ch1 <= 20 then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
        else
        calaos:setOutputValue("output_xx", "set 30")          --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
        end
     else
        if position_soleil ~= "Couché" then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
  end
 end
end
return true
Merci Diouk pour les corrections ! Cool j'avais pas trop d'erreur... Big Grin Tongue Cool

Du coup une question me vient :
Pour "calaos: setOutputValue("output_xx", "set 30")", on demande au VR de se mettre a 30%... mais du coup on peut prendre indifféremment "l'output" de montée ou de descente ? Est-ce que le système comprend que c'est 30% d'ouverture ou de fermeture suivant si je prend la montée ou la descente ? Huh
l'output correspond a l'id de la sortie et non à la variable montée ou descente.
PS : je n'ai pas regardé si ton code fonctionnait sur le principe, juste corrigé ce qui me semblait faux
Ah oui autant pour moi... je teste ca dès que j'ai un moment et je vous tiens au jus !
PS : bon ben je verrai bien pdt les tests.. Blush
(10-02-2015, 01:04 PM)diouk Wrote: [ -> ]
Code:
local maison_vide = calaos:getInputValue("input_0")
local temps = calaos:getInputValue("input_0")
local position_soleil = calaos:getInputValue("input_0")
local temperature_sam = calaos:getInputValue("input_0")
local temperature_ch1 = calaos:getInputValue("input_0")

if maison_vide then
  if temps == "beau" then
     if position_soleil == "levé Est" then
        if temperature_sam <= 22 then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx","set 100")        --VR Est
        calaos:setOutputValue("output_xx","set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
          else
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 30")          --VR Est
        calaos:setOutputValue("output_xx", "set 30")          --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
     elseif position_soleil == "midi" then
        if temperature_sam <= 22 then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
        else
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 30")          --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
     elseif position_soleil == "levé OuEst" then
        if temperature_ch1 <= 20 then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
        else
        calaos:setOutputValue("output_xx", "set 30")          --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
        end
     else
        if position_soleil ~= "Couché" then
        calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
        calaos:setOutputValue("output_xx", "set 100")        --VR Est
        calaos:setOutputValue("output_xx", "set 100")        --VR Sud
        calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
  end
 end
end
return true

Il ne te manquerait pas une condition pour fermer les volets si >22°C ??

Je fonctionne avec un principe similaire depuis une bonne année mais pas en script (j'ai utilisé la bonne vielle méthode)
Ça m’allégerait ma conf de faire un script. Par contre j'utilise la fonction thermostat càd que je peux choisir la température que je souhaite avec le + ou - 

est il possible de faire ca en script ?

De plus est il possible de connaitre la position des volets ? (s'ils sont à 0% 30% ou 100% ??) ca me servirait pour un autre scénario
(10-06-2015, 06:02 PM)tom Wrote: [ -> ]
(10-02-2015, 01:04 PM)diouk Wrote: [ -> ]
Code:
         if temperature_sam <= 22 then
           calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
           calaos:setOutputValue("output_xx","set 100")        --VR Est
           calaos:setOutputValue("output_xx","set 100")        --VR Sud
           calaos:setOutputValue("output_xx", "set 100")        --VR Nord
          else
           calaos:setOutputValue("output_xx", "set 100")        --VR Ouest
           calaos:setOutputValue("output_xx", "set 30")          --VR Est
           calaos:setOutputValue("output_xx", "set 30")          --VR Sud
           calaos:setOutputValue("output_xx", "set 100")        --VR Nord
     end
    

Il ne te manquerait pas une condition pour fermer les volets si >22°C ??

Je fonctionne avec un principe similaire depuis une bonne année mais pas en script (j'ai utilisé la bonne vielle méthode)
Ça m’allégerait ma conf de faire un script. Par contre j'utilise la fonction thermostat càd que je peux choisir la température que je souhaite avec le + ou - 

est il possible de faire ca en script ?

De plus est il possible de connaitre la position des volets ? (s'ils sont à 0% 30% ou 100% ??) ca me servirait pour un autre scénario

Non, la condition y est bien dans ce script :

          Si la Température est <22°C alors
                          j'ouvre à 100% tous les volets
          Sinon (donc si T>22°C)
                          j'ouvre à 30% les volets côté soleil et 100% les autres

Je pense oui que tu peux choisir ta température, il doit suffire de donner ta valeur à une variable et de t'en servir dans le script.

Tu connais la position des volets par l'id du VR, tu peux donc l'utiliser dans d'autres scripts
Avec l'id du VR tu peux récuperer la position en % ?
J'ai peut etre dit un co*****ie.... Blush  avec l'id non, mais vu que le système sait en permanence où se trouve ton VR, il doit bien y avoir une variable qui conserve cette valeur. On doit pouvoir la trouver, je suppose dans les paramètres du VR. Je regarde ce soir... si un "Pro de Calaos" passe par là et connait la réponse... Tongue
Pages: 1 2