mercredi 6 novembre 2024

Réseau: Comment utiliser un PC Windows + un routeur DD-WRT pour "partager" une clé 4G sur votre réseau ?

En fait, j'ai ma connexion internet qui était tombé :-(... pas de technicien avant le week-end... besoin de faire du télétravail... donc j'ai pu avoir en urgence une airbox 4 (4G) de mon opérateur Orange (dans mon cas, j'ai eu du matériel de Alcatel le MW45 "brandé"/modifié pour l'opérateur). C'est bien sympa d'avoir ce type de service mais finalement.... cela reste limité à connecter un pc, un smartphone en wifi voir une télé connecté mais pas pratique quand on a un réseau comme le mien avec des routeurs, des switchs, des appareils connectés, de la domotique, des assistants vocaux et plus d'appareil que ce que peut supporté cette petite boite (maximum 15 appareils connectés) :



Il y a aussi ces modèles mais je n'ai pas pu les tester récemment (c'est peut être des modèles que j'avais eu par le passé):




Et on voit sur internet que les gens ne sont pas super convaincu parce que l'on est de plus en plus connecté, donc une solution qui nous permettrais de connecter cette "clé" 4G sur notre box pour remplacer temporairement notre connexion ADSL ou fibre défectueuse serait l'idéal... donc mon cas, j'avais plus de connexion (problème de fibre ?!), ma box semblé aller...


Et c'était possible par le passé avec la Livebox 3 voir la 4 pro :-( ... juste en la connectant sur le port USB, c'était possible...  


Mais dans mon cas, c'est sur, impossible avec une Livebox 5 qui n'a pas la capacité de le faire même si un port USB est présent (pas de menu et confirmé par le support d'orange):


Donc il fallait que je trouve une solution : 

1) j'ai pensé utiliser la sim de cette boite, et faire du "tethering" iphone comme j'ai fait dans cet article : https://bozothegeek.blogspot.com/2020/06/internet-comment-utiliser-son-routeur.html

Mais c'est impossible, la sim est bloqué et empèche le partage de connexion :-( NOK

2) j'ai pensé utiliser le mode "mobile broadband" via l'USB de mon routeur DD-WRT mais trop complexe sans identifiant de connexion :-( NOK




3) j'ai essayé aussi sans succés le "mode client ou client bridge" pour me connecter à la clé en wifi d'orange mais sans succés (c'était peut être un prob de routing ?!) NOK


4) la dernière solution à essayer, que je voulais éviter en fait, cela fut de mettre un de mes PCs en routeur pour faire un partage de connexion sous Windows (je sais une solution avec linux aurait été mieux mais j'ai pris ce que j'avais vous la main)... et finalement, c'est pas trés écologique (mais c'est du temporaire ;-).... j'ai réussi sans trop cassé mon réseau et mes confs actuelles... et c'était le but... OK

Donc voici ce que j'ai mis en place, j'avoue que je le partage pour tous mais surtout pour moi, pour m'en rappeler pour la prochaine fois ;-)

Remarque Importante: dans mon cas, je n'utilise pas le DHCP de la box internet, cela ne me sert que de "gateway" internet. Le DHCP est dans mon routeur DD-WRT, ainsi, quand je change ou reset ma box, la configuration est simplifiée. La gestion des ips fixes, etc... se fait donc dans le routeur DD-WRT. Donc c'est pour cela que je peux me permettre de switcher d'une connection à une autre ;-)

Dans le routeur DD-WRT:

- Je suis obligé de changé la "gateway" et le "Local DNS", donc je mets l'IP du PC qui va faire le job de gateway (quand la box redeviendra fonctionnel, j'aurais juste à y remettre l'IP de la box sur le réseau local ;-): 


Dans mon cas, je reste en mode "Router" mais il faudra pas être en mode "gateway" : 


Dans mon cas, j'avais créé un bridge sur la prise ethernet "br0" dans la partie "Networking" (je ne me rappel plus vraiment pourquoi mais on verra que cela a un impacte surement) : 


Il faudra aussi regarder du côté du DNSMASQ et les option associés à "br0", il faudra aussi chnager et mettre l'IP du PC qui nous sert donc de gateway:


Dans le PC qui est déjà sur notre réseau:

On va devoir se focaliser sur la connexion "Ethernet" où notre réseau "domestique" est branché et sur la connexion "Wifi" qui est déjà connecté à la clé 4G... (je ne vous présente pas la partie connexion au wifi, c'est trés bien décrit dans la documentation fourni et les outils d'Orange)



