Aller au contenu

Positionnement Du Soleil


Nico

Messages recommandés

Bon, étant très difficile de trouver un vrai capteur de luminosité pour gérer la fermeture auto des volets/BSO, j'ai pris le souci autrement. Je vais le faire par rapport au positionnement du soleil. En effet, la position du soleil est connu parfaitement chaque jour, et il suffit donc d'indiquer à  partir de quel position le soleil attaquera telle ou telle façade. Bien sur, l'élévation joue un peu, mais pas tant que ça.

 

Je suis donc à  la recherche d'un site délivrant la position du soleil par API, qque connaîtrait qque chose ? J'ai déjà  trouvé par fichier Excel, mais bon cela ne serait pas top, car il faudrait mettre régulièrement à  jour.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

salut Nico

 

Je pense qu'il y a plus simple que cela

 

le soleil ce lève en Alsace donc a l'Est, ce couche en Bretagne donc a l'Ouest

Avec sunrise et sunset tu as ces 2 point cardinaux

Ensuite en Heure solaire 12H = Sud soit -1h en été et -2h hiver

après tu as le module météo de ou tu habites (latitude, longitude) de pépite avec comme valeur ceci

local Temp = {
      ["Ensoleillé"] = 0000,
      ["Nuit claire"] = 0000,
      ["Ciel voilé"] = 0000,
      ["Nuit légèrement voilée"] = 0000,
      ["Faibles passages nuageux"] = 0000,
      ["Nuit bien dégagée"] = 0000,
      ["Brouillard"] = 0000,
      ["Stratus"] = 0000,
      ["Stratus se dissipant"] = 0000,
      ["Nuit claire et stratus"] = 0000,
      ["Eclaircies"] = 0000,
      ["Nuit nuageuse"] = 0000,
      ["Faiblement nuageux"] = 0000,
      ["Fortement nuageux"] = 0000,
      ["Averses de pluie faible"] = 0000,
      ["Nuit avec averses"] = 0000,
      ["Averses de pluie modérée"] = 0000,
      ["Averses de pluie forte"] = 0000,
      ["Couvert avec averses"] = 0000,
      ["Pluie faible"] = 0000,
      ["Pluie forte"] = 0000,
      ["Pluie modéree"] = 0000,
      ["Développement nuageux"] = 0000,
      ["Nuit avec développement nuageux"] = 0000,
      ["Faiblement orageux"] = 0000,
      ["Nuit faiblement orageuse"] = 0000,
      ["Orage modéré"] = 0000,
      ["Fortement orageux"] = 0000,
      ["Averses de neige faible"] = 0000,
      ["Nuit avec averses de neige faible"] = 0000,
      ["Neige faible"] = 0000,
      ["Neige modérée"] = 0000,
      ["Neige forte"] = 0000,
      ["Pluie et neige mêlée faible"] = 0000,
      ["Pluie et neige mêlée modérée"] = 0000,
      ["Pluie et neige mêlée forte"] = 0000
    }

Tu remplaces les 0000 par les valeurs que tu veux

 

Ensuite j'ai fais cette scéne pour le décalage par rapport au le lever et coucher du soleil =http://www.domotique-fibaro.fr/index.php/topic/4642-scene-lua-jour-nuit-avec-d%C3%A9calge-possible-et-optimisation-du-sleep/

 

Avec tout cela tu peux y arrivé en prouver a Steven que tu ne codes pas comme un pied :D

Lien vers le commentaire
Partager sur d’autres sites

Voila le code pour la météo c'est pour un VD il faut adapté pour une Scéne

 

La position latitude et longitude sont celle de ta box

 

