Aller au contenu

Fermeture Volet Au Coucher Du Soleil


Peter

Messages recommandés

Oui pour le -5 ce code sert a fermé le volet si la porte et fermer. Attention le volet ce fermera si tu ferme la porte que si il fait nuit

Il faut que les minutes soit dans les 2 scène.

Je debut en lua j'ai commencer fin janvier 2015 et ca fais 2 miis que je ne programme plus beaucoup

Envoyé de mon SM-G900F

Lien vers le commentaire
Partager sur d’autres sites

Ok,c'est bien ce que j'avais compris

Et bien chapeau car cela fait que 5mois et demis et tu assure au niveaux codage en lua j'espère avoir ton niveau dans 5mois

La scene vient de fonctionner les volet ce sont fermer sauf la baie 2 qui est en alerte et pour tester je l'ai fermer nickel le volet Se ferme

Maintenant je vais me servi de ton code pour allumer les lumières àla fermeture des volet mais la je me débrouille tout seul

Si je sèche je t'appellerai a l'aide

Je ne le dirais pas assez MERCI À TOI pour toute ton aide

Lien vers le commentaire
Partager sur d’autres sites

Hello mprinfo désoler mais je vais t’embêter encore un peut 

sur la scene que tu m'as fais le volet de la baie 2 ne ce ferme pas quand on ferme la baie 2 et que la variable est bien passé a nuit

je cherche d'ou cela peut bien provenir n'ai sans succé je te remet la scene complette si tu peur jeté un coup d'oeil

--[[
%% globals
SoleilLever
SoleilCoucher
%% properties
179 value
--]]
local mesvolets ={
["Volet Ch Parents"] = 117,
["Volet CH Lily"] = 108,
["Baie 1"] = 73,
["Baie 2"] = 75,
["Volet 3"] = 77,
["Volet Bureau"] = 28,
}
-- Table Zone (Groupes de modules)
local RDC = {"Volet Bureau", "Baie 1", "Volet 3"}
local Etage = {"Volet CH Lily", "Volet Ch Parents"}
 
--------------------------------------------------------------------------
local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil
local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil
--local Heure = "Heure" --> Nom de la variable globale Heure
--local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo
--local IdTel = fibaro:getGlobalValue("IdTel") -- Recuperation de id du tel pour le push
local IdTel = 164
local JourNuit = fibaro:getGlobalValue("Jour_Nuit")
--------------------------------------------------------------------------
local Pause = 3 -- Temp de pause entre chaque commande de modules en seconde
 
----------------------------------------------------------------------
-- Envoi d'un Push pour avertir que le box à  démarrer ou redémarrer --
----------------------------------------------------------------------
function EnvoiPush(Message)
fibaro:debug("Envoi Push : "..Message)
if Idtel ~= nil then
fibaro:call(IdTel, "sendPush", Message)
else
fibaro:debug("Il n'y a aucun tel enregistré")
end
end
 
-----------------------------------------------------------------------
-- Test si la valeur a enoyer est différente de la valeur du module
-----------------------------------------------------------------------
function testvaleur(id, valeurs)
local GetValeur = tonumber(fibaro:getValue(id, "value"))
if valeurs ~= GetValeur then
fibaro:call(id, "setValue", valeurs)
--fibaro:debug(id.." - action en cours... - Valeur "..valeurs)
fibaro:sleep(Pause*1000)
end
end
----------------------------------------------------------------------------
-- Recupération de l'id par rapport au nom de la tables mesvolets
----------------------------------------------------------------------------
function volets(zone, valeurs)
if (type(zone) == "table") then
local messages = "Les "..#zone.." Volets : "
for i,v in ipairs(zone) do
messages = (messages..v..", ")
local id = mesvolets[v]
if id == nil then
fibaro:debug("ERREUR NOM DU VOLET - "..v.." - dans une table")
EnvoiPush("ERREUR NOM DU VOLET - "..v.." - dans une table")
else
testvaleur(id, valeurs)
end
end
messages = (messages.."ont été actionnés à  "..valeurs.."%")
EnvoiPush(messages)
elseif (type(zone) == "string") then
local id = mesvolets[zone]
if id == nil then
fibaro:debug("ERREUR DANS LE NOM DU VOLET : "..zone)
EnvoiPush("EERREUR DANS LE NOM DU VOLET : "..zone)
else
testvaleur(id, valeurs)
EnvoiPush("Le volet : "..zone.." a été actionné à  "..valeurs.."%")
end
else
fibaro:debug("Erreur......")
EnvoiPush("Erreur......")
end
end
 
