-
Compteur de contenus
1 340 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Tout ce qui a été posté par Bloug
-
Me RE-voila Avec de bonnes nouvelle Après test Tout marche parfaitement ... MERCI Du coup la maison se gère très bien seule en fonction du planning de ma femme avec les modes : Travail de Jour Travail de nuit Repos Sauf erreur de ma part, le script à une fonction qui détecte le Travail de nuit consécutif sur les modes : Travail de nuit et Repos ou chacun des ses modes utilisent la condition : Du coup pour si il y a un jour elle travaille de nuit de manière consécutive, le script n'ayant pas toutes les condition réunies, n’exécute rien ( c'est à la base ma demande ) ( si j'ai bien compris ) je souhaite alors pour compliquer le script ajouter deux autre mode : Travail de Jour le weekend : Si elle bosse le weekend, alors que moi non, organisation différente des volets , chauffage , aspirateur etc... Travail de nuit consécutif : Si elle bosse deux nuits à la suite , les volet ne bougent pas mais le chauffage lui si Donc voici mon bidouillage sur les lignes n°7 avec la modification des ~= en == pour le travail de nuit consécutif ; et en ligne n°7 également l'ajout de la condition : (currentDate.wday == 1 or currentDate.wday == 7) pour le mode Weekend ( traduction du mode bloc ) Travail de nuit consécutif -- Travail de nuit consécutif Verif_Travail_Veille() -- Démarre la fonction écrite plus haut qui vérifie si ta femme bossait de nuit la veille for i = 1, #nuit do -- script des actions à faire quand Si jour de travail de nuit consecutif if nuit[i] == tonumber(AujourdHui) and Travail_Hier == "Travail De Nuit Hier" then if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "05:30" then -- Condition à changer Chauffage_24() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "06:30" then -- Condition à changer Chauffage_22() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "22:00" then -- Condition à changer Chauffage_18() end end end Travail de Jour le weekend -- MODE Travail de Jour le weekend Verif_Travail_Veille() for i = 1, #repos do -- script des actions à faire quand ta femme est en repos et que la veille elle ne bossait pas de nuit ET que c'est le WEEKEND if repos[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" and (currentDate.wday == 1 or currentDate.wday == 7) then if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "05:30" then -- Condition à changer Chauffage_24() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "06:30" then -- Condition à changer Chauffage_22() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "22:00" then -- Condition à changer Chauffage_18() end end end Du coup obliger de modifier la condition dans le mode Travail de jour pour ne pas réagir si c'est le WEEKEND : -- TRAVAIL DE JOUR for i = 1, #jour do -- Pour chaque valeur dans le croisillon "jour" à partir de la 1ere valeur, on fait if jour[i] == tonumber(AujourdHui) and (currentDate.wday ~= 1 or currentDate.wday ~= 7) then -- si la valeur du croisillon "jour" en cours de vérif est égale au jour numérique d'aujourd'hui alors Une à‚me charitable, pour me corriger ? Merci
-
à‡a fonctionne !! , il semble que le pnx de chauffage soit la raison du problème ?!? ( ordre contre ordre ? ) Suite des tests à venir , mais déjà .....c'est très bien engagé ! merci
-
Reprise des test avec un Jour de travil : Tout a fonctionné à l’exception du chauffage à 24 ( ligne 95 ci dessus ) j'ai supprimé le pnx de chauffage en cas de conflits mais aucun signe dans l'historique.... Edit : c'est pas le IF qui me*de ?
-
Merci pour le partage
- 34 réponses
-
- Script lua
- piloter
-
(et 1 en plus)
Étiqueté avec :
-
-
Salut, bon j'ai corrigé mes erreurs d'heures, du coup résultat positif pour les volets mais c'est peut etre d'avoir relancer le script donc .... wait & see Pour la fonction du chauffage, je ne l'ai pas ajouter pour l'instant, afin ne pas rajouter d'autre erreurs par dessus voici le code complet : --[[ %% autostart %% properties %% globals --]] while true do -- démarrage de la lecture en boucle du script (la lecture entière du script ne prend que qqs millisecondes) ---------------------------------------------------------------------------------- -- VARIABLES LOCALES local jour = {1, 2, 10, 11, 19, 20, 21, 24, 25, 29, 30} local nuit = {5, 6} local repos = {3, 4, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 27, 28} local AujourdHui = os.date("%d") --os.date ouvre la table qui gère les dates et %d permet de vérifier uniquement la valeur de la ligne "jour numérique" (de 1 à 31) local Hier = os.date("%d")-1 local Date_Actuelle = os.date("*t") -- (*t) récupère toutes les infos d'aujourd'hui (jour, heures, minutes...) local ID_Volets = {7, 35, 36, 41, 42, 43} local ID_Lumieres = {22, 23, 28, 29, 30, 45, 50, 72} -- Voir ici http://www.lua.org/pil/22.1.html pour la table des dates ---------------------------------------------------------------------------------- -- FONCTIONS function Ouverture_100_Volets() -- fonction qui ouvre les volets à 100%, on executera cette fonction plusieurs fois dans le script mais on ne l'écrit qu'une seule fois -- vérification de l'état de chaque volet avant ouverture for i = 1, #ID_Volets do -- Pour chaque valeur dans le croisillon "ID_Volets" (voir la variable locale), à partir de la 1ere valeur inscrite jusqu'à la dernière, le script suivant s'execute: local Niveau_Volets = tonumber(fibaro:getValue(ID_Volets[i], "value")) -- On récupère la valeur d'ouverture du volet dont l'ID est en cours de verif, on la met en format numérique avec tonumber pour la comparer après avec d'autres valeurs, et on enregistre le résultat dans la variable local "Niveau_Volets" if (Niveau_Volets) < 100 then -- Si la valeur récupérée indique que le volet n'est pas ouvert entièrement alors fibaro:call(ID_Volets[i], "open") -- Ouverture du volet, puis le script recommence pour le volet suivant end end end function Ouverture_50_Volets() -- La on laisse comme tu as mis car tu veux une valeur différente pour presque chaque volet (les fameux vrais 50% des volets) donc c'est le plus simple fibaro:call(35, "setValue", "68") fibaro:call(36, "setValue", "65") fibaro:call(41, "setValue", "65") fibaro:call(42, "setValue", "60") fibaro:call(7, "setValue", "65") fibaro:call(43, "setValue", "60") end function Aspirateur() -- Fonction Chauffage à 24° fibaro:call(74, "pressButton", "2") end function Chauffage_24() -- Fonction Chauffage à 24° fibaro:call(52, "setTargetLevel", "24") end function Chauffage_23() -- Fonction Chauffage à 22° fibaro:call(52, "setTargetLevel", "23") end function Chauffage_22() -- Fonction Chauffage à 22° fibaro:call(52, "setTargetLevel", "22") end function Chauffage_21() -- Fonction Chauffage à 21° fibaro:call(52, "setTargetLevel", "21") end function Chauffage_18() -- Fonction Chauffage à 18° fibaro:call(52, "setTargetLevel", "18") end function Extinction_Lumiere() -- vérification de l'état de chaque lumières avant exctinction for i = 1, #ID_Lumieres do local Niveau_Lumieres = tonumber(fibaro:getValue(ID_Lumieres[i], "value")) if (Niveau_Lumieres) > 0 then fibaro:call(ID_Lumieres[i], "turnOff") end end end function Verif_Travail_Veille() for i = 1, #nuit do if nuit[i] == tonumber(Hier) then -- On vérifie si dans le croisillon "nuit" on a le jour numérique d'hier Travail_Hier = "Travail De Nuit Hier" -- Si c'est le cas on crée une variable qui prend la valeur "Travail De Nuit Hier" si la veille ta femme bossait de nuit. Ce n'est pas une variable locale car comme ça on peut l'utiliser ailleurs dans le script sinon elle n'existerai que entre "function" et "end" end end end -- à la fin on fait une pause d'une minute donc la lecture du script se fera toutes les minutes -- TRAVAIL DE JOUR for i = 1, #jour do -- Pour chaque valeur dans le croisillon "jour" à partir de la 1ere valeur, on fait if jour[i] == tonumber(AujourdHui) then -- si la valeur du croisillon "jour" en cours de vérif est égale au jour numérique d'aujourd'hui alors -- départ chauffage if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "04:00" then -- Si il est 4h00 Chauffage_24() -- Ouverture des volets à 07h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:00" then -- Si il est 07h00 Ouverture_100_Volets() -- Démarre la fonction correspondante écrite plus haut Extinction_Lumiere() Chauffage_21() -- A 7h20 je décolle bientot au Taff donc chaffage coupé a 18° elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:020" then -- Si il est 07h20 Extinction_Lumiere() Chauffage_18() -- A 7h30 je décolle au Taff donc Aspiro elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:30" then -- Si il est 07h30 Aspirateur() -- Fermeture à 50% des volets à 10h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:00" then -- Si il est 10h00 Ouverture_50_Volets() -- Ouverture des volets pour 12h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "12:00" then --Si il est 12h00 Ouverture_100_Volets() -- A 13h30 je Re-décolle au Taff donc Aspiro elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "13:30" then -- Si il est 13h30 Aspirateur() end end end -- TRAVAIL DE NUIT Verif_Travail_Veille() -- Démarre la fonction écrite plus haut qui vérifie si ta femme bossait de nuit la veille for i = 1, #nuit do -- script des actions à faire quand ta femme bosse de nuit et que la veille elle ne bossait pas de nuit if nuit[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then -- Ouverture des volets à 09h00 et extinction des lumières if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:30" then -- Si il est 07h30 Chauffage_22() -- Ouverture des volets à 09h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "08:00" then -- Si il est 08h00 Ouverture_100_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end -- REPOS Verif_Travail_Veille() for i = 1, #repos do -- script des actions à faire quand ta femme est en repos et que la veille elle ne bossait pas de nuit if repos[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "05:30" then -- Si il est 08h00 Chauffage_24() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "06:30" then -- Si il est 08h00 Chauffage_23() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:05" then -- Si il est 07h20 fibaro:call(22, "turnOff") elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "08:00" then -- Si il est 08h00 Ouverture_100_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end fibaro:sleep(60*1000) end
-
Merci pour le tuto !
-
Bon je tâtonne pour trouver l'erreur .... voici la partie qui marche qu'a 7h20 et pas avant ... -- TRAVAIL DE JOUR for i = 1, #jour do -- Pour chaque valeur dans le croisillon "jour" à partir de la 1ere valeur, on fait if jour[i] == tonumber(AujourdHui) then -- si la valeur du croisillon "jour" en cours de vérif est égale au jour numérique d'aujourd'hui alors -- départ chauffage if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "04:00" then -- Si il est 4h00 Chauffage_24() -- Ouverture des volets à 07h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "7:00" then -- Si il est 07h00 Ouverture_100_Volets() -- Démarre la fonction correspondante écrite plus haut Extinction_Lumiere() Chauffage_21() -- A 7h20 je décolle bientot au Taff donc chaffage coupé a 18° elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:20" then -- Si il est 07h20 Extinction_Lumiere() Chauffage_18() -- A 7h30 je décolle au Taff donc Aspiro elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:30" then -- Si il est 07h30 Aspirateur() -- Fermeture à 50% des volets à 10h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:00" then -- Si il est 10h00 Ouverture_50_Volets() -- Ouverture des volets pour 12h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "12:00" then --Si il est 12h00 Ouverture_100_Volets() -- A 13h30 je Re-décolle au Taff donc Aspiro elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "13:30" then -- Si il est 13h30 Aspirateur() end end end en ligne 4, je démarre avec un IF -- THEN puis aucune action pour repartir sur un autre IF -- THEN : pas besoin d'un END en ligne 9 entre deux IF THEN ?? genre : faire une fonction jour_de_repos() avec mes actions de la journée et dans le script : IF aujourd’hui = Jrs de repos THEN jour_de_repos() END Dsl j'débute
-
Salut, Pour donner suite à la modification du " while true do " placé avant les variables locales, j'ai toujours un fonctionnement aléatoire pas de volets levés à 8h00 hier ( jour de Repos ) mais des volets qui bougent à 50% à 10h30 et à 100% à 11h30 . . . Et là jour de Travail Jour, pas de chauffage à 4h00 ... Sa caille Edit de 7h00 : pas d'ouverture de volets pour 7h00 également :'( Edit de 7h20 : extinction des lumières et consigne de chauffage à 18° ..... à ne plus rien comprendre ..... --[[ %% autostart %% properties %% globals --]] while true do -- démarrage de la lecture en boucle du script (la lecture entière du script ne prend que qqs millisecondes) ---------------------------------------------------------------------------------- -- VARIABLES LOCALES local jour = {1, 2, 10, 11, 19, 20, 21, 24, 25, 29, 30} local nuit = {5, 6} local repos = {3, 4, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 27, 28} local AujourdHui = os.date("%d") --os.date ouvre la table qui gère les dates et %d permet de vérifier uniquement la valeur de la ligne "jour numérique" (de 1 à 31) local Hier = os.date("%d")-1 local Date_Actuelle = os.date("*t") -- (*t) récupère toutes les infos d'aujourd'hui (jour, heures, minutes...) local ID_Volets = {7, 35, 36, 41, 42, 43} local ID_Lumieres = {22, 23, 28, 29, 30, 45, 50, 72} -- Voir ici http://www.lua.org/pil/22.1.html pour la table des dates ----------------------------------------------------------------------------------
-
Besoin daide Trouver Nos Windows Phone
Bloug a répondu à un(e) sujet de gorn dans Mobile WindowPhone
Salut, Je suis également en test avec le plugin Freebox de Krikroff, Il faut dire que le 8.1 a pas mal modifié la gestion du Wifi, avec leurs AOAC (Always On Always Connected) et même en Bluetooth je rencontre qq problèmes ... d'accroche .... à suivre -
Oulala impossible pour moi à trouver ! , j'ai modifié du coup en test + vérification dans le pnx de l'historique Bien vu la fonction pour la température ! MErci
-
Bonjour, et merci pour l'énorme taff ! concernant la detection de présence avec les variables - FbxV6_WiFiDev1 - FbxV6_WiFiDev2 le seuil threshold = 1200, est le seuil d'entre deux vérifications ? y'a t'il des limites à fixer pour réduire l’interrogation ? merci
- 329 réponses
-
A RE-verifier, mais il me semble que : -- TRAVAIL DE JOUR fonctionne bien !
-
Bonjour, Suite du test, aujourd’hui c'est un jour de repos pas d'ouverture de volets ni de chauffage, là en changeant les heures, je comprends pas trop, des fois sa marche des fois sa marche pas ..... j'ai du mal là -- REPOS Verif_Travail_Veille() for i = 1, #repos do -- script des actions à faire quand ta femme est en repos et que la veille elle ne bossait pas de nuit if repos[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "13:20" then -- Si il est 08h00 Chauffage_22() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "13:21" then -- Si il est 08h00 Ouverture_50_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end
-
Bien vue pour le Chauffage Mci
-
Bon j'me réponds à moi même ( très bon exercice au passage ;p ) -- VARIABLES LOCALES local jour = {1, 2, 10, 11, 19, 20, 21, 24, 25, 29, 30} local nuit = {5, 6} local repos = {3, 4, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 22, 23, 26, 27, 28} local AujourdHui = os.date("%d") --os.date ouvre la table qui gère les dates et %d permet de vérifier uniquement la valeur de la ligne "jour numérique" (de 1 à 31) local Hier = os.date("%d")-1 local Date_Actuelle = os.date("*t") -- (*t) récupère toutes les infos d'aujourd'hui (jour, heures, minutes...) local ID_Volets = {7, 35, 36, 41, 42, 43} local ID_Lumieres = {22, 23, 27, 28, 29, 30, 45, 50} Les espaces entre les dates . . . truc con mais qui empêche de démarrer .... à demain surement
-
Très bon taff Did, ! moi j'ai un HRT4-Zw donc pas besoin de tout le tralala c'était pour rendre service à Tomsauy et lui modifier l'icone mise à dispo Je garde ma cartouche
-
@Did & @Tomsauy Salut, j'ai retouché l'image d'origine donc si Did souhaite ajouter ses pictogrammes , je joins le psd Radiateur.zip
-
Encore Moi ! Pemier test avec mes modifs, les volets ne se sont pas ouvert pour 7h00 , g modifié pour 9h48 histoire de faire un nouveau test, mais rien. Je colle le code en entier car j'ai surement fait une boulette --[[ %% autostart %% properties %% globals --]] ---------------------------------------------------------------------------------- -- VARIABLES LOCALES local jour = {1,2,10,11,19,20,21,24,25,29,30} local nuit = {5,6} local repos = {3,4,7,8,9,12,13,14,15,16,17,18,22,23,26,27,28} local AujourdHui = os.date("%d") --os.date ouvre la table qui gère les dates et %d permet de vérifier uniquement la valeur de la ligne "jour numérique" (de 1 à 31) local Hier = os.date("%d")-1 local Date_Actuelle = os.date("*t") -- (*t) récupère toutes les infos d'aujourd'hui (jour, heures, minutes...) local ID_Volets = {7,35,36,41,42,43} local ID_Lumieres = {22,23,27,28,29,30,45,50} -- Voir ici http://www.lua.org/pil/22.1.html pour la table des dates ---------------------------------------------------------------------------------- -- FONCTIONS function Ouverture_100_Volets() -- fonction qui ouvre les volets à 100%, on executera cette fonction plusieurs fois dans le script mais on ne l'écrit qu'une seule fois -- vérification de l'état de chaque volet avant ouverture for i = 1, #ID_Volets do -- Pour chaque valeur dans le croisillon "ID_Volets" (voir la variable locale), à partir de la 1ere valeur inscrite jusqu'à la dernière, le script suivant s'execute: local Niveau_Volets = tonumber(fibaro:getValue(ID_Volets[i], "value")) -- On récupère la valeur d'ouverture du volet dont l'ID est en cours de verif, on la met en format numérique avec tonumber pour la comparer après avec d'autres valeurs, et on enregistre le résultat dans la variable local "Niveau_Volets" if (Niveau_Volets) < 100 then -- Si la valeur récupérée indique que le volet n'est pas ouvert entièrement alors fibaro:call(ID_Volets[i], "open") -- Ouverture du volet, puis le script recommence pour le volet suivant end end end function Ouverture_50_Volets() -- La on laisse comme tu as mis car tu veux une valeur différente pour presque chaque volet (les fameux vrais 50% des volets) donc c'est le plus simple fibaro:call(35, "setValue", "68") fibaro:call(36, "setValue", "65") fibaro:call(41, "setValue", "65") fibaro:call(42, "setValue", "60") fibaro:call(7, "setValue", "65") fibaro:call(43, "setValue", "60") end function Chauffage_24() -- Fonction Chauffage à 24° fibaro:call(52, "setTargetLevel", "24") end function Chauffage_21() -- Fonction Chauffage à 22° fibaro:call(52, "setTargetLevel", "22") end function Chauffage_21() -- Fonction Chauffage à 21° fibaro:call(52, "setTargetLevel", "21") end function Chauffage_18() -- Fonction Chauffage à 18° fibaro:call(52, "setTargetLevel", "18") end function Extinction_Lumiere() -- vérification de l'état de chaque lumières avant exctinction for i = 1, #ID_Lumieres do local Niveau_Lumieres = tonumber(fibaro:getValue(ID_Lumieres[i], "value")) if (Niveau_Lumieres) > 0 then fibaro:call(ID_Lumieres[i], "turnOff") end end end function Verif_Travail_Veille() for i = 1, #nuit do if nuit[i] == tonumber(Hier) then -- On vérifie si dans le croisillon "nuit" on a le jour numérique d'hier Travail_Hier = "Travail De Nuit Hier" -- Si c'est le cas on crée une variable qui prend la valeur "Travail De Nuit Hier" si la veille ta femme bossait de nuit. Ce n'est pas une variable locale car comme ça on peut l'utiliser ailleurs dans le script sinon elle n'existerai que entre "function" et "end" end end end while true do -- démarrage de la lecture en boucle du script (la lecture entière du script ne prend que qqs millisecondes) -- à la fin on fait une pause d'une minute donc la lecture du script se fera toutes les minutes -- TRAVAIL DE JOUR for i = 1, #jour do -- Pour chaque valeur dans le croisillon "jour" à partir de la 1ere valeur, on fait if jour[i] == tonumber(AujourdHui) then -- si la valeur du croisillon "jour" en cours de vérif est égale au jour numérique d'aujourd'hui alors -- départ chauffage if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "04:00" then -- Si il est 4h00 Chauffage_24() -- Ouverture des volets à 07h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "09:48" then -- Si il est 07h00 --- 9h48 pour testé là Ouverture_100_Volets() -- Démarre la fonction correspondante écrite plus haut Extinction_Lumiere() Chauffage_21() -- A 7h30 je décolle au Taff donc chaffage coupé a 18° elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:20" then -- Si il est 07h20 Extinction_Lumiere() Chauffage_18() -- Fermeture à 50% des volets à 10h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:00" then -- Si il est 10h00 Ouverture_50_Volets() -- Ouverture des volets pour 12h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "12:00" then --Si il est 12h00 Ouverture_100_Volets() end end end -- TRAVAIL DE NUIT Verif_Travail_Veille() -- Démarre la fonction écrite plus haut qui vérifie si ta femme bossait de nuit la veille for i = 1, #nuit do -- script des actions à faire quand ta femme bosse de nuit et que la veille elle ne bossait pas de nuit if nuit[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then -- Ouverture des volets à 09h00 et extinction des lumières if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:30" then -- Si il est 07h30 Chauffage_22() -- Ouverture des volets à 09h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "08:00" then -- Si il est 08h00 Ouverture_100_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end -- REPOS Verif_Travail_Veille() for i = 1, #repos do -- script des actions à faire quand ta femme est en repos et que la veille elle ne bossait pas de nuit if repos[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then -- Ouverture des volets à 09h00 et extinction des lumières if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:22" then -- Si il est 08h00 Chauffage_23() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "08:00" then -- Si il est 08h00 Ouverture_100_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end fibaro:sleep(60*1000) end Autre question au passage, si dans le mois suivant elle ne bosse pas de nuit , je laisse vide ?: local nuit = {} Merci
-
Encore Moi ! Pemier test avec mes modifs, les volets ne se sont pas ouvert pour 7h00 , g modifié pour 9h48 histoire de faire un nouveau test, mais rien. Je colle le code en entier car j'ai surement fait une boulette --[[ %% autostart %% properties %% globals --]] ---------------------------------------------------------------------------------- -- VARIABLES LOCALES local jour = {1,2,10,11,19,20,21,24,25,29,30} local nuit = {5,6} local repos = {3,4,7,8,9,12,13,14,15,16,17,18,22,23,26,27,28} local AujourdHui = os.date("%d") --os.date ouvre la table qui gère les dates et %d permet de vérifier uniquement la valeur de la ligne "jour numérique" (de 1 à 31) local Hier = os.date("%d")-1 local Date_Actuelle = os.date("*t") -- (*t) récupère toutes les infos d'aujourd'hui (jour, heures, minutes...) local ID_Volets = {7,35,36,41,42,43} local ID_Lumieres = {22,23,27,28,29,30,45,50} -- Voir ici http://www.lua.org/pil/22.1.html pour la table des dates ---------------------------------------------------------------------------------- -- FONCTIONS function Ouverture_100_Volets() -- fonction qui ouvre les volets à 100%, on executera cette fonction plusieurs fois dans le script mais on ne l'écrit qu'une seule fois -- vérification de l'état de chaque volet avant ouverture for i = 1, #ID_Volets do -- Pour chaque valeur dans le croisillon "ID_Volets" (voir la variable locale), à partir de la 1ere valeur inscrite jusqu'à la dernière, le script suivant s'execute: local Niveau_Volets = tonumber(fibaro:getValue(ID_Volets[i], "value")) -- On récupère la valeur d'ouverture du volet dont l'ID est en cours de verif, on la met en format numérique avec tonumber pour la comparer après avec d'autres valeurs, et on enregistre le résultat dans la variable local "Niveau_Volets" if (Niveau_Volets) < 100 then -- Si la valeur récupérée indique que le volet n'est pas ouvert entièrement alors fibaro:call(ID_Volets[i], "open") -- Ouverture du volet, puis le script recommence pour le volet suivant end end end function Ouverture_50_Volets() -- La on laisse comme tu as mis car tu veux une valeur différente pour presque chaque volet (les fameux vrais 50% des volets) donc c'est le plus simple fibaro:call(35, "setValue", "68") fibaro:call(36, "setValue", "65") fibaro:call(41, "setValue", "65") fibaro:call(42, "setValue", "60") fibaro:call(7, "setValue", "65") fibaro:call(43, "setValue", "60") end function Chauffage_24() -- Fonction Chauffage à 24° fibaro:call(52, "setTargetLevel", "24") end function Chauffage_21() -- Fonction Chauffage à 22° fibaro:call(52, "setTargetLevel", "22") end function Chauffage_21() -- Fonction Chauffage à 21° fibaro:call(52, "setTargetLevel", "21") end function Chauffage_18() -- Fonction Chauffage à 18° fibaro:call(52, "setTargetLevel", "18") end function Extinction_Lumiere() -- vérification de l'état de chaque lumières avant exctinction for i = 1, #ID_Lumieres do local Niveau_Lumieres = tonumber(fibaro:getValue(ID_Lumieres[i], "value")) if (Niveau_Lumieres) > 0 then fibaro:call(ID_Lumieres[i], "turnOff") end end end function Verif_Travail_Veille() for i = 1, #nuit do if nuit[i] == tonumber(Hier) then -- On vérifie si dans le croisillon "nuit" on a le jour numérique d'hier Travail_Hier = "Travail De Nuit Hier" -- Si c'est le cas on crée une variable qui prend la valeur "Travail De Nuit Hier" si la veille ta femme bossait de nuit. Ce n'est pas une variable locale car comme ça on peut l'utiliser ailleurs dans le script sinon elle n'existerai que entre "function" et "end" end end end while true do -- démarrage de la lecture en boucle du script (la lecture entière du script ne prend que qqs millisecondes) -- à la fin on fait une pause d'une minute donc la lecture du script se fera toutes les minutes -- TRAVAIL DE JOUR for i = 1, #jour do -- Pour chaque valeur dans le croisillon "jour" à partir de la 1ere valeur, on fait if jour[i] == tonumber(AujourdHui) then -- si la valeur du croisillon "jour" en cours de vérif est égale au jour numérique d'aujourd'hui alors -- départ chauffage if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "04:00" then -- Si il est 4h00 Chauffage_24() -- Ouverture des volets à 07h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "09:48" then -- Si il est 07h00 --- 9h48 pour testé là Ouverture_100_Volets() -- Démarre la fonction correspondante écrite plus haut Extinction_Lumiere() Chauffage_21() -- A 7h30 je décolle au Taff donc chaffage coupé a 18° elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:20" then -- Si il est 07h20 Extinction_Lumiere() Chauffage_18() -- Fermeture à 50% des volets à 10h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:00" then -- Si il est 10h00 Ouverture_50_Volets() -- Ouverture des volets pour 12h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "12:00" then --Si il est 12h00 Ouverture_100_Volets() end end end -- TRAVAIL DE NUIT Verif_Travail_Veille() -- Démarre la fonction écrite plus haut qui vérifie si ta femme bossait de nuit la veille for i = 1, #nuit do -- script des actions à faire quand ta femme bosse de nuit et que la veille elle ne bossait pas de nuit if nuit[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then -- Ouverture des volets à 09h00 et extinction des lumières if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:30" then -- Si il est 07h30 Chauffage_22() -- Ouverture des volets à 09h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "08:00" then -- Si il est 08h00 Ouverture_100_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end -- REPOS Verif_Travail_Veille() for i = 1, #repos do -- script des actions à faire quand ta femme est en repos et que la veille elle ne bossait pas de nuit if repos[i] == tonumber(AujourdHui) and Travail_Hier ~= "Travail De Nuit Hier" then -- Ouverture des volets à 09h00 et extinction des lumières if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:22" then -- Si il est 08h00 Chauffage_23() elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "08:00" then -- Si il est 08h00 Ouverture_100_Volets() Extinction_Lumiere() -- Fermeture à 50% des volets à 10h30 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:30" then -- Si il est 10h30 Ouverture_50_Volets() -- Ouverture des volets pour 11h30 : A la popotte femme! elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "11:30" then --Si il est 11h30 Ouverture_100_Volets() end end end fibaro:sleep(60*1000) end Autre question au passage, si dans le mois suivant elle ne bosse pas de nuit , je laisse vide : local nuit = {} Merci
-
Bonsoir, Après install d'un FGK sur mon portail je dépose qq icônes en galerie, idem PSD et SKP (sketchup) à disposition.
-
Arff j'avais vu l'erreur de la fonction mais j'avais toujours un probleme avec le "end" Donc les trois "end "de la fin c'est pour : for i = 1, #jour do if jour[i] == tonumber(AujourdHui) then if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "04:00" then pas de end pour les elseif ..... hummmmm .... faut l'savoir merci
-
me revoilà avec une nouvelle question Pour le travail de jour, les volet s'ouvrent en fait pour moi à 7h00 car Mme, démarre plus tôt, donc si elle se lève à 5h00 je souhaite .... pour être agréable ....démarrer le chauffage à 4h00 J'ai donc (tenté) inséré un fonction chauffage sous les variables locale : ligne 41 à 43 function Ouverture_50_Volets() -- La on laisse comme tu as mis car tu veux une valeur différente pour presque chaque volet (les fameux vrais 50% des volets) donc c'est le plus simple fibaro:call(35, "setValue", "68") fibaro:call(36, "setValue", "65") fibaro:call(41, "setValue", "65") fibaro:call(42, "setValue", "60") fibaro:call(7, "setValue", "65") fibaro:call(43, "setValue", "60") end function Chauffage_24() -- Fonction Chauffage à 24° fibaro:call(52, "setTargetLevel", "24") end function Extinction_Lumiere() -- vérification de l'état de chaque lumières avant exctinction for i = 1, #ID_Lumieres do local Niveau_Lumieres = tonumber(fibaro:getValue(ID_Lumieres[i], "value")) if (Niveau_Lumieres) > 0 then fibaro:call(ID_Lumieres[i], "turnOff") end end end Et dans c'est dans la partie : -- TRAVAIL DE JOUR que je souhaite ajouter le chauffage à 4h00 : J'ai donc une nouvelle fois joué et tenté d'ajouter avec la magie des copier/coller/modifier, ma ligne de chauffage en ligne 42 à 44 et ajouté un END de plus ( ligne 59 ) for i = 1, #jour do -- Pour chaque valeur dans le croisillon "jour" à partir de la 1ere valeur, on fait if jour[i] == tonumber(AujourdHui) then -- si la valeur du croisillon "jour" en cours de vérif est égale au jour numérique d'aujourd'hui alors -- départ chauffage if string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "04:00" then -- Si il est 4h00 function Chauffage_24() -- Ouverture des volets à 07h00 et extinction des lumières elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "07:00" then -- Si il est 07h00 Ouverture_100_Volets() -- Démarre la fonction correspondante écrite plus haut Extinction_Lumiere() -- Fermeture à 50% des volets à 10h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "10:00" then -- Si il est 10h00 Ouverture_50_Volets() -- Ouverture des volets pour 12h00 elseif string.format("%02d", Date_Actuelle.hour) .. ":" .. string.format("%02d", Date_Actuelle.min) == "12:00" then --Si il est 12h00 Ouverture_100_Volets() end end end end Et grand bravo ...... [ERROR] 08:45:30: line 144: '' expected near 'end' Si je supprime le "end" en ligne 144 l'erreur disparait .... mais je doute qu'utiliser la fonction fibaro:call(déshabiller_Paul_pour_habiller_Jacques) soit la solution Est il possible de pointer mon erreur ? Merci
-
Le mode bloc est formidable car pour les non initié beaucoup de choses sont et demeurent possibles, mais la puissance du Script est gigantesque ! avec le lua le scénario ne demande qu'a grandir et donne envie d'ajouter et rajouter plein de choses ! Merci d'avoir pris le temps de détailler le script ! c'est moi qui vais pouvoir apprendre ! je teste cela ( à travers des jours ou elle taff c'est moins risqué et je poste un retour Bravo à vous deux, deux très beaux exemples de script avec des HC2 et HCL.
