Tuto : créer une page météo sur Jeedom Connect

Désolé, je n’avais pas vu ton message
ton erreur est lié au fait que tu historise une des commande ci-dessous :

#[Extérieur][V. Vigilance Météo][Alerte météo]#
#[Extérieur][V. Vigilance Météo][Alerte météo Conditions]#

Ce sont des commandes avec du texte qui est trop long pour etre historisé

Norbert

Merci pour vos retours !!

Hello
Je voudrais savoir comment faire pour ajouter un lien vers: VIGILANCE METEO FRANCE | Carte de vigilance météorologique sur la France soit sur l’image directement de la vigilance, soit par un autre moyen :slight_smile:
Si vous avez une idee pour cliquer quelque part et etre redirige vers VIGILANCE METEO FRANCE | Carte de vigilance météorologique sur la France
merci :slight_smile:

Tu peux :
1 - créer un widget Webview qui pointe vers VIGILANCE METEO FRANCE | Carte de vigilance météorologique sur la France
2 - dans ta page météo, intégrer ce widget webview en vue vignette (un clic dessus affichera la vue detail et donc la page vigilance)
3 - dans ce widget, pour avoir un affichage de la carte comme ca, avec un affichage de la carte de vigilance en miniature
image

tu peux t’appuyer sur cette explication 'en remplacant les widgets numériques par des widgets Webview)

Norbert

1 « J'aime »

Super merci je vais essayer :slight_smile: j’avais deja les petites images donc ca ne devrait pas etre trop dur a adapter!

Bonjour @MyMy

Il me semble que tu n’utilises pas la bonne commande.
Il y a 2 commandes pour les vigilances, une pour le niveau une pour les conditions.

Il faut prendre celle pour le niveau :wink:
Je vais modifier mon post initial pour que ce soit plus clair.
Egalement, j’ai amélioré le code afin d’avoir une tuile par vigilance qui s’affiche sous condition, je vais poster ça aussi.

Merci,
Sandrine

1 « J'aime »

Bonjour,

Alors comme j’ai amélioré la gestion des icônes « vigilance » postée plus haut (en décembre), je vous propose mon code.
Il s’agit cette fois d’afficher toutes les vigilances en cours ou une tuile indiquant qu’il n’y a pas de vigilance

Prérequis : comme mentionné dans le tout premier post chapitre « Pour les alertes météo »
1- Avoir un virtuel avec les 3 commandes infos
C’est à dire :

2- Avoir un scénario et les déclencheurs souhaités
C’est à dire :

Ensuite, il faut :
3- Créer une tuile JConnect de type « Générique numérique » par vigilance souhaitée à paramétrer comme suit :
Par exemple pour la canicule :
Statut : #[Services][Météo France Saint Cyr][Vigilance - Canicule niveau]#
Visible sous condition : #[Services][V. Vigilance Météo][Canicule]# > 1

4- Créer également 1 tuile "Pas de vigilance " à paramétrer comme suit :
Statut : #[Services][V. Vigilance Météo][Alerte météo Max]#
Visible sous condition : #[Services][V. Vigilance Météo][Alerte météo Max]# <= 1

5- Créer une commande info dans le virtuel par vigilance à nommer de la même manière que le nom de la commande MeteoFrance :

6- Ensuite, voici le bloc Code du scénario, à paramétrer avec vos commandes / id des widgets :

// Pensez à affecter des couleurs d'arrière plan sous conditions dans le paramétrage du widget SUR L'APPAREIL MOBILE.
// Les couleurs d'arrière plan sont à affecter ainsi pour chaque vigilance (exemple pour la canicule):
// #[Services][V. Vigilance Météo][Canicule]# == 2 --> jaune avec une transparence à 60%
// #[Services][V. Vigilance Météo][Canicule]# == 3 --> orange avec une transparence à 60%
// #[Services][V. Vigilance Météo][Canicule]# == 4 --> rouge avec une transparence à 60%

require_once dirname(__FILE__) . '/../../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';