--------------------------------------------------------------------
-- test si le déclencheur est lever ou coucher du soleil
--------------------------------------------------------------------
function Test(zone, valeurs, minutes)
if zone ~= nil then
if minutes == nil then;
minutes = 0
end
volets(zone, valeurs)
else
fibaro:debug("Erreur dans la table ou table inéxitante")
EnvoiPush("Erreur dans la table ou table inéxitante")
end
end
 
--------------------------------------------------------------------
-- test Lever
--------------------------------------------------------------------
function lever(zone, valeurs, minutes, Jchome)
if nomTrigger == nomLever and valeurTrigger == minutes then
if Jchome == JourChome or Jchome == nil then
Test(zone, valeurs, minutes)
end
end
end
 
--------------------------------------------------------------------
-- test Coucher
--------------------------------------------------------------------
function coucher(zone, valeurs, minutes, Jchome)
if nomTrigger == nomCoucher and valeurTrigger == minutes then
if Jchome == JourChome or Jchome == nil then
Test(zone, valeurs, minutes)
end
end
end
--------------------------------------------------------------------
-- test Heure
--------------------------------------------------------------------
function heure(zone, valeurs, minutes, Jchome)
if nomTrigger == Heure and valeurTrigger == minutes then
if Jchome == JourChome or Jchome == nil then
Test(zone, valeurs, minutes)
end
end
end
 
--------------------------------------------------------------------------
-- Demarrage du programme
--------------------------------------------------------------------------
local trigger = fibaro:getSourceTrigger()
 
if (trigger['type'] == 'global') then
nomTrigger = trigger['name']
valeurTrigger = tonumber(fibaro:getGlobalValue(nomTrigger))
print("Nom du déclencheur = ", nomTrigger, " - Minutes : ", valeurTrigger)
elseif (trigger['type'] == 'property') then
if JourNuit == "Nuit" then
if tonumber(fibaro:getValue(179, "value")) == 0 then
testvaleur("Baie 2", 0)
end
end
     fibaro:abort();
else
     fibaro:debug("La scéne ne peut être lancer que par une Variable Globale")    
 
     fibaro:abort();      -- cela permet de lancer la scène manuellement
  
 -- nomTrigger = "SoleilCoucher"
  
-- valeurTrigger = -5
  
end
 
-------------------------------------------------------------------------
-- Ne rien modifier au dessus de cette ligne
-------------------------------------------------------------------------
-- Commandes a écrit pour lever du soleil
-- lever (Funtion qui traite le lever du soleil
-- coucher(zone, valeur, minutes)
-- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever
-- lever(Rue, 80, -10)
-- exemple pour actionné le volet "Bureau" au lever du jour
-- lever("Bureau", 99, 0)
-- Pour actionner un volet au coucher du soleil
-- Il faut remplacer lever par coucher
-- ex : coucher(Rue, 0, 20)
------------------------------------------------------------------------
-- Vous pouvez entrer vos commande en dessous de cette ligne
------------------------------------------------------------------------
-- si Baie 2 fermer alors fermer volet
if tonumber(fibaro:getValue(179, "value")) == 0 then
coucher("Baie 2", 0, -5)
end -- fin test baie 2 fermer
coucher(RDC, 0, 0)
coucher(Etage, 0, 0)
 

Moi je pense que cela vient du trigger journuit mais je suis pas sure car la variable et écrite comme cela Jour_Nuit dans le panneau variable mais dans le code de la scène elle est orthographié JourNuit en plus il y a une ereure dans le debug je te le met aussi (j'ai crée une variable prédéfinie IdTel=185, 164

mais le  puhs ne fonctionne pas sur cette scene alor qu'il fonctionne sur la scene jour nuit ?

 

regard que quand tu as le temps car moi en ce moment je ne l'ai pas ou tres peu

le debug

Nettoyer
[ERROR] 23:33:48: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)
[ERROR] 08:09:50: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)
[ERROR] 08:09:56: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)
[ERROR] 08:10:24: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)
[ERROR] 08:26:22: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)
[ERROR] 08:28:37: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)
[ERROR] 08:28:46: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:252: attempt to concatenate local 'deviceID' (a nil value)

D'avance merci de ton savoir et de ton aide

Lien vers le commentaire
Partager sur d’autres sites

Ok alors bon courage et si il t'en reste ( du courage) je t'invite àvenir faire mes murs de clôtures

Car je repousse depuis la construction de la maison.

Mais il faudra bien le faire quand même

Bonne soirée et bon courage.

Lien vers le commentaire
Partager sur d’autres sites

Ok tu doit avoir une belle dépendance

