Generer linknx.xml a partir du projet ETS5 - Version imprimable +- Forum KNX francophone / English KNX forum (https://www.knx-fr.com) +-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3) +--- Forum : Logiciels libres (linknx, knxweb, pKNyX,...) (https://www.knx-fr.com/forumdisplay.php?fid=10) +--- Sujet : Generer linknx.xml a partir du projet ETS5 (/showthread.php?tid=4589) |
Generer linknx.xml a partir du projet ETS5 - condo4 - 23/02/2017 N'arrivant pas a trouver un script recent (ETS5) pour générer automatiquement les Objets linknx depuis un projet ETS5, j'ai écris mon propre script python. Si ça intéresse quelqu'un, je l'ai mis a cet adresse : https://github.com/condo4/Knxproj2Linknx Le principe est simple : On appel la commande ./knxproj2linknx.py monfichier.knxproj linknx_source.xml linknx_sortie.xml Si on ne donne pas de linknx_sortie.xml, le resultat est affiché en console Si on donne "-" comme paramètre de sortie, le fichier linknx_source.xml est modifier, et linknx_source.xml~ contient l'ancienne version Je l'ai mis sur github si certain veulent le ré-utiliser ou le modifier (pull request bienvenue) RE: Generer linknx.xml a partir du projet ETS5 - Energy01 - 23/02/2017 Salut, super merci pour l'initiative je n'ai pas regardé mais quels sont les différences dans le knxproj entre ETS4 et ETS5 ? j'ai essayé avec un knxproj ETS4 !! au premier lancement j'ai : Code : Traceback (most recent call last): et pour lancer : $ sudo pip install lxml mais il faut libxml2 ... donc : $ sudo apt-get install libxml2-dev libxslt-dev python-dev puis $ sudo pip install lxml puis donc $ python knxproj2linknx.py monfichier.knxproj linknx.xml linknx_sortie.xml Code : Traceback (most recent call last): et là je creuse le problème une question pourquoi avoir besoin d'un "source" pour le linknx.xml en paramètre je n'ai pas bien compris l'intérêt ? si j'ai compris le programme cela ajoute les "nouveaux" objects uniquement ? merci à toi @+ Anthony RE: Generer linknx.xml a partir du projet ETS5 - condo4 - 24/02/2017 alors pour python, je ne suis pas fan de pip, je prefert ce qui est packagé par la distribution... dans ton cas, un apt install python-xml aurait suffit je pense... entre ets4 et 5 je sais pas, il me faudrait un exemple pour tester... concernant le linknx source en effet, si les objet avec l'id generer existe, sa les met a jour uniquement... Mon but été de concerver mes regle et autre parametre. Mais il est vrai qu'il ne serait pas compliquer d'en generer un s'il n'est pas donné... RE: Generer linknx.xml a partir du projet ETS5 - Energy01 - 24/02/2017 quelques pistes / remarques namespaces = {"knx":"http://knx.org/xml/project/13" ,"xsd":"http://www.w3.org/2001/XMLSchema" ,"xsi":"http://www.w3.org/2001/XMLSchema-instance"} j'ai remplacé par le 13 par 11 dans mon cas surement une première différence entre ETS4 et ETS5 ... "knx":"http://knx.org/xml/project/11" mais ensuite j'ai bloqué sur pas mal de conversion de caractères il n'aime pas les "/" ni les apostrophes pour testé j'ai modifié la ligne : new_names = rng.attrib['Name'].title().replace("/","").split() en new_names = rng.attrib['Name'].replace("/","").replace("'","_").replace(" ","_").split() donc c'est "passé" mais cela ne ma trouvé aucu DATATYPE , "normal" vu que rien de définit dans le xml mais là cela doit être dans ETS que cela peut se définir ou se déduire par un autre moyen ... pour le "nom" des objects tu concatènes le "name" de chaque niveau des GA donc niveau 1 2 puis 3 perso le texte de niveau 3 me suffit il serait peut-être intéressant de pourvoir "choisir" la méthode pour créer le nom des objects ? en gros mon découpage des GA : maison : 0 -> Eclairage On/Off & variable : 0 --> WC RDC - Plafonnier - On/Off : 1 --> WC RDC - Plafonnier - Indication état On/Off : 2 résultats des objects : <object id="Maison_Eclairage_OnOff_&_Variable_Wc_Rdc_-_Plafonnier_-_OnOff" gad="0/0/1" init="request">Maison_Eclairage_OnOff_&_Variable_Wc_Rdc_-_Plafonnier_-_OnOff</object> <object id="Maison_Eclairage_OnOff_&_Variable_Wc_Rdc_-_Plafonnier_-_Indication_État_OnOff" gad="0/0/2" init="request">Maison_Eclairage_OnOff_&_Variable_Wc_Rdc_-_Plafonnier_-_Indication_État_OnOff</object> donc dans mon cas ceux-ci me suffit largement : <object id="Wc_Rdc_-_Plafonnier_-_OnOff" gad="0/0/1" init="request">Wc_Rdc_-_Plafonnier_-_OnOff</object> <object id="Wc_Rdc_-_Plafonnier_-_Indication_État_OnOff" gad="0/0/2" init="request">Wc_Rdc_-_Plafonnier_-_Indication_État_OnOff</object> autre remarque tu peux enlever la gestion du paramètre init="request" qui est de toute manière la fonction par défaut merci encore pour ton travail et ton partage @+ Anthony. RE: Generer linknx.xml a partir du projet ETS5 - condo4 - 24/02/2017 Salut, Je vais regarder dans la semaine tes remarque, faite un truc compatible ETS 4 et 5 serait interressant. Mais la, le week end, je suis plus sur le chantier que a coder :-) J'ai un petit but, mais je sais pas quand j'aurais le temps d'y bosser, mais en gros, je souhaite faire un packaging complet sous Yocto pour générer des images avec: knxd / linknx / knxweb2 L'idée serait qu'au premier démarrage, on a une page pour configurer de façon assisté knxd, puis linknx en donnant sont fichier knxproj... Ensuite, grace a Yocto, je pourrais générer des images pour plusieurs cible (raspberry, wandboard...) et les proposer sur un site. Pour le moment, pour avancer, j'ai mis debian sur ma wandboard, et je cherche a me familiarisé avec tout ces outils, et voir la meilleur façon de packager. Et aujourd'hui, je galère un peu avec KNXD, mais je vais mettre sa dans un autre poste... |