Concernant la météo :
Ce dernier est un widget appliqué sur un virtuel et se décompose de 3 parties :
- La partie supérieur, indiquant :
- la météo actuelle (source : plugin météo officiel)
- la température réelle mesurée (source : plugin Netatmo - module extérieur)
- La partie centrale, indiquant :
- L’heure du lever et coucher de soleil (source : plugin météo officiel)
- Température mini et maxi du jour (source : plugin météo officiel)
- Direction du vent, vitesse et rafale (source : plugin Netatmo - anénomètre)
- Pluviométrie du jour et pluviométrie prévisionnelle (source : plugin Netatmo - pluviomètre et plugin météo officiel)
- La partie basse, indiquant :
- La météo pour les 3 jours à venir
- Température mini et maxi pour les 3 jours à venir.
Voici les éléments qui constituent cela :
-
Virtuel :
Concernant le virtuel, rien de compliqué.
Une commande de type info et sous-type « autre » suffit.
Dans valeur, l’ensemble des informations dont j’ai besoin :
-
Le Widget :
Il faut créer un widget Code de type Info / Autre
et y mettre le code suivant :
<div class="cmd-widget" data-type="info" data-subtype="string" data-template="default" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<link rel="stylesheet" href="/data/plan/icons/weather-underground/wu-icons-style.css">
<link rel="stylesheet" href="/data/plan/icons/weather-icons/weather-icons.css">
<link rel="stylesheet" href="/data/plan/icons/weather-icons/weather-icons-wind.css">
<link rel="stylesheet" href="/data/plan/css/weather.css">
<div class="mia-meteo-cadre">
<!-- 1er cadre : météo actuelle -->
<div class="" id="mia-meteo-cadre-now">
<span class="" id="mia-meteo-now-icone"></span>
<span class="" id="mia-meteo-now-temperature"></span>
<span class="" id="mia-meteo-now-temps"></span>
</div>
<!-- 2nd cadre : détail météo actuelle -->
<div class="mia-meteo-cadre-detail">
<div class="mia-meteo-detail-grid">
<span class="mia-meteo-detail-texte" id="mia-meteo-lever-soleil"></span>
<span class="mia-meteo-detail-texte" id="mia-meteo-coucher-soleil"></span>
<span class="mia-meteo-detail-texte" id="mia-meteo-now-temperature-mini"><i class="wi wi-thermometer-exterior"></i></span>
<span class="mia-meteo-detail-texte" id="mia-meteo-now-temperature-maxi"><i class="wi wi-thermometer"></i></span>
<span class="mia-meteo-detail-texte" id="mia-meteo-now-vent-icone"></span>
<span class="mia-meteo-detail-texte" id="mia-meteo-now-vent"></span>
<span class="mia-meteo-detail-texte"><i class="mia-meteo-detail-icone-pluie wi wi-raindrops"></i></span>
<span class="mia-meteo-detail-texte" id="mia-meteo-now-pluie"></span>
</div>
</div>
<!-- 3ème cadre : météo à venir -->
<div class="mia-meteo-cadre-prevision-grid">
<div>
<span class="mia-meteo-prevision-jour" id="mia-meteo-jour1-nom"></span>
<span class="" id="mia-meteo-jour1-icone"></span>
<span class="mia-meteo-prevision-temperature" id="mia-meteo-jour1-temperature"></span>
</div>
<div>
<span class="mia-meteo-prevision-jour" id="mia-meteo-jour2-nom"></span>
<span class="" id="mia-meteo-jour2-icone"></span>
<span class="mia-meteo-prevision-temperature" id="mia-meteo-jour2-temperature"></span>
</div>
<div>
<span class="mia-meteo-prevision-jour" id="mia-meteo-jour3-nom"></span>
<span class="" id="mia-meteo-jour3-icone"></span>
<span class="mia-meteo-prevision-temperature" id="mia-meteo-jour3-temperature"></span>
</div>
</div>
</div>
<script src="/data/plan/js/weather.js"></script>
<script>
jeedom.cmd.update['#id#'] = function(_options){
mia_meteo(_options.display_value);
}
jeedom.cmd.update['#id#']({display_value:'#state#'});
</script>
</div>
-
Les fichiers sources :
A l’image de l’horloge (voir message avant celui-ci), mes fichier sources sont stockés dans data/plan.
Pour ce widget, il y a plusieurs fichiers : -
weather.css : contient le css du widget
-
weather.js : contient le code javascript permettant l’affichage de toutes les informations
-
wu-icons-style.css : pour les icônes des prévision
-
weather-icons.css : pour les icônes de la météo actuelle
-
weather-icons-wind.css : pour les icônes du vent
-
weather.png : c’est l’image représentant les arbres et montagne habillant la partie haute du widget.
Le fichier css (weather.css) contient ceci :
/* cadre principal */
.mia-meteo-cadre {
width: 300px;
height: 610px;
background: transparent;
border-radius: 32px;
box-shadow: 5px 5px 10px 5px rgba(136, 165, 191, 0.5), -5px -5px 10px 5px rgba(255, 255, 255, 0.8);
}
/***** cadre 1 *****/
.mia-meteo-cadre-now {
width: 300px;
height: 250px;
display: grid;
grid-gap: 0px;
grid-template-columns: 150px 150px;
grid-template-rows: 130px 40px;
border-radius: 25px 25px 0 0;
background: url(../img/weather.png) no-repeat bottom/100%;
}
.mia-meteo-now-soleil {
background-color: #87CEFA;
}
.mia-meteo-now-nuageux {
background-color: #B0C4DE;
filter: saturate(70%);
}
.mia-meteo-now-pluie {
background-color: #719dc0;
filter: grayscale(40%);
}
.mia-meteo-now-orage {
background-color: #4682B4;
filter: grayscale(50%);
}
.mia-meteo-now-neige {
background-color: #FFFAFA;
}
.mia-meteo-now-nuit {
background-color: #191970;
filter: grayscale(50%);
}
.mia-meteo-now-icone {
grid-column: 1;
grid-row: 1;
margin-left: 10px;
}
.mia-meteo-now-temperature,
.mia-meteo-now-temps {
padding-right: 20px;
text-align: right;
font-family: inherit;
font-weight: lighter;
}
.mia-meteo-now-temperature {
grid-column: 2;
grid-row: 1;
padding-top: 35px;
font-family: Tahoma, Geneva, sans-serif;
font-size: 70px;
}
.mia-meteo-now-temps {
grid-column: 1/3;
grid-row: 2;
margin-right: 5px;
font-family: Cambria, serif;
font-size: 30px;
white-space: nowrap;
}
.mia-meteo-now-color-white {
color: white;
}
.mia-meteo-now-color-blue {
color: rgb(44, 103, 180);
}
/***** cadre 2 *****/
.mia-meteo-cadre-detail {
width: 290px;
height: 150px;
margin-top: 20px;
margin-left: 10px;
margin-right: 0px;
background: transparent;
border-radius: 25px 0 0 25px;
box-shadow: inset 5px 5px 10px 0px rgba(136, 165, 191, 0.5), inset -5px -5px 10px 0px rgba(255, 255, 255, 0.8);
}
.mia-meteo-detail-grid {
width: 290px;
height: 140px;
padding-top: 15px;
display: grid;
grid-template-columns: 50% 50%;
grid-template-rows: 1fr 1fr 1fr;
grid-gap: 0px;
grid-column-gap: 0px;
}
.mia-meteo-detail-grid span:nth-child(1) {
grid-column: 1;
grid-row: 1;
text-align: left;
text-indent: 30px;
}
.mia-meteo-detail-grid span:nth-child(2) {
grid-column: 2;
grid-row: 1;
text-align: left;
text-indent: 10px;
}
.mia-meteo-detail-grid span:nth-child(3) {
grid-column: 1;
grid-row: 2;
text-align: left;
text-indent: 34px;
}
.mia-meteo-detail-grid span:nth-child(4) {
grid-column: 2;
grid-row: 2;
text-align: left;
text-indent: 14px;
}
.mia-meteo-detail-grid span:nth-child(5) {
grid-column: 1;
grid-row: 3;
text-align: left;
}
.mia-meteo-detail-grid span:nth-child(6) {
grid-column: 1;
grid-row: 3;
text-align: left;
text-indent: 75px;
}
.mia-meteo-detail-grid span:nth-child(7) {
grid-column: 2;
grid-row: 3;
text-align: left;
}
.mia-meteo-detail-grid span:nth-child(8) {
grid-column: 2;
grid-row: 3;
text-align: left;
text-indent: 40px;
}
.mia-meteo-detail-texte {
display: inline-block;
color: #A7ACB1;
font-weight: lighter;
font-family: Cambria, serif;
font-size: 20px;
line-height: 1.5;
}
.mia-meteo-detail-icone-vent {
font-size: 40px;
position: relative;
top: -5px;
left: 45px;
}
.mia-meteo-detail-icone-pluie {
font-size: 40px;
position: relative;
top: -5px;
left: 25px;
}
/***** Cadre 3 *****/
.mia-meteo-cadre-prevision-grid {
width: 290px;
height: 170px;
margin-top: 20px;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-column-gap: 0px;
}
.mia-meteo-cadre-prevision-grid div {
width: 80px;
height: 150px;
margin-left: auto;
margin-right: auto;
background: transparent;
border-radius: 25px;
box-shadow: 5px 5px 10px 0px rgba(136, 165, 191, 0.5), -5px -5px 10px 0px rgba(255, 255, 255, 0.8);
text-align: center;
line-height: 2;
}
.mia-meteo-prevision-jour {
display: block;
margin-top: 10px !important;
color: #A7ACB1;
font-family: Cambria, serif;
font-weight: lighter;
font-size: 12px;
}
.mia-meteo-prevision-temperature {
display: block;
color: #A7ACB1;
font-family: Tahoma, Geneva, sans-serif;
font-weight: lighter;
font-size: 14px;
}
Le fichier js (weather.js) contient ceci :
function mia_meteo(_valeur){
// Initialisation des variables.
var valeur = _valeur.split(',');
const cond_pluie = ["312", "500", "501", "531", "615", "616"];
const cond_averse = ["313", "314", "502", "503", "504", "520", "521", "522", "620"];
const cond_crachin = ["300", "301", "302", "310", "311", "321"];
const cond_neige = ["600", "601", "602", "621", "622"];
const cond_neige_fondue = ["611", "612", "613"];
const cond_pluie_vergla = "511";
const cond_orage = ["200", "201", "202", "210", "211", "212", "221", "230", "231", "232"];
const cond_brouillard = ["701", "721", "741"];
const cond_partiel_soleil = "803";
const cond_plutot_soleil = ["801", "802"];
const cond_soleil = 800;
const cond_nuageux = 804;
const jour = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'];
const cadre_now = document.getElementById('mia-meteo-cadre-now');
const now_icone = document.getElementById('mia-meteo-now-icone');
const now_temperature = document.getElementById('mia-meteo-now-temperature');
const now_temps = document.getElementById('mia-meteo-now-temps');
const lever_soleil = document.getElementById('mia-meteo-lever-soleil');
const coucher_soleil = document.getElementById('mia-meteo-coucher-soleil');
const now_temperature_mini = document.getElementById('mia-meteo-now-temperature-mini');
const now_temperature_maxi = document.getElementById('mia-meteo-now-temperature-maxi');
const now_vent_icone = document.getElementById('mia-meteo-now-vent-icone');
const now_vent = document.getElementById('mia-meteo-now-vent');
const now_pluie = document.getElementById('mia-meteo-now-pluie');
const jour1_nom = document.getElementById('mia-meteo-jour1-nom');
const jour1_icone = document.getElementById('mia-meteo-jour1-icone');
const jour1_temperature = document.getElementById('mia-meteo-jour1-temperature');
const jour2_nom = document.getElementById('mia-meteo-jour2-nom');
const jour2_icone = document.getElementById('mia-meteo-jour2-icone');
const jour2_temperature = document.getElementById('mia-meteo-jour2-temperature');
const jour3_nom = document.getElementById('mia-meteo-jour3-nom');
const jour3_icone = document.getElementById('mia-meteo-jour3-icone');
const jour3_temperature = document.getElementById('mia-meteo-jour3-temperature');
var nuit = new Boolean(false);
var now = new Date();
var jour_numero = now.getDay();
var heure = now.getHours().toString() + now.getMinutes().toString().padStart(2, '0');
// Détermination si c'est le jour ou la nuit.
if (Number(heure) > Number(valeur[3]) && Number(heure) < Number(valeur[4])) {
nuit = false;
} else {
nuit = true;
}
// ******************** //
// Cadre météo now //
// ******************** //
// Icone et background.
if (cond_pluie.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-rain';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-rain';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_averse.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-chancerain';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-pluie';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-chancerain';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_crachin.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-flurries';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-flurries';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_neige_fondue.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-chancesleet';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-chancesleet';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_pluie_vergla.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-sleet';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-sleet';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_neige.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-snow';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-neige';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-black wu-day wu-snow';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-blue';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-blue';
} else if (cond_orage.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-chancetstorms';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-orage';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-chancetstorms';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_partiel_soleil.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-partlysunny';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-partlysunny';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_plutot_soleil.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-mostlysunny';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-soleil';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-mostlysunny';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (cond_brouillard.includes(valeur[0]) === true) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-fog';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-fog';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (valeur[0] == cond_soleil) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-sunny';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-soleil';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-sunny';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else if (valeur[0] == cond_nuageux) {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-cloudy';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-cloudy';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
} else {
if (nuit === true) {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuit';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-night wu-unknown';
} else {
cadre_now.className = 'mia-meteo-cadre-now mia-meteo-now-nuageux';
now_icone.className = 'mia-meteo-now-icone wu wu-128 wu-white wu-day wu-unknown';
}
now_temperature.className = 'mia-meteo-now-temperature mia-meteo-now-color-white';
now_temps.className = 'mia-meteo-now-temps mia-meteo-now-color-white';
}
// ******************** //
// Cadre météo détail //
// ******************** //
// Température et libellé condition.
now_temperature.innerHTML = Math.round(valeur[2]) + '°';
now_temps.innerHTML = valeur[1];
// Lever et coucher du soleil.
lever_soleil.innerHTML = '<i class="wi wi-sunrise"></i> ' + (valeur[3].length == 3 ? valeur[3].substring(0, 1) + ':' + valeur[3].substring(1) : valeur[3].substring(0, 2) + ':' + valeur[3].substring(2));
coucher_soleil.innerHTML = '<i class="wi wi-sunset"></i> ' + (valeur[4].length == 3 ? valeur[4].substring(0, 1) + ':' + valeur[4].substring(1) : valeur[4].substring(0, 2) + ':' + valeur[4].substring(2));
// Température mini et maxi.
now_temperature_mini.innerHTML = '<i class="wi wi-thermometer-exterior"></i> ' + valeur[5] + '°';
now_temperature_maxi.innerHTML = '<i class="wi wi-thermometer"></i> ' + valeur[6] + '°';
// Vent et rafale.
now_vent_icone.innerHTML = '<i class="mia-meteo-detail-icone-vent wi wi wi-wind from-' + valeur[7] + '-deg"></i>';
now_vent.innerHTML = ' <sup>' + valeur[8] + '</sup> / <sub>' + valeur[9];
// Pluie actuelle et comulée journée.
now_pluie.innerHTML = ' <sup>' + valeur[10] + '</sup> / <sub>' + valeur[11];
// ******************** //
// Cadre prévision //
// ******************** //
// Prévisions + 1.
((jour_numero + 1) > 7) ? jour1_nom.innerHTML = jour[jour_numero + 1 - 7] : jour1_nom.innerHTML = jour[jour_numero + 1];
jour1_icone.className = Prevision_Icone(valeur[12]);
jour1_temperature.innerHTML = Math.round(valeur[13]) + '°   ' + Math.round(valeur[14]) + '°';
// Prévision + 2.
((jour_numero + 2) > 7) ? jour2_nom.innerHTML = jour[jour_numero + 2 - 7] : jour2_nom.innerHTML = jour[jour_numero + 2];
jour2_icone.className = Prevision_Icone(valeur[15]);
jour2_temperature.innerHTML = Math.round(valeur[16]) + '°   ' + Math.round(valeur[17]) + '°';
// Prévision +3.
((jour_numero + 3) > 7) ? jour3_nom.innerHTML = jour[jour_numero + 3 - 7] : jour3_nom.innerHTML = jour[jour_numero + 3];
jour3_icone.className = Prevision_Icone(valeur[18]);
jour3_temperature.innerHTML = Math.round(valeur[19]) + '°   ' + Math.round(valeur[20]) + '°';
// Fonction permettant de retourner l'icône en fonction du n° de condition pour les prévisions.
function Prevision_Icone(meteo_condition) {
if (cond_pluie.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-rain';
} else if (cond_averse.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-chancerain';
} else if (cond_crachin.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-flurries';
} else if (cond_neige_fondue.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-chancesleet';
} else if (cond_pluie_vergla.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-sleet';
} else if (cond_neige.includes(meteo_condition) === true) {
return 'wu wu-64 wu-black wu-day wu-snow';
} else if (cond_orage.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-chancetstorms';
} else if (cond_partiel_soleil.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-partlysunny';
} else if (cond_plutot_soleil.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-mostlysunny';
} else if (cond_brouillard.includes(meteo_condition) === true) {
return 'wu wu-64 wu-white wu-day wu-fog';
} else if (meteo_condition == cond_soleil) {
return 'wu wu-64 wu-white wu-day wu-sunny';
} else if (meteo_condition == cond_nuageux) {
return 'wu wu-64 wu-white wu-day wu-cloudy';
} else {
return 'wu wu-64 wu-white wu-day wu-unknown';
}
}
}
Ce fichier n’est pas très commenté, si vous avez des questions n’hésitez pas.
A chaque update de l’affichage par Jeedom, ce script fait ceci :
- Récupération des informations du virtuel dans un array
- Détermine si nous sommes le jour ou la nuit (afin d’appliquer le bon background de la partie haute du widget)
- En fonction des valeurs récupérés, affichage des icônes et background adéquat
- Affichage des informations.
Les fichiers d’icones proviennent de :
- Weather Icons - 222 font icons inspired by Font Awesome and designed for Bootstrap
- Weather Underground Icons
Une fois tout cela créé / ajouté, il suffit de faire sur le design « Ajouter commande » et de sélectionner la commande du virtuel créé.
J’espère que ça été clair.
Si des questions, n’hesitez pas