// liste des vigilances souhaitées - cf commande equivalentes coté equipement méteo
//icones des vigilances

$icone_novigilance = 'kiko-check';
$icone_canicule = 'jeedomapp-thermo-chaud';
$icone_inondation = 'jeedom-eau';
$icone_froid = 'jeedomapp-thermo-froid';
$icone_neige = 'nature-snowflake';
$icone_orages = 'meteo-orage';
$icone_pluie = 'meteo-pluie';
$icone_vent = 'jeedomapp-wind';

//widget des vigilances
$widget_novigilance = 65;
$widget_canicule = 163;
$widget_inondation = 164;
$widget_froid = 165;
$widget_neige = 166;
$widget_orages = 162;
$widget_pluie = 167;
$widget_vent = 168;


//couleur de l'icone par défaut
$colorDefaut = '#FFFFFF';
//couleur de l'icone si aucune vigilance
$color1 = '#008000'; //vert
//type de contenu
$widgetKey='image';

// envoie d'une notif JC si niveau d'alerte > $alerteNiveau
// 2 --> Jaune, 3 --> Orange, 4 --> rouge
$alerteNiveau = 3 ;
$cmdNotifAlerte = '#[Objets][Téléphone Pro][Silence - Tous]#' ;


// equipemement méteo (plugin méteofrance) 
//Attention, NE PAS noter les #
$baseCmdMeteo = '[Services][Météo France Saint Cyr]';

// commandes infos virtuelles 
//Attention,  NE PAS noter les #
$cmdVirtuel = '[Services][V. Vigilance Météo]';

//Attention, NOTER les #
$cmdAlerteMeteoMax = '#[Services][V. Vigilance Météo][Alerte météo Max]#';
$cmdAlerteMeteo = '#[Services][V. Vigilance Météo][Alerte météo]#';
$cmdAlerteMeteoConditions = '#[Services][V. Vigilance Météo][Alerte météo Conditions]#';



//Types de vigilances
  $vigilances = array(
  'Canicule' => array($icone_canicule,$widget_canicule),
  'Inondation' =>array($icone_inondation,$widget_inondation),
  'Grand-froid'=>array($icone_froid,$widget_froid),
  'Neige-verglas'=>array($icone_neige,$widget_neige),
  'Orages'=>array($icone_orages,$widget_orages),
  'Pluie-inondation'=>array($icone_pluie,$widget_pluie),
  'Vent violent'=>array($icone_vent,$widget_vent)
); 


