J'ai profité d'être tranquillement à la maison ce week end pour procéder à la mise à jour de mon installation Jeedom en V2, suite à la sortie de cette mise à jour majeure la semaine dernière. Soyons clair tout de suite: visuellement, pas de gros changement à noter. En revanche, si on lève le capot, de nombreuses améliorations ont été apportées pour améliorer le fonctionnement de l'ensemble. Pour reprendre le changelog officiel:
- Refonte du système de cache de Jeedom (utilisation de doctrine cache). Cela permet par exemple de connecter Jeedom à un serveur redis ou memcached. Par défaut Jeedom utilise un système de fichiers (et non plus la BDD MySQL ce qui permet de la décharger un peu), celui-ci se trouve dans /tmp il est donc conseillé si vous avez plus de 512 Mo de RAM de monter le /tmp en tmpfs (en RAM pour plus de rapidité et une diminution de l’usure de la carte SD, je recommande une taille de 64mo). Attention lors du redémarrage de Jeedom le cache est vidé il faut donc attendre pour avoir la remontée de toutes les infos
- Refonte du système de log (utilisation de monolog) qui permet une intégration à des systèmes de logs (type syslog(d))
- Optimisation du chargement du dashboard
- Correction de nombreux warning
- Possibilité lors d’un appel api à un scénario de passer des tags dans l’url
- Support d’apache
- Optimisation pour docker avec support officiel de docker
- Optimisation pour les synology
- Support + optimisation pour php7
- Refonte des menus Jeedom
- Suppression de toute la partie gestion réseau : wifi, ip fixe… (reviendra sûrement sous forme de plugin). ATTENTION ce n’est pas le mode maître/esclave de jeedom qui est supprimé
- Suppression de l’indication de batterie sur les widgets
- Ajout d’une page qui résume le statut de tous les équipements sur batterie
- Refonte du DNS Jeedom, utilisation d’openvpn (et donc du plugin openvpn)
- Mise à jour de toutes les libs
- Interaction : ajout d’un système d’analyse syntaxique (permet de supprimer les interactions avec de grosses erreurs de syntaxe type « le chambre »)
- Suppression de la mise à jour de l’interface par nodejs (passage en pulling toutes les secondes sur la liste des événements)
- Possibilité pour les applications tierces de demander par l’api les événements
- Refonte du système « d’action sur valeur » avec possibilité de faire plusieurs actions et aussi l’ajout de toutes les actions possibles dans les scénarios (attention il faudra peut-être toutes les reconfigurer suite à la mise à jour)
- Possibilité de désactiver un bloc dans un scénario
- Ajout pour les développeurs d’un système d’aide tooltips. Il faut sur un label mettre la classe « help » et mettre un attribut data-help avec le message d’aide souhaité. Cela permet à Jeedom d’ajouter automatiquement à la fin de votre label une icône « ? » et au survol d’afficher le texte d’aide
- Changement du processus de mise à jour du core, on ne demande plus l’archive au Market mais directement à Github maintenant
- Ajout d’un système centralisé d’installation des dépendances sur les plugins
- Refonte de la page de gestion des plugins
- Ajout des adresses mac des différentes interfaces
- Ajout de la connexion en double authentification
- Suppression de la connexion par hash (pour des raisons de sécurité)
- Ajout d’un système d’administration OS
- Ajout de widgets standards Jeedom
- Ajout d’un système en beta pour trouver l’IP de Jeedom sur le réseau (il faut connecter Jeedom sur le réseau, puis aller sur le market et cliquer sur « Mes Jeedoms » dans votre profil)
- Ajout sur la page des scénarios d’un testeur d’expression
- Revue du système de partage de scénario
Comme on le voit, cette mise à jour n'est pas anecdotique.
Pour l'effectuer, rien de plus facile: comme d'habitude on se rend dans la page mises à jour, où on y voit la mise à jour Jeedom 2.0:
Il suffit de la lancer. A droite, on voit le déroulement des opérations:
Après quelques minutes, le log a figé chez moi sur les deux lignes de renommage. Mais un petit tour dans le menu Analyse / Logs comme indiqué par l'équipe Jeedom m'a permis de voir que la mise à jour était parfaitement terminée:
[START UPDATE]
****Installation/Mise à jour de Jeedom 2.0.0 (2016-02-14 12:04:06)****
Paramètres de la mise à jour : level : -1, mode : , version : , onlyThisVersion :
Mise à plat des droits…OK
[START BACKUP]
***************Lancement de la sauvegarde de Jeedom le 2016-02-14 12:04:07***************
Vérification du système de fichiers (corruption)…OK
Mise à plat des droits…OK
Sauvegarde des fichiers…OK
Suppression du fichier d'identification de la base de données…OK
Vérification de la base de données :
jeedom.connection
note : The storage engine for the table doesn't support check
Sauvegarde de la base de données…OK
Création de l'archive…OK
Nettoyage des anciennes sauvegardes…OK
Limite de la taille totale des sauvegardes à 200 Mo…
– Suppression de : /usr/share/nginx/www/jeedom/core/php/../../backup/backup-1.212.0-2016-02-13-02h00.tar.gz
OK
Nom du backup : /usr/share/nginx/www/jeedom/core/php/../../backup/backup-2.0.0-2016-02-14-12h04.tar.gz
***************Fin de la sauvegarde de Jeedom***************
[END BACKUP SUCCESS]
Desactivation de toutes les tâches OK
Désactivation de tous les scénarios……………………………………. OK
Nettoyage du dossier temporaire (tmp)…OK
Adresse de téléchargement : https://github.com/jeedom/core/archive/stable.zip
Téléchargement en cours…–2016-02-14 12:05:48– https://github.com/jeedom/core/archive/stable.zip
Resolving github.com (github.com)… 192.30.252.131
Connecting to github.com (github.com)|192.30.252.131|:443… connected.
HTTP request sent, awaiting response… 302 Found
Location: https://codeload.github.com/jeedom/core/zip/stable [following]
–2016-02-14 12:05:48– https://codeload.github.com/jeedom/core/zip/stable
Resolving codeload.github.com (codeload.github.com)… 192.30.252.162
Connecting to codeload.github.com (codeload.github.com)|192.30.252.162|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 23950125 (23M) [application/zip]
Saving to: ‘/usr/share/nginx/www/jeedom/install/../tmp/jeedom_update.zip'0K …….. …….. …….. …….. …….. …….. 13% 1.28M 15s
3072K …….. …….. …….. …….. …….. …….. 26% 1.50M 12s
6144K …….. …….. …….. …….. …….. …….. 39% 1.51M 10s
9216K …….. …….. …….. …….. …….. …….. 52% 1.62M 7s
12288K …….. …….. …….. …….. …….. …….. 65% 1.95M 5s
15360K …….. …….. …….. …….. …….. …….. 78% 2.50M 3s
18432K …….. …….. …….. …….. …….. …….. 91% 3.07M 1s
21504K …….. …….. …….. ….. 100% 3.13M=12s2016-02-14 12:06:01 (1.83 MB/s) – ‘/usr/share/nginx/www/jeedom/install/../tmp/jeedom_update.zip' saved [23950125/23950125]
OK
Nettoyage des dossiers en cours…OK
Nettoyage adminer en cours…OK
Nettoyage sysinfo en cours…OK
Création des dossiers temporaire…OK
Décompression en cours…OK
Copie des fichiers en cours…OK
Suppression des fichiers temporaire…OK
Renommage adminer en cours…OK
Renommage sysinfo en cours…OK
Mise à jour du système en version : 2.0.0…Synchronizing state of jeedom.service with SysV init with /lib/systemd/systemd-sysv-install…
Executing /lib/systemd/systemd-sysv-install disable jeedom
insserv: warning: current start runlevel(s) (empty) of script `jeedom' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `jeedom' overrides LSB defaults (0 1 6).
OK
Vérification de la consistence de Jeedom…[START CONSISTENCY]
Suppression de : cmd::cmdAlert() car pas de lancement prévuCréation de jeedom::cronDaily
Création de jeedom::cron5
Création de plugin::cron5
Création de plugin::checkDeamon
Création de cache::persist
Création de history::archive
Ajout du certificat du market…OK
[END CONSISTENCY]
OK
Vérification de la mise à jour…[2016-02-14 12:06:51][update][ALERT] : Début de la mise à jour de : openvpn
[2016-02-14 12:06:51][update][ALERT] : Téléchargement de openvpn…
[2016-02-14 12:06:52][update][ALERT] : OK
[2016-02-14 12:06:52][update][ALERT] : Décompression du zip…
[2016-02-14 12:06:52][update][ALERT] : OK
[2016-02-14 12:06:52][update][ALERT] : Installation de openvpn…
[2016-02-14 12:06:52][update][ALERT] : OK
OK
***************Jeedom est à jour en version 2.0.1***************
Vérification des mises à jour
OK
Réactivation des scénarios : OK
Réactivation des tâches : OK
[END UPDATE SUCCESS]
Celle ci s'est déroulée sans encombre, et plutot rapidement.
De retour sur le Dashboard, en revanche, quelques problèmes graphiques:
Et oui, cette mise à jour étant conséquente, il faut bien veiller à mettre à jour les plugins. Chez moi, une quarantaine:
Tous ne sont pas encore mis à jour, mais les officiels le sont. Pour les autres il faudra attendre après les développeurs. Il va falloir que je désactive un à un les plugins pour trouver celui qui met le bazar dans l'affichage, je n'ai pas eu le temps de finir cette opération ce week end.
Comme je le disais pas de grosse modification au niveau de la présentation, mais quelques petites améliorations tout de même. Par exemple, l'icone batterie disparait des widgets, pour donner naissance à une page regroupant l'état de toutes les batteries. C'est très visuel, rouge indique qu'il n'y a plus de batterie, orange qu'il faudra penser à en changer, et vert que tout va bien. Pourcentage de la batterie à l'appui, et même le modèle de pile est indiqué. Il ne manquerait plus qu'un bouton pour acheter la pile directement chez Amazon :p
Au niveau de la configuration des plugins, on retrouve également quelque chose de plus uniformisé et plus agréable:
On voit clairement l'état du plugin, ses dépendances, son demon, etc…
L'écran des intéractions a subi également un lifting, avec une nouvelle présentation et de nouvelles options, comme la possibilité de lancer directement une série d'actions, sans avoir à passer par un scénario, la sélection des plugins à prendre en compte pour les réponses, la possibilité de laisser Jeedom supprimer les demandes syntaxiquement incorrectes, etc… A noter que la possibilité de voir les phrases générées réapparait. Il va falloir que je rejoue avec cette partie pour affiner ce que j'avais déjà fait :D
Enfin, dernières modifications dont j'ai pu voir l'impact: certaines syntaxes ont changé dans les scénarios. C'est le cas notamment de:
- la syntaxe dans les expressions de test (type « si » dans les scénario) est un peu plus stricte. En effet toute chaîne de caractères de test doit être encadrée de « , ex avant : variable(ma_variable) = toto était possible, maintenant il faut absolument mettre variable(ma_variable) = « toto«
- la recherche d’une chaîne dans une autre est maintenant différente, avant : variable(ma_variable) ~ toto, maintenant variable(ma_variable) matches « /toto/ ». Petite explication : ici la syntaxe semble plus compliquée mais pour les connaisseurs cela permet d’utiliser maintenant des expressions régulières et donc offre beaucoup plus de souplesse.
C'est cette dernière qui m'a obligé à modifier quelques scénarios, de ce type:
Bon, rien de très compliqué, mais il faut penser à faire les modif pour que les scénarios continuent de fonctionner correctement. Cette modification, pouvant paraitre contraignante pour certains, apporte en revanche la possibilité d'utiliser des expressions régulières, qui vont plaire à certains ;-)
Autre modification importante si vous utilisez le système DNS de Jeedom pour accéder à votre box à distance: l'utilisation maintenant d'un VPN. Le plugin OpenVPN s'est installé et activé tout seul chez moi, si bien que je n'ai rien eu à faire. Seule l'adresse pour accéder à distance a légèrement changer. Vous pouvez trouver plus d'informations ici.
Voilà. Dans l'ensemble une mise à jour qui améliore les performances de Jeedom, et qui s'est bien passée. Je n'ai eu qu'un petit soucis sur mon réseau Z-wave, mais l'équipe Jeedom a été très réactive pour m'aider, et au final ce n'était pas très méchant, il fallait juste utiliser une sauvegarde de ma configuration Z-wave. Je le saurai pour la prochaine fois. Il ne me reste donc que quelques petits problèmes d'affichages à corriger sur le Dashboard.
Bonjour,
J’ai eu également le log qui s’est figé lors du passage en 2.0, juste après “installation en cours…..”
J’ai eu la mauvaise idée de vouloir tenter l’accès à distance de jeedom tournant très bien sur un raspberry pi B1 (via https, certificat auto-signé, nom de domaine perso, etc.) quelques jours après mon passage en v2.0, en suivant un tuto valable pour la v1.
Au vu des améliorations listées ici, je ne sais pas si le tuto (décrit sur le blog de domadoo) reste valable.
Depuis, impossible pour moi d’accéder à l’interface web jeedom en local (via l’adresse IP), encore moins à distance (via le nom de domaine+sous-domaine créé).
Je peux juste y accéder en ssh. Je sais que certains scénarios tournent toujours (notifications pushbullet pour la météo par exemple).
Y a-t’il un moyen simple de revenir en arrière, voire en v1, sans perdre la trace de la configuration, autrement que par la réinstallation complète de base ?
Merci d’avance pour vos conseils potentiels et bonne continuation pour votre site internet.
Quelle version de Jeedom avez vous ? Est ce que vous avez les backups automatiques dans le Cloud ? Si c’est le cas, vous pouvez réinstaller une version de Jeedom “propre” et importer ensuite la sauvegarde, cela fonctionne parfaitement, vous récupérez votre configuration, plugins, etc… Sinon vous avez peut être une sauvegarde locale récupérable via votre accès ssh.
N’hésitez pas à poser votre question sur le forum officiel ou ouvrir un ticket auprès de Jeedom, ils sont très réactifs.
Bonsoir,
J’ai pu accéder aux backups juste à temps (le backup le plus vieux était juste avant les grosses modifications et j’avais limité à 4 backups) en ssh.
J’ai tout réinstallé sur le Raspberry Pi (modèle 1 B), proprement après quelques galères. J’ai migré en v2.0.1 avant la restauration du backup (le log s’est figé au même endroit).
La relance des dépendances openzwave a posé quelques soucis (2 heures pour avoir 100% d’installation).
A force de patience et d’acharnement, j’ai récupéré un jeedom v2 fonctionnel en local.
L’accès à distance sera à retenter dans quelques temps, après m’être assuré que tout fonctionne.
Merci pour vos conseils !
Hello merci pour les infos ! Suis également passé en v2 mais j’ai pas mal de soucis avec mes scénarios. Exemple : http://i.imgur.com/wLMIMlR.png
et dans le log j’ai ca :
[2016-02-23 21:33:21][SCENARIO] Evaluation de la condition : [#000000 != “#000000”] = #000000 != “#000000”
[2016-02-23 21:33:21][SCENARIO] Expression non valide : #000000 != “#000000”
Une idée ?