Aller au contenu

Messages recommandés

Posté(e)

@Nico voici le programme pour l'azimute il tourne parfaitement sur mon commodore 128 a toi de l'adapter pour la HC2

100 PI = 3.14159 
110 PRINT "PROGRAMME TOURNESOL" 
120 DIM M(26),Y(26)0(3),L(4),K(2),H(3) 
130 FOR I = 1 TO 26 
140 READ M(I) 
150 NEXT I 
160 DATA 0,1,2,3,4,5,6,7,8,9,10,11,12 
170 DATA » 0,1,2,3,4,5,6,7,8,9,10,11,12 
180 FOR I = 1 TO 26 190 READ Y(I) 
200 NEXT I 
210 DATA 0,31,60,91,121,152,182,213 
220 DATA 244,274,305,335,366 230 DATA 0,31,59,90,120,151,181,212 
240 DATA 243,273,304,334,365 
250 PRINT "ANNE BISSEXTILE" 
260 INPUT "SI OUI TAPER 1" ; A 
270 INPUT "JOUR PASSAGE HEURE ETE "O(1) 
280 INPUT "MOIS "0 
290 IF A = 1 GOTO 330 

300 M = M + 13 
310 V = J(1) + Y(M) 
320 GOTO 340 
330 V = J(1) + Y(M) 
340 INPUT "JOUR DE PASAGE HEURE HIV " ; J(2) 
350 INPUT "MOIS " ; M 
360 IF A = 1 GOTO 410 
370 M = M + 13 
380 W = J(2) + Y(M) 
390 Z = 80 
400 GOTO 430 
410 W = J(2) + Y(M) 
420 Z = 81 
430 INPUT "LONGITUDE DEGRES " ; L(I) 
440 INPUT "MINUTES " ; L(2) 
450 PRINT "LONGITUDE OUEST " 
460 INPUT "SI OUI TAPER 1 " ; B 
470 IF B < > 1 THEN GOTO 480 
475 L = - L 
480 INPUT "LATITUDE DEGRES " ; L(3) 
490 INPUT "MINUTES " ; L(4) 
500 INPUT "MOIS D'ORIENTATION " ; M 
510 INPUT "JOUR D'ORIENTATION " ; J(3) 
520 IF A = 1 GOTO 560 
530 M = M + 13 
540 N = J(3) + Y(M) 
550 GOTO 570 
560 N = J(3) + Y(M) 
570 PRINT "HEURE TU SINON HEURE LEGALE" 
580 INPUT "SI OUI TAPER 1" ; D 
590 INPUT "HEURE ORIENTATION " ; H(1) 
600 INPUT "MINUTE ":H(2) 
610 IF D = 1 GOTO 660 
620 PRINT "CALCUL EN HEURE LEGALE" 
630 IF N < V GOTO 650 
640 IF N > = W GOTO 650 
645 H(1) = H(1) - 1 
650 H(1) = H(1) - 1 
660 Ni = N - Z 
670 Dl = 0.4 t SIN ((2 $ PI t Ni)/365) 
680 D2 = ATN (DI/SUR (1 - Dl 2)) 
690 L = L(1) + L(2)/60 
700 A = - 0.25888E + 1 
701 B = - 0.66626E + 0 
702 C = 0.19372E - 1 
703 D = - 0.4962E - 3 
704 P = 0.96541E - 5 
710 F = - 0.1057E - 6 
711 U = 0.65537E - 9 
712 H = - 0.23814E 11 
713 I = 0.50472E - 14 
714 J = - 0.5796E - 17 
720 K K = 0.27946E - 20 
800 H(1) = H(1) - 1 
810 GOTO 840  
820 H(2) = H(2) - 60 74144 
830 H(1) = H(I) + 1 
840 H(3) = H(1) + H(2)/60 
850 P1 = L(3) + L(4)/60 
860 P = PI t 2 t PI/360 
870 E = SIN (P) t SIN (D2) 
880 IF H(3) > = 12 GOTO 890 
885 H(3) = - (12 - H(3)) 
886 GOTO 900 
890 H(3) = H(3) - 12 2) + D t (N 3) + P t (U t (N " 6) + H t (N 7) + 9) 
900 AH = (2 t PI t H(3))/24 
910 M = E + COS (D2) t COS (P) t COS (AH) 
920 MI = ATN (M/SUR (1 - (M 2))) 
930 M2 = (MI t 36))/(2 t PI) 
940 k(1) = 90 - M2 
950 K(1) = INT (K(1) t 100)/100 
960 Q = (COS (D2) t SIN (AH))/COS (MI) 
970 K(2) = ATN (Q/SUR (1 - 2))) 
980 K(2) = (360 t K(2))/(2 t PI) 
990 K(2) = INT (K(2) t 100)/100 
1000 PRINT 
1010 PRINT 
1020 PRINT 
1030 PRINT "INCLINAISON " ; K(1) ; " DEG" 
1040 PRINT 
1050 PRINT 
1060 PRINT AZIMUT " ; K(2) ; " DEG" 
1070 PRINT 
1080 PRINT 
1090 PRINT 
1100 PRINT "NOUVEAU MOIS ? " 
1110 INPUT "SI OUI TAPER 1 " ; F 
1120 IF F = 1 GOTO 500 
1130 PRINT "CALCUL MEME MOIS" 
1140 PRINT "NOUVEAU JOUR" 
1150 INPUT "SI OUI TAPER l' ; F 
1160 IF F = 1 GOTO 510 
1170 PRINT "NOUVELLE HEURE ? " 
1180 INPUT "SI OUI TAPER 1' ; F 
1190 IF F = 1 GOTO 570 
1200 END





