Jeedom : Cloner la carte SD

Une plateforme Jeedom, même sur une Raspberry Pi est un serveur qui reste faillible, surtout quand on le fait tourner sur une carte SD. Certains sont adeptes de montages sur SSD, d’une part un SSD n’est pas infaillible et d’autre part je préfère faire simple. On va donc explorer deux méthodes de clonage de notre fragile carte SD, étant entendu qu’en parallèle on fera bien sur des sauvegardes régulières (automatisées) de la configuration via Samba.

Clonage carte à carte

La première méthode va consister à cloner la carte SD vers une seconde carte SD insérée dans un adaptateur USB. Ça a l’avantage d’un redémarrage rapide en cas de crash, il suffit d’échanger la carte SD et de restaurer la dernière sauvegarde Samba. La configuration et l’exécution se font en SSH, il s’agit d’une exécution occasionnelle qui visera à garder sous le coude une carte SD avec une configuration stable.

git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin

Utilisation

On commence par arrêter les services.

cd rpi-clone
sudo service mysql stop
sudo service cron stop
sudo service apache2 stop
sudo service mariadb stop

Pour une copie SD vers USB (Ou sans -f ensuite pour faire juste une synchro, -v pour voir ce qu'il se passe...).

sudo rpi-clone sda -f

Redémarrage des services. (Personnellement à ce stade je préfère faire un « sudo reboot »)

sudo service mysql start
sudo service cron start
sudo service apache2 start
sudo service mariadb stop
sudo systemctl daemon-reload

On peut éventuellement ajouter un Cron si on laisse une carte en place…

Clonage vers un fichier image 

La seconde option consiste à créer une image de la carte SD vers un serveur NFS (Un Nas par exemple). On part du principe que le NAS est correctement configuré en NFS, la procédure pour Synology est ici.

On va commencer par tester les prérequis et notamment la présence du protocole NFS et de PV (Pipe Viewer) qui nous permettra de voir la progression du clonage lors de nos tests :

dpkg -l | grep nfs-common ou apt-get install nfs-common pour l’installer.
dpkg -l | grep pv ou apt-get install pv pour l’installer.

Le clonage

On commence par créer un point de montage

sudo mkdir /mnt/Backup_NAS

Ensuite il faut inscrire le montage dans fstab, ce qui va permettre le montage automatique du partage au démarrage du système et qui sera utile pour l’automatisation : « 

sudo nano /etc/fstab

Et on ajoute la ligne suivante :

IP du NAS:/volume1/Backup/Jeedom    /mnt/Backup_NAS    nfs    rw,user    0    0

On teste avec

sudo mount -a && sudo df

Et le montage distant doit apparaître. On peut aussi tester l’écriture avec

sudo mkdir /mnt/Backup_NAS/totofaitdubato

On va maintenant pouvoir lancer manuellement la création de notre première image, en prenant soin auparavant de stopper les services et bases :

sudo service mysql stop
sudo service cron stop
sudo service apache2 stop
sudo service mariadb stop # j’ai parfois eu des erreurs quand je n’arrêtais pas ce service #
sudo dd if=/dev/mmcblk0 bs=4M | sudo pv -treb | sudo dd of=/mnt/Backup_NAS/SD_Backup/Backup_SD_TEST.img && sync

L’image aura la taille de la carte SD, il est possible de la compresser, mais vu que cette opération est déjà très longue, je ne suis pas sûr que ça vaille le coup d’alourdir la tâche.

sudo dd if=/dev/mmcblk0 bs=4M | sudo pv -treb | sudo gzip -1 -| sudo dd of=/mnt/Backup_NAS/SD_Backup/Backup_SD_TEST.img && sync

Une fois le clonage de test effectué on va graver une nouvelle carte avec Etcher et la tester. Normalement cette carte peu remplacer celle d’origine.

Automatisation

On part du principe que l'on dispose d'une sauvegarde quotidienne dont on vérifie le processus, rien de plus désagréable que les sauvegardes ne fonctionnait plus quand on en a besoin. Re cloner la carte SD reste à faire quand on effectue des modifications du système, comme par exemple de grosses mise à jour du core ou des changements dans les plugins.

Script + Cron + envoi de mail... (à venir...)

Lire la carte SD Jeedom sous Windows

Il peut parfois être intéressant de lire une carte SD Jeddom sous Windows, par exemple pour y récupérer une sauvegarde quand on est une buze sous Linux. En fait c'est assez simple, il suffit d'installer le driver idoine qui se trouve ici et les explications sont . (pour mémoire les sauvegardes sont ici : /var/www/html/backup)

Sauvegarde via Samba

Vers un PC (à venir... Mais il existe plein de tutos sur le net...)

Sauvegarde Cloud

Vers Droopbox, Google drive, OneDrive, SFTP et FTP (à venir... Mais il existe des totos sur le net...)

Sources 

Jeedom : RFPlayer et génériques...

Les RFPlayer est une interface USB qui raccordé à Jeedom va permettre de décoder une multitude d’équipement, un peu à la matière du RFX-Com mais sur deux fréquences (433 et 868 MHz) et avec bien plus d’équipement reconnus. Dans la pratique ce n’est jamais que la technologie liée à l’héritage de la feu ZiBase dans une clé USB. Sur le papier glacé c’est génial, dans la pratique pour en tirer le meilleur parti c’est la qualité du plugin assurant l’interface avec la solution domotique retenue qui fera la différence. Sous Jeedom il y a d’abord eu une première version du plugin avec pas mal de problèmes, mais qui reconnaissait nativement les équipements. Ensuite nous avons eu une v2 bien plus stable mais qui fonctionne sur mode générique, dans l’absolu sans limites, mais qui déroute un peu au départ et rebutera plus d’un débutant. D’autant plus que l’équipe Jeedom n’est pas des plus prolixe en matière d’explications. Un peu comme si les nouveaux venus devaient mériter la solution !

Ça n’a donc pas été simple, mais au final le résultat est étonnamment plutôt stable. Si certains équipements sont reconnus nativement (les sondes Oregon par exemple), l’affaire est un peu plus complexe des lors qu’il s’agit d'exploiter des équipement X2D ou Visonic. Je vais essayer de vous donner ici quelques explications. On considère que le RFPlayer est installé, son firmware à jour et le plugin installé dans sa dernière version.

Visonic

En  passant par le plugin en mode inclusion il est aisé de détecter les équipements, il faudra ensuite les localiser physiquement, mais ça on le fera plus tard. Pour l’instant ce qui importe c’est de détecter l’ensemble de capteurs. Ce qui va nous intéresser ici c’est la valeur qualifier qui est une information numérique que l’on exploitera avec un script ou un virtuel. Voici les valeurs pour un détecteur d’ouverture (MCT-302 ou un IR) et ce que j’en ai déduit d’après les informations que j’ai pu trouver sur les forums :

0 Fermé (action immédiate)
2 Ouvert (action immédiate)
4 Warning ? défaut sur le capteur, autoprotection ?
8 Fermé (en veille ou pour supervision par la centrale)
10 Ouvert (en veille ou pour supervision par la centrale)
12 Batterie faible

Ces valeurs n’étant pas binaires il sera impossible de les exploiter directement pour détecter une fenêtre ouverte dans une thermostat ou avec le plugin Alarme. Tout au plus il est possible de programmer une (et une seule) action sur la valeur directement dans les paramètres avancés du qualifier, mais ce n’est pas très propre et limitatif. On peu également créer un widget qui affichera les divers états, c’est ce que l’avait expliqué le support Jeedom, c’est joli, didactique, mais ça ne sert à rien. J’ai donc créé un équipement virtuel, qui pour chaque sonde Visonic va transformer ces informations numériques en informations binaires, après tout ce dont j’ai besoin c’est de savoir si ma fenêtre est ouverte ou fermé !

(#[Alarmes][Chambre Lionel][qualifier]# & 2) == 2 or (#[Alarmes][Chambre Lionel][qualifier]# & 10) == 10

Ce qui nous donne ça en fignolant un peu... 

A partir de là cette information étant binaire elle est directement exploitable dans d’autres plugins ou scénarios.

EDIT : Cette solution permet d’avoir une visibilité globale des capteurs, et je dois bien avouer que je ne savais pas trop faire autrement. J’avais pourtant posé la question tant sur le forum que directement au support Jeedom sans réponse satisfaisante. Jusqu’à ce qu’un développeur de passage sur mes posts du forum m’explique qu’il est possible de faire bien plus simple en ajoutant une commande data::qualifier de type info directement sur l’équipement :

Et ensuite la formule de calcul idoine (#[Alarmes][Test][qualifier]# & 2) == 2 or (#[Alarmes][Test][qualifier]# & 10) == 10 dans la configuration avancée :

Il est également possible de simplifier la formule ainsi (#[Alarmes][Chambre Lionel][qualifier]# & 2) == 2, mais on aura alors que l'état instantané et non l'état en veille, mais c'est généralement suffisant et le résultat est identique. On évite ainsi le Virtuel et on obtient un résultat simplifié et directement exploitable. Je me demande juste pourquoi cette info n'est pas crée lors de la détection de l'équipement et pourquoi les auteurs du plugin ne l'ont documenté nulle part. Et ce n'est pas faute d'avoir cherché !

XD2

Pour récupérer des informations on doit pouvoir procéder de façon à peu près identique. Moi j’avais besoin que de commander un seul actionneur RP600 de chez DeltaDore qui actionne un fil pilote. Dans mon cas je gère ce sèche serviettes avec un thermostat Jeedom, donc ce que je voulais c’est uniquement faire du ON/OFF tout en laissant la possibilité d’utiliser la marche forcée physique du sèche serviettes. (Voir les détails ici). J’ai donc créé un équipement virtuel qui va transmettre ses ordres à l’équipement du RFPLayer et nous donner un retour d’état tout aussi virtuel. J’exécute donc une Action après exécution de la commande ou pour ON j’envoie #[Hardware][X2D RP600 SdB][Confort]# au RFPlayer, et #[Hardware][X2D RP600 SdB][Hors Gel Low]# pour OFF. Chacun adaptera à ses besoins et ça marche à l’identique pour les autres protocoles.

Conclusion

Contrairement aux habitudes, il est bien souvent impossible d’utiliser seul le nouveau plugin du RFPlayer. Il faudra soit écrire du code, des scripts ou des scénarios, soit se simplifier la tâche en exploitant intensément le plugin Virtuel. Quoi que...

Cher Free,

Tous les geeks de France attendaient tes annonces avec au moins autant d’impatience que tes investisseurs. Tu as enfin sorti ta plus belle chemise blanche pour nous présenter le fruit de tes cogitations. Enfin, moi je me suis contenté de lire ce que d’ex collègues et confrères on put en écrire (OlivierArnaud, et bien d'autres) car il y a longtemps que, retiré dans ma province verdoyante, je ne fréquente plus ce genre de show !

Bref, tu as mis le focus sur ta nouvelle bête de course, un peu comme quand Renault courait en F1, mais tu as aussi pensé à une formule plus populaire pour ne pas oublier le peuple en ces temps de révolte jaune ! Je n’ai pas eu l’occasion d’avoir en main tes nouveaux jouets et je ne pense pas troquer ma box actuelle qui me sert uniquement de modem. M’enfin Free, il me semblait t’avoir entendu dire il y a quelques années que l’avenir n’était plus aux box et qu’il fallait se concentrer sur le métier de FAI ? C’était juste pour désorienter tes concurrents ou tu le pensais vraiment ? Là ou j’attendais que tu te concentre sur le transport, ce qui est ton métier, tu viens nous noyer dans une multitude de services qui, ne nous voilons pas la face, sont avant tout là pour contenir dans le temps l’érosion de tes clients en les maintenant dans ton écosystème. Franchement pas toi, pas toi qui a longtemps dénoncé les ventes couplées des autres !

Ton fond et ta forme

Disons-le tout de suite je déteste tes formes arrondies et incasables. Déjà que ta révolution avec ses trois pieds ne me plaisait pas, là franchement c’est le bouquet. C’est juste mon avis, la seule box qui vaille est la 4K, là au moins le serveur est carré (en fait une révolution dans une jolie boite) et le player ouvert, même si à l’époque on aurait aimé qu’il n’arrive pas avec tous ses bugs. Quant fond, pourquoi vouloir nous imposer un player propriétaire et nous limiter dans nos choix ? Tu l’as pourtant bien compris en Suisse en proposant un Apple TV ! Je, nous, voulons pouvoir installer, comme nous le faisons sur nos smartphones, n’importe quelle application sur nos players, et pour cela tu sais très bien qu’il y a que deux choix possibles, Apple TV ou Android TV. Laisse donc le choix au peuple sans chercher à les orienter, tu as longtemps refusé le méchant Netflix, et maintenant tu veux nous imposer Netflix, dis-toi bien que ceux qui voulaient Netflix n’ont pas attendu ta bénédiction ! Pareil pour le son, tu crois vraiment que ceux pour qui le son compte ont attendu que Free démocratise Devialet. Je ne doute pas que Devialet offre un bon son, mais d’une part c’est moche, cher et encombrant, mais surtout le marché regorge de bonnes offres (Sonos, Bose, etc), et tant qu’à investir, car tu ne fais que revendre du Devialet, je préfère avoir le choix et ne pas m’enfermer dans un objet lié à ton écosystème dont je ne sais même pas ce qu’il en restera le jour où mon désamour à ton égard aura atteint son apogée.

Quant au serveur, avec son NAS, sa connectivité et ses gadgets, là aussi tu es un peu hors du temps ! Ceux qui jadis empilaient des disques dans des NAS sont en train de s’envoyer en l’air dans les nuages, ou alors c’est qu’ils ont besoin de vrais NAS, ce que tu n’es pas. 10 Go en fibre c’est bien pour le futur, je ne commenterais pas car je sais bien que je ne verrais jamais la moindre fibre dans ma campagne. Par contre j’aimerais que tu détaille un peu la technologie liée au couplage avec la 4G, même si elle ne me servira à rien ici car tu te reposes encore et toujours sur l’agrume ! Alors, DualWAN ou MPTCP ? Je pose la question car ce n’est pas du tout pareil, le DualWAN tout le monde sait faire, mais du coup tu te retrouve avec deux IP publiques ce qui n’est pas sans poser des problèmes, ou du MPTCP cher à OVH, c’est plus compliqué, plus élégant, mais pas toujours la panacée. Mais peut être as-tu inventé, ou plus probablement déniché, quelque chose de révolutionnaire ? Dis-nous, mais profites en pour nous expliquer s’il faut ajouter une SIM et si tu as prévu une limitation en volume ? Dans ta grande bonté tu nous as ajouté de la domotique et un système d’alarme. Sérieux, tu crois vraiment que je vais te confier ma domotique ? Tu crois vraiment que j’ai envie de me peler les miches quand ce sera rideau et qu’il me faudra attendre quinze jours ton technicien qui finira par me dire que le problème se situe chez l’agrume ? Sinon, j’aime bien l’idée de ta petite box du peuple, la One faite pour les petits espaces citadins, dommage qu’elle ne soit pas sous Android TV et que tu aies oublié de lui coller l’option 4G. Cependant à la campagne, ou le serveur est souvent déporté, voire dans le garage à côté de l’arrivée du fil du téléphone, ça sera plus compliqué pour aller regarder le match !

Bref, tu l’auras compris, ton offre ne correspond pas à ce qu’attendais le geek Free de la première heure que je suis. Mais avoue, tu t’en fous car ce n’est pas moi que tu cherches à séduire aujourd’hui, je te suis déjà acquis ! Je ne consomme que ta bande passante, la box bien carrée de la 4K que j’ai passée en mode bridge pour qu’elle ne serve que de modem me vas bien, pour le reste je gère mon infrastructure comme un chef et mes TV sont équipées d’un Shield que je n’échangerai jamais pour ta Devialet à tout faire ! Moi j’aimerais juste que tu proposes une offre nue au meilleur prix et que tu me laisse choisir tout le reste. Ne cherche pas à m’assister, je n’ai pas envie de finir sur un rond-point !

EDIT du 19/12 : Face aux critiques Free n'a pas tardé à réagir, ça démontre que l'entreprise est toujours agile et que son capitaine sait changer rapidement de cap face aux critiques ! Une offre Delta S orientée "modem" ne comprenant que le e serveur est  maintenant disponible pour 40 € par mois. 

Jeedom : Temporisation d'un équipement

Vous allez tout savoir. Je ne prends jamais ma douche à la même heure, il est donc impossible de programmer le chauffage de la salle de bain avec un agenda. Mais en général j’anticipe un peu ma douche, je me dis me dis que je vais bientôt aller la prendre car je ne vais pas tarder à sortir. Bref, l’objectif est donc de passer un sèche serviettes en marche forcée, ou en mode confort, pendant une ou deux heures. Certains vont me dire de bouger mon cul et d’aller appuyer sur le bouton idoine du sèche serviettes, et ils auront raison car la majorité de ces appareils en sont équipés, et c’est le cas du mien. Mais l’idée ici est que la démonstration soit générique et s’applique à n’importe quel équipement.

S’il est possible d’utiliser un smartphone ou n’importe quel bouton poussoir reconnu dans Jeedom, pour la démonstration je vais utiliser un gadget que j’ai sous la main, le bouton multiclic de Aquara de Xiaomi qui communique avec Jeedom grâce à la ZiGate et le plugin qui va bien (je dis « qui va bien » pour ne pas réemployer le mot « idoine » car ça ferait deux fois, mais en fait ce plugin ne va pas toujours bien, il s’améliore toutefois de versions en version).

Sur ce bouton on peut récupérer 3 valeurs : 2, 3 ou 4 clics. Pourquoi pas 1 seul ou 5, ne me demandez pas, c’est ainsi ! Donc grâce à un virtuel, je vais récupérer ces 3 états et en faire des informations binaires

Ensuite je vais créer un scénario qui sera provoqué par un évènement sur un de ces 3 états. Si Multiclics=2 je déclenche mon scénario. Il est des plus simples, avec une ACTION qui passe le thermostat de la salle de bain en mode Confort suivi d’un bloc DANS qui le repassera en mode Eco dans 120 minutes. Le bloc DANS étant une commande secondaire qui va s’exécuter dans 120 minutes contrairement à sleep ou wait qui laisserait le scénario actif pendant 120 minutes ce qui consommerait de la CPU à ce que j’ai compris, voire provoquerait une erreur.

Variantes

On peut également associer à cette action la grande vitesse de la VMC, je ne l’ai pas fait car elle est déjà gérée par l’hygrométrie. Par contre je pensais à utiliser les 3 valeurs des clics pour lancer 3 temporisations différentes.

 

Lampe Xiaomi Mijia

On sort un peu de l’IT pour du beau. Ceux qui me connaissent savent que je suis sensible à ce qui est beau, d’ailleurs cet aspect-là y est sûrement pour quelque chose dans mon choix Unifi… Mais revenons au beau d’aujourd’hui. J’ai donc acheté cette lame parce que je la trouvais belle sans pour autant me préoccuper du fait qu’il s’agissait également d’un objet connecté. Elle est conforme à ce que j’attendais, le reste est un plus.

De base il y a un seul bouton qui permet de gérer l’intensité et le ON/OFF. Si on veut aller plus loin il faut installer l’application Yeelight sur son smartphone et on a accès aux différentes programmations horaires possibles, un mode qui vous avertit qu’il est temps de faire une pause, ainsi que le réglage des températures de blanc et une tripotée de préréglages que l’on pourra personnaliser. Il faut donc un compte MI, et c’est également ce compte qui fera la liaison avec les assistants vocaux.

La lampe est donc reconnue par Alexa qui rend possible la commande vocale de tous les réglages (ON/OFF, variation et température de blancs), chose possible également avec Google Home qui fait toutefois l’impasse sur la température de blancs. Rien à dire, que ce soit avec l’application de base ou les assistants vocaux, on branche et tout fonctionne en quelques minutes et ça donne envie d'investir dans des ampoules de la même marque.

Sous Jeedom, si tant est que ça soit vraiment utile, il est possible en activant le mode développeur de gérer la lampe directement avec le plugin WiFILight2. Vu que c’est du direct IP ça risque toutefois de renter en conflit avec l’application de base et les assistants vocaux qui eux fonctionnent de consort. Il doit également être possible de la gérer plus proprement avec la passerelle Mi Home, mais je n’avais pas envie ce soir de parler chinois !

En conclusion pour une cinquantaine d’euros (voire moins sur les sites chinois) on a une belle lampe qui éclaire bien, avec un design que je trouve très réussit. Soit le prix moyen d’une telle lampe sur le marché. Le fait que ce soit aussi un objet connecté est la cerise sur le gâteau, libre à chacun d’utiliser ces fonctionnalités !

MPTCP vs Dual WAN

L’inconvénient des routeurs Dual/Multi WAN est de présenter plusieurs adresses publiques. Cela peut poser des problèmes d’identification sur certains schémas d’authentification en mode client mais également un casse-tête pour les connections entrantes. Pour y remédier tout le monde (dans notre monde…) a entendu parler de la solution OTB proposée par OVH, qui n’est jamais que l’intégration de technologies existantes mais qui permet de travailler avec une IP publique unique. Depuis la mise en production commerciale le projet semble assez stable, il ne bouge plus trop, par contre les tarifs ont explosés.

Il existe une alternative, openMPTCProuter qui s’appuie sur les mêmes technologies mais en version open et va permettre l’agrégation de 8 liens (xDSL, fibre et 4G) tout en utilisant une seule IP, celle du serveur VPS sur lequel elle s’appuie. Il faut bien comprendre que pour utiliser cette solution vous aurez besoin d’un serveur VPS pour supporter le serveur de relai et votre nouvelle IP publique. Il existe des VPS à partir de quelques euros (OVH, Online), ce qui sera important ici c’est d’une part la latence, il faut donc un VPS proche, et d’autre part que la bande passante du VPS soit supérieure à la bande passante agrégée, tout du moins si vous cherchez à atteindre un débit supérieur. Mais cette tecno peut aussi être déployée dans le but de sécuriser un site, auquel cas le débit importe moins…

Déploiement

On va commencer à installer le serveur sur un VPS ou une VM Linux disposant d’une IP publique, je ne vais pas recopier, tout se trouve ici. Attention à bien respecter les versions minimales des distributions.

Ensuite on passe du côté du routeur. J’ai bêtement beaucoup galéré en voulant installer le routeur dans une VM ESXi, il semblerait que cette image comporte quelques bugs non résolus.(voir plus bas). Le plus simple pour tester est donc de le faire sur un Raspbery, dans mon cas un PI3, j’ai gravé l’image que l’on trouve ici avec Etcher et configuré en me laissant guider avec les infos du VPS, le tout en 10 minutes avec un résultat parfait. Attention toutefois à penser de désactiver le DHCP des box pour ne laisser actif que celui du routeur MPTCP.

En mode production la question du DHCP pourra se poser si l’on dispose déjà d’un DHCP sur un serveur ou un NAS, mais on peut aussi envisager plusieurs modes de fonctionnement, dont un qui consisterait à faire fonctionner le routeur MPTCT en mode bridge et le coller sur le port WAN du routeur existant sur le site. Ainsi on ne perdrait pas les bénéfices de son routeur préféré, un USG dans mon cas, tout en m’affranchissant des contraintes du Dual WAN.

On notera que cette solution fonctionne dans les deux sens, il sera ainsi possible d’utiliser la nouvelle IP publique pour publier des services et ainsi résoudre la problématique de ceux qui ne disposent pas d’une IP fixe.

Pour l’instant openMPTCProuter n’est qu’une succession de betas, la mise en production semble donc hasardeuse. La solution semble stable, les débits en download sont très bons par contre l’upload reste en retrait. Des tests plus approfondis s’imposent et la mise en commun des expériences de tous est bienvenue ! 

Remarques et astuces

ESXi : Pour que le routeur (coté client) puisse fonctionner sur ESXi, il faut simplement accepter le mode Promiscuous dans les options de sécurité du vSwitch0 dans la configuration réseau du serveur ESXi. Par contre rien de spécial à faire si le VPS est sur un serveur ESXi. Coté VPS sur ESXi, il est possible d'installer les VM-Ware tools.

DHCP : Il est tout à fait possible de désactiver le serveur DHCP sur le LAN du routeur openMPTCP si on a déjà un tel serveur (AD ou Synology par exemple).

DNS : Si on veut bénéficier des dérogation pour certains protocoles (Netflix...), il faut que les clients utilisent le DNS d'openMPTCP (quitte à chaîner celui d'AD au dessus).

IPV6 : Si pas d'IPV6 sur le VPS ou IPV6 mal configuré il vaut mieux désactiver, surtout pour les premiers tests.

Performances : Sur un Raspberry 3 qui n'a qu'une interface Ethernet 100 : 85 Mb/s Max. Sur un ESXi j'ai fait 150 Mb/s avec deux lignes vDSL.

Sources

https://www.multipath-tcp.org/
https://openwrt.org/
https://github.com/Ysurac/openmptcprouter/wiki
http://blogwifi.fr/openmptcprouter-vs-overthebox/

Télécoms : Fiabiliser et économiser

Alors que le marché télécom des particuliers jouit d’une concurrence effrénée, qui tourne globalement à l’avantage du consommateur, le marché des professionnels reste lui bien souvent sous la coupe de l’opérateur historique ou de quelques alternatifs qui pratiquent les mêmes méthodes tarifaires.

Exemple vu récemment : 1 ligne analogique pour l’ADSL : 31.29 € + 1 ADSL Pro : 107.00 € + 1 formule fourre-tout pour deux canaux fixe sur RNIS à 142.95 € auquel il fallait ajouter les frais d’un prestataire pour installer et maintenir le PBX local (on parle de factures mensuelles hors taxes).

Quelle est la différence entre la ligne ADSL d’un particulier et celle d’un professionnel dite Pro ? Techniquement aucune. Ah si, une IP fixe chez Orange car ils ne la fournissent pas aux particuliers, et surtout ils imposent des abonnements Pro dont le tarif est au minimum le double pour les professionnels, aux motif d’une GTR. Une garantie souvent illusoire car en cas de panne elle jouera peut être mieux sur un incident local mais pas vraiment pour un incident généralisé ou la pression du grand public est généralement plus importante et forcera l’opérateur à réagir rapidement. Quant aux compensations…

Bref, le budget des télécoms est un budget récurent, un poste important dans une petite structure. Donc soyez malins et surtout fuyez les abonnements tout compris qui n’ont d’autre but que d’enfermer le client dans un package plus difficile à migrer.

Attention toutefois, il n’y a pas de règles toutes faites, en matière de télécoms chaque situation est un cas unique. Je cite des exemples mais il faudra s’adapter à chaque situation particulière (ville, campagne, contraintes, taille de l’entreprise, volumes échangés, sécurité, etc…).

Internet

Pour n’importe quel professionnel Internet est devenu stratégique. Alors que faire ? Croire un opérateur qui va vous dire qu’il est meilleur que l’autre ou organiser sa propre continuité de service ? Personnellement je ne leur fait pas confiance et je préfère m’organiser. La bonne stratégie consiste à mon sens à utiliser deux médias, l’un filaire (Adsl ou fibre, 30 €) et l’autre radio (4G). Sauf quand on n’a pas le choix (pas de 4G) on évitera deux medias filaires car il y a des chances qu’ils partagent des infrastructures communes, ce qui risque de les rendre tous deux inopérants vis-à-vis de de certaines pannes. Quant au secours en 4G il faudra bien sur opter pour l’opérateur qui dispose d’un bon réseau sur le site, Free propose de l’illimité, mais à condition de se trouver à proximité d’un de ses relais. Ce n’est pas très important car on parle de secours, et 20 ou 50 GO seront suffisants dans la majorité des contextes professionnels pour assurer cette fonction. Ce qui compte c’est la qualité de la 4G sur le site, et pour le savoir il n’y a pas d’autre solution que de tester avec 4 abonnements différents avant de choisir.

Une fois ce choix effectué il faudra adapter le matériel et opter pour un routeur Dual WAN. Certains proposent le support natif d’une SIM de secours en 4G alors que d’autres disposent de plusieurs ports WAN sur lesquels on connectera les divers modems (TP-Link, Cisco RV, Unifi, etc… auquel on ajoutera un modem 4G Ethernet, Netgear ou Zyxel par exemple). On peut également opter pour une solution de type MPTCP (OTB d’OVH en version commerciale) ou le but premier est l’agrégation mais qui gère également le secours.

Dans tous les cas l’objectif est double. Faire des économies sur les abonnements et assurer une continuité de service immédiate. Je parle d’immédiateté car la meilleure des GTR imposera toujours le passage par un call center pour signaler l’incident et un temps de réaction. Donc du temps de perdu qui peut rapidement couter très cher à un professionnel.

La téléphonie

Pendant longtemps France Télécom a déployé du RNIS chez les professionnels en louant des lignes et des PBX. L’arrivée d’une timide concurrence n’a pas changé grand-chose, l’objectif premier des opérateurs étant avant tout d’assurer leurs marges. On ne va pas le leur reprocher, c’est le principe de l’économie de marché, il faut juste être plus malin.

Si le téléphone fixe d’un pro a longtemps été stratégique, cela s’est un peu atténué à l’heure où tous les collaborateurs disposent d’un mobile.

La solution pour un professionnel, et surtout pour un petit professionnel, est de s’affranchir de cette artillerie lourde d’un autre âge et d’opter pour de la téléphonie IP ou l’infrastructure est hébergé par le fournisseur. On trouve sur le marché plusieurs offres, je prendrais ici l’exemple de l’offre d’OVH ou l’on peut facilement remplacer un PBX et sa ligne RNIS par une offre à 5 à 15 € / mois pour deux communications simultanées sur 6 postes DECT (Gigaset N510IP) et une importante valeur ajoutée en terme de services inclus. Pour une installation plus conséquente, il est également possible de déployer de postes d’entreprises et un standard. Un poste téléphonique IP n’est pas lié à un lieu, ainsi le télétravailleur pourra disposer d’un poste d’entreprise à son domicile en toute transparence.

La téléphonie sur IP fonctionne via le réseau Internet qui sera sécurisé grâce au Dual WAN. Quant à savoir si ces solutions sont mures, la réponse est oui, pour preuve, Orange a récemment décidé de ne plus installer de lignes classiques mais uniquement de la VOIP.

Vos idées et vos expériences sont bien sur les bienvenues !

USG et Dual WAN

 

L’USG d'Ubiquiti est un routeur qui offre de nombreuses possibilités. De versions en versions il se bonifie, mais il reste encore pas mal de choses à faire à la main. Si le Dual WAN en sortie répartit bien la charge entre les deux ports ou utilise le second en secours, il reste encore des choses simples, qui se font par l’interface de gestion sur la plupart des routeurs, mais qui nécessiteront ici de se plonger dans Linux comme on le ferait sur un vieux gros Cisco… Tant qu’à se plonger dans le CLI, il serait peut-être temps d’en finir avec les techniques de Dual WAN et de s’orienter vers des implémentations libres de MPTCP (et je ne parle pas de l’OTB d’OVH qui s’avère au final une solution commerciale coûteuse, bugs compris !). De par son architecture il y a d’ailleurs plus de chances que cette technologie intéresse d’autres opérateurs que des constructeurs.

Mais revenons à l’USG. Les développeurs avancent mais il reste pas mal de choses qui ne sont pas implémentées dans leur magnifique interface. C’est le cas par exemple si l’on veut qu’un trafic spécifique (ports, ip, source, destination) passe par une liaison spécifique, comme par exemple forcer le flux TV vers le port WAN sur lequel est installée la ligne Free, alors qu’au premier abord on aurait pu penser qu’une simple route statique dans cette magnifique interface de gestion aurait suffit, et bien non :

configure
set protocols static table 5 route 0.0.0.0/0 next-hop WANx_IP_Gateway
set firewall modify LOAD_BALANCE rule 2500 action modify
set firewall modify LOAD_BALANCE rule 2500 modify table 5
set firewall modify LOAD_BALANCE rule 2500 destination address 212.27.38.0/24
set firewall modify LOAD_BALANCE rule 2500 protocol all
commit;exit

Un autre "piège" se situe au niveau de port forwarding. Dans l’interface on configure cela facilement et ça crée automatiquement les règles de firewall associés. Normal, sauf qu’à l’utilisation on s’aperçoit que ça ne fonctionne que pour le WAN1. Et c’est repartit pour un peu de SSH… Attention toutefois, l’interface WAN2 peut aussi être PPPOE1 selon votre connexion…

configure
set service nat rule 4000 description "WAN2 tcp 80"
set service nat rule 4000 destination address WAN2_IP
set service nat rule 4000 destination port 80
set service nat rule 4000 inbound-interface pppoe1
set service nat rule 4000 inside-address address 192.168.210.18
set service nat rule 4000 inside-address port 80
set service nat rule 4000 protocol tcp
set service nat rule 4000 type destination
commit;exit

Pensez aussi à noter les règles ainsi crées (on peut aussi les retrouver avec un show service nat et les effacer avec un delete service nat rule RULE_NUMBER). Il va falloir rendre cette configuration pérenne au reboot grâce à un fichier config.gateway.json, le sujet a été largement abordé dans la communauté Unifi et ailleurs (voir les liens ci-dessous).

Il me reste à explorer le comportement des liens VPN IPSEC en cas de passage en mode secours sur le WAN2, mais ça sera pour une autre fois, à moins que vous ayez des idées et astuces, elles sont bienvenues dans les commentaires !

Sources

https://help.ubnt.com/hc/en-us/articles/235723207-UniFi-USG-Port-Forwarding-Configuration-and-Troubleshooting
https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-How-to-further-customize-USG-configuration-with-config-gateway-json
https://help.ubnt.com/hc/en-us/articles/360005460813-UniFi-USG-Advanced-Policy-Based-Routing
https://help.ubnt.com/hc/en-us/articles/360002668854-UniFi-Verifying-and-Troubleshooting-IPsec-VPN-on-USG

Jeedom : Gérer les coupures EdF

Etre informé d’une coupure électrique peut sauver le contenu d’un congélateur lors d’une absence. Dès lors faisons fonctionner la domotique. Il existe un micro module pour ça, l’ITS23 d’InterTechno (la doc est ici) qui fonctionne avec une pile et que l’on pourra associer à Jeedom via un RFPlayer ou un RFXCom. Il doit également être possible de gérer les coupures avec les retours des onduleurs, mais j’ai préféré gérer ça de façon indépendante.

Attention, ce micro module a deux modes de fonctionnement, activation quand le contact est fermé ou activation quand le contact est ouvert, cela joue pour le poussoir qu’il gère en parallèle mais également pour le sens des codes émis. Et c’est là que ça se complique car de fait à la reprise électrique il s’associera automatiquement aux prise Chacon qui elles aussi redémarrent et au départ sont toujours en mode association. Donc il s’associe sans que l’action soit voulue et ensuite les allume et les éteint. Avant de comprendre cet effet de bord je me suis bien cassé la tête à comprendre ce qui faisait allumer des lampes lors de chaque reprise électrique… Il va donc falloir contourner cet inconvénient avant de mettre en service nos scénarios.

On choisit la position O (activation quand le contact est ouvert), ce qui va provoquer le passage en position ON des objets Chacon associés. Dans notre cas ce n’est pas grave car ces objets sont éteints lors d’une coupure électrique, donc sans incidence, sauf que c’est un peu déroutant pendant les tests. On aura donc un OFF lors de la reprise électrique et là on pourra toujours compenser avec un scénario associé (de toutes façons un Chacon est toujours OFF lors de son branchement / alimentation).

On associe l’ITS23 à Jeedom, ici via le RFPlayer, et on obtient deux infos qui vont nous intéresser. Une Info Numérique que l’on va nommer Coupure Alim qui retournera 1 si coupure et reviendra à 0 lors de la reprise, et une autre Info Textuelle que l'on nommera Alerte EdF et qui retournera ON si coupure et OFF lors de la reprise.

 

En allant dans la configuration avancée (la petite roue crantée à côté du bouton tester) de ces deux valeurs on va pouvoir configurer des actions. Comme on ne peut configurer qu’une action par valeur, on va se servir des deux, j’utilise la valeur OFF de Alerte EdF pour envoyer un sms notifiant la coupure, et la valeur 0 de Coupure Alim. pour envoyer une notification de reprise et lancer un scénario sur reprise, avec un délai afin de pallier au micro coupures.

Pour l’instant je ne me sert pas de la valeur du poussoir, mais on pourrait imaginer que cet équipement pourrait servir à autre chose…

USG, Android TV et les chaines des FAI

Tous les possesseurs de Freebox 4K le savent, ce n’est pas le pied ! Avec sa télécommande indomptable, ses bugs audio à répétitions. Même avec la dernière mise à jour, cette box TV ne cesse d’être capricieuse. Mais il parait que c’est bien mieux que la box Android TV de son conçurent BT. Bref, même les box génériques chinoises font mieux, mais je ne conseillerais pas ces produits pour qui veut un bon player Android TV.

En fait à mon sens il y a deux produits qui tiennent la route sous Android TV. La Nvidia Shield est la reine ou même la v1 est toujours excellente et mise à jour régulièrement, l’outsider étant la Mi Box 3 de Xiaomi en attendant le v4 annoncée il y a un mois avec des améliorations qui semblent cosmétiques. Il y a deux alternatives viables, un ChromeCast ou un Apple TV pour ceux qui ne se sentent bien qu’avec les produits d’Apple, mais ce n’est pas le propos ici.

Pour revenir à Android TV, et si l’on ne dispose pas d’un HD HomeRun ou l’intégration est parfaite, il va se poser le problème de l’intégration des chaines TV de son opérateur en IPTV à partir du fichier .M3U fournit par les FAI. Si l’on exclut certaines applications douteuses, il existe une solution qui permet une intégration parfaite : TVIrl. TVIrl est une application Android TV qui va permettre d’utiliser la playlist fournie par le FAI ainsi qu’un lien vers une source EPG. Le soucis c’est que si les FAI fournissent bien le fichier de leurs chaines en IPTV, il n’en est rien pour l’EPG et les logos.

Internet fourmille de fournisseurs d’EPG dans différents formats, notamment XMLTV ou même des acteurs comme Télérama s’y sont mis, ou encore çainternet est vote ami). Mais la vraie question sera d’agréger ces informations avec les chaines dans la bonne numérotation avec leur EPG et leurs logos. Si la première solution, notamment pour comprendre est Notepad, on atteindra rapidement ses limites en matière de patience. Il existe des logiciels plus ou moins bugées et des sites. Pour ma part j’ai testé avec X.Tream qui a l’inconvénient d’être payant mais l’avantage de fournir un résultat impeccable et durable. On peut tester avec un trial de 7 jours et ensuite partager les frais à plusieurs.

Le principe est simple, on insère son fichier .m3u, ici freebox.m3u et ensuite on va faire le tri dans les chaines afin d’écarter celles qui ne nous intéressent pas, les versions SD ou certaines chaines étrangères par exemple. On les trie dans l’ordre souhaité pour finir dans le section EPG afin de faire coller une source EPG à chacune des chaines retenues (il y a un doc ici qui décrit le processus. Le menu Picons servira à associer les logos de façon automatique.

Dans la section downloads de X.Tream Editor on obtiendra deux url, la première sera la playlist formatée et la seconde l’EPG. Il va falloir coller ces deux url dans TVIrl sous Android TV. Sachant que TeamViewer ne fonctionne pas très bien sous Android TV, le plus simple sera de se servir de la télécommande Android pour faire un copié / collé. Une fois l’opération terminée on va dans les options de Chaines en direct pour sélectionner les canaux souhaités. L’avantage de cette solution c’est qu’elle est pérenne. A tout moment on peut aller dans X.Tream Editor et y faire des modifications qui seront répercutées dans les Chaines en direct d’Android TV via TVIrl.

Unifi et dual WAN

Il reste un cas particulier qui n’a rien à voir avec ce que j’exposais précédemment. Si on utilise un routeur dual WAN avec deux FAI (ADSL, fibre et 4G) il va falloir indiquer au routeur par ou doit passer le ou les flux TV. En effet le flux Free ne sera accessible que via la ligne Free tout comme le flux Orange devra passer par la ligne Orange. Si sur certains routeurs le réglage est accessible dans l’interface de configuration il n’en est bizarrement rien pour l’USG d’Unifi ou il va falloir y aller en dur via SSH :

configure
set protocols static table 5 route 0.0.0.0/0 next-hop 1.2.3.4
set firewall modify LOAD_BALANCE rule 2500 action modify
set firewall modify LOAD_BALANCE rule 2500 modify table 5
set firewall modify LOAD_BALANCE rule 2500 destination address 212.27.38.0/24
set firewall modify LOAD_BALANCE rule 2500 protocol all
commit;exit

Ou 1.2.3.4 est l’ip de la passerelle de la ligne Freebox que l’on peut retrouver avec un show ip route. Il va falloir rendre cette configuration pérenne au reboot grace à un fichier config.gateway.json, le sujet a été largement abordé dans la communauté Unifi et ailleurs (voir les liens ci dessous).

Si vous avez d'autres idées et astuces, elles sont bienvenues dans les commentaires !

Sources

https://help.ubnt.com/hc/en-us/articles/360005460813-UniFi-USG-Advanced-Policy-Based-Routing 
https://help.ubnt.com/hc/en-us/articles/215458888 
https://matthijs.hoekstraonline.net/2017/10/29/configuring-source-address-based-routing-on-my-unifi-usg/ 
https://www.reddit.com/r/AndroidTV/comments/6oo99t/guide_to_setting_up_live_channels_for_android_tv/ 
https://www.reddit.com/r/IPTV/comments/83keyw/tvirl_or_alternatives_android_tv_love_channels_w/