$niveauMax = 0 ;
$nbNiveauVert = 0 ;
$nbNiveauJaune = 0 ;
$nbNiveauOrange = 0 ;
$nbNiveauRouge = 0 ;
$conditionVigilances = '' ;
$nbVigilances = '' ;
$iconeMax = '' ;

  
foreach ($vigilances as $vigilance => $tab) {
  $cmdNiveauVigilance = '#'.$baseCmdMeteo.'[Vigilance - '.$vigilance.' niveau]#' ;
  $cmdConditionVigilance = '#'.$baseCmdMeteo.'[Vigilance - '.$vigilance.' conditions]#' ;

  $niveauVigilance = cmd::byString($cmdNiveauVigilance)->execCmd() ;
  $conditionVigilance = str_replace(", ","<br>",cmd::byString($cmdConditionVigilance)->execCmd()) ;

$icone = $tab[0];
$widget = $tab[1];

  
  switch ($niveauVigilance) {
    case 1:
        $scenario->setLog($vigilance.' : '.$conditionVigilance) ; 
        if ( $niveauMax <= $niveauVigilance ) $niveauMax = $niveauVigilance ;
        $nbNiveauVert = $nbNiveauVert + 1 ; 
        if ( $niveauMax == 1 ) {
        	$conditionVigilances = 'Aucune vigilance en cours' ;  
      		$iconeMax = $icone_novigilance;
          	$iconeColor = $color1;
        }  
        break;
    case 2:
        $scenario->setLog($vigilance.' : '.$conditionVigilance) ;
        if ( $niveauMax == 1 ) $conditionVigilances = $vigilance.' :<br> '.$conditionVigilance ;
        else $conditionVigilances = $conditionVigilances.'<br>'.$vigilance.' -> '.$conditionVigilance ;
        $nbNiveauJaune = $nbNiveauJaune + 1 ;
        if ( $niveauMax <= $niveauVigilance ) {
        	$niveauMax = $niveauVigilance ;
      		$iconeMax = $icone;
          	$iconeColor = $colorDefaut; 
        }
        break;
    case 3:
        $scenario->setLog($vigilance.' : '.$conditionVigilance) ;
        if ( $niveauMax == 1 ) $conditionVigilances = $vigilance.' :<br> '.$conditionVigilance ;
        else $conditionVigilances = $conditionVigilances.'<br>'.$vigilance.' -> '.$conditionVigilance ;
        $nbNiveauOrange = $nbNiveauOrange + 1 ;
        if ( $niveauMax <= $niveauVigilance ) {
        	$niveauMax = $niveauVigilance ;
      		$iconeMax = $icone;
          	$iconeColor = $colorDefaut;
        }
        break;
    case 4:
        $scenario->setLog($vigilance.' : '.$conditionVigilance) ;
        if ( $niveauMax == 1 ) $conditionVigilances = $vigilance.' :<br> '.$conditionVigilance ;
        else $conditionVigilances = $conditionVigilances.'<br>'.$vigilance.' -> '.$conditionVigilance ;
        $nbNiveauRouge = $nbNiveauRouge + 1 ;
        if ( $niveauMax <= $niveauVigilance ) {
        	$niveauMax = $niveauVigilance ;
      		$iconeMax = $icone;
          	$iconeColor = $colorDefaut;
        }
        break;
  }
  
    
//affectation des vigilances individuelles aux virtuels 
cmd::byString('#'.$cmdVirtuel.'['.$vigilance.']#')->event($niveauVigilance);  
$widgetValue= array('source' => 'jeedom', 'name' => $icone, 'shadow' => false, 'color' => $iconeColor);
JeedomConnectWidget::updateConfig($widget,$widgetKey,$widgetValue);

  
  
  
}



if ( $nbNiveauRouge != 0 or $nbNiveauOrange != 0 or $nbNiveauJaune != 0 ) {
  // Mise à jour sous-titre widget
  //$nbVigilances = 'J:'.$nbNiveauJaune.' / O:'.$nbNiveauOrange.' / R:'.$nbNiveauRouge ;
  // envoi notif JC
  if ( $niveauMax >= $alerteNiveau ) {
    
    $cmd=cmd::byString($cmdNotifAlerte);
    $cmd->execCmd($options=array('title'=>'title=Alerte Météo ' , 'message'=> $conditionVigilances), $cache=0);
  }
}
else $nbVigilances = 'Aucune vigilance' ;

cmd::byString($cmdAlerteMeteoMax)->event($niveauMax);
cmd::byString($cmdAlerteMeteo)->event($nbVigilances);
cmd::byString($cmdAlerteMeteoConditions)->event($conditionVigilances);




// mise à jour icone sans vigilance et couleur
$widgetValue= array('source' => 'jeedom', 'name' => $iconeMax, 'shadow' => false, 'color' => $iconeColor);
JeedomConnectWidget::updateConfig($widget_novigilance,$widgetKey,$widgetValue);

Ce qui donne :
Sans vigilance :
image

Avec 3 vigilances (le chiffre indiqué en bas est la durée de la vigilance):
image

Enjoy !
Sandrine

Merci pour cette évolution, tu as quelques Screenshots à achouter de ce que ca donne ?
ca te derange, si je mets un lien dans le premier post vers cette evolution ?

Norbert

Bonjour @ngrataloup

Je viens d’ajouter des captures dans mon post.
Bien sûr, pas de souci pour ajouter le lien dans ton post initial :slight_smile:

