planification volet somfy rts
planification volet somfy rts
Bonjour a tous,
je viens d installer domoticz sur mon synology. j ai installé le rfxcom puis connecté tout mes volets.
Jusqu ici tout va bien et tout fonctionne !
je voudrais maintenant programmer les horaires d'ouverture et de fermeture des volets et je me pose des questions :
* Doit on programmer les volets un par un (grace a la fonction planning) ou peut on creer des groupes de volet ou copier/coller les planning d un volet sur un autre ?
* Est il possible de creer des scenarios pour les volets. j aimerais avoir un scenario par defaut et un scenario en cas d absence. est ce possible? si oui, comment fait on cela ? comment choisit on d activer le scenario d absence ?
D'avance merci pour votre aide
je viens d installer domoticz sur mon synology. j ai installé le rfxcom puis connecté tout mes volets.
Jusqu ici tout va bien et tout fonctionne !
je voudrais maintenant programmer les horaires d'ouverture et de fermeture des volets et je me pose des questions :
* Doit on programmer les volets un par un (grace a la fonction planning) ou peut on creer des groupes de volet ou copier/coller les planning d un volet sur un autre ?
* Est il possible de creer des scenarios pour les volets. j aimerais avoir un scenario par defaut et un scenario en cas d absence. est ce possible? si oui, comment fait on cela ? comment choisit on d activer le scenario d absence ?
D'avance merci pour votre aide
Re: planification volet somfy rts
Salut,
perso j'ai fait simple, j'utilise un scénario qui ferme tous mes volets à 19h55. Dans les dispositifs à commander, tu ajoutes les volets que tu veux fermer ou ouvrir.
J'ai réglé le planning à 19h55 tous les jours mais tu peux aussi déclencher le scénario par un script si tu veux ou par un événement extérieur..
perso j'ai fait simple, j'utilise un scénario qui ferme tous mes volets à 19h55. Dans les dispositifs à commander, tu ajoutes les volets que tu veux fermer ou ouvrir.
J'ai réglé le planning à 19h55 tous les jours mais tu peux aussi déclencher le scénario par un script si tu veux ou par un événement extérieur..
Raspberry Pi 3 + Raspbian Jessie Lite + Domoticz V4.9700 - RFlink USB V48 433.42MHz - Volets Somfy RTS - MySensors USB V2.1.1 - IDE Arduino 1.8.8
Re: planification volet somfy rts
Salut,
Comment fais tu pour faire un scénario qui ferme tes volets à une heure précise ? Dans le scénario peux tu gerer plusieurs conditions ? Plusieurs heures d'ouverture et de fermeture ?
Merci pour ton aide
Comment fais tu pour faire un scénario qui ferme tes volets à une heure précise ? Dans le scénario peux tu gerer plusieurs conditions ? Plusieurs heures d'ouverture et de fermeture ?
Merci pour ton aide
Re: planification volet somfy rts
Bonjour,
Tout est possible,personnellement gestion horaires et surchauffe (fermeture des volets si la temp. Est supérieure à un seuil etc...)
Pour une commande générale avec du somfy, tu peux également associer un volet virtuel à tous les volets ( comme une télécommande ) sans avoir besoin de le gérer par DOMOTICZ
Cdt
Bertrand
Tout est possible,personnellement gestion horaires et surchauffe (fermeture des volets si la temp. Est supérieure à un seuil etc...)
Pour une commande générale avec du somfy, tu peux également associer un volet virtuel à tous les volets ( comme une télécommande ) sans avoir besoin de le gérer par DOMOTICZ
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: planification volet somfy rts
Pour la fermeture des volets le soir, j'ai fait simple ; planning sur chaque volet (ou presque) qui ferme autour du coucher du soleil, sauf dans les pièces de vie (j'aime pas ne pas voir dehors même s'il fait nuit).
Ensuite vers 23h30, un groupe défini dans un scenario ferme les volets des pièces de vie.
C'est pour l'ouverture que c'est plus corsé, faut gérer les heures d'ouverture en fonction des jours ouverts, des week-end, des jours fériés, des vacances des gosses, des congés... Bref pour ça merci à LUA.
Ensuite vers 23h30, un groupe défini dans un scenario ferme les volets des pièces de vie.
C'est pour l'ouverture que c'est plus corsé, faut gérer les heures d'ouverture en fonction des jours ouverts, des week-end, des jours fériés, des vacances des gosses, des congés... Bref pour ça merci à LUA.
Un bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Re: planification volet somfy rts
Merci pour ton retour Chrominator.
Peux tu partager ton script LUA pour que je puisse m'en inspirer ?
Peux tu partager ton script LUA pour que je puisse m'en inspirer ?
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: planification volet somfy rts
Le voilà.
C'est un peu perso, pas certain que les commentaires que j'ai mis dans le source à l'époque soient suffisants pour que tu comprennes l'ensemble.
Mais là j'ai pas trop le temps de documenter plus que ça.
Tu trouveras sur le forum des scripts auxiliaires dont je me sers, notamment celui qui détermine si on est un jour férié.
Je te file aussi le module qui contient la fonction voir_les_logs que j'ai piqué ici.
Faudra simplifier, y un système dedans qui me permet de tracer un script nommé ou plusieurs à la fois.
startmon et stopmon n'apportent pas grand chose, ça me sert à logger le temps d'exécution de mes scripts quand je me décide à optimiser le code de certaines parties, tu peux virer ces appels.
Le module perfmon qui contient les fonctions appelées dans tous mes scripts.
C'est un peu perso, pas certain que les commentaires que j'ai mis dans le source à l'époque soient suffisants pour que tu comprennes l'ensemble.
Mais là j'ai pas trop le temps de documenter plus que ça.
Tu trouveras sur le forum des scripts auxiliaires dont je me sers, notamment celui qui détermine si on est un jour férié.
Je te file aussi le module qui contient la fonction voir_les_logs que j'ai piqué ici.
Faudra simplifier, y un système dedans qui me permet de tracer un script nommé ou plusieurs à la fois.
startmon et stopmon n'apportent pas grand chose, ça me sert à logger le temps d'exécution de mes scripts quand je me décide à optimiser le code de certaines parties, tu peux virer ces appels.
Code : Tout sélectionner
--[[ Script opening all blinds in the morning
It closes the blinds on the evening when nobody is at home
~/domoticz/scripts/lua/script_time_open_blind.lua
-- Autors ----------------------------------------------------------------
V1.0 - Chrominator
-- Require --------------------------------------------------------------
Devices : Name of a scene of all blinds to close
Congés : Virtual switch, "On" status for a day at home
jf : Variable "false" or "true" for bank hollidays
Absence : Switch attached to Netatmo thermostat
-- Versions -------------------------------------------------------------
2016-12-28 : Initial version
]]--
-- chargement des modules
package.path = package.path..";/home/pi/domoticz/scripts/lua/?.lua"
require "perfmon"
require "getscenestatus"
startmon()
startdebug()
-- Variables to customize ------------------------------------------------
-- Poste 1 jour travaillé
-- Poste 2 jour d'absence
local Time_To_Open_Blind = {'06:55','09:55'}
local LastTime = {'06:57','09:57'}
local jf = uservariables['jf']
local DayOff = otherdevices['Congés']
local DayName = os.date("%w") -- Sunday = 0
local OutOfHome = otherdevices['Absence'] -- Absence button on Netatmo thermostat
local CurrentTime = os.date('%H:%M')
-- Below , edit at your own risk ------------------------------------------
commandArray = {}
--[[
If out of home (Absence='On') the blinds shoud be opened, later than usual, whatever are the other conditions.
No opening if day off spent at home ==> congés = On
Or Bank hollidays ==> jf = true
Or during the week-end
Opening early in the morning in other cases
]]--
voir_les_logs ('=========== OUVERTURE DES VOLETS LE MATIN ==============')
voir_les_logs ("Horaires d'ouverture des volets")
voir_les_logs ('Heure jour travaillé : '..Time_To_Open_Blind[1])
voir_les_logs ("Heure jour d'absence : "..Time_To_Open_Blind[2])
voir_les_logs ("Jour férié : "..jf)
voir_les_logs ('Jour de congé : '..DayOff)
voir_les_logs ('Heure actuelle : '..CurrentTime)
voir_les_logs ('Heure butoir travaillé :'..LastTime[1])
voir_les_logs ("Heure butoir d'absence :"..LastTime[2])
voir_les_logs ('N° du jour : '..DayName)
voir_les_logs ('Etat des volets matin : '..getscenestatus('1'))
if (OutOfHome == 'On') then
voir_les_logs ("Jour d'absence hors de la maison, on ouvre les volets face rue à "..Time_To_Open_Blind[2])
voir_les_logs ('On laisse les volets arrières fermés')
if (CurrentTime >= Time_To_Open_Blind[2] and CurrentTime <= LastTime[2]) then
voir_les_logs ("Il est l'heure convenue d'ouverture des volets")
if getscenestatus('2') == 'On' then
commandArray['Group:Tous les volets'] = 'Off'
commandArray['Group:Volets Matin'] = 'On'
end
end
else
if (jf == 'false' and DayName ~= '6' and DayName ~= '0' and DayOff == 'Off') then
voir_les_logs ("Jour travaillé, on ouvre les volets à "..Time_To_Open_Blind[1])
if (CurrentTime >= Time_To_Open_Blind[1] and CurrentTime <= LastTime[1]) then
voir_les_logs ("Il est l'heure convenue d'ouverture des volets")
-- if getscenestatus('1') == 'On' then
voir_les_logs ("Ouverture des volets")
commandArray['Group:Volets Matin'] = 'Off'
-- end
end
else
voir_les_logs ("Jour de congé à la maison, ouverture des volets gérée manuellement")
end
end
if (timeofday['Nighttime'] and OutOfHome == 'On') then
-- if (otherdevices['Scene:Tous les volets'] == '0') then
voir_les_logs ('La nuit est tombée et nous sommes absents, fermeture de tous volets')
commandArray['Group:Tous les volets'] = 'On'
-- end
end
voir_les_logs ('============= FIN GESTION DES VOLETS ==================')
stopmon(script_name())
return commandArray
Code : Tout sélectionner
--[[
~/domoticz/scripts/lua/perfmon.lua
-- Autors ----------------------------------------------------------------
V1.0 - Chrominator
-- Require --------------------------------------------------------------
/!\ require Domoticz v3.5776 and after /!\
]]--
perf_monitor = 'PERF-Audit' -- Name of the switch that enables performance monitoring in Domoticz
function script_name()
local str = debug.getinfo(2, "S").source:sub(2)
return str
end
function startmon()
if (otherdevices[perf_monitor]=='On') then
startcpuclock = os.clock()
end
end
function stopmon(script)
if (otherdevices[perf_monitor]=='On') then
stopcpuclock = os.clock()
print('PERFMON;'..script..": "..string.format("elapsed time; %.6f\n", stopcpuclock - startcpuclock))
end
end
function startdebug()
--
-- Si l'inter de debug est On, on force la trace de tous les programmes
--
if(otherdevices["ModeDebug"]=='On') then -- Si le mode debug est activé dans Domoticz (inter debug sur on)
DEBUG = true
else
local str = debug.getinfo(2, "S").source:sub(2)
local pos_snom = string.find(str, '/lua/', -1*string.len(str))
local snom = string.sub (str, pos_snom+5)
if uservariables['script_debug'] == snom then
DEBUG = true
else
DEBUG = false
end
end
end
function voir_les_logs (s) -- nécessite la variable DEBUG
if DEBUG then
if s ~= nil then
print ("<font color='#f3031d'>".. s .."</font>")
else
print ("<font color='#f3031d'>aucune valeur affichable</font>")
end
end
endUn bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: planification volet somfy rts
Mince, il va te falloir aussi celui-là.
vil1driver m'avait indiqué qu'une fonction native existait pour ça après que je l'ai écrite. Comme la mienne marchait, j'ai pas changé le source...
vil1driver m'avait indiqué qu'une fonction native existait pour ça après que je l'ai écrite. Comme la mienne marchait, j'ai pas changé le source...
Code : Tout sélectionner
--[[ Script décrivant la fonction permettant
de connaitre l'état d'un groupe ou d'une scene.
~/domoticz/scripts/lua/getscenestatus.lua
-- Autors ----------------------------------------------------------------
V1.0 - Chrominator
-- Require --------------------------------------------------------------
input : index de la scene ou du groupe
output : etat de la scene, nom de la scene
-- Versions -------------------------------------------------------------
2017-01-15 : Initial version
]]--
-- chargement de l'encodeur/décodeur json
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
local ipportdomoticz = '127.0.0.1:8080'
function getscenestatus(Scene_idx)
local Events = assert(io.popen('curl "http://'..ipportdomoticz..'/json.htm?type=scenes"'))
local Scene = Events:read('*all')
Events:close()
local jsonScene = json:decode(Scene)
if jsonScene == nil then
print("Erreur dans l'url json")
end
Groups = jsonScene['result']
for response,results in pairs(Groups) do
if results['idx'] == Scene_idx then
status = results['Status']
name = results['Name']
end
end
return status, name
endUn bon frein vaut mieux que deux sparadraps.
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Re: planification volet somfy rts
un grand merci, je regarde ca ce week end !
Re: planification volet somfy rts
Salut,
Voici ce que j'ai chez moi.
Un capteur de lumière renvoi une valeur de 5% (lumière de l'éclairage public) à 95% (Jour couvert)
Chaque fois que sa valeur change, le script ci-dessous intercepte le change et réagit.
Ainsi, on ferme les volets quand la lumière est dessous de 10% et on les ouvre quand la lumière est au dessus de 80%.
A noter que je ferme tout, mais que je n'ouvre pas les volets des chambres automatiquement, mes enfants m'auraient collés les avocats
Il faut créer la variable "statut_volets" afin que les scripts n'agissent qu'une fois à la fermeture et à l'ouverture.
Voici ce que j'ai chez moi.
Un capteur de lumière renvoi une valeur de 5% (lumière de l'éclairage public) à 95% (Jour couvert)
Chaque fois que sa valeur change, le script ci-dessous intercepte le change et réagit.
Ainsi, on ferme les volets quand la lumière est dessous de 10% et on les ouvre quand la lumière est au dessus de 80%.
A noter que je ferme tout, mais que je n'ouvre pas les volets des chambres automatiquement, mes enfants m'auraient collés les avocats
Il faut créer la variable "statut_volets" afin que les scripts n'agissent qu'une fois à la fermeture et à l'ouverture.
Code : Tout sélectionner
---------------------------------------------------------------------------
-- Script : script_device_fermeture_volets.lua
--
-- Objectif : Fermeture des volets quand la nuit est tombée
--
-- Auteur : Christophe BRUXXX
-- Date : 19/03/2016
-- Version : 1.0
---------------------------------------------------------------------------
commandArray = {}
if (devicechanged['Sonde Lumiere']) then
print "=========== Début Script de fermeture des volets ==========="
local lumiere = tonumber(otherdevices_svalues['Sonde Lumiere']) -- Lumière relevée dans le salon
local user_variable_name = "statut_volets" -- Nom de la variable
local statut_volets = uservariables[user_variable_name]
if lumiere < 10 and statut_volets == 'Ouverts' then -- Quand la lumière augmente et que les volets sont fermés, sans le test, on lancerait la fermeture jusqu'à passer au dessus du seuil
print ('Fermeture Volets')
print ('Lumière = '..lumiere)
commandArray['Variable:statut_volets'] = "Fermés"
local t = os.execute("/volume1/@appstore/domoticz/var/scripts/bash/Play-Sound.bash 5 corne")
local t = os.execute("/volume1/@appstore/domoticz/var/scripts/bash/Play-Text.bash attention fermeture volets")
commandArray['Volet Parents'] = 'On'
commandArray['Volet Marie'] = 'On'
commandArray['Volet Lea'] = 'On'
commandArray['Volet Porte Salon Temporise'] = 'On'
commandArray['Volet Cuisine'] = 'On'
commandArray['Volet Baie Salon'] = 'On'
commandArray['Volet Vitre Salon'] = 'On'
end
print "=========== Fin Script de fermeture des volets ==========="
end
return commandArray
Code : Tout sélectionner
-------------------------------------------------------------------------
-- Script : script_device_ouverture_volets.lua
--
-- Objectif : Ouverture des volets quand le jour est levé
--
-- Auteur : Christophe BRUXXX
-- Date : 19/03/2016
-- Version : 1.0
---------------------------------------------------------------------------
commandArray = {}
if (devicechanged['Sonde Lumiere']) then
print "=========== Début Script d'Ouverture des volets ==========="
local lumiere = tonumber(otherdevices_svalues['Sonde Lumiere']) -- Lumière relevée devant la maison
local user_variable_name = "statut_volets" -- Nom de la variable
local statut_volets = uservariables[user_variable_name]
print ('Lumière = '..lumiere)
print ('statut_volets = '..statut_volets)
if lumiere > 80 and statut_volets == 'Fermés' then -- Quand la lumière baisse et que les volets sont ouverts, sans le test, on lancerait l'ouverture jusqu'à passer en dessous du seuil.
print ('Ouverture Volets Salon')
commandArray['Variable:statut_volets'] = "Ouverts" -- On positionne la variable pour dire que c'est ouvert
commandArray['Volet Cuisine'] = 'Off'
commandArray['Volet Porte Salon'] = 'Off'
commandArray['Volet Porte Salon Temporisé'] = 'Off'
commandArray['Volet Baie Salon'] = 'Off'
commandArray['Volet Vitre Salon'] = 'Off'
commandArray['SendNotification']='Domoticz - Ouverture volets#OK#0'
end
print "=========== Fin Script d'Ouverture des volets ==========="
end
return commandArray