:D

Posté(e)

Yop, si j'ai le temps, làje file poser l'électricité des volets roulants chez mes beaux parents :)

Posté(e)

Alors voilà  !

 

J’ai fait une première version en module virtuel du code C++ précédemment cite par @BenjyNet  :5:

 

Évidemment ça ne marche pas bien. :23:

 

 

Je sollicite donc vos yeux et neurones pour me dire ou je me suis trompé. :15:

 

Pour vérifier j’utilise le site http://www.sunearthtools.com/dp/tools/pos_sun.php?lang=fr

 

Voici le code du main loop:

local TmpsLoop = 60 -- Temps avant le prochain loop
local MVid = fibaro:getSelfId()

HC2 = Net.FHttp("127.0.0.1",11111);
local response, status, errorCode = HC2:GET("/api/settings/location");
 
if (tonumber(errorCode) == 0) then
  jsonTable = json.decode(response);
else
  fibaro:debug("error "..errorCode )
end
-- recuperation des données de la HC2 
local Ville = (jsonTable.city)
local latitude = (jsonTable.latitude);
local longitude = (jsonTable.longitude);
fibaro:debug("Latitude : "..latitude .." - Longitude : " .. longitude)




function setDevicePropertyValue(id, label, value)
  fibaro:call(id, "setProperty", "ui."..label..".value", value)
end

function calcul_jour_julien(jour, mois, annee, heure, minute, seconde)
  local month
  local year
  local day
  local a
  local b
  local jour_julien
  day   = jour + heure /24 + minute/ 1440 + seconde / 86400
  year  = annee
  month = mois
  if month==1 or month==2 then
    year=year - 1
    month=month + 12
  end
  a = math.abs(year / 100)
  b = 2 - a + math.abs( a / 4)
  jour_julien = math.abs( 365.25 * ( year + 4716)) + math.abs(30.6001*(month+1.0)) + day + b - 1524.5  
  return jour_julien
end
  
-- ===========================================
-- Main
-- ===========================================
local dt = os.date("*t")
--local JourJulien = calcul_jour_julien(13,01,2015,12,00,00)
local correction_heure
-- Correction heure isdst = True => Eté => +2h sinon Hiver +1h (UT)
if (dt.isdst) then
  correction_heure = 2
else
  correction_heure = 1
end

local jour_nouveau = calcul_jour_julien(dt.day, dt.month, dt.year, dt.hour, dt.min, dt.sec)-correction_heure/24-2451545
setDevicePropertyValue(MVid, "JourJulienNouv", jour_nouveau)

------------------------------------------------------------------------------
-------------calculs et affichages ascension droite et délinaison-------------
------------------------------------------------------------------------------

local g = 357.529 + 0.98560028 * jour_nouveau
local q = 280.459 + 0.98564736 * jour_nouveau
local l = q + 1.915 * math.sin ( g * math.pi / 180 ) + 0.020 * math.sin( 2 * g * math.pi /180 )
local e = 23.439 - 0.00000036 * jour_nouveau
local ascension_droite = math.atan(math.cos( e * math.pi / 180) * math.sin( l * math.pi / 180 ) / math.cos( l * math.pi / 180)) * ( 180 / math.pi ) / 15
if (math.cos( l * math.pi / 180) < 0) then
  ascension_droite = 12 + ascension_droite