Merci,
Sandrine

C’est de la provocation …

image

:rofl:

3 « J'aime »

Bonjour,

Je en train de mettre ne place cette page météo que je trouve très intéressante. Je suis désolé si je suis un peu novice mais je ne connais pas bien comment mettre en place le résumé… Je dois avouer que je n’ai jamais trop utilisé le concept de résumé jusqu’à maintenant.
J’ai créé les widgets J+1, J+2 et J+3 avec les 3 commandes à utiliser (description, max et min) puis créé un Widget de type résumé avec les 3 Widgets précédent mais je n’arrive pas à avoir l’affichage souhaité :

Mes paramétrages :



Si vous pouvez m’aiguiller un petit peu avant que je passe à la partie de gestion des icones et des alertes.

Merci beaucoup.

Cordialement,

Bonjour @reis

Pour un novice, tu es plutot su rla bonne piste :wink:
La personnalisation des widgets DANS le résumé se fait avec un clic long coté smatphone sur le Widget en question (/!\ c’ets sur le widget wMeteoJ1 ou J2 qu’il faut cliquer et pas sur le widget resumé)–> personnalisation, puis tout à droite des onglets, tu as un onglet resumé dans lequel tu personnalise donc l’affiche de la valeur haute et de la valeur basse

Norbert

Bonjour @ngrataloup,

Merci pour la réactivité :slight_smile: En fait j’ai commencé à m’initier il y a 4 ans sur la domotique puis j’ai fait une pause pendant 2 ans (pour raisons perso) et je viens de m’y remettre à fond.
Quelle bonheur de découvrir JC, je suis content de ne pas avoir passé de temps sur les Widgets purement Jeedom. C’est un pur plaisir de configurer JC.

J’ai effectivement trouvé la configuration côté appli pour accéder au menu (je ne le savais pas), quand tu dis qu’il faut que je clic sur le Widget wMeteoJ1, 2 et 3 cela veut dire que je dois les afficher puis les cacher ensuite ? Ci-dessous la config du résumé.

Autre question rapide, comment je masque le statut d’un Widget ? (j’aimerais cacher la température max de la météo du jour)

Merci encore pour ton aide.

Reis

Non clic une fois (court) sur ton widget resume , comm3 pour aller sur la vue detail du résumé → tu y verras les 3 widgets inclus.
La tu peux faire les clic long sur chacun de ces 3 widget pour les personnaliser

Meme punission → personnaliser
Tu as different onglet en fonction du format d affichage que tu as choisi. Il suffit de choisir de masquer ce que tu souhaites

Bonjour,

Je vous remercie pour votre temps et votre aide. Ci-dessous le résultat et moi même un peu plus instruit sur l’utilisation des résumés. Si je comprend bien un résumé permet d’afficher une multitude d’informations quelque soit le type de données en entrée. Intéressant :slight_smile:

y a-t-il une possibilité d’aller à la ligne après le texte identifiant le jour de la météo et la commande que j’affiche (description). J’ai essaye \n et < br /> sans succès. Voici la commande utilisée :
"Demain " + « #[ville][vMeteo][Description J+1]# »

De même j’aimerais avoir les sous-titres sur une seule ligne pour les températures max et min. Il n’y a pas de taille dans le menu résumé lors de la personnalisation de l’affichage du résumé et la modification sur le mode vignettes ne change rien également.

Merci à tous.

Cordialement,

OUi, en ecrivant juste

"Demain\n#[ville][vMeteo][Description J+1]#"

bien mettre les double quotes autour de l’expressoin, sinon, le \n n’ets pas interpreté

Pas à ma connaissance. Tu peux par contre peut-etre ne pas mettre 2 fois le symbole degré

9.5 | 13.8 °C

Petite astuce pour ne pas avoir après-demain ou J+3, mais plutot Vendredi et Samedi , un petit virtuel qui te calcule automatiquement les libellés des prochains jours. Il suffit derrière de les integrer à tes widgets :
Tuto : créer une page météo sur Jeedom Connect - #87 par Ds5

