Jeedom sur Micro SD sous linux

Hello la communauté,

Le titre n’est pas très clair mais je m’explique…
J’ai un jeedom en V3 sur un SSD sous RPI3.
Je souhaite basculer sur une V4 propre et neuve.
Du coup j’ai un Jeedom V4 tout prêt à être développé sur une MicroSD.
Avant de basculer je veux être sûr que tout fonctionne bien, mais je n’ai qu’un seul RPI et je souhaite, pendant toute mon installation, création de design à l’identique du précédent… garder mon jeedom V3 en marche puisqu’il gère toute la maison.

J’ai un PC sous Linux Mint, et je voudrais savoir si’il y a un moyen de virtualiser un RPI3 dans mon Linux, tout en utilisant la microSD afin de tout mettre en place proprement en parallèle ?

Merci de votre aide.

Bonjour,

Ce n’est pas la peine de faire cela. Car si vous installez un Debian sur une machine virtuelle; dans la même version que ce qui est présent sur votre SSD, supposons : Debian 9
- Vous y installez Jeedom (forcement en v4.2.20)
- Vous y télécharger / restaurez votre backup actuel de votre Jeedom en v3
Tada… après redémarrage, votre Jeedom sera alors IDENTIQUE à ce qui se trouve sur votre Raspberry (avec un retour en v3)

Vous laissant ainsi, le champ libre pour faire vos adaptations sur le Raspberry, même directement sur votre SSD.
En GROS, Raspberry, machine virtuelle, Mini PC… .cela ne fait pas de différence, ce qui compte, c’est la version de l’OS et la version de Jeedom.

Si je devais faire cela avec simplement un SSD, je réaliserais l’installation de la machine virtuelle, avec la restauration de Jeedom v3 comme indiqué plus haut. Et j’installerais Jeedom v4 sur une carte MicroSD le temps de faire des tests ect… (et en même temps, le coté Domotique est fonctionnel).
Puis, une fois que vous avez fait un contrôle et OK pour vous, installation d’image de Jeedom directement sur SSD et restauration de la sauvegarde de Jeedom qui était sur MicroSD (vous suivez hein).

Comme cela, si vous avez un GROS problème avec la migration de Jeedom en v4 (impossible, mais bon…) il suffit de retirer la carte MicroSD et de booter sur le SSD.

Note : Je ne partirais pas sur une distribution Mint, mais sur un Debian en mode light (serveur, sans interface graphique) c’est ce qui est recommandé et garantie fonctionnel.

1 « J'aime »

En fait ce n’est pas ce que je veux faire…
Je veux juste laisser tourner mon v3 pendant que je mets en place mon V4 proprement sur une autre microSD, mais sans utiliser le rapsberry…

Je sais pas si c’est clair… ?

La microSD elle va être où ?

Dans ce cas, il faut créer une machine virtuelle, y installer et restaurer votre Jeedom (si vous ne voulez pas tout perdre)
Et vous faites la migration en v4.2.20 et vos ajustements la machine virtuelle.

Quand tout est ok, vous refaites l’installation proprement, avec cette sauvegarde, sur le Raspberry (mais sur un Raspberry Pi OS 10).

1 « J'aime »

En fait la microSD pour le moment elle a Jeedom en V4 vierge.
Je veux laisser tourner mon jeedom en V3 sur mon RPI et utiliser ma microSD en V4 sur mon PC pour configurer depuis zéro mon design, plugins… (Comme ça quand c’est prêt j’insère juste la microSD dans mon RPI est c’est parti)
Je ne veux pas de restauration et passage en V4 afin d’avoir un truc propre et neuf.

Si jamais je peux importer juste les historiques de chaque équipement c’est encore mieux…

Cela n’est pas possible, car Raspberry Pi OS n’est compatible que sur les Raspberry.
Et en plus, avoir une stable sur une carte MicroSD n’est pas l’idée la plus judicieuse.