Tu peux si tu veux mettre la valeur (d'ouverture) des volets en fonction des conditions ou/et le temps de décalage en minutes ou heures

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 lat = (jsonTable.latitude);
local lng = (jsonTable.longitude);
fibaro:debug("Latitude : "..lat .." - Longitude : " .. lng)

---------
HC2 = Net.FHttp("www.prevision-meteo.ch",80);
-- documentation : http://www.prevision-meteo.ch/uploads/pdf/recuperation-donnees-meteo.pdf
 
local response, status, errorCode = HC2:GET("/services/json/lat=" .. lat .. "lng=" .. lng);
if (tonumber(errorCode) == 0) then
  jsonMeteo = json.decode(response);
else
  fibaro:debug("error "..errorCode )
end
local Condition = {
      ["Ensoleillé"] = 0001,
      ["Nuit claire"] = 0002,
      ["Ciel voilé"] = 0003,
      ["Nuit légèrement voilée"] = 0004,
      ["Faibles passages nuageux"] = 0005,
      ["Nuit bien dégagée"] = 0006,
      ["Brouillard"] = 0007,
      ["Stratus"] = 0008,
      ["Stratus se dissipant"] = 0009,
      ["Nuit claire et stratus"] = 0010,
      ["Eclaircies"] = 0011,
      ["Nuit nuageuse"] = 0012,
      ["Faiblement nuageux"] = 0013,
      ["Fortement nuageux"] = 0014,
      ["Averses de pluie faible"] = 0015,
      ["Nuit avec averses"] = 0016,
      ["Averses de pluie modérée"] = 0017,
      ["Averses de pluie forte"] = 0018,
      ["Couvert avec averses"] = 0019,
      ["Pluie faible"] = 0020,
      ["Pluie forte"] = 0021,
      ["Pluie modéree"] = 0022,
      ["Développement nuageux"] = 0023,
      ["Nuit avec développement nuageux"] = 0024,
      ["Faiblement orageux"] = 0025,
      ["Nuit faiblement orageuse"] = 0026,
      ["Orage modéré"] = 0027,
      ["Fortement orageux"] = 0028,
      ["Averses de neige faible"] = 0029,
      ["Nuit avec averses de neige faible"] = 0030,
      ["Neige faible"] = 0031,
      ["Neige modérée"] = 0032,
      ["Neige forte"] = 0033,
      ["Pluie et neige mêlée faible"] = 0034,
      ["Pluie et neige mêlée modérée"] = 0035,
      ["Pluie et neige mêlée forte"] = 0036
    }
     
local Condition_J = (jsonMeteo.current_condition.condition);
local Valeur = Condition[Condition_J]
fibaro:debug("Valeur Condition = "..Valeur.." - "..Condition_J)

Lien vers le commentaire
Partager sur d’autres sites

Yop, merci mprinfo. Le souci, c'est que ce n'est pas très précis. Si j'arrive à  calculer l'azimut du jour, c'est d'une précision parfaite par contre. Mais l'algo est coton, j'ai regardé.

 

Ensuite pour la météo, j'avais déjà  fais cela avec le temps, mais trop approximatif, car pas assez précis. Je prend l'exemple de chez moi à  Marcko, au bord du Rhin, la météo donnée est celle de Sélestat, beaucoup plus proche des Vosges. Et bien les conditions sont bien plus changeantes. Je suis très très souvent plus dégagé qu'à  Sélestat.

En fait, aucune météo ne fonctionne vraiment en Alsace de façon très précise, tout simplement car on passe en 30 km (A mon niveau au centre Alsace) de la montagne (Vosges), à  la plaine puis le Rhin et de nouveau de la montagne (Forêt noire). Du coup selon les couloirs, cela change beaucoup. Et comme à  Colmar, qui est la ville la plus "sèche de France" en pluviométrie annuelle, on bénéficie d'une sorte de micro climat. Très souvent je traverse l'Alsace de Mulhouse à  Strasbourg (Nous avons des entrepôts du nord au sud de l'Alsace), et effectivement, il peut pleuvoir tout le long, sauf sur une bande horizontale (Sur un planisphère) de 10-15 km au niveau de Colmar...

Mais pour cette partie, aucun souci, je vais surtout jouer sur les variations de températures, vu que j'ai des sondes de partout. Et cela fonctionne bien, testé sur une pièce complexe comme la véranda. Il suffit de bien jouer sur l'hystérésis, et on peut facilement savoir quand ouvrir et fermer selon ce que l'on souhaite (Refroidir ou chauffer la pièce).

Lien vers le commentaire
Partager sur d’autres sites

idée au passage :

si tu as un fichier xls avec l'info journalière (pour un an), ne saurais-tu pas générer  un mail automatique qui serait capturé par le script de pinou (Google Calendar vers HC2/HCL), qui enverrait les instructions à  ta box ?

Lien vers le commentaire
Partager sur d’autres sites

Bah disons que le passage par Excel c'est bof tout de même, car même s'il y a des solutions, cela serait long et fastidieux àfaire et ensuite àpartager.

Le plus simple :

-Trouver un site avec une API qui lorsqu'on envoi lat/long/date/heure envoir l'azimut

-Ecrire soit même en lua l'algo pour calculer l'azimut :)

Lien vers le commentaire
Partager sur d’autres sites

Yes :) J'ai lu des trucs, pas trop compliqué niveau math, par contre faut prendre le temps de le traduire en algo puis en lua. Mais Google est mon ami, il y a forcément qqun qui l'a déjàfait dans un autre langage, restera àle porter en Lua.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Yes c'est ça, maintenant reste à  le faire :)

 

D'ici 1/2 mois j'ai enfin fini mes travaux à  la maison (Etage en ce moment), ensuite je pourrai me consacrer plus en avant à  la domotique pure, j'ai pas mal de chose encours, en idée etc. Faut juste le temps.

Lien vers le commentaire
Partager sur d’autres sites

Vola un exemple facile à  lire pour les anciens  :2:

 

http://fr.1001mags.com/parution/svm/numero-2-janvier-1984/page-52-53-texte-integral

 

PS : je suis bien intéressé par ce sujet ;)

tu as ce lien qui te permet avec un COMMODORE 64 de connaitre entre autre la position du soleil

C'est du BASIC commodore

Lien vers le commentaire
Partager sur d’autres sites

Voici un dev open source en C #.

 

Probablement plus lisible pour les plus jeunes. :18:

 

Page présentation : http://sidstation.loudet.org/sunazimuth-fr.xhtml

Code source : http://anonsvn.loudet.org/SunAzimuth/tags/

 

Reste à  trouver la/les méthodes qui nous intéressent.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Yop yop, bah si tu le fais je n'aurai plus besoin :) Moi c'est jeudi travaux chez mes beaux parents (Ils posent des volets roulants, je dois ramener le jus àchaque fenêtre) et ensuite je continu mon étage. Mais j'ai hâte d'avoir terminé, pour me mettre àfond dans ma petite domo !!! En tout cas avec cet algo et si on récupère azimut et élévation, ce sera top de chez top pour avoir une vraie fermeture àla minute des stores, bso, volets etc.

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...