fgtoul
Janvier 24, 2022, 5:03
21
Bonsoir Didier
pour les 4 prĂ©visions, câest la boucle for
for (var k = 0; k < 4; k++) {
tu peux remplacer 4 par 2.
Mais du coup, il faut ajuster le HTML avec les attributs Colspan :
tu peux supprimer les attributs « Colspan=2 » sur la ligne de Prev1C du javascript
et remplacer « Colspan=4 » par « colspan=2 » dans le HTML
1 « J'aime »
Merci
jâanalyse cela
voila reprit jâanalyse hygro
merci François avec hygro @fgtoul
bonne soirée
1 « J'aime »
fgtoul
Janvier 24, 2022, 5:21
23
effectivement
pour la Normandie, openWeatherMaps fournit le taux dâhumiditĂ© dans lâair
que tu peux récupérer en intégrant cette valeur dans la boucle
for (var k = 0; k < 2; k++) {
...
prevHUM.innerHTML+= "<td>H:" + openWeather.hourly[k+1].humidity + " %</td>";
...
Il faudra alors remplacer <TD id=prevUV...
par <TD id=prevHUM ...
Malheureusement la pluviomĂ©trie nâest pas dans les stats Hourly
1 « J'aime »
fgtoul
A scindé ce sujet ()
Janvier 24, 2022, 5:34
24
Un message a été fusionné à un sujet existant : Collection de Widgets analogiques (CANVAS-GAUGES)
ben pas utile, il y pleut tout le tempsâŠ
Bonne soirée
1 « J'aime »
fgtoul
Janvier 24, 2022, 6:16
26
@didierm je pense quâil reste des attributs Colspan non modifiĂ©s comme vu au dessus, ce qui provoque le tassement Ă gauche de tes prĂ©visions.
Remarque Annexe : un meilleur centrage du widget est obtenu en fixant la largeur Ă 90% au lieu de 100% dans la ligne ci-dessous
<table width="90%" style="color:#fff;margin:0;padding:0px;position:absolute;top:-10px;font-size:12px;text-align:center">
je corrige le code initial pour les futurs utilisateurs
1 « J'aime »
je te passe le code
<iframe width=100% height=100% allowtransparency="true" scrolling=no frameBorder="0" srcdoc='
<link rel="stylesheet" href="assets/lib/gce-glyph/gce-glyph.min.css">
<body style="background-color:transparent">
<script type="text/javascript">
let Latitude="xxxxx";
let Longitude="xxxxxx";
let owApiKey="xxxxxxxxxx";
//ne rien modifier ci-dessous
let iconC,tempC,hpaC,myURL;
let uIco="http://openweathermap.org/img/wn/";
function init() {
myURL="https://api.openweathermap.org/data/2.5/onecall?lat=" + Latitude;
myURL+="&lon="+Longitude;
myURL+="&units=metric&exclude=minutely,dayly";
myURL+="&appid=" + owApiKey;
getState((openWeather) => {
tempC=openWeather.current.temp;
iconC=openWeather.current.weather[0].icon;
hpaC=openWeather.current.pressure;
let prevC1 = document.getElementById("prevC1");
let prevH=document.getElementById("prevH"), prev1 = document.getElementById("prev1");
let prev2 = document.getElementById("prev2"),prevHUM = document.getElementById("prevHUM");
let prevWind = document.getElementById("prevWind");
prev1.innerHTML="";prev2.innerHTML="";prevH.innerHTML="";prevHUM.innerHTML="";prevWind.innerHTML="";
prevC1.innerHTML="<td colspan=2 >" + tempC.toFixed(2) + " °C<br>" + hpaC + "hPa</td><td colspan=2><img src=" + uIco + iconC + ".png" + "></img></td>";
for (var k = 0; k < 2; k++) {
var fg=new Date(); //;
var fg1=parseInt(openWeather.hourly[k+1].dt)*1000;
fg.setTime(fg1);
prevH.innerHTML+= "<td>" + (fg.getHours() < 10 ? "0" + fg.getHours() : fg.getHours()) + ":00" + "</td>";
prev1.innerHTML+= "<td>" + openWeather.hourly[k+1].temp.toFixed(2) + "°C</td>";
prev2.innerHTML+= "<td><img width=70% src=" + uIco + openWeather.hourly[k+1].weather[0].icon + ".png" + "></img></td>";
prevHUM.innerHTML+= "<td>H:" + openWeather.hourly[k+1].humidity + " %</td>";
prevWind.innerHTML+= "<td>" + (parseFloat(openWeather.hourly[k+1].wind_speed)*3.6).toFixed(1) + "km/h</td>";
}
});
}
function getState(cb) {
fetch(myURL, {method: "GET"}).then((ret) => { // Get openWeather object
ret.json().then((openWeather) => {
cb(openWeather); // Return openWeather from API
});
});
}
function autoRefresh() {
setInterval(() => {
init();
}, 3600000); // 1 hour
}
init();
autoRefresh();
</script>
<table width="100%" style="margin:0;padding:0px;position:absolute;top:-10px;color:#fff;font-size:12px;text-align:center">
<tr id="prevC1" style="font-size:18px"></tr>
<tr><td style="color:#ff0" colspan=2>Prévisions sur 2 heures</td></tr>
<tr id="prevH" style="font-size:10px;"></tr>
<tr id="prevHUM" style="font-size:12px;"></tr>
<tr id="prev1" style="font-size:14px;"></tr>
<tr id="prevWind" style="font-size:12px;"></tr>
<tr id="prev2"></tr>
</table>
</body>
'></iframe>
1 « J'aime »
fgtoul
Janvier 24, 2022, 6:29
28
voilĂ :
<iframe width=100% height=100% allowtransparency="true" scrolling=no frameBorder="0" srcdoc='
<link rel="stylesheet" href="assets/lib/gce-glyph/gce-glyph.min.css">
<body style="background-color:transparent">
<script type="text/javascript">
let Latitude="xxxxx";
let Longitude="xxxxxx";
let owApiKey="xxxxxxxxxx";
//ne rien modifier ci-dessous
let iconC,tempC,hpaC,myURL;
let uIco="http://openweathermap.org/img/wn/";
function init() {
myURL="https://api.openweathermap.org/data/2.5/onecall?lat=" + Latitude;
myURL+="&lon="+Longitude;
myURL+="&units=metric&exclude=minutely,dayly";
myURL+="&appid=" + owApiKey;
getState((openWeather) => {
tempC=openWeather.current.temp;
iconC=openWeather.current.weather[0].icon;
hpaC=openWeather.current.pressure;
let prevC1 = document.getElementById("prevC1");
let prevH=document.getElementById("prevH"), prev1 = document.getElementById("prev1");
let prev2 = document.getElementById("prev2"),prevHUM = document.getElementById("prevHUM");
let prevWind = document.getElementById("prevWind");
prev1.innerHTML="";prev2.innerHTML="";prevH.innerHTML="";prevHUM.innerHTML="";prevWind.innerHTML="";
prevC1.innerHTML="<td>" + tempC.toFixed(2) + " °C<br>" + hpaC + "hPa</td><td ><img src=" + uIco + iconC + ".png" + "></img></td>";
for (var k = 0; k < 2; k++) {
var fg=new Date(); //;
var fg1=parseInt(openWeather.hourly[k+1].dt)*1000;
fg.setTime(fg1);
prevH.innerHTML+= "<td>" + (fg.getHours() < 10 ? "0" + fg.getHours() : fg.getHours()) + ":00" + "</td>";
prev1.innerHTML+= "<td>" + openWeather.hourly[k+1].temp.toFixed(2) + "°C</td>";
prev2.innerHTML+= "<td><img width=70% src=" + uIco + openWeather.hourly[k+1].weather[0].icon + ".png" + "></img></td>";
prevHUM.innerHTML+= "<td>H:" + openWeather.hourly[k+1].humidity + " %</td>";
prevWind.innerHTML+= "<td>" + (parseFloat(openWeather.hourly[k+1].wind_speed)*3.6).toFixed(1) + "km/h</td>";
}
});
}
function getState(cb) {
fetch(myURL, {method: "GET"}).then((ret) => { // Get openWeather object
ret.json().then((openWeather) => {
cb(openWeather); // Return openWeather from API
});
});
}
function autoRefresh() {
setInterval(() => {
init();
}, 3600000); // 1 hour
}
init();
autoRefresh();
</script>
<table width="100%" style="margin:0;padding:0px;position:absolute;top:-10px;color:#fff;font-size:12px;text-align:center">
<tr id="prevC1" style="font-size:18px"></tr>
<tr><td style="color:#ff0" colspan=2>Prévisions sur 2 heures</td></tr>
<tr id="prevH" style="font-size:10px;"></tr>
<tr id="prevHUM" style="font-size:12px;"></tr>
<tr id="prev1" style="font-size:14px;"></tr>
<tr id="prevWind" style="font-size:12px;"></tr>
<tr id="prev2"></tr>
</table>
</body>
'></iframe>
2 « J'aime »
Effectivement câest mieux
bonne soirée
1 « J'aime »
hello
Janvier 31, 2022, 5:48
30
Bonjour, Ok widget de lâaffichage mais avons nous une possibilitĂ© dâexploitation les donnĂ©es mĂ©tĂ©o dans un scenario avec le V5 pour des action X Y Z ?
Bonjour hello et bienvenue sur le forum,
vous pouvez accéder à toutes les variables et les intégrer dans un Lien ou une ScÚne.
Liens â Variables - Variables analogiques â voir collection â SystĂšme â rechercher Weather
Bonne journée
hello
Janvier 31, 2022, 6:10
32
je regarde cela et merci pour la bienvenue
jnseie
FĂ©vrier 4, 2022, 12:27
33
Je ressens un peu la mĂȘme chose que vous aussi parfois, les informaticiens ont leurs langages entre eux qui est difficile Ă comprendre⊠surtout que l ipx est une vĂ©ritable machine sophistiquĂ©e, moi je me contente de ce que je sais faire avec, notamment de lâautomatisme pour des professionnels ou particuliersâŠ
Mais il est vrai que ce forum est plus une cour de rĂ©crĂ©ation quâune assistance technique
Bonjour jnseie,
ce qui est intĂ©ressant avec ce forum, est quâil sâadresse Ă tous les niveaux dâutilisateur, de celui qui ne fera que de lâautomatisation en utilisant seulement les briques de lâIHM Ă celui capable de pousser la V5 au maximum de ses capacitĂ©s et ça demande un certain niveau et la maitrise dâun langage et de principes de programmation.
Alors vous avez raison, le forum nâest pas lâassistance technique de GCE, mais un lieu dâĂ©changes de solutions et astuces entre passionnĂ©s.
Le traiter de cour de rĂ©crĂ©ation est bien mĂ©prisant pour tous ceux qui sây « amusent ».
Bonne journée
5 « J'aime »
fgtoul
FĂ©vrier 4, 2022, 8:22
35
Bonjour,
et pour tous ceux qui passent leur temps à répondre aux questions techniques , faire des schémas techniques , ou encore à écrire des articles techniques .
Ce que je trouve amusant (pour rester dans le thĂšme) @jnseie , câest que nous avons lâimpression que vous aviez tout de mĂȘme lâenvie de jouer un peu lorsque vous ĂȘtes entrĂ© dans ce fil de conversation dĂ©diĂ© Ă un dĂ©veloppement spĂ©cifique
Personnellement lorsque jâouvre ce type de conversation, ce nâest pas pour jouer mais bien pour partager afin de vous donner envie dâaller plus loin avec votre automate.
bonne journée
9 « J'aime »
cce66
FĂ©vrier 4, 2022, 3:09
36
Bonjour @jnseie ,
Je dirais que câest une cour de rĂ©crĂ© quand on veut jouer, explorer, partager et un forum dâassistance technique quand on est bloquĂ© sur un concept, un dĂ©veloppement ou lâon trouves des rĂ©ponses quand elles sont connues en cherchant sur le forum ou des rĂ©ponses quand dâautres vous cherchent et vous trouvent des solutions ou vous apportent des Ă©lĂ©ments de rĂ©ponses qui vous permettent dâavancer. AprĂšs on peut ĂȘtre frustrĂ© de pas arriver Ă faire ce que lâon voudrait parce que câest pas possible tout bonnement dans lâĂ©tat actuel ou quâil nây a pas encore quelquâun qui sâest penchĂ© sur le mĂȘme problĂšme, mais on peut rester courtois et surtout ne pas fermer les portes ! Moi jâai bien galĂ©rĂ© au dĂ©but avec la partie mqtt, il y avait peu de doc, pas dâexemples mais Ă travers le forum jâai rĂ©ussi Ă me dĂ©patouiller puis proposer des tutos pour interfacer lâipx800 via mqtt et node-red vers home-assistant, cela mâa pris du temps mais câest toujours plaisant de partager ! En en mĂȘme temps, si jâoublie comment jâai fait je sais ou retrouver les infos !
3 « J'aime »
jnseie
FĂ©vrier 4, 2022, 3:39
37
Non, je me mettais simplement Ă la place du monsieur voilĂ toutâŠ
fgtoul
FĂ©vrier 4, 2022, 3:53
38
@jnseie
alors je confirme, ce forum sâadresse Ă tout le monde, chacun prend ce qui lâintĂ©resse ou du moins ce quâil est capable de prendre, mais franchement, le dĂ©nigrement nâa pas sa place .
Merci de votre compréhension
De plus, je ne vois pas pourquoi vous dites quâil nây a pas dâassistance sur ce forum, votre activitĂ© sur le forum dĂ©montre que certains utilisateurs vous ont dĂ©jĂ aidĂ©, et si jâai bonne mĂ©moire, vous mâavez contactĂ© en MP du 27/12/2021 au 29/12/2021 pour que je dĂ©panne vos IPX en vue dâune mise en place chez un client.