Alors comme d'hab j'ai rien inventé je part du script V1 de Vil1driver récupéré ici viewtopic.php?f=10&t=233&start=10 normalement ca marche bien.
Donc Merci a vil1driver pour sont taf.
_________________________________________
[Tuto]Gestion chauffage elect avec conso virtuel
_________________________________________
Alors on part tu principe que:
-chaque radiateur est branché / câblé sur un prise télécommandable par Domoticz (et qu'elle est reconnu)
-chaque zone a son thermomètre.
On part sur 3 zones:
-1 chambre
=>Nom du thermometre:Sonde_chambre_leia
=>Nom de l'interrupteur du radiateur:Radiateur_chambre_leia
-1 Salle de bain
=>Nom du thermometre:Sonde_sdb_rdc
=>Nom de l'interrupteur du radiateur:Radiateur_sdb_rdc
-1 Salle de jeu
=>Nom du thermometre:Sonde_sdj
=>Nom de l'interrupteur du radiateur:Radiateur_sdj
La finalité:
-Je veux pouvoir piloter chaque zones en fonction de mon emploi du temps.
-Je veux savoir dans mes deux zones que consomme mes radiateurs.
-Je veux 17° quand je suis absent (Thermostat_eco)
-Je veux 19° dans les pièces de vie (Thermostat_confort)
-Je veux 21° dans la salle de bain (Thermostat_SDB)
-Je veux 17,5° dans les chambres (Thermostat_chambre)
1.Matériels virtuels
On va activer le créateur de matériels virtuel en cliquant sur:
-Configuration/Matériel
-remplir comme suis:
Activé: coché
Nom: Dummy
Type: Dummy (Does nothing, use for virtual switches only)
Délai d'attente de données: Désactiver
-Puis ajouter
2.Création des devices
On active la reconnaissance des nouveaux matériels:
-Configuration/Paramètres/Matériel & dispositifs/ => Vérifier que "Accepter de nouveaux dispositifs matériels" est coché
2.1.Les thermostat
On creer les 4 thermostats:
-Configuration/Matériel
-Dans la ligne dummy cliquer sur le bouton "Créer capteurs virtuels"
-Puis dans le popup selectionner "consigne du thermostat"
puis on le refait encore 3 fois.
-Puis on part dans Configuration/Dispositif
-On appuie sur le bouton "Inutilisés" pour reperer nos 4 capteurs.
-On les ajoutes avec la fleche verte et nous les appelons:
Thermostat_eco, Thermostat_confort, Thermostat_sdb, Thermostat_chambre
Nos 4 thermostat sont désormais dans l'onglet "Mesures" .
On peut double cliqué sur chaqu'un pour faire notre réglage:
-Je veux 17° quand je suis absent (Thermostat_eco)
-Je veux 19° dans les pièces de vie (Thermostat_confort)
-Je veux 21° dans la salle de bain (Thermostat_sdb)
-Je veux 17,5° dans les chambres (Thermostat_chambre)
2.2.Les consos virtuels
Donc on dit 3 zones donc 3 radiateurs, donc 3 consos virtuels + 1consos total.
On creer les 4 capteurs:
-Configuration/Matériel
-Dans la ligne dummy cliquer sur le bouton "Créer capteurs virtuels"
-Puis dans le popup selectionner "Electrique (Instant+Compteur)"
puis on le refait encore 3 fois.
-Puis on part dans Configuration/Dispositif
-On appuie sur le bouton "Inutilisés" pour reperer nos 4 capteurs.
-On les ajoutes avec la fleche verte et nous les appelons:
Conso_chambre_leia, Conso_sdb_rdc, Conso_sdj, Conso_total
Nos 4 capteurs de conso sont désormais dans l'onglet "Mesures".
2.3.Les consos virtuels
On cree 3 interrupteurs de forcages/pilotage.Pour cela:
RDV dans Interrupteur/ajout manuel
Hardware: Dummy
Name: Confort_on_eco_off puis Capteur_presence puis Forcage_confort
Switch Type: On/Off
Type: X10
House Code: A/A/A/
Unit Code: 1/2/3/
Test
As: Main Device Sub/Slave Device
3.Les scripts
Script a déposé dans "/home/pi/domoticz/scripts/lua" avec le nom : scrip_time_chauffage_sdb_rdc.lua
=> script_time étant obligatoire
Code : Tout sélectionner
-- Ce script permet de maintenir la température
--------------------------------
------ Variables à éditer ------
--------------------------------
nom = 'SDB RDC' --Affichage dans le log
local consigne_conf_semaine = tonumber(otherdevices_svalues['Thermostat_sdb']) -- Température de consigne confort en semaine
local consigne_conf_weekend = tonumber(otherdevices_svalues['Thermostat_sdb']) -- Température de consigne confort le weekend
local consigne_eco = tonumber(otherdevices_svalues['Thermostat_eco']) -- Température de consigne économique
local consigne_abs = tonumber(otherdevices_svalues['Thermostat_eco']) -- Température de consigne lors d'abscence prolongée
local sonde = 'Sonde_sdb_rdc' -- Nom de la sonde de température
local mode = 'Confort_on_eco_off' -- Nom de l'interrupteur virtuel de sélection de mode Off=eco On=confort
local thermostat = 'Capteur_presence' -- Nom de l'interrupteur virtuel de thermostat (Off=abscence prolongée)
local boost = 'Forcage_confort' -- Nom de l'interrupteur virtuel de forçage de la consigne en mode weekend
local radiateur = 'Radiateur_sdb_rdc' -- Nom de l'interrupteur de chauffage
local puissance = 2000 -- puissance du chauffage en watt
local conso = 'Conso_sdb_rdc' -- nom du capteur virtuel de consommation électrique
local conso_id = 57 -- idx du capteur virtuel de consommation électrique
--------------------------------
-- Fin des variables à éditer --
--------------------------------
time = os.date("*t")
-- on regarde depuis combien de temps l'inter de mode à changé d'état
t1 = os.time()
s = otherdevices_lastupdate[mode]
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))
commandArray = {}
local today = os.date("%A")
local temperature = tonumber(string.sub(otherdevices_svalues[sonde],1,4)) -- Température relevée
if (today == "Saturday" or today == "Sunday" or otherdevices[boost] == 'On') then
consigne_conf = consigne_conf_weekend
else
consigne_conf = consigne_conf_semaine
end
-- si le thermostat général est actif
if (otherdevices[thermostat] == 'On') then
-- si il y a présence ou abscence depuis moins d'une heure, la journée
if (otherdevices[mode] == 'On' or (otherdevices[mode] == 'Off' and difference < 3600 and time.hour >= 7 and time.hour < 23)) then
consigne = consigne_conf
else
consigne = consigne_eco
end
else
consigne = consigne_abs
end
if (temperature < consigne) then
commandArray[radiateur]='On'
print('Chauffage ' .. nom .. ' -. ON .-')
-- envoie de la conso dans le capteur virtuel d'énergie
npower, energy = string.match(otherdevices_svalues[conso], "(%d+%.*%d*);(%d+%.*%d*)")
energy = tonumber(energy) + (puissance / 60)
commandArray['UpdateDevice'] = conso_id .. '|0|' .. puissance .. ';' .. energy
else
commandArray[radiateur]='Off'
print('Chauffage ' .. nom .. ' -. OFF .-')
-- envoie de la conso dans le capteur virtuel d'énergie
npower, energy = string.match(otherdevices_svalues[conso], "(%d+%.*%d*);(%d+%.*%d*)")
energy = tonumber(energy)
commandArray['UpdateDevice'] = conso_id .. '|0|' .. 0 .. ';' .. energy
end
print('il fait '..temperature..'C pour une consigne de '..consigne..'C souhaite dans la ' .. nom .. '')
return commandArray