Journal Solution pour faire tourner xpl-perl dans un container LXC

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
6
30
nov.
2015

Bonjour tlm,
ceci est un petit journal qui j’espère pourra aider d'autre personne lors de la migration d'un container openvz en lxc ou lors de l'installation xpl-perl dans un container lxc.

xpl-perl est un framework en perl qui permet de traiter de l'xpl. C'est un protocole utilisé en domotique. Il est simple et il est très simple de faire de la domotique avec.

Le problème c'est que xpl-perl est plus ou moins à l'abandon, le dernier commit remonte à 4 ans.
Donc j'utilise ce framework dans mon système domotique que pour la réception des trames et l'envoi de trames, le traitement se faisant par du python écrit par mes soins.

Lors du passage en proxmox 4 je suis passer d'openvz à lxc, il suffit de faire un backup des containers, puis de passer à proxmox 4 et à ré-importer les containers et il les convertis automatiquement en lxc.

Je convertis mon container openvz en lxc et on boot. Tous fonctionne sauf que au niveau xpl il reçoit plus rien.
Après constat je remarque qu'il tourne sur le port lo au lieu d'eth0, eth0 est bien présent.
Je force le démarrage sur le port eth0 en mode verbose et la il me dit qu'il ne trouve pas de port eth0.

Bon je débug (j'ai jamais fait de perl) en suivant le chemin des fonctions j'arrive à trouver le problème.
Quelque part il exécute une commande ip addr et fait une regex dessus pour vérifier ou trouver le premier port.
Sous openvz il me remonte; eth0: bla bla bla
sous lxc il me remonte; eth0@if7: bla bla bla
Le problème est isolé.

Voici mon bricolage pour le faire fonctionner:
dans: /usr/share/perl5/xPL/Base.pm à la ligne 481
remplacer:

if (/^\d+:\s+([a-zA-Z0-9:]+):/) {

par

if (/^\d+:\s+([a-zA-Z0-9:]+)@|\d+:\s+([a-zA-Z0-9:]+):/) {

et c'est tout ça marche.
C'est du bricolage car au démarrage il gueule qu'il y a une problème de compilation avec ma regex mais ça marche, une fois que j'aurai le temps je vais essayer de voir ce qui merde (mais j'y connais rien en perl).

Voilà en espérant qu'un jour ça puisse aider quelqu'un.

  • # PX4 : VZ -> LXC

    Posté par  . Évalué à 3.

    Attention, tu sais peut-être déjà tout ça, mais la migration VZ->LXC de Proxmox 4 ne remonte PAS les interfaces réseaux (quelle que soit la manière dont elles étaient configurées en VZ). Il importe donc, avant de booter tes nouveaux conteneur fraîchement restaurés, de leur créer une interface et de la paramétrer.

    Et normalement, après un coup comme ça, la plupart des softs s'y retrouvent tous seuls comme des grands.

  • # MQTT ?

    Posté par  . Évalué à 2.

    Bonjour
    Je ne sais pas si xPL est encore beaucoup utilisé ni maintenu (site injoignable au moment où j'écris).
    MQTT me parait être un très bon remplaçant pour la communication inter-objets connectés et centrales de domotique, réçemment promu standard (Mars 2013) il peut permettre sans difficultés de faire communiquer des centrales gérant des protocoles différents par exemple.
    Je n'ai aucune action chez eux (_) c'est poussé par IBM, entre autres.
    http://mqtt.org/

    Voilà, c'était le message un peu hors sujet du jour, pour le reste merci pour le partage de ta solution

    • [^] # Re: MQTT ?

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      J'ai l'impression que xpl est dans le désert, ça à l'air de moins en moins utilisé, par contre j'ai un rfxcom-lan qui est xpl donc pour l'instant je ne peut pas me passer d'xpl.

      Par contre comme je commence à développer mes propres device (avec des esp8266) je fait au coup par coup (par requête http ou via udp) c'est certes pas très élégant mais ça marche.

      Après la mésaventure avec xpl je vais gentille-ment laisser tomber xpl et construire moi même mes devices (c'est tellement simple, le plus compliquer c'est de trouver ou fabriquer des boîtes pour mettre dedans les devices).

      • [^] # Re: MQTT ?

        Posté par  . Évalué à 2.

        Tu devrais regarder du coté des fablab dans ce cas, ils pourront te guider pour la conception de boitiers sur un logiciel (pas forcément libre ce n'est pas souvent leur crédo) et l'imprimer ensuite pour une somme modique.
        Ou tu peux faire appel à un "imprimeur 3D" professionnel comme shapeways et quelques autres si tu veux un résultat plus fini mais plus cher.

        MQTT n'est pas dans le même cas qu'xPL je pense parce qu'il est déjà conçu et proposé par de grandes entreprises solides.
        Mais évidemment nous ne sommes pas à l'abri que l'une ou l'autre décide d'arrêter le support.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.