Nous sur la rochelle l'immobilier est trop chez nous on a fait faire le hors d'eau hors d'air de notre maison bois et j'ai fait tout le reste

(Elec,plomb,cet..)

Il me reste les extérieures et la piscine apres c'est fini

Alors bon courage

Lien vers le commentaire
Partager sur d’autres sites

Moi j'ai presque tout fais sauf l'électricité. Les plafonds en plâtres traditionnel car je ne supporte pas les plafonds en ba13 et la plomberie. Je souhaite bon courage car les intérieurs ces du boulot

Envoyé de mon SM-G900F

Lien vers le commentaire
Partager sur d’autres sites


--[[

%% globals

SoleilLever

SoleilCoucher

%% properties

179 value

--]]

local mesvolets ={

["Volet Ch Parents"] = 117,

["Volet CH Lily"] = 108,

["Baie 1"] = 73,

["Baie 2"] = 75,

["Volet 3"] = 77,

["Volet Bureau"] = 28,

}

-- Table Zone (Groupes de modules)

local RDC = {"Volet Bureau", "Baie 1", "Volet 3"}

local Etage = {"Volet CH Lily", "Volet Ch Parents"}

--------------------------------------------------------------------------

local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil

local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil

--local Heure = "Heure" --> Nom de la variable globale Heure

--local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo

local IdTel = fibaro:getGlobalValue("IdTel") -- Recuperation de id du tel pour le push

local JourNuit = fibaro:getGlobalValue("Jour_Nuit")

--------------------------------------------------------------------------

local Pause = 0 -- Temp de pause entre chaque commande de modules en seconde

----------------------------------------------------------------------

-- Envoi d'un Push pour avertir que le box àdémarrer ou redémarrer --

----------------------------------------------------------------------

function EnvoiPush(Message)

fibaro:debug("Envoi Push : "..Message)

if Idtel ~= nil then

fibaro:call(IdTel, "sendPush", Message)

else

fibaro:debug("Il n'y a aucun tel enregistré")

end

end

-----------------------------------------------------------------------

-- Test si la valeur a enoyer est différente de la valeur du module

-----------------------------------------------------------------------

function testvaleur(id, valeurs)

local GetValeur = tonumber(fibaro:getValue(id, "value"))

if valeurs ~= GetValeur then

fibaro:call(id, "setValue", valeurs)

--fibaro:debug(id.." - action en cours... - Valeur "..valeurs)

fibaro:sleep(Pause*1000)

end

end

----------------------------------------------------------------------------

-- Recupération de l'id par rapport au nom de la tables mesvolets

----------------------------------------------------------------------------

function volets(zone, valeurs)

if (type(zone) == "table") then

local messages = "Les "..#zone.." Volets : "

for i,v in ipairs(zone) do

messages = (messages..v..", ")

local id = mesvolets[v]

if id == nil then

fibaro:debug("ERREUR NOM DU VOLET - "..v.." - dans une table")

EnvoiPush("ERREUR NOM DU VOLET - "..v.." - dans une table")

else

testvaleur(id, valeurs)

end

end

messages = (messages.."ont été actionnés à"..valeurs.."%")

EnvoiPush(messages)

elseif (type(zone) == "string") then

local id = mesvolets[zone]

if id == nil then

fibaro:debug("ERREUR DANS LE NOM DU VOLET : "..zone)

EnvoiPush("EERREUR DANS LE NOM DU VOLET : "..zone)

else

testvaleur(id, valeurs)

EnvoiPush("Le volet : "..zone.." a été actionné à"..valeurs.."%")

end

else

fibaro:debug("Erreur......")

EnvoiPush("Erreur......")

end

end

--------------------------------------------------------------------

-- test si le déclencheur est lever ou coucher du soleil

--------------------------------------------------------------------

function Test(zone, valeurs, minutes)

if zone ~= nil then

if minutes == nil then;

minutes = 0

end

volets(zone, valeurs)

else

fibaro:debug("Erreur dans la table ou table inéxitante")

EnvoiPush("Erreur dans la table ou table inéxitante")

end

end

--------------------------------------------------------------------

-- test Lever

--------------------------------------------------------------------

function lever(zone, valeurs, minutes, Jchome)

if nomTrigger == nomLever and valeurTrigger == minutes then

if Jchome == JourChome or Jchome == nil then

Test(zone, valeurs, minutes)

end

end

end

--------------------------------------------------------------------

-- test Coucher

--------------------------------------------------------------------

function coucher(zone, valeurs, minutes, Jchome)

if nomTrigger == nomCoucher and valeurTrigger == minutes then

if Jchome == JourChome or Jchome == nil then

Test(zone, valeurs, minutes)