Si vous ne faites pas de restauration, oubliez aussi l’import des historiques. C’est faisable, mais pour un niveau expert (cela se fait depuis la base de données et pas depuis Jeedom et vous devriez tout réindexer).

Pour moi, vous ne prenez pas le problème dans le bon sens.

Pour moi (en suivant votre idée), le plus simple et sur est de :
Laissez votre Pi avec son SSD
Installez une machine virtuelle avec un Debian 10
Installez Jeedom en v4
Faites ce que vous voulez dedans (comment intégrer vos équipements si vous avez des trucs sans fils ?)
Et quand c’est prêt pour vous.
Sauvegardez votre votre backup du Pi sur un emplacement sur et réinstallez l’image de Jeedom en v4 et restaurez le contenue ce que ce que avez tranquillement préparé sur la machine virtuelle.

Une restauration de Jeedom est quelque chose de propre.

Ok effectivement c’est compliqué d’intégrer les équipements sans fils dans être directement sur le RPI…
Pas de solution alors ?
Sauf acheter un autre rpi ?
Lol

Même pas, car selon les protocoles, il n’est pas possible d’associer un même périphérique sur 2 contrôleur.

Installez/restaurez/migrez/adapter !

1 « J'aime »

Bon ça sent pas bon, car en effet il me semble que certains ne sont pas associables 2 fois…
Mais il faudrait que je fasse le tri pour associer déjà tout le reste.
Car en fait lorsque je fais une migration j’ai l’impression que tout merde…
Ou alors je fais un truc pas comme il faut mais je veux bien savoir quoi… Lol

Je vais tenter sur la microSD une restauration puis migration pour voir.

Une fois sur microSD bien fonctionnel a ce moment là je ferais un transfert sur le SSD

Tiens au passage tu connais les protocoles qui n’acceptent pas 2 contrôleurs ?

Je ne les connait pas tous, mais par exemple, le z-wave (on y arrive, mais ce n’est pas simple).

J’ai des équipements rflink, des zigbee, du wifi (sonoff, Tuya…), Xiaomi avec la passerelle, …

Voici mes plugins :

Certains risquent de me poser problème ?

Bonjour,

Tu ne peux pas virtualiser un matériel dans une autre machine, au mieux, tu peux virtualiser un linux debian oui, et donc développer / configurer ta future version la dessus, que tu pourra ensuite exporter / importer sur ton nouveau RPI4 tout neuf (donc backup jeedom à importer, mais il te faudra avoir installé Jeedom sur la carte microSD auparavant) (de toute façon ce n’est pas possible d’exporter une VM d’un PC qui a une architecture spécifique genre x64, sur un RPI qui a une autre architecture type ARM)

sans compter tous les plugins avec 1 controleur que tu n’a pas en double
sans compter aussi la perte de tous tes historiques

Pas vraiment la bonne méthode, voici ce que je te suggère, et peu importe l’ordre au final, (moi aussi je suis aussi passé du RPI3 au RPI4)

  1. installe ton RPI4 tranquillement + jeedom v4 + si tu veux quelques plugins que tu peux tester pour t’amuser
  2. Tu upgrade jeedom v3 → v4 sur ton RPI3 comme ça c’est fait
  3. importe ton backup du RPI3 sur le RPI4, tu teste encore un peu si tu veux…
  4. à un instant T tu fais la bascule: ton RPI4 est à jour, en gros il te reste juste à débrancher les contrôleurs USB du 3 et les brancher sur le 4, pour les plugins avec un contrôleur, et ça marche :slight_smile:
  5. tu a maintenant un RPI3 « de test » sur lequel tu peux faire évoluer les nouveaux designs avant de les copier sur le 4. Tu pourrais faire la même chose sur une VM pour le coup.

Ok donc avec ta solution il faut racheter un deuxième RPI mais pourquoi faire ?

Je partirais sur la méthode expliquée par Fabrice.

Mais puisque la finalite c’est de migrer.

