Liste des épisodes publiés :
Présentation de la saga DomoMG
EPISODE 1
Bonjour à tous,
Je présuppose pour la suite, que vous avez installées et appréhendées les suggestions de l’épisode 1, soit l’installation d’un atelier logiciel comportant : un éditeur de code, une passerelle SSH et un client FTP … à minima.
Pour aller plus loin nous allons commencer à créer une arborescence sur le Jeedom qui devra commencer par /var/www/html/mg .
Le répertoire « var/www/html/mg » nous servira de racine pour toute la suite des installations, il nous servira de référence unique. Vous pourrez éventuellement changer son nom ultérieurement quand vous serez à l’aise avec tous les codes.
Ensuite il va falloir downloader et recopier (aprés avoir changé le suffixe .txt en .rar) dans le répertoire racine mg/. (avec FileZila) les fichiers suivants :
- mg.class.txt (29,8 Ko)
- tabulator.txt (68,2 Ko)
- ressources.txt (1,6 Mo)
- phpsysinfo.txt (1,1 Mo)
- adminer.txt (209,5 Ko)
Pour terminer cette partie, en SSH faites :
sudo chmod -R 777 /var/www/html/mg
pour « ouvrir » tous les droits sur cette arborescence.
Maintenant créez votre premier script que vous appellerez « TAB_tabulator » et qui devra contenir ( TAB correspondant au groupe de script) :
/************************************************************************************************************************
TAB Tabulator - 192
************************************************************************************************************************/
include_once getRootPath() . '/mg/mg.class.php'; mg::init();
// ******************************************** Suite du code du scénario ***********************************************
include_once getRootPath() . '/mg/tabulator/TAB_tabulator.php';
une bonne pratique est de faire précéder le nom d’un code correspondant au groupe suivi du nom du script puis son N° et de mettre le log en « temps réel ».
Activez le script et lancez le …
Dans votre navigateur lancez : http://xxx.xxx.xxx.xxx/mg/tabulator/tabulator.html en replaçant les xxx par votre adresse IP.
Vous devriez voir ça si je n’ai rien oublié (et vous non plus ! ) , mais comme je n’ai pu procéder à aucun test d’install … (je n’ai pas accès à un autre site vierge avec une ip différente) vous me direz
:
Et rassurez vous, TABULATOR est aussi accessible depuis Jeedom via un widget dédié :
Je vais rapidement passer en revue les différentes tables que je vous ais fournies (mais vous pourrez en créez autant que vous voudrez pour vos propres besoins).
- « tabParams » (une ligne par paramètre, 2 clefs) : C’est le coeur de DomoMG, vous trouverez ici TOUS les paramétres généraux utilisés par vos script.
- « tabVolets » (une ligne par volet, 1 clefs) : Tous ce qui est nécessaire à la gestion des volets.
- « tabUsers » (une ligne par user, 1 clefs) : Une table consacrée au client réseau ainsi qu’aux « users » de domoMG .
- « tabconso » (une ligne par appareil, 1 clefs) : Tous les appareils de votre suivi de consommation seront indexés ici.
- « tabChauffages » (une ligne par chauffage, 1 clefs) : Tous les chauffages gérés par le système seront paramétrés ici.
- "tabpassword (une ligne par appareil, 1 clefs) Table des password du système d’alerte.
- « tabTooltips » (une ligne par chauffage, 1 clefs) : Dans cette table on trouvera tous les tooltips visible sur la ligne de tête des tableaux de paramétrage, cela permet de se retrouver sans trop de soucis pour comprendre à quoi servent tous ces paramètres
.
- « tabAlertes » (une ligne par appareil, 2 clefs) Le système de surveillance des équipements regroupe ici ces informations.
- « tabWidgets » (une ligne par colonne et par table) Le dernier goodies (pour le dernier épisode), la gestion compléte de TOUS vos widgets sera centralisée ici (tout en permettant une customisation individuel selon les règles de Jeedom).
Cet outil que j’ai appelé le TABULATOR en hommage à la bibliothèque utilisée comporte les fonctionnalités suivantes :
REMARQUE Selon le tableau l’accès aux données est donné par UNE ou DEUX clefs (TABULATOR en reconnait quatre au maximum) appelé KEY_1 et KEY_2 dans les tableaux voir les tooltips pour connaitre précisément la signification de ce que contiennent ces colonnes.
-
Manipulation des lignes :
- Insertion (le « + »,
- Effacement (la poubelle),
- Déplacement (la « poignée » sur la gauche des lignes),
-
Fonctionnalitée des colonnes :
- Manipulation des colonnes via un menu contextuel accessible en tête de chaque colonne,-
Déplacement gauche/droite,
-
Insertion,
-
Suppression
-
Renommage
-
Classement normal/inversé sur chaque colonne par clic sur l’enTête,
-
Recherche dans les colonnes (selon paramétrage),
-
Possibilité de mettre des cases à cocher,
-
Filtrage paramétrable de la saisie (numérique, entier, boolean, string, date), (selon paramétrage),
-
-
Les fonctions avec les boutons en haut du tableau :
- « reload » en haut, permet de recharger la page, à utiliser systématiquement si la page est chargée depuis longtemps selon le navigateur.
- « Reset » réinitialise les filtres de colonnes
- Choix du théme de l’affichage : custom / Midnight / Standard
- RestaureSav : Restaure la dernière sauvegarde du tableau sur le disque (la date de cette dernière est affichée en haut à droite du tableau par sécurité)
- RestaureLast : Restauration du tableau en l’état AVANT son dernier enregistrement (pratique quand on se croise les doigts en cours de paramétrages), vous me direz que ces deux fonctions font un peu « ceinture et bretelles », c’est vrai, mais le paramètrage est un domaine TRES sensibles ou la plus grande prudence s’impose.
- Liste déroulante de choix de la table à afficher, pour l’instant : ‹ tabParams ›, ‹ tabVolets ›, ‹ tabUser ›, ‹ tabConso ›, ‹ tabChauffages ›, ‹ tabPassword ›, ’ tabTooltips’, ‹ _alertes ›, ‹ tabWidgets ›.
- Enregistrement : Validation et enregistrement de la table.
- Sauvegarde : Sauvegarde sur le disque (dans mg/tabulator/sav) de la version courante du tableau.
étudiez biens toutes ces tables mais EVITEZ de les modifier pour l’instant de manière à ce que les épisodes suivants ne butent sur un mauvais paramétrages. Nous les verrons peu ou prou toutes en détail d’ici la fin de la saga.
Dernier points : l’accès à ces paramétrages… ce qui permettra d’aborder rapidement la CLASS « mg » et son usage :
Pour accéder aux paramétrages de « tabParams » il existe une fonction :
mg::getParam($section, $name, $valDefaut=null, $remDefaut=null)
Pour les autres tables vous avez des exemples en pur PHP dans la deuxième partie du script ci-dessous
créez un scénario de test et dans le bloc-code collez ceci, sauvegarder, lancez le et regardez les logs :
include_once getRootPath() . '/mg/mg.class.php'; mg::init();
$log = mg::getParam('log', 'timeLine'); // Permet d'envoyer les messages dans le log du scénario ET dans un log dédié _TIMELINE
mg::messageT('', "! Exemple de lecture de tabParams via la fonction getParams de la class 'mg'");
// Exemple de lecture de tabParams via la fonction dédiée
$path = mg::getParam("system", "pathRef");
$laveLinge = mg::getParam("confort", "destinatairesLaveLinge");
mg::message($log, "Path de domoMG : $path - Destinataire alerte laveLinge $laveLinge");
mg::messageT('', '! Exemple de lecture de tableau de paramétrage en PHP');
// Exemple de lecture des autres tables en PHP
$tabUsers = mg::getVar('tabUser');
mg::message($log, "Téléphone de MG : ".$tabUsers['Tel-MG']['tel']." - l'IP de la 'lampe Oeuf' est ".mg::getVar('tabUser')['Lampe Oeuf']['IP']);
Dans ce petit scénario vous verrez aussi un mini exemple de l’usage de la fonction « Message » de la class « mg »
Résultat :
LA CLASS mg:
J’en parlerez peu, elle est assez documenté pour vous permettre de vous débrouiller avec (NB notepad++ peu afficher la liste des fonctions, pratique).
Le meilleurs moyen pour être à l’aise avec, c’est d’utiliser le script ci dessus pour essayer les fonctions en vous aidant de la fonction Message et des logs (très documentés dans cette class !!! ).
Dans les épisodes suivants, la class « mg » sera omniprésente dans tous les scripts proposés.
Petit bonus du jour, deux utilitaires indispensable, essayer ces deux liens (en remplaçant les x par votre IP (pour le deuxième munissez vous des login et mot de passe de BdD fournis par jeedom dans « configuration/ [OS/DB » :
Maintenant c’est à vous jusqu’au prochain épisode !!! pour travailler sur les consommations électriques.