Pour la connexion "Ethernet" je suis sur un réseau en 192.168.0.X (l'ip du pc est 192.168.0.4 comme vous avez pu le voir plus haut).

Mais pour le wifi, on est en "192.168.1.X" avec une IP de la clé 4G à "192.168.1.1"

Donc le fait que les sous réseau ne sont pas les mêmes, j'ai cru que cela était le problème mais finalement non ;-)

Donc pour la partie "Ethernet", je conseil d'aller dans les propriétés :


Pour définir les paramètres parce que l'on ne pourra pas utiliser le DHCP dans ce cas :


Donc on remets, l'IP de notre PC, un masque sous réseau permettant d'utiliser les 2 sous-réseaux en 192

.168.0.X et 192.168.1.X (255.255.0.0 au lieu de 255.255.255.0), la gateway internet en 192.168.1.1 et pour finir, les DNS de Google pour ne pas avoir de problème de résolution !

Pour la partie "Wifi", je conseil d'aller dans les propriétés aussi :

Pour vérifier les paramètres parce que dans ce cas on pourra utiliser le DHCP de la clé 4G aussi dans ce cas :


(On voit que la passerelle/gateway par défaut est bien le 192.168.1.1)

Mais ce n'est pas fini, il va falloir "partager" la connexion Wifi pour que l'on puisse faire ce partage de connexion et selectionner la bonne connection "Ethernet" que l'on souhaite utiliser: 


Et donc je crois que c'est tout...

Pour tester que tout fonctionne...

1) vous devez avoir accès à l'interface Orange de la clé 4G à partir du PC "http://192.168.1.1/index.html"  : 


2) vous devez avoir accès à l'interface de votre routeur DD-WRT:


3) vous devez pouvoir aller sur internet: 

4) et le test ultime, aller se connecter en SSH à votre routeur DD-WRT (si vous saavez faire ;-), et vérifier que vous avez accès à internet à partir du routeur : (avec un ping sur "microsoft.fr" par exemple)



Et donc par "magie", toutes votre domotique, assistants vocaux et autres objets connectés vont revivre avec le retour d'internet à leurs "port"es ;-)

Enjoy !!! 


PS: j'espère que j'ai rien oublié parce que j'ai un peu galérer à trouver la bonne conf au final




mardi 19 septembre 2023

Rétrogaming: J'ai enfin reçu mon CM4 pour mon GPI Case 2 !!!

 Après une bataille de plusieurs mois voir une année, j'ai maintenant un CM4 en version Lite/Wifi/Bluetooth (que 2Go, j'espérais 4Go initialement).

Je vais pouvoir faire le setup de cette machine et avec son dock pour la télé !!! C'est pour cela que je veux tester et utiliser cette version même si la GPI Case 1 avec un PI zeroW v2 me convient déjà pas mal !

De plus cette version à une batterie intégrée !!!  


Donc on va faire le setup: 

pour cela, il nous faut :

1) Une carte SD (j'ai pris 200 Go, je l'avais en stock, on peut peut être prendre 64 Go, c'est surement suffisant pour les roms et le scrap pour ce type de machine à mon avis)

2) Un lecteur de micro-sd integré au PC ou sous forme de dongle USB de ce type (pas de sponso ;-):

https://www.amazon.fr/gp/product/B07G5JV2B5/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1



2) l'image recalbox du Pi4 qui intégre la partie GPICase 2 normalement : 

https://upgrade.recalbox.com/latest/download/rpi4_64/recalbox-rpi4_64.img.xz

3) Raspberry Pi imager que l'on ne présente plus:

https://github.com/raspberrypi/rpi-imager/releases



Après le flashage (la flem d'expliquer cela en fait ;-)...

Pour la suite... j'ai fait des vidéos finalement... et j'ai bien fait...




Enjoy !!!




lundi 7 février 2022

Jeedom: "fail2ban or not to ban" là est la question ;-)



En fait, je fais cet article parce que suite à certaines installations de JeedomV4 hébergeant le fail2ban dans Raspbian 10 (donc sur Pi ;-) je suis tombé sur un hic... pour 2 raisons...

1) J'avais un plugin qui me généré des bannings :-(

2) Puis ensuite sur mobile avec Safari, j'avais encore eu des bannings... 

Donc je me suis rendu compte de cela dans mes logs (en allant fouiner en SSH):