Precaution en plus du backup jeedom: backuper le ssd entier (avec win32diskimager sur windows par ex, mais il’y a pleins d’autre softs win ou linux). Comme ca au moindre doute, on ecrase et on repart comme en 40 en 5 min.

Ensuite faites la migration du rpi avec son ssd en v4 et si ça foire pas youpi et sinon youpi avec le clone du ssd

ben, non, tu en a déjà 2 non?

Visiblement non, voir le 1 er message.

1 « J'aime »

Non non…
Je n’ai que le rpi 3

Bon…

J’ai tenté une mise à jour en V4 depuis ma V3 et je suis bloqué là :

[START UPDATE]
****Update from 3.3.56 (2022-07-07 12:06:17)****
Parameters : {"preUpdate":"0","backup::before":"1","plugins":"1","core":"1","force":"0"," update::reapply":"0"}
Send begin of update event...OK
Check update...
OK
Check rights...
OK
[START BACKUP]
***************Start of Jeedom backup at 2022-07-07 12:06:21***************
Envoi l'évènement de début de sauvegarde...OK
Vérification des droits sur les fichiers...
OK
Vérification de la base de données...
OK
Sauvegarde la base de données...
OK
Persistance du cache :
OK
Création de l'archive...
OK
Nettoyage de l'ancienne sauvegarde...OK
Limitation de la taille des sauvegardes à 500 Mo...
OK
Nom de la sauvegarde : /var/www/html/core/php/../../backup/backup-diabolyk-3.3.56-2022-07-07-12h06.tar.gz
Vérification des droits sur les fichiers...
OK
Envoi l'évènement de fin de sauvegarde...OK
Durée de la sauvegarde : 155s
***************Fin de la sauvegarde de Jeedom***************
[END BACKUP SUCCESS]
Disable all task
.... OK
Disable all scenario....
....................
.....................
. OK
Download url : https://github.com/jeedom/core/archive/V4-stable.zip
Download in progress...--2022-07-07 12:09:01--  https://github.com/jeedom/core/archive/V4-stable.zip
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/jeedom/core/zip/refs/heads/V4-stable [following]
--2022-07-07 12:09:01--  https://codeload.github.com/jeedom/core/zip/refs/heads/V4-stable
Resolving codeload.github.com (codeload.github.com)... 140.82.121.10
Connecting to codeload.github.com (codeload.github.com)|140.82.121.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 82120477 (78M) [application/zip]
Saving to: '/tmp/jeedom/install/jeedom_update.zip'
0K ........
........ ........ ........ ........ ........  3% 2.77M 27s
3072K ........ ........ ........ ..
...... ........ ........  7% 2.92M 25s
6144K ........ ........ ........ ........
........ ........ 11% 2.92M 24s
9216K ........ ........ ........ ........ ......
.. ........ 15% 2.93M 23s
12288K ........ ........ ........ ........ ........ ....
.... 19% 2.93M 22s
15360K ........ ........ ........ ........ ........ ........ 22% 2.91M 21s
18432K ...
..... ........ ........ ........ ........ ........ 26% 2.93M 20s
21504K ........ .
....... ........ ........ ........ ........ 30% 2.92M 19s
24576K ........ ........ .
....... ........ ........ ....
.... 34% 1.46M 20s
27648K ........ ........ ........ ........ ........ ........ 38% 3.56M 18s
30720K ........ ........
........ ........ ........ ........ 42% 2.37M 17s
33792K ........ ....
.... ........ ........ ........ ........ 45% 2.84M 16s
36864K ........ ........ ..
...... ........ ........ ........ 49% 2.75M 15s
39936K ........ ........ ......
. ........ ........ ........ 53% 2.85M 14s
43008K ........ ........ ........ ........ ....
.... ........ 57% 2.84M 12s
46080K ........ ........ ........ ........ ........ ..
...... 61% 2.83M 11s
49152K ........ ........ ........ ........ ........ ......
.. 65% 2.83M 10s
52224K ........ ........ ........ ........ ........ ........ 68% 2.93M 9s
55296K ........ ...
..... ........ ........ ........ ........ 72% 2.92M 8s
58368K ........ ........ ...
..... ........ ........ ........ 76% 2.93M 7s
61440K ........ ........ ........ ...
..... ........ ........ 80% 2.93M 6s
64512K ........ ........ ........ ........ ........ ..
...... 84% 2.91M 4s
67584K ........ ........ ........ ........ ........ ...
..... 88% 2.77M 3s
70656K ........ ........ ........ ........ ........ ........ 91% 3.09M 2s
73728K ........ ..
...... ........ ........ ........ ........ 95% 2.92M 1s
76800K ........ ........ ........ ..
...... ........ ........ 99% 2.93M 0s
79872K .....                                                100% 2.96M=28s
2022-07-07 12:09:30 (2.78 MB/s) - '/tmp/jeedom/install/jeedom_update.zip' saved [82120477/82120477]
OK
Cleaning folders...OK
Create temporary folder...OK
Unzip in progress...
OK
Clean temporary files (tmp)...
OK
Moving files...
Ignore file /tmp/jeedom_unzip/core-4-stable///docs/de_DE/noteVersion.md because size is 0
Ignore file /tmp/jeedom_unzip/core-4-stable///docs/en_US/noteVersion.md because size is 0
Ignore file /tmp/jeedom_unzip/core-4-stable///docs/es_ES/noteVersion.md because size is 0
Ignore file /tmp/jeedom_unzip/core-4-stable///docs/fr_FR/noteVersion.md because size is 0
Ignore file /tmp/jeedom_unzip/core-4-stable///docs/pt_PT/noteVersion.md because size is 0
OK
Remove temporary files...OK
Update system into : 3.4.0...Suppression theme /var/www/html/install/update/../../core/themes/amber/Suppression theme /var/www/html/install/update/../../core/themes/blue/Suppression theme /var/www/html/install/update/../../core/themes/blue_grey/Suppression theme /var/www/html/install/update/../../core/themes/bootable/Suppression theme /var/www/html/install/update/../../core/themes/brown/Suppression theme /var/www/html/install/update/../../core/themes/cyan/Suppression theme /var/www/html/install/update/../../core/themes/darksobre/Suppression theme /var/www/html/install/update/../../core/themes/deep_orange/Suppression theme /var/www/html/install/update/../../core/themes/deep_purple/Suppression theme /var/www/html/install/update/../../core/themes/green/Suppression theme /var/www/html/install/update/../../core/themes/grey/Suppression theme /var/www/html/install/update/../../core/themes/light_blue/Suppression theme /var/www/html/install/update/../../core/themes/light_green/Suppression theme /var/www/html/install/update/../../core/themes/lime/Suppression theme /var/www/html/install/update/../../core/themes/orange/Suppression theme /var/www/html/install/update/../../core/themes/pink/Suppression theme /var/www/html/install/update/../../core/themes/purple/Suppression theme /var/www/html/install/update/../../core/themes/red/Suppression theme /var/www/html/install/update/../../core/themes/teal/Suppression theme /var/www/html/install/update/../../core/themes/yellow/OK
Update system into : 4.0.1...OK
Update system into : 4.0.2...
OK
Update system into : 4.0.3...
Copy widget of plugin widget to jeedom custom widget dir...OK
Update system into : 4.0.4...
OK
Update system into : 4.0.5...
OK
Update system into : 4.0.6...
OK
Update system into : 4.0.11...OK
Update system into : 4.0.15...
OK
Update system into : 4.0.23...
je passeOK
Update system into : 4.1.1...OK
Update system into : 4.1.2...
cp: cannot stat '/var/www/html/install/update/../../core/config/scenario': No such file or directory
OK
Update system into : 4.1.3...
OK
Update system into : 4.1.4...
OK
Update system into : 4.1.5...OK
Update system into : 4.1.7...
OK
Update system into : 4.1.15...PHP Fatal error:  Uncaught Exception: [MySQL] Error code : 42S22 (1054). Unknown column 'order' in 'field list'  : SELECT `id`, `name`, `image`, `configuration`, `order`
FROM planHeader
ORDER BY `order` in /var/www/html/core/class/DB.class.php:102
Stack trace:
#0 /var/www/html/core/class/planHeader.class.php(48): DB::Prepare('SELECT `id`, `n...', Array, 1, 8, 'planHeader')
#1 /var/www/html/install/update/4.1.15.php(3): planHeader::all()
#2 {main}
thrown in /var/www/html/core/class/DB.class.php on line 102
OK
Update system into : 4.2.3...
Fix repo issueOK
Update system into : 4.2.4...
OK
Update system into : 4.2.11...
Enable apache remoteipOK
Check jeedom consistency...[START CONSISTENCY]
[START CHECK AND FIX DB]
Fix : ALTER TABLE `cmd` DROP INDEX `unique`;
Fix : ALTER TABLE `cmd` DROP INDEX `isHistorized`;
Fix : ALTER TABLE `cmd` DROP INDEX `type`;
Fix : ALTER TABLE `cmd` DROP INDEX `name`;
Fix : ALTER TABLE `cmd` DROP INDEX `subtype`;
Fix : ALTER TABLE `cmd` DROP INDEX `eqLogic_id`;
Fix : ALTER TABLE `cmd` DROP INDEX `value`;
Fix : ALTER TABLE `cmd` DROP INDEX `order`;
Fix : ALTER TABLE `cmd` DROP INDEX `logicalID`;
Fix : ALTER TABLE `cmd` MODIFY COLUMN `logicalId`  varchar(255) NULL
Fix : ALTER TABLE `cmd` MODIFY COLUMN `name`  varchar(127) NULL
Fix : ALTER TABLE `cmd` MODIFY COLUMN `configuration`  mediumtext NULL
Fix : ALTER TABLE `cmd` DROP `html`
Fix :
CREATE UNIQUE INDEX `unique` ON `cmd` (`eqLogic_id` ASC,`name` ASC)
Fix :
CREATE INDEX `isHistorized` ON `cmd` (`isHistorized` ASC)
Fix :
CREATE INDEX `type` ON `cmd` (`type` ASC)
Fix :
CREATE INDEX `name` ON `cmd` (`name` ASC)
Fix :
CREATE INDEX `subtype` ON `cmd` (`subType` ASC)
Fix :
CREATE INDEX `eqLogic_id` ON `cmd` (`eqLogic_id` ASC)
Fix :
CREATE INDEX `value` ON `cmd` (`value` ASC)
Fix :
CREATE INDEX `order` ON `cmd` (`order` ASC)
Fix :
CREATE INDEX `logicalID` ON `cmd` (`logicalId` ASC)
Fix : ALTER TABLE `cmd` DROP INDEX `logicalId_eqLogicID`;
Fix : ALTER TABLE `config` MODIFY COLUMN `key`  varchar(127) NOT NULL
Fix : ALTER TABLE `config` MODIFY COLUMN `value`  mediumtext NULL
Fix : ALTER TABLE `cron` DROP INDEX `deamon`;
Fix : ALTER TABLE `cron` MODIFY COLUMN `option`  text NULL
Fix : CREATE INDEX `function` ON `cron` (`function` ASC)
Fix :
CREATE INDEX `deamon` ON `cron` (`deamon` ASC)
Fix : ALTER TABLE `cron` DROP INDEX `type`;
Fix : ALTER TABLE `cron` DROP INDEX `logicalId_Type`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `unique`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `eqTypeName`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `name`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `logical_id`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `object_id`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `timeout`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `generic_type`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `tags`;
Fix : ALTER TABLE `eqLogic` MODIFY COLUMN `configuration`  mediumtext NULL
Fix : ALTER TABLE `eqLogic` DROP `eqReal_id`
Fix :
CREATE UNIQUE INDEX `unique` ON `eqLogic` (`name` ASC,`object_id` ASC)
Fix :
CREATE INDEX `eqTypeName` ON `eqLogic` (`eqType_name` ASC)
Fix :
CREATE INDEX `name` ON `eqLogic` (`name` ASC)
Fix :
CREATE INDEX `logical_id` ON `eqLogic` (`logicalId` ASC)
Fix :
CREATE INDEX `object_id` ON `eqLogic` (`object_id` ASC)
Fix :
CREATE INDEX `timeout` ON `eqLogic` (`timeout` ASC)
Fix :
CREATE INDEX `generic_type` ON `eqLogic` (`generic_type` ASC)
Fix :
CREATE INDEX `tags` ON `eqLogic` (`tags` ASC)
Fix : ALTER TABLE `eqLogic` DROP INDEX `logica_id_eqTypeName`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `eqReal_id`;
Fix : ALTER TABLE `eqLogic` DROP INDEX `logicalId`;
Fix : ALTER TABLE `historyArch` DROP INDEX `cmd_id_index`;
Fix : ALTER TABLE `interactDef` ADD `display` text NULL
Fix : ALTER TABLE `interactDef` ADD `comment` text NULL
Fix : ALTER TABLE `message` ADD `occurrences` int(11) NULL
Fix : ALTER TABLE `object` DROP INDEX `name_UNIQUE`;
Fix : ALTER TABLE `object` DROP INDEX `fk_object_object1_idx1`;
Fix : ALTER TABLE `object` DROP INDEX `position`;
Fix : ALTER TABLE `object` MODIFY COLUMN `name`  varchar(127) NOT NULL
Fix :
CREATE UNIQUE INDEX `name_UNIQUE` ON `object` (`name` ASC)
Fix :
CREATE INDEX `fk_object_object1_idx1` ON `object` (`father_id` ASC)
Fix :
CREATE INDEX `position` ON `object` (`position` ASC)
Fix : ALTER TABLE `plan3dHeader` ADD `order` int(11) NULL
Fix : CREATE INDEX `order` ON `plan3dHeader` (`order` ASC)
Fix : ALTER TABLE `planHeader` ADD `order` int(11) NULL
Fix : CREATE INDEX `order` ON `planHeader` (`order` ASC)
Fix : ALTER TABLE `scenario` DROP `type`
Fix : ALTER TABLE `scenario` DROP INDEX `group`;
Fix : ALTER TABLE `update` ADD `updateDate` datetime NULL
Fix : ALTER TABLE `viewData` DROP INDEX `fk_data_zone1_idx`;
Fix : CREATE TABLE IF NOT EXISTS `widgets` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(191) NOT NULL,
`type` varchar(27) NULL,
`subtype` varchar(27) NULL,
`template` varchar(255) NULL,
`display` text NULL,
`replace` text NULL,
`test` text NULL,
primary key(`id`))
ENGINE InnoDB;
CREATE UNIQUE INDEX `unique` ON `widgets` (`type` ASC,`subtype` ASC,`name` ASC)
Fix : CREATE TABLE IF NOT EXISTS `timeline` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`folder` varchar(255) NULL,
`type` varchar(27) NULL,
`subtype` varchar(27) NULL,
`link_id` varchar(27) NULL,
`name` varchar(255) NULL,
`datetime` datetime NOT NULL,
`options` text NULL,
primary key(`id`,`datetime`))
ENGINE InnoDB;
CREATE INDEX `datetime` ON `timeline` (`datetime` ASC)[END CHECK AND FIX DB]
Check jeedom database...OK
Check filesystem right...PHP Fatal error:  Uncaught Error: Call to undefined method jeedom::cleanFileSystemRight() in /var/www/html/install/consistency.php:372
Stack trace:
#0 /var/www/html/install/update.php(348): require_once()
#1 {main}
thrown in /var/www/html/install/consistency.php on line 372

Vous avez fait comment? Quelle procédure pour l’upgrade?

Désactivé les plugins? supprimé les designs s’il y en a sur la V3?