Bonjour,

Je te remercie pour toutes ces réponses :slight_smile: Je viens de les mettre en application et c’est super.
Je suis bientôt à la fin de mon plugin et encore quelque petite questions.
J’ai bien essayé de mettre en place l’astuce pour le jours de la semaines mais au lieu de m’afficher la valeur de la commande c’est son ID qui est affiché dans mon plugin :



Pour la pluie dans l’heure, puis-je demander pourquoi la valeur pas de pluie est celle correspondant au chiffre 9 ? Ce champ est vide dans la commande Météo France pour moi :


Du coup c’est mon icône pluie qui est activé par rapport à ma condition si #value# != 9 alors pluie

Autre point concernant l’icône du jour, je ne le trouve pas dans mes commandes Météo France (Météo du jour - H+1 - Icone). par contre j’ai 2 icones pour Actuellement, un old et un new (j’imagine que c’est pour connaitre la précédente valeur de actuelle)


Merci beaucoup pour votre aide, j’ai parcouru les 50 première réponses du post mais je n’ai pas eu le temps de lire les 356… Je suis désolé si ces questions ont déjà été traités. Si c’est le cas je pracourerrai l’intégralité du sujet petit à petit.

Une autre question qui concerne JC seulement, est-il possible de paramétrer la taille des titre de type vignette ainsi que des sous-titres par défaut (ce qui serai génial) ? ou alors faut-il le faire vignette par vignette ?

Merci encore et bonne journée à tous,

Cordialement,

On est d’accord que tu as mis les commandes en information supplémentaire avant de les integrer dans le titre ?
Si oui, tu as bien rechargé les données (par défaut, une commande n’est disponible qu’après rechargement des données qui est fait 1 fois par nuit automatiquement ou à la main

Regarde déjà pour ta commune si l’info est disponible sur le site météo France.

A vérifier, mais new = aujourd’hui et old = maintenant

Ce n’est pas.possible globalement je crois. Par contre, tu peux personnaliser 1 widget et copier le paramétrage a d’autres wIdgets (tous les widgets de la page, tous les.widgets de même type, …)et tu peux le faire paramètre par paramètre donc juste pour la taille des titres et sous-titres… C’est le bouton de partage en haut à droite quand tu es en personnalisation d’un widget

Norbert

Oui les commandes sont bien en infos supplémentaire dans chacun des widgets correspondant j1, j2 et j3. Les commandes ont été créés il y a 2 jours dans le virtuel et le cron d’actualisation tourne bien à minuit (les données sont à jour dans le virtuel) :

Je viens de vérifier et c’est bien disponible pour ma ville qui est Vénissieux :


Après j’ai mis les coordonnées de mon logement pour la latitude et la longitude, dois-je mettre des coordonnées standard de la ville (si oui ou les trouver) ?

Merci je vais tester comme cela en partant du principe que new est le jour et old actuellement. Je verrai si c’est cohérent.

Merci pour l’astuce je vais m’en servir et cela me fera gagner pas mal de temps.

Un autre point que j’ai oublié de cité dans mon post précédent. Pour certaines vigilances, j’ai un niveau 0 et la condition vaut comme valeur « Non défini ». Du coup je pense que je vais traiter le niveau 0 comme le 1 et considérer que c’est vert. Avez-vous un comportement similaire sur certaines données ?

Merci encore. De mon côté je vais continuer à compléter avec le lever du soleil et la qualité de l’air.

bonne journée,

J’ai pu résoudre le problème des ID des commandes au lieu du nom des jours de la semaine en supprimant et recréant les widgets (merci à toi car ce cas avait effectivement été déjà rencontré et c’est la solution que tu avais proposé un peu plus haut dans le posts). Sinon j’ai décidé de laisser les widget en mode autonome (sans passer par le résumé) ça me permet d’avoir les sous-titres sur une ligne avec le °C pour min et max.

Si tu as une idée pour le reste, je suis preneur merci encore.