2022-02-07 17:28:50,710 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,713 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,715 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,718 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,720 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,895 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,900 fail2ban.filter         [446]: INFO    [apache-multiport] Found 192.168.0.67 - 2022-02-07 17:28:50

2022-02-07 17:28:50,904 fail2ban.actions        [446]: NOTICE  [apache-multiport] Ban 192.168.0.67

Avec la commande suivante: 

sudo tail -f /var/log/fail2ban.log

Je me fesais bannir même mes IPs locales :-(

Donc pour faire simple, en cherchant un peu, je me suis rendu compte que le fichier de conf n'était pas parfait :-(...

Je l'ai modifié avec la commande suivante : sudo nano /etc/fail2ban/jail.d/jeedom.conf 

Et j'ai rajouté mon range d'IP locale :

[DEFAULT]
#Ne pas bloque localhost ni s'auto-bloquer.
ignoreip = 127.0.0.1/8 192.168.1.0/24 192.168.0.0/24

# ban de  60 minutes
bantime  = 28800

# on regarde les attaques sur les 2 dernières heures. Les 5 minutes par défaut, ça ne marche plus, les pirates se sont adaptés
findtime = 7200
maxretry = 3

# on surveille tous les ports
banaction = iptables-multiport

# action a prendre: ban + log détaillé
action = %(action_)s

[apache-multiport]
enabled = true
port      = http,https
filter    = apache-auth
logpath   = /var/www/html/log/http*.error
maxretry = 3

[apache-botsearch]
enabled  = true
port     = http,https
filter   = apache-botsearch
logpath   = /var/www/html/log/http*.error
maxretry = 6

[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath   = /var/www/html/log/http*.error
maxretry = 2
.....
Et j'avais dans les logs HTTP d'apache ceci aussi:

[Mon Feb 07 22:05:40.787174 2022] [access_compat:error] [pid 1431] [client 192.168.0.151:55326] AH01797: client denied by server configuration: /var/www/html/core/css/icon/animal/fonts/animal.eot, referer: http://192.168.0.11/index.php?v=m
[Mon Feb 07 22:05:46.658984 2022] [access_compat:error] [pid 1422] [client 192.168.0.151:55327] AH01797: client denied by server configuration: /var/www/html/core/css/icon/animal/fonts/animal.eot, referer: http://192.168.0.11/index.php?v=m
[Mon Feb 07 22:05:52.529226 2022] [access_compat:error] [pid 1390] [client 192.168.0.151:55328] AH01797: client denied by server configuration: /var/www/html/core/css/icon/animal/fonts/animal.eot, referer: http://192.168.0.11/index.php?v=m

Ensuite j'ai du débannir avec la commande suivante :

sudo fail2ban-client set apache-multiport unbanip 192.168.0.67

Attention, il y a un autre fichier ici (/var/www/html/install/fail2ban.jeedom.confmais il ne semble pas être utilisé dans mon cas (l'installation a merdé peut être ?!) mais je pense surtout que c'est un exemple.. mais j'ai pas tout compris je crois ;-) donc faite comme moi !!!

Enjoy !!!



vendredi 5 novembre 2021

Domotique: Boot sur USB/SSD avec un Raspberry Pi 2 en 2021 ;-)

Cette fois, suite à un crash de mon Pi 2 qui s'occupe de la partie chauffage, j'ai du réinstaller cette partie aussi... Pour faire simple, c'est la microSD qui a fini par mourir, j'avais eu des signes avant coureur (disfonctionnement, reboot nécessaire, lenteur)... mais cette fois, cela ne "bootait" plus :-(


Donc j'en ai profiter pour passer sur usb et un disque en mSSD pour ne plus avoir ces problèmes.


Mais sur Pi2, j'ai vu pleins de tuto plus ou moins obsolètes et ce n'est pas comme sur Pi3 (sur Pi3 ou plus, vous pouvez suivre ce tuto: https://www.domo-blog.fr/comment-installer-jeedom-sur-un-disque-dur-ssd-sur-raspberry-pi/)

Donc je me suis permis de proposer cet article pour aider d'autre dans le même cas du "vieux Pi à mettre au gout du jour".

Donc la méthode est la suivante (testé et confirmé par mes soins ;-)

Pré-requis:

- 1 disque mSSD, ou SSD en USB et flashé avec Jeedom V4 (de préférence)... voir dans ce tuto pour préparer cela: https://bozothegeek.blogspot.com/2021/10/domotique-migration-de-jeedom-v3-v4.html

- une MicroSD de faible capacité (mais souvent maintenant on a du mal à trouver en dessous de 16Go)

- un Rasbperry Pi 2 (ou Pi 1... mais j'ai pas testé)

1) Récupérer le bootcode.bin ici de la fondation raspberry pi : https://github.com/raspberrypi/firmware/raw/next/boot/bootcode.bin

2) Formater une carte micro sd en FAT32 donc avec cette unique partition (dans mon cas j'ai utilisé une 4go, c'est suffisant ... même 1go ou moins peut suffire... on a juste besoin d'une cinquantaine de Ko en f ait !!!)

3) Copier le fichier bootcode.bin sur votre partition FAT32

4) Insérer la microSD avec le bootcode.bin dans votre pi hors-tension et aussi connectez votre disque USB (avec Jeedom dessus) sur le port 0 (ttyUSB0), parce que le Pi va chercher dans l'ordre et comme souvent, c'est mieux de prendre le premier ;-)

4) Mettre sous tension le Pi et il devrait démarrer sur le disque avec Jeedom



C'est dans le cas où cela se passe bien...

Si cela ne se passe pas bien, il faudra tenter d'aller plus loin...

1) Donc avant de faire les premières étapes, il faudra booter dans un premier temps sur un microSD avec une raspbian installée dessus (avec le ssh d'activé)

2) Puis lancé la commande "rpi-update" pour espérer mettre à jour le formware de votre Pi

