Je n'ai pas (encore ?) d'expérience, mais je m'y intéresse très fort

Et comme on est sur un forum domoticz, utilisons domoticz
Pour savoir si un investissement de ce genre serait rentable chez moi, j'ai écris un script lua qui simule la production d'un champs de capteur bosch M60 (il fallait bien choisir un modèle !) installé sur mon toit !
Le script prends en compte :
- La position géographique
- La position des panneaux solaire (orientation, inclinaison)
- La puissance solaire reçue au cours de l'année, en tenant compte de la couverture nuageuse
- La courbe de production du panneau en fonction de la luminosité
- La consommation électrique de la maison, pour savoir quelle part de production est autoconsommée immédiatement
Il ne prends PAS en compte :
- Un masque d'horizon
- D'éventuelles ombres portées
- La diminution de production des panneaux avec l'âge, ni à cause de la poussière qui va s'accumuler dessus
Le script à besoin :
- du script "Solar Sensor" de jm leglise pour calculer la position du soleil de l'irradiation solaire pour le lieu d'habitation (
http://www.domoticz.com/wiki/Real-time_ ... _sensor...)
- d'un capteur de consommation électrique de la maison. Selon que l'électricité produite par les panneaux solaire peut-être consommée immédiatement ou non, le rendement du système va être très différent. Il faut donc connaitre la consommation instantannée de la maison pour pouvoir faire la différence entre autoconsommée et non
- un switch heure creuse/heure pleine (quoique la production solaire en heure creuse... bof !) sur planning
Pour le mettre en place il faut commencer par faire fonctionner le script SolarSensor, je vous renvoi au wiki plus haut où tout est expliqué.
Il faut ensuite créer un dummy P1 smart counter qui recevra la consommation des capteurs photovoltaïques
Script Time :
Code : Tout sélectionner
-- Script pour estimer la production d'un champ de capteur solaires bosch M60-270Wc
-- Mesure de la consommation électrique de la maison
local mesure = "owl"
local cst_AdjOwl = 0.9
local dev_HC = "Heures creuses EDF"
-- Récupération des valeurs du script SolarSensor
local dev_sunAlt = "Sun Altitude"
local dev_sunAzt = "Sun Azimuth"
local dev_Lux = "Lux"
-- Panneaux solaires
local dev_cptPV = "Estimation PV" -- De type P1 smart counter
local cst_NbPnx =7 -- Nombre de panneaux. Ici, ~1890 Wc
local cst_InclPnx=30 -- Angle d'inclinaison des panneaux
local cst_AztPnx =180 -- Azimuth des panneaux
local cst_EffUPS =0.9 --Efficacité de l'onduleur
-- Variables internes
local debug = 0
-- Bibliothèque de fonctions
function UpdateP1(device,HC,conso,prod,freq)
-- Met à jour le P1 smart counter
-- device : nom du compteur
-- HC : "On" si heures creuses, "Off" si heures pleines
-- conso : consommation instantannée
-- prod : production instantannée
-- freq : frequence d'exécution du script (en minutes)
local u1, u2, p1, p2
local dbg=0
u1, u2, p1, p2 = string.match(otherdevices_svalues[device],"(.-);(.-);(.-);(.-);.*")
-- Utile pour les compteurs nouvellement crées
u1=u1 or 0
u2=u2 or 0
p1=p1 or 0
p2=p2 or 0
if dbg == 1 then
print("Mise à jour de "..tostring(device))
print("u1 "..tostring(u1))
print("u2 "..tostring(u2))
print("p1 "..tostring(p1))
print("p2 "..tostring(p2))
print("conso "..tostring(conso))
print("prod "..tostring(prod))
end
if otherdevices[HC] == 'Off' then
-- svalue=USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[device]..'|0|'..tostring(u1+conso*freq/60)..';'..tostring(u2)..';'..tostring(p1+prod*freq/60)..';'..tostring(p2)..';'..tostring(conso)..';'..tostring(prod)}
else
commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx[device]..'|0|'..tostring(u1)..';'..tostring(u2+conso*freq/60)..';'..tostring(p1)..';'..tostring(p2+prod*freq/60)..';'..tostring(conso)..';'..tostring(prod)}
end
end
-- Fin biliothèque de fonctions
commandArray = {}
actual_conso, compteur, dum2 = string.match(otherdevices_svalues[mesure],"(%d+.%d*);(%d+).(%d*)")
-- Run every minutes
-- Simulation panneaux solaires
-- Bosh M60 270Wc
-- Production=0.272*Indidence solaire-1.374 W
-- Incidence solaire =0.0079*Lux du script SolarSensor
rad_sunAlt =math.rad(otherdevices[dev_sunAlt])
rad_sunAzt =math.rad(otherdevices[dev_sunAzt])
rad_InclPnx=math.rad(cst_InclPnx)
rad_AztPnx =math.rad(cst_AztPnx)
-- coef=cos de l'angle d'incidence des rayons solaires sur le panneau
-- (Capderou, tome1, vol 1, p.66)
coef=math.sin(rad_sunAzt)*math.sin(rad_InclPnx)*math.sin(rad_AztPnx)*math.cos(rad_sunAlt)
+math.cos(rad_sunAzt)*math.sin(rad_InclPnx)*math.cos(rad_AztPnx)*math.cos(rad_sunAlt)
+math.cos(rad_InclPnx)*math.sin(rad_sunAlt)
ProdM60=round(cst_EffUPS*cst_NbPnx*math.max(0,0.272*otherdevices[dev_Lux]*0.0079*coef-1.374),0)
-- répartition de la production en utile et perdue selon la consommation de la maison
ProdUtile=math.min(ProdM60,actual_conso*cst_AdjOwl)
ProdPerdue=ProdM60-ProdUtile
if debug == 1 then
print("Production M60")
print("consommation : "..tostring(actual_conso).." W")
print("Production brute : "..tostring(ProdM60).." W")
print("Production utile : "..tostring(ProdUtile).." W")
print("Production perdue: "..tostring(ProdPerdue).." W")
end
UpdateP1(dev_cptPV,dev_HC,ProdPerdue,ProdUtile,1)
return commandArray
Et ça donne un résultat comme ça :
La partie de production en vert correspond à la partie autoconsommée immédiatement, et en bleu on retrouve l'excédent (if any !). Du coup, dans les rapports, on lit dans "retour T1" l'électricité autoconsommée (et du coup, l'économie réalisée) et dans "Utilisation T1" la production exédentaire. le "coût total" n'a donc pas de sens : ignorez le !
A partir de là, on peut analyser la rentabilité de l'investissement, et envisager plusieurs cas pour l'électricité exédentaire.
- Soit on la cède gratuitement à EdF (le plus simple !)
- Soit on modifie ses habitudes de consommations pour mieux profiter de la production des panneaux, par exemple en faisant marcher un chauffe eau à accumulation pendant les périodes d'exédent (domoticz peut être précieux pour piloter ça automatiquement)
- Soit on la revends à EdF (coût à prévoir pour le 2nd compteur, le consuel, etc -> étudier la rentabilitié)
- Soit on la stocke sur batterie pour la consommer plus tard (coût à prévoir pour onduleur plus cher, batteries qu'il faut remplacer, rendement de la chaine stockage/destockage -> étudier aussi la rentabilité)
Voilà mes 2 ¢

A vos question !