end
if (math.cos( l *math.pi / 180) > 0 and math.sin( l * math.pi / 180) < 0 ) then
  ascension_droite = ascension_droite + 24
end
setDevicePropertyValue(MVid, "AscensionDroite", ascension_droite)

local declinaison = math.asin(math.sin(e * math.pi / 180) * math.sin( l * math.pi / 180)) * 180 / math.pi
setDevicePropertyValue(MVid, "Declinaison", declinaison)
  
------------------------------------------------------------------------------
-----------------------------calculs heure sidérale et angle horaire----------
------------------------------------------------------------------------------
local nb_siecle = jour_nouveau/36525
local heure_siderale1 = (24110.54841 + (8640184.812866 * nb_siecle) + (0.093104 * (nb_siecle * nb_siecle)) - (0.0000062 * (nb_siecle * nb_siecle * nb_siecle))) / 3600
local heure_siderale2 = ((heure_siderale1 / 24) - math.abs(heure_siderale1 / 24)) * 24

local angleH = 360 * heure_siderale2 / 23.9344
local angleT = ( dt.hour - correction_heure - 12 + dt.min / 60 + dt.sec / 3600) * 360 / 23.9344
local angle = angleT + angleH
local angle_horaire = angle - ascension_droite * 15.0 + longitude

-------------calculs et affichages altitude et azimut-------------------------
------------------------------------------------------------------------------
local altitude = math.asin(math.sin(declinaison * math.pi / 180) * math.sin(latitude * math.pi / 180) - math.cos(declinaison * math.pi / 180) * math.cos(latitude * math.pi / 180) * math.cos(angle_horaire * math.pi / 180)) * 180/math.pi
setDevicePropertyValue(MVid, "Altitude", altitude)
local azimut = math.acos((math.sin(declinaison * math.pi / 180) - math.sin( latitude * math.pi / 180) * math.sin(altitude * math.pi / 180)) / (math.cos(latitude * math.pi / 180) * math.cos(altitude * math.pi / 180))) * 180 / math.pi
local sinazimut = (math.cos(declinaison * math.pi / 180) * math.sin(angle_horaire * math.pi / 180)) / math.cos( altitude * math.pi / 180)
if(sinazimut<0) then
  azimut=360-azimut
end
setDevicePropertyValue(MVid, "Azimut", azimut)


fibaro:sleep((TmpsLoop - 3)*1000)

Voici le module virtuel : 

 

 

Position_du_Soleil.vfib

  • Upvote 1
Posté(e)

J’en ai trouvé une! j’ai traduit la fonction int() par math.abs :94: alors que c’est math.floor.

 

Je corrige, je test, et je vous renvoie le code.

 

Posté(e)

Un peu mieux, mais c’est pas ça encore !

local TmpsLoop = 60 -- Temps avant le prochain loop
local MVid = fibaro:getSelfId()

HC2 = Net.FHttp("127.0.0.1",11111);
local response, status, errorCode = HC2:GET("/api/settings/location");
 
if (tonumber(errorCode) == 0) then
  jsonTable = json.decode(response);
else
  fibaro:debug("error "..errorCode )
end
-- recuperation des données de la HC2 
local Ville = (jsonTable.city)
local latitude = (jsonTable.latitude);
local longitude = (jsonTable.longitude);
fibaro:debug("Latitude : "..latitude .." - Longitude : " .. longitude)




function setDevicePropertyValue(id, label, value)
  fibaro:call(id, "setProperty", "ui."..label..".value", value)
end

function calcul_jour_julien(jour, mois, annee, heure, minute, seconde)
  local month
  local year
  local day
  local a
  local b
  local jour_julien
  day   = jour + heure /24 + minute/ 1440 + seconde / 86400
  year  = annee
  month = mois
  if month==1 or month==2 then
    year=year - 1
    month=month + 12
  end
  a = math.floor(year / 100)
  b = 2 - a + math.floor( a / 4)
  jour_julien = math.floor( 365.25 * ( year + 4716)) + math.floor(30.6001*(month+1.0)) + day + b - 1524.5  
  return jour_julien