4) Aprés reboot (ou avant pour voir le changement), on peut lancer la commande "uname -a" pour vérifier la version

$ uname -a
Linux raspberrypi 5.10.76-v7+ #1477 SMP Tue Nov 2 13:20:09 GMT 2021 armv7l GNU/Linux

Ensuite vous pourrez retenter les premières étapes que j'ai proposé...

Voilà, c'est les plus court qui sont les meilleurs ;-)

Enjoy !!!


samedi 23 octobre 2021

Domotique : Migration de Jeedom V3 à V4

Voici donc comme je me suis pris pour migrer de V3 à V4....

Vu qu'il y a des conseils et problèmes connus pour cette migration, je vais donc vous lister dans mon cas ce que j'ai vérifié et préparé avant de migrer. 

A) préparation de la mise à jour :

1) J'ai vérifier ma version de raspbian installé (il est conseillé de rester en Raspbian 9 (stretch) pour l'instant parce que Buster peut poser problème):

pi@JeedomMaster:/var/www/html/plugins $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@JeedomMaster:/var/www/html/plugins $

2) J'ai du vérifier aussi les plugins qui ne seront plus bon après la migration... Apparement, c'est ceux qui continue d'utiliser l' object:: dans le code php. Maintenant la V4, demande d'utiliser JeeObject:: à la place, on verra ensuite si on peut modifier sur les anciens plugins si le dev ne maintient plus ce code.

Pour l'instant, on va devoir faire l'inventaire avec la commande suivante :

cd /var/www/html/plugins; grep -R "object::" *

pi@JeedomMaster:~ $ cd /var/www/html/plugins; grep -R "object::" *
alexaapi/desktop/php/alexaapi_ex.php:foreach (object::all() as $object)
clientSIP/desktop/php/panel.php:        $object = object::byId($_SESSION['user']->getOptions('defaultDashboardObject'));
clientSIP/desktop/php/panel.php:        $object = object::byId(init('object_id'));
clientSIP/desktop/php/panel.php:        $object = object::rootObject();
clientSIP/desktop/php/panel.php:$child_object = object::buildTree($object);
clientSIP/desktop/php/panel.php:                                $allObject = object::buildTree(null, true);
datatransfert/desktop/php/datatransfert.php:foreach (object::all() as $object) {
enedis_linky/desktop/php/enedis_linky.php:foreach (object::all() as $object) {
forecastio/desktop/php/forecastio.php:                  foreach (object::all() as $object) {
FreeboxCalls/desktop/php/FreeboxCalls.php:                            foreach (object::all() as $object) {
FreeboxOS/desktop/php/FreeboxOS.php:                            foreach (object::all() as $object) {
gmailinfo/desktop/php/gmailinfo.php:                            foreach (object::all() as $object) {
gmailinfo/desktop/php/pushbullet.php:                            foreach (object::all() as $object) {
JPI/desktop/php/JPI.php:                                                foreach (object::all() as $object) {
ledticker/desktop/php/ledticker.php:foreach (object::all() as $object) {
lightsManagement/desktop/php/lightsManagement.php:                            foreach (object::all() as $object) {
MiFlora/desktop/php/MiFlora.php:                                    foreach (object::all() as $object) {
Monitoring/desktop/php/Monitoring.php~:                                                 foreach (object::all() as $object) {
motion/core/ajax/motion.ajax.php:                               $object = object::byId($_SESSION['user']->getOptions('defaultDashboardObject'));
motion/core/ajax/motion.ajax.php:                               $object = object::byId(init('object_id'));
motion/core/ajax/motion.ajax.php:                               $object = object::rootObject();
motion/core/ajax/motion.ajax.php:                               foreach (object::all() as $object) {
motion/core/ajax/motion.ajax.php:                               foreach (object::buildTree($object) as $child) {
orvibo/desktop/php/orvibo.php:                  foreach (object::all() as $object) {
ping/desktop/php/ping.php:                            foreach (object::all() as $object) {
previsionpluie/desktop/php/previsionpluie.php:                            foreach (object::all() as $object) {
pushbullet/desktop/php/pushbullet.php:                            foreach (object::all() as $object) {
rcswitch/desktop/php/rcswitch.php:                                                           foreach (object::all() as $object) {
rcswitch/desktop/php/rcswitch.php.obsolete:foreach (object::all() as $object) {
RTSP/desktop/php/RTSP.php:foreach (object::all() as $object) {
script/data/Export_XML.php:if($jsonrpc->sendRequest('object::full', array())){
snmp_client/desktop/php/snmp_client.php:foreach (object::all() as $object) {
Store/desktop/php/Store.php:foreach (object::all() as $object) {
trafictransilien/desktop/php/trafictransilien.php:foreach (object::all() as $object) {
wifilight/desktop/php/wifilight.php:                            foreach (object::all() as $object) {
wifilight/desktop/php/wifilight.php~:                            foreach (object::all() as $object) {
wifilight/desktop/php/wifilight_V0.06.php:                            foreach (object::all() as $object) {
wifilight/desktop/php/wifilight - Copie.php:                            foreach (object::all() as $object) {
wifilight/desktop/php/wifilight.old.php:                            foreach (object::all() as $object) {
pi@JeedomMaster:/var/www/html/plugins $

Voici donc le résultat pour moi, j'ai des vieux plugins en fait et qui ne sont pas forcement maintenu :-(

Dans un premier temps, j'ai décider d'identifier dans cette liste ceux que je n'utilise même pas, que j'ai gardé mais qui sont inactif, j'ai :

- clientSIP

- freeboxCalls (plus de Freebox ;-)

- freeboxOS (plus de Freebox ;-)

- gmailInfo

- JPI

- Ledticker

- MiFlora

- Motion

- Previsionpluie (en fait, je ne sais pas quel est vraiment le plugin derrière ?!)

- Pushbullet (j'ai arrêté à cause du support d'iOS abandonné par le passé, maintenant j'envoi des SMS !)

- rcswitch

- RTSP (finalement, je ne l'utilise plus pour les cameras !)

- store

Et maintenant, il me reste donc ceux que j'utilise et qui pourront me poser problèmes :

- alexaapi (et celui là je l'utilise vraiment, surtout pour faire parler Alexa !)

- datatransfert (pour mes backups de jeedom dans dropbox)

- lightsManagement (pour ma simulation de présence !)

- Monitoring (pour suivre les Pis !)

- Orvibo (pour les prise et mon AllOne qui contrôle l'infra-rouge, pilotage télé/switch hdmi !)

- Ping (pour suivre la présence de device sur le réseau !)

- script (sera géré par l'équipe de Jeedom je pense à moins que cela soit un de mets scripts, à voir)

- snmp_client (pour le test de présence de mon routeur DD-WRT)

- trafic transilien (pour le train de ma femme ;-)

- wifilight (je vais devoir peut être migrer en v2 un jour ?!)

3) les widgets "custom" ne seront plus compatible, j'ai regardé, j'ai pas trouvé de widget fait par mes soins, j'ai fait des essais par le passé, mais rien de "folichon", donc je n'ai jamais vraiment utilisé des widgets spécifiques... on verra lors de la migration, si j'ai loupé un truc... mais c'est à savoir.

4) lancer un backup de la conf V3 : 


5) Télécharger le backup sur un autre appareil pour plus de sécurité :

    

6) Pour plus de sécurité, vous pouvez aussi cloner votre SD ou votre SSD : 

Pour cela j'ai suivi ce tuto: https://www.thedigitalpictureframe.com/guide-back-up-sd-card-raspberry-pi-while-running/

Et donc j'ai lancé cette commande à partir de mon linux.... attention cela peut être long, mon mSSD fait 111,8 Go et mon réseau n'est pas térrible je crois (j'ai cloné à 4/5 MBytes/s), donc mon cas c'est une Raspbian stretch (Debian 9) avec mon disque en /dev/sda :

ssh pi@192.168.0.X "sudo dd if=/dev/sda bs=1M status=progress | gzip -" | dd of=~/Desktop/$(date +%Y%m%d\_%H%M%S)\_pi_clone.gz

Et il faudra taper son mode de passe d'accès au pi pour pouvoir lancer le backup.

Et pour finir, on aura un fichier .gz ainsi :

Cela a mis plusieurs heures en fait :-( donc à vous de voir.

Si vous avez un doute vous pouvez utiliser cette commande pour vérifier si vous êtes sur le bon disque :

sudo cfdisk /dev/sda


6 bis) On peut aussi cloner avec un outil externe en installant le disque mSSD dans un "adapteur mSata <> Sata" pour le connecter à un PC comme ci-après : 


J'ai utilisé cet outil qui est gratuit et fonctionne sur windows  10 dans mon cas : https://www.ubackup.com/download.html


Mais il y en a surement d'autres ;-)

B) la mise à jour en tant que tel :

1) Pour les widgets, il est conseillé de les désactiver le plugin pour éviter les problèmes pendant la migration : 

2) Pour les designs, c'est plus radical... il est préférable de les supprimer :-( pour ma part, je m'en servait peu ou pas... j'avais juste fait un pour test : 


3) Mettez tous vos plugins à jour :

4) On peut maintenant lancer la mise à jour à partir du "centre de mise à jour" et cliquer sur "mettre à niveau V4"


5) Jeedom va analyser et donner son avis.... (il peut prendre une trentaine de secondes...)


Dans mon cas.... j'ai pris peur... et j'ai pensé qu'il était préférable de changer d'OS avant :-(... mais finalement non...

le mieux semble le processus suivant pour mon cas (et j'ai pu le vérifier maintenant ;-):
    - Garder raspbian 9.X donc mon système actuel sur mon mSSD
    - Faire un cleaning des plug-ins obsolete    
    - Migrer de v3 à v4 via l'outil de migration de Jeedom
    - Faire ensuite un backup de mon mSSD actuel et donc de cette v4 (sauvegarde jeedom standard(obligatoire) + image pour plus de sécurité (optionelle))
    - Flasher un nouvel OS en raspbian 10.X et avec Jeedom pré-installer en V4 (de préférence sur un nouveau mSSD au passage pour renouveller le hardware)
    - Restaurer le dernier backup jeedom en V4 sur cette nouvelle installation
    - "Pray for jeedom" ;-)


6) il faudra donc désinstaller déjà les plugins identifié comme "obsolete" avec le boutons suivant:


    vous pouvez aller voir la liste à la fin de la page pour comprendre mieux: 


Ensuite on peut cliquer sur le bouton et on va nous demander si on est sur ;-) !!!!



J'ai cliqué après vérification... la ligne sur les plug-ins obsoletes vont disparaitres.

On peut donc cliquer sur le bouton "Mettre à niveau V4"...


Encore une confirmation avant de lancer :



On se lance... et on prie ;-)


On commence par un backup...

On télécharge la mise à jour ;-)


On installe.... j'avais des versions de retard ;-)... J'ai une une erreur de DB ...sick :-(


Puis un packet de Fix....


Puis on check... et tout semble bon à part un plug-in beta qui me saoule :-( faurda que je le vire à l'occas !!!)



Et pour finir, je clique en haut à droite pour relancer le dashboard :




Ah oui, le chargement est différent déjà !!! Joli ce petit flouté et ce nouveau spinner !!!




C) la vérification que cela marche !!!

1) déjà, il y a des plug-ins à mettre à jour !!! (au passage apparement il est conseillé pour la suite de passer à Debian 10 Buster mais en "fresh install"... dommage :-(... mais bon on va déjà essayé de faire tournée cette installation pour avoir une bonne sauvegarde...


2) Mais avant on va supprimer le plugin "widget" qui est conseillé de virer ! (moi j'ai désactivé dans un premier temps avant de le vier, prudence... ;-)

3) Puis j'ai mis à jour de suite les plugins qui le demandait....

Mais j'ai du le faire un par un, un peu pénible... surement parce que je n'ai pas la bonne version de raspbian :-( ou sinon il n'y a plus la possibilité de le faire d'un coup :-( ?!

4) J'ai fait un redémarrage pour voir comment se comportait le système...


Encore un floutage... dans ce cas, c'est bizarre... on ne voit pas le Merci de patienter... mdr ;-)



Mais bon, cela redémarre bien pour arriver au dashboard !!!


5) j'ai quand même toujours le problème avec le plugin Xiaomi Home :-(, problème de python et/ou php... je n'arrive toujours pas à installer les dépendances !!!


6) Donc je vais faire un backup en 4.X avant de faire une fresh install pour être en Raspbian 10:


7) et puis j'ai téléchargé le backup en lieu sur !!!


D) Maintenant je me lance dans la "fresh install" !!!

1) Pour cela j'ai racheté un nouveau mSSD de 64 Go... ainsi je peux facilement remettre ma domotique existante si besoin ;-)

2) Pour la procédure, j'ai suivi le lien que l'on trouve dans le "centre de mise à jour": https://doc.jeedom.com/fr_FR/installation/#Installation
Dans mon cas, j'ai pris sur Raspberry Pi: https://doc.jeedom.com/fr_FR/installation/rpi

3) Pour l'image, j'ai pris celle-ci : https://images.jeedom.com/rpi/jeedom-debian-buster-rpi-4.1.25.zip

Pour avoir la dernière version, elle se trouve ici: https://images.jeedom.com/rpi/
(j'ai fais attention de ne pas prendre la 64 bits pour mon Pi3 et dans la même version que mon backup ;-)

4) Flashé sur le mSSD avec Pi Imager : https://www.raspberrypi.org/software/


Remarque: dans "choose OS", il faudra prendre "image personalisée" 

5) J'éteinds ma domotiqe (pi actuel), pour installer le nouveau mSSD


6) Je change le mSSD dans mon Pi Desktop ;-)




7) je relance le Pi ! (si l'IP est donné par un DHCP, cela simplifiera pour retrouver l'interface de Jeedom, ce que je conseil toujours)



8) Le login sera: admin et le mot de passe sera : admin 

9) on change le mot de passe

10) on ignore les autres étapes

11) Avant de lancer la restauration, on jete un coup d'oeil sur la santé de la bête (et pour pouvoir comparer plus tard) : 


12) on ajoute déjà la sauvegarde dans jeedom avec le bouton "Ajouter une sauvegarde"


13) On clique sur "Restaurer la sauvegarde"


14) OUPS.... dans mon cas, la restauration est resté figé... j'ai du me reloguer avec mon login/mot de passe comme dans la V3

15) Puis je suis aller voir dans les logs, et la restauration a bien été faite:


16) je suis aller voir la "santé" de jeedom aussi... un peu long mais voici !


17) J'avais donc encore 4 plugins NOK, j'ai pu en corriger 2... mais j'ai fini par en garder 2 avec problèmes... des que je n'utilise pas souvent donc j'ai décidé de remettre cela à plus tard... dans mon cas, j'ai beaucoup de plugin donc c'est normal d'avoir certains qui ne passent pas bien cette migration, certains avaient aussi des problèmes avant donc je n'ai pas considérer cela comme un problème, et cela sera à résoudre plus tard.

Dans mon cas j'ai laissé donc 2 problèmes de côté :
Le premier, c'est plus lié à des devices non accessibles dans mon réseau, donc pas un problème de migration:

Le deuxième, lié ai lancement du démon, et je sais que l'API d'Alexa est régulièrement non accessible à cause d'un cookie à renouveler :-(... donc je n'ai pas paniqué pour cela:


18) voilà c'est fini... ouf !!!

CONCLUSION: donc finalement, ce n'est pas compliqué de migrer et je n'ai pas eu vraiment de problème, je test cela depuis plusieurs semaines maintenant, et je suis super content, j'ai surtout pu retrouver mon plug-in xiaomi compatible python 3, que je ne pouvais plus utiliser sur Jeedom V3 et avec mon OS avec python 2 :-(

Enjoy !!!