end

end

end

--------------------------------------------------------------------

-- test Heure

--------------------------------------------------------------------

function heure(zone, valeurs, minutes, Jchome)

if nomTrigger == Heure and valeurTrigger == minutes then

if Jchome == JourChome or Jchome == nil then

Test(zone, valeurs, minutes)

end

end

end

--------------------------------------------------------------------------

-- Demarrage du programme

--------------------------------------------------------------------------

local trigger = fibaro:getSourceTrigger()

if (trigger['type'] == 'global') then

nomTrigger = trigger['name']

valeurTrigger = tonumber(fibaro:getGlobalValue(nomTrigger))

print("Nom du déclencheur = ", nomTrigger, " - Minutes : ", valeurTrigger)

elseif (trigger['type'] == 'property') then

if JourNuit == "Nuit" then

if tonumber(fibaro:getValue(179, "value")) == 0 then

volets("Baie 2", 0)

end

end

fibaro:abort();

else

fibaro:debug("La scéne ne peut être lancer que par une Variable Globale")

fibaro:abort();

-- nomTrigger = "SoleilCoucher"

-- valeurTrigger = -5

end

-------------------------------------------------------------------------

-- Ne rien modifier au dessus de cette ligne

-------------------------------------------------------------------------

-- Commandes a écrit pour lever du soleil

-- lever (Funtion qui traite le lever du soleil

-- coucher(zone, valeur, minutes)

-- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever

-- lever(Rue, 80, -10)

-- exemple pour actionné le volet "Bureau" au lever du jour

-- lever("Bureau", 99, 0)

-- Pour actionner un volet au coucher du soleil

-- Il faut remplacer lever par coucher

-- ex : coucher(Rue, 0, 20)

------------------------------------------------------------------------

-- Vous pouvez entrer vos commande en dessous de cette ligne

------------------------------------------------------------------------

-- si Baie 2 fermer alors fermer volet

if tonumber(fibaro:getValue(179, "value")) == 0 then

coucher("Baie 2", 0, -5)

end -- fin test baie 2 fermer

coucher(Etage, 0, 10)

Lien vers le commentaire
Partager sur d’autres sites


--[[

%% globals

SoleilLever

SoleilCoucher

%% properties

179 value

--]]

local mesvolets ={

["Volet Ch Parents"] = 117,

["Volet CH Lily"] = 108,

["Baie 1"] = 73,

["Baie 2"] = 75,

["Volet 3"] = 77,

["Volet Bureau"] = 28,

}

-- Table Zone (Groupes de modules)

local RDC = {"Volet Bureau", "Baie 1", "Volet 3"}

local Etage = {"Volet CH Lily", "Volet Ch Parents"}

--------------------------------------------------------------------------

local nomLever = "SoleilLever" --> Nom de la Variable Globale lever soleil

local nomCoucher = "SoleilCoucher" --> Nom de la Variable Globale coucher soleil

--local Heure = "Heure" --> Nom de la variable globale Heure

--local JourChome = fibaro:getGlobalValue("JourChome") --> Nom de la variable Module Virtuel Hansloo

local IdTel = fibaro:getGlobalValue("IdTel") -- Recuperation de id du tel pour le push

local JourNuit = fibaro:getGlobalValue("Jour_Nuit")

--------------------------------------------------------------------------

local Pause = 0 -- Temp de pause entre chaque commande de modules en seconde

----------------------------------------------------------------------

-- Envoi d'un Push pour avertir que le box àdémarrer ou redémarrer --

----------------------------------------------------------------------

function EnvoiPush(Message)

fibaro:debug("Envoi Push : "..Message)

if Idtel ~= nil then

fibaro:call(IdTel, "sendPush", Message)

else

fibaro:debug("Il n'y a aucun tel enregistré")

end

end

-----------------------------------------------------------------------

-- Test si la valeur a enoyer est différente de la valeur du module

-----------------------------------------------------------------------

function testvaleur(id, valeurs)

local GetValeur = tonumber(fibaro:getValue(id, "value"))

if valeurs ~= GetValeur then

fibaro:call(id, "setValue", valeurs)

--fibaro:debug(id.." - action en cours... - Valeur "..valeurs)

fibaro:sleep(Pause*1000)

end

end

----------------------------------------------------------------------------

-- Recupération de l'id par rapport au nom de la tables mesvolets

----------------------------------------------------------------------------

function volets(zone, valeurs)

if (type(zone) == "table") then

local messages = "Les "..#zone.." Volets : "

for i,v in ipairs(zone) do

messages = (messages..v..", ")

local id = mesvolets[v]

if id == nil then

fibaro:debug("ERREUR NOM DU VOLET - "..v.." - dans une table")

EnvoiPush("ERREUR NOM DU VOLET - "..v.." - dans une table")

else

testvaleur(id, valeurs)

end

end

messages = (messages.."ont été actionnés à"..valeurs.."%")

EnvoiPush(messages)

elseif (type(zone) == "string") then

local id = mesvolets[zone]

if id == nil then

fibaro:debug("ERREUR DANS LE NOM DU VOLET : "..zone)

EnvoiPush("EERREUR DANS LE NOM DU VOLET : "..zone)

else

testvaleur(id, valeurs)

EnvoiPush("Le volet : "..zone.." a été actionné à"..valeurs.."%")

end

else

fibaro:debug("Erreur......")

EnvoiPush("Erreur......")

end

end

--------------------------------------------------------------------

-- test si le déclencheur est lever ou coucher du soleil

--------------------------------------------------------------------

function Test(zone, valeurs, minutes)

if zone ~= nil then

if minutes == nil then;

minutes = 0

end

volets(zone, valeurs)

else

fibaro:debug("Erreur dans la table ou table inéxitante")

EnvoiPush("Erreur dans la table ou table inéxitante")

end

end

--------------------------------------------------------------------

-- test Lever

--------------------------------------------------------------------

function lever(zone, valeurs, minutes, Jchome)

if nomTrigger == nomLever and valeurTrigger == minutes then

if Jchome == JourChome or Jchome == nil then

Test(zone, valeurs, minutes)

end

end

end

--------------------------------------------------------------------

-- test Coucher

--------------------------------------------------------------------

function coucher(zone, valeurs, minutes, Jchome)

if nomTrigger == nomCoucher and valeurTrigger == minutes then

if Jchome == JourChome or Jchome == nil then

Test(zone, valeurs, minutes)

end

end

end

--------------------------------------------------------------------

-- test Heure

--------------------------------------------------------------------

function heure(zone, valeurs, minutes, Jchome)

if nomTrigger == Heure and valeurTrigger == minutes then

if Jchome == JourChome or Jchome == nil then

Test(zone, valeurs, minutes)

end

end

end

--------------------------------------------------------------------------

-- Demarrage du programme

--------------------------------------------------------------------------

local trigger = fibaro:getSourceTrigger()

if (trigger['type'] == 'global') then

nomTrigger = trigger['name']

valeurTrigger = tonumber(fibaro:getGlobalValue(nomTrigger))

print("Nom du déclencheur = ", nomTrigger, " - Minutes : ", valeurTrigger)

elseif (trigger['type'] == 'property') then

if JourNuit == "Nuit" then

if tonumber(fibaro:getValue(179, "value")) == 0 then

volets("Baie 2", 0)

end

end

fibaro:abort();

else

fibaro:debug("La scéne ne peut être lancer que par une Variable Globale")

fibaro:abort();

-- nomTrigger = "SoleilCoucher"

-- valeurTrigger = -5

end

-------------------------------------------------------------------------

-- Ne rien modifier au dessus de cette ligne

-------------------------------------------------------------------------

-- Commandes a écrit pour lever du soleil

-- lever (Funtion qui traite le lever du soleil

-- coucher(zone, valeur, minutes)

-- exemple pour actionné les volets de la table Rue a 80% 10 minutes avant le lever

-- lever(Rue, 80, -10)

-- exemple pour actionné le volet "Bureau" au lever du jour

-- lever("Bureau", 99, 0)

-- Pour actionner un volet au coucher du soleil

-- Il faut remplacer lever par coucher

-- ex : coucher(Rue, 0, 20)

------------------------------------------------------------------------

-- Vous pouvez entrer vos commande en dessous de cette ligne

------------------------------------------------------------------------

-- si Baie 2 fermer alors fermer volet

if tonumber(fibaro:getValue(179, "value")) == 0 then

coucher("Baie 2", 0, -5)

end -- fin test baie 2 fermer

coucher(Etage, 0, 10)

Lien vers le commentaire
Partager sur d’autres sites

Ok je modifie la scene et je te dit si cela fonctionne demain soi

J'ai regarder ton MV de telecommande mais je n'ai pas eu le temps de le mettre en place

J'espère que je pourrai cette semaine

En attendent merci àtoi pour le temps passer sur cette scene

Lien vers le commentaire
Partager sur d’autres sites

A toi aussi moi je suis deja coucher car la journée a était dur j'ai labouré 500m2 de terrain pour faire la pelouse en plus un bon coup de soleil sur la nuque je suis mort

Je te tient au courant demain soir bey et bonne soirée...

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...