end
  
-- ===========================================
-- Main
-- ===========================================
local dt = os.date("*t")
--local JourJulien = calcul_jour_julien(13,01,2015,12,00,00)
local correction_heure
-- Correction heure isdst = True => Eté => +2h sinon Hiver +1h (UT)
if (dt.isdst) then
  correction_heure = 2
else
  correction_heure = 1
end

local jour_nouveau = calcul_jour_julien(dt.day, dt.month, dt.year, dt.hour, dt.min, dt.sec)-correction_heure/24-2451545
setDevicePropertyValue(MVid, "JourJulienNouv", jour_nouveau)

------------------------------------------------------------------------------
-------------calculs et affichages ascension droite et délinaison-------------
------------------------------------------------------------------------------

local g = 357.529 + 0.98560028 * jour_nouveau
local q = 280.459 + 0.98564736 * jour_nouveau
local l = q + 1.915 * math.sin ( g * math.pi / 180 ) + 0.020 * math.sin( 2 * g * math.pi /180 )
local e = 23.439 - 0.00000036 * jour_nouveau
local ascension_droite = math.atan(math.cos( e * math.pi / 180) * math.sin( l * math.pi / 180 ) / math.cos( l * math.pi / 180)) * ( 180 / math.pi ) / 15
if (math.cos( l * math.pi / 180) < 0) then
  ascension_droite = 12 + ascension_droite
end
if (math.cos( l *math.pi / 180) > 0 and math.sin( l * math.pi / 180) < 0 ) then
  ascension_droite = ascension_droite + 24
end
setDevicePropertyValue(MVid, "AscensionDroite", ascension_droite)

local declinaison = math.asin(math.sin(e * math.pi / 180) * math.sin( l * math.pi / 180)) * 180 / math.pi
setDevicePropertyValue(MVid, "Declinaison", declinaison)
  
------------------------------------------------------------------------------
-----------------------------calculs heure sidérale et angle horaire----------
------------------------------------------------------------------------------
local nb_siecle = jour_nouveau/36525
local heure_siderale1 = (24110.54841 + (8640184.812866 * nb_siecle) + (0.093104 * (nb_siecle * nb_siecle)) - (0.0000062 * (nb_siecle * nb_siecle * nb_siecle))) / 3600
local heure_siderale2 = ((heure_siderale1 / 24) - math.floor(heure_siderale1 / 24)) * 24

local angleH = 360 * heure_siderale2 / 23.9344
local angleT = ( dt.hour - correction_heure - 12 + dt.min / 60 + dt.sec / 3600) * 360 / 23.9344
local angle = angleT + angleH
local angle_horaire = angle - ascension_droite * 15.0 + longitude

-------------calculs et affichages altitude et azimut-------------------------
------------------------------------------------------------------------------
local altitude = math.asin(math.sin(declinaison * math.pi / 180) * math.sin(latitude * math.pi / 180) - math.cos(declinaison * math.pi / 180) * math.cos(latitude * math.pi / 180) * math.cos(angle_horaire * math.pi / 180)) * 180/math.pi
setDevicePropertyValue(MVid, "Altitude", altitude)
local azimut = math.acos((math.sin(declinaison * math.pi / 180) - math.sin( latitude * math.pi / 180) * math.sin(altitude * math.pi / 180)) / (math.cos(latitude * math.pi / 180) * math.cos(altitude * math.pi / 180))) * 180 / math.pi
local sinazimut = (math.cos(declinaison * math.pi / 180) * math.sin(angle_horaire * math.pi / 180)) / math.cos( altitude * math.pi / 180)
if(sinazimut<0) then
  azimut=360-azimut
end
setDevicePropertyValue(MVid, "Azimut", azimut)


fibaro:sleep((TmpsLoop - 3)*1000)

a remplacer dans le main loop.

  • Upvote 1
Posté(e)

j'ai lu quelque part qu'en v4.x le main loop ne pouvait pas être trop long ...

alors le mieux serait de mettre tout cela dans un bouton, et le main loop appuyerait àintervalle régulier sur le bouton .

C'est peut-être cela la source de l'erreur

Posté(e)

Bon… finalement c’est précis à  moins de 1°. Je me dis donc que c’est suffisant pour ce que l’on veut en faire.

Donc voici le module plus abouti.

Il va mettre à  jour deux variable global (PosSoleilAzimut, PosSoleilElevation) qu’il faut créer avant d’importer le module.

 

 

@jojo : J’ai vu ta remarque après avoir finalisé cette version de module (désolé). Je vais faire des recherche la dessus. Si tu, ou quelqu’un d’autre, avez un exemple de code ou un lien de discussion évoquant « l’affaire » je suis preneur.

 

 

En attente de vos remarques ou de vos idées de scénario.

Position_du_Soleil.vfib

  • Upvote 2
Posté(e)

Bonjour al1_fibaro,

 

J'ai testé sur mon HC2 et voilà  l'erreur que cela me retourne. Par contre, c'est nécessaire de tourner toutes les 3 sec ?

[DEBUG] 15:27:30: 14/05/15 15:27:30
[DEBUG] 15:27:30: Altitude 55.62 °, azimut 220.77 °.
[DEBUG] 15:27:33: 14/05/15 15:27:33
[DEBUG] 15:27:33: Altitude 55.61 °, azimut 220.79 °.
[DEBUG] 15:27:36: 14/05/15 15:27:36
[DEBUG] 15:27:36: Altitude 55.60 °, azimut 220.80 °.
[DEBUG] 15:27:39: 14/05/15 15:27:39
[DEBUG] 15:27:39: Altitude 55.60 °, azimut 220.82 °.
[DEBUG] 15:27:42: 14/05/15 15:27:42
[DEBUG] 15:27:42: Altitude 55.59 °, azimut 220.84 °.

Du coup tu fais comment pour asservir la position de des volets par rapport à  ces données. 

Dans mon cas j'ai différentes orientation à  gérer :

  • Sud 
  • Ouest
  • Est

Je suis tombé sur un diapo qui explique bien le rayonnement solaire : 

Posté(e)

Non! non ! j’ai oublié de remettre le temps d’attente (TmpsLoop) en seconde, à  un valeur plus raisonnable. Il faut modifier la première ligne.

local TmpsLoop = 60 -- Temps avant le prochain loop

Je cherche encore comment utiliser ces informations. Je suppose que Nico à  de bonne idée à  nous faire partager.

 

PS : Pour moi il n’y a pas d’erreur.

PS2 : Dans l'algo, manifestement l'azimut 0° correspond au nord et donc 180° le sud.

Dans les diapos 0° correspond au sud.

Posté(e) (modifié)

super boulot, je viens de tester, ok pour moi ms j'ai une erreur :

[DEBUG] 18:10:11: 14/05/15 18:10:11
[DEBUG] 18:10:11: Altitude 29.12 °, azimut 265.36 °.
[ERROR] 18:10:11: line 114: bad argument #1 to 'floor' (number expected, got nil)

la ligne 114 est la mise à  jour de la variable globale :

if math.floor(tonumber(fibaro:getGlobalValue("PosSoleilElevation") ) ) ~= math.floor(altitude) then
  fibaro:setGlobal("PosSoleilElevation", altitude)
end

if math.floor( tonumber( fibaro:getGlobalValue( "PosSoleilAzimut" ) ) ) ~= math.floor(azimut) then
  fibaro:setGlobal("PosSoleilAzimut", azimut)
end

j'avais aussi lu la faiblesse du mainloop au bout d'un certain temps, j'aimis le code dans un bouton "Calcul Position Soleil" que je cliquerai avec GEA.

 

Par contre reste a connaitre la pose du soleil en fonction des horaires..pas gagne ;-)

 

en tout cas super boulot merci

 

Manque plus que les icones en fonction de la position ;-)

Modifié par pepite
Posté(e)

@al1.fibaro tu le gâtes de trop, il peut l’envoyé une bonne bouteille de gewurztraminer vendanges tardives ;) pour ce super travail :13:

  • Upvote 4
Posté(e)

Par contre reste a connaitre la pose du soleil en fonction des horaires..pas gagne ;-)

 

tu parles de la pose café du soleil ? En général, c'est de 10h00 à  10h30 et de 15h00 à  15h30  :98:

Posté(e)

@jojo : excellent :D :D :D

 

oui elles sont bien créées ;-) mes petites variables

[DEBUG] 19:14:13: 14/05/15 19:14:13
[DEBUG] 19:14:13: Altitude 18.59 °, azimut 277.38 °.
[ERROR] 19:14:13: line getSelfId()..."]:113

et ma 113

if math.floor(tonumber(fibaro:getGlobalValue("PosSoleilElevation") ) ) ~= math.floor(altitude) then

 

Posté(e)

Bon, je crois que je ne vais plus que proposer les idées et laisser faire :)

En tout cas nickel al1.fibaro, c'est juste la classe. Testé par rapport à  chez moi, cela est hyper précis.

Si vous voulez voir en temps réel le soleil chez vous, prenez cet outils et tapez juste votre ville :

http://www.sunearthtools.com/dp/tools/pos_sun.php?lang=fr

 

Donc maintenant la suite. J'ai vérifié, dans cet algo l'azimut 0 degré et le nord. Si cela gène, il suffit de faire plus 180. Mois le nord me va bien. Et maintenant, bah il vous faut une boussole les enfants. Et simplement prendre l'angle de ces murs par rapport au nord. Je m'explique.

 

Cas 1 :

Prenons l'exemple d'un mur qui est aligné nord/sud à  100% pour faire simple. Par rapport au nord, il aura donc 180 degrés. Et donc ce mur plutôt ces murs pour la maison, sont les murs est et ouest.

L'outils nous donne l'azimut du soleil par rapport au nord. Donc tant que l'azimut du soleil est inférieur à  180 degrés, aucun rayon de soleil ne touchera la face ouest. A partir de 180 + 1 degrés, le soleil commencera à  toucher votre face ouest, par contre ne touchera plus du tout votre face est !

 

Cas 2 :

Prenons en second exemple le mur sud maintenant. Celui ci est à  90 degrés du nord. Donc dès que l'azimut du soleil fera 90 + 1 degré, il commencerai à  toucher votre face sud.

 

Maintenant il reste à  finaliser le module. Je verrai bien 4 champs dans le haut du code, dans lesquelles on indique les 4 valeurs des murs par rapport au nord. Mur 1, x degrés par rapport au nord (Qui est donc le 0), mur 2, y degrés, etc. En fait pour faire simple, si votre maisons à  4 murs rectangulaire ou carré, il suffit de prendre l'angle d'un mur précisément, et faire + 90 degrés pour chacun des 3 suivants.

Ensuite je verrai bien 4 variables globales (Mur_1_eclairé), 1 par mur, et le module passerai simplement à  1 la valeur de cette variable quand le mur est touché par le soleil. Puis derrière, chacun peut l'utiliser comme il veut. Moi ce sera GEA qui activera la descente des volets sur la face concernée et l'ouverture sur l'opposée. Les possibilités sont énormes, on peut faire un paquet de chose avec.

De même, l'élévation permet de fermer un store (Pour moi par exemple au dessus de la véranda), mais la le calcul est un peu plus compliqué à  faire.

 

Je vous laisse finir le module les amis :)

Posté(e)

Aucun payement, mes idées valent de l'or :)

 

Je suis content, tout est ok chez mes beaux parents. Au RDC, pas trop de souci, vu qu'ils vont refaire la tapisserie, j'ai pu rajouter un trou intermédiaire. Par contre à  l'étage, j'ai du passé par le grenier, longé le mur extérieur de l'intérieur, passé derrière le placo et arrivé dans ma boite (Au préalable, découper un beau carré dans la tapisserie in tissée). On ne voit plus rien, juste replié et collé la tapisserie dessus, et parfait.

  • Upvote 1
Posté(e)

Bon alors tu mérites le vd tu es un bon gendre lol

Moi je suis dégoûter j'ai un disque de 3to qui donne de gros signe de fatigue sur mon dsm je viens de lancer une régénération on verra bien je suis en raid5 avec 4 disques de 3to. Le disque qui me lache est le plus récent environ 1 an et demi

Posté(e)

Clair, pas cool. S'il est HS, tu veux lancer quoi, c'est mort. Moi je n'aurai pas lancé de reconstruction du RAID, car cela va les faire bosser àfond durant des heures et peut user un autre pour rien.

Posté(e)

J'avais pas pensé a cela et la je peux plus arrêté le process tampis en plus les prix des disk sont en haussent en ce moment pfff

Posté(e)

Ola,

Je découvre ce post seulement maintenant. Beau boulot @al1_fibaro

Je vais l'adapter pour les volets. C'est pas si compliqué de déterminer les angles battant et l'incidence dans nos fenêtres.

×
×
  • Créer...