Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Mise en forme des exports d'ETS
#1
Mise en forme des exports d'ETS pour automatiser l'insertion dans le code HA:

Je fait appel à votre expérience:
Je cherche à mettre en forme les exports d'ETS5, pour pouvoir créer du code plus facilement dans HA.

Je suis partie d'un export en XLS, de mes GA dans ETS5, puis dans excel, j'ai fait une concaténation pour obtenir une case avec le code suivant, qui correspond à ce que je devrais coller dans VSC:
Dans Excel j'ai ceci:

Code :
# Applique Droite Chambre d'Amis
   - name: Applique Droite Chambre d'Amis    
     address: "0/2/20"      
     state_address: "0/2/21"

Malheureusement lorsque je colle le contenu de ma case Excel j'ai des " qui se rajoute voir si dessous, et du coup je ne peux pas coller mon code dans Visual studio Code dans HA.

"#   Applique Droite Chambre d'Amis
   - name: ""Applique Droite Chambre d'Amis""    
       address: ""0/2/20""      
       state_address: ""0/2/21""  "


Code :
"#   Applique Droite Chambre d'Amis
   - name: ""Applique Droite Chambre d'Amis""    
       address: ""0/2/20""      
       state_address: ""0/2/21""  "

Du coup pour l'instant je modifier à la main le code, et comme j'ai près de 800 GA ????
Je suis preneur de solutions.
Répondre
#2
tu exportes en .csv pour ouverture sous Excel?

Quand tu dis tu colles le contenu, c'est dans file editor de HA? Ou directement dans le fichier .yaml?
Répondre
#3
(30/11/2022, 16:18:05)Kevlille a écrit : tu exportes en .csv pour ouverture sous Excel?

Quand tu dis tu colles le contenu, c'est dans file editor de HA? Ou directement dans le fichier .yaml?

Je ne vois pas trop la différence.

Je l'exporte en .csv et comme je maitrise mieux excel, je l'ouvre sous excel, et je fais une chaine de caractère correspondant à la structure du yaml, en passant par le complément Studio Code Server, dans lequel je fais un copier coller de la chaine dans Excel. C'est pour cela que j'ai ces caractères ", qui trainent.
Quelle serait la meilleur méthode pour donner un format précis en automatique au presque, pour retrouver tous les devices KNX, dans HA???
Répondre
#4
Ok

Donc si je comprends bien les copié/collé sont fait à la main depuis l'interface d'Excel vers l'interface de SCS. As-tu essayer une étape intermédiaire sur le bloc-note?

As-tu un exemple de fichier à partager? Ce serait plus simple pour t'aider

Pour ma remarque sur le collé directement dans l'interface ou dans le .yaml, c'est justement pour ces histoires de "" car normalement en copiant directement dans le .yaml (équivalent d'un .txt sous bloc note), tu ne devrais pas avoir ces "" qui s'ajoutent car cela va coller la chaine de caractère tel qu'elle est.
Répondre
#5
Même chose en collant dans le bloc note.

comment coller directement dans le yaml??

j'ai essayé  directement des le fichiers config, dossier KNX, auquel je me connecte via le  module Samba Share.

Je te joint mon fichier Excel.

Cordialement


Pièces jointes
.xlsx   KNX Liste des Adresses de Groupe ter 2022 11 29 version 4 en yaml.xlsx (Taille : 47,26 Ko / Téléchargements : 6)
Répondre
#6
Re

Effectivement y a ces conneries de "" qui viennent emmerder le monde.

J'arrive à sortir un fichier .txt bien formaté en vba avec le code ci-dessous. Est-ce que cela peut te convenir?

Code :
Private Sub CommandButton1_Click()
Dim i, j, DernièreLigne, f As Worksheet
Set f = ActiveSheet
   DerniereLigne = f.Range("A1").SpecialCells(xlCellTypeLastCell).Row
   Open "D:\LeFichier.txt" For Output As #1
   For i = 1 To DerniereLigne
       Print #1, "#" & f.Cells(i, 1).Formula & Chr(13) & Chr(10);
       Print #1, "    - name: " & Chr(34) & f.Cells(i, 1) & Chr(34) & Chr(13) & Chr(10);
       Print #1, "      address: " & Chr(34) & f.Cells(i, 2) & Chr(34) & Chr(13) & Chr(10);
       Print #1, "      state_address: " & Chr(34) & f.Cells(i + 1, 2) & Chr(34) & Chr(13) & Chr(10);
       Print #1, Chr(13) & Chr(10);
   Next i
   Close #1
End Sub
Répondre
#7
Voici le fichier de sortie


.txt   LeFichier.txt (Taille : 102,58 Ko / Téléchargements : 16)
Répondre
#8
Merci pour le fichier. Cest exactement cela et cela fonctionne parfaitement.

Par contre cela fait plus 10 ans que je n'ai pas utilisé VBA dans Excel et du coup de ramer pour le réactiver dans Excel 2007.
Je suis en train de rechercher comment faire, car je voudrais bien être capable de le reproduire par la suite, et éventuellement être capable de l'expliquer à d'autres.
En tout cas c'est génial pour intégrer les devices Lights de KNX vers HA.

Merci encore
Répondre
#9
Encore un petit souci, qui j'avais trouvé et qui était évité dans la concaténation:

# Led Escalier
    - name: "Led Escalier"   
       address: "1/3/50"   
       state_address: "1/3/51"  


Le GA "1/3/50"    devient  "1/3/1950"   ??? 

Et tu va trouver que j'abuse mais les caractères accentués de viennent 
Répondre
#10
Du coup j'ai finalement copié l'ensemble les cases Excel concatenées et je les ai copiées dans Visual Studio Code, et puis j'ai pratiqué par rechercher-Remplacer pour obtenir la bonne mise en forme.
Pas très élégant, mais ça fonctionne.
il me reste juste à adapter les éléments plus compliqués comme les volets simples et les BSO.
Répondre
#11
Re

Pour les caractères accentués si tu ouvres avec le bloc note cela fonctionne. C'est dans HA que cela ne fonctionne pas?

Pour activer le mode developpeur, il faut aller dans les options d'Excel. Ensuite tu auras accès à vba.

Pour l'erreur de la GA "1/3/50" qui devient "1/3/1950", cela correspond à la ligne 67/68 de ton fichier Excel ou 1/3/1950 apparait...

   

Pour utiliser le code vba, il faut que ton fichier Excel source soit carré (même formatage partout)
Répondre
#12
Je m’y remets demain
Répondre
#13
Bonjour
Peut être que c'est une différence de format d affichage qui fait que tu ne vois pas les "" mais apparait quand tu colles.
Pour le format date qui s'active, dans la concatenisation tu peux imposer le format
Répondre
#14
(04/12/2022, 09:20:32)fabric24 a écrit : Bonjour
Peut être que c'est une différence de format d affichage qui fait que tu ne vois pas les "" mais apparait quand tu colles.
Pour le format date qui s'active, dans la concatenisation tu peux imposer le format

Pour le format date qui s'active, dans la concaténation, Je n'ai pas su trouver le format pour les GA.

Finalement j'ai choisi de coller au format de la concaténation la plus proche de ce que demande un device KNX dans HA au niveau de Visual Studio Code, et de travailler par remplacer les mauvais formats par les bons. Je gère ainsi les"" au lieu de " , et les indentations  4 espaces au lieu de 2, du yaml.
Il me reste à faire une mise en forme conditionnelle de la concaténation dans Excel, du fichier provenant d'ETS5, pour tenir compte des devices comme les volets et les BSO, qui contrairement aux Lights, qui ne nécessite que 2 GA, pour les commander. Les BSO eux pour ma part,  ont 7 GA. Après je n'en ai que 3, il sera plus simple de les faire à "la main".
En tout cas je ne regrette pas d'avoir bien gérer le nom des devices dans ETS5, car ils sont nickel aujourd'hui dans HA.
Répondre
#15
Bonjour Richard

Ton soucis est connu des utilisateurs d'Excel (enfin moi je la connais depuis plus de 20 ans), c'est l'importation des CVS dans Excel qui pose encore problème, c'est ce qui m'a fait utilisé OpenOffice pour ne citer qu'un tableur. Microsoft ne donne pas le choix des délimiteurs et du formatage des colonnes. Donc quand tu importe ton fichier, certain caractère sont défini comme délimiteur (tabulation, point-virgule et virgule) et je pense que c'est Microsoft qui ont imposé les guillemets dans les CSV pour signifié à Excel que cela été une chaine de caractère et non une formule ou une variable. Cependant pour ne pas perturber les utilisateurs il efface l'affichage des guillemets de la cellules mais elle est bien présente dans les données.

Pour solutionner ton problème, il suffira que tu édites, dans un éditeur de texte, ton fichier CSV avant ton importation dans Excel, que tu fasses un RemplacerTout (comme tu as fait) '"' par '' (rien),et aussi les "; ;" par ";;". Ensuite, après avoir sauvegardé, tu importes le fichier CSV dans Excel où tu pourras formater les colonnes (clic droit sur la colonne) en fonction de tes besoins (je pense entre autre au groupe d'adresse qui ressemble fortement à des dates pour Excel). Et là, tu pourra formater correctement la cellule de sortie pour HA.


Autre sujet qui en découle, à quoi te sers VSC si tu programmes pas avec ? (question sans jugement mais qui me laisse dubitatif)

Bonne journée
Répondre
#16
(04/12/2022, 12:02:36)M2D a écrit : Autre sujet qui en découle, à quoi te sers VSC si tu programmes pas avec ? (question sans jugement mais qui me laisse dubitatif)

Initialement j'ai découvert VSC, en travaillant avec des ESP8266, la création de fichiers knxprod, fonctionnel dans ETS.
Avec VSC, je trouve plus simple de faire du versionning dans Github.
Je pense aussi que VSC est très complet, et je pense qu'il vaut mieux ne pratiquer qu'un seul logiciel pour developper des applications. 
Aujourd'hui je me concentre sur le passage de Lifedomus vers HA.

En tout cas merci pour les conseils
Répondre
#17
Hello

Je profite du sujet pour savoir sur quelle organisation de vos GA vous avez appliqué?

> 3 niveaux
> niveaux libres

Et comment avez vous fait votre organisation?

basée sur les fonctions: Fonction/Sous-Fonction/elements pilotés
basée sur les parties du batiment: Partie Batiment/Fonction/element piloté

Je suis initialement partie sur une organisation FOnction/Sous-fonction/elements pilotés mais pour une importation dans Home Assistant cela implique de le faire à la mano.

Je souhaiterai revoir mes GA afin de coller au mieux à l'architecture des fichiers Home Assistant qui est plutôt du type Fonction/element piloté/sous fonction afin de créer un script de création de mon fichier yaml.

A l'avance merci pour vos retours
Répondre
#18
Pour ma part je suis parti de l'onglet adresses de groupe:
exporter les adresses de groupes:
en CSV format 3/3 avec entête, séparateur: tabulation

et ca me donne:
 Cuisine
3/0/-
Cuisine Plafond Commutation
3/0/0
Cuisine Plafond Variation
3/0/1
i Cuisine Plafond Valeur Luminosité
3/0/2
i Cuisine Plafond Retour Info Commut
3/0/3
i Cuisine Plafond Retour Val Lumière
3/0/4
Cuisine Plan de Travail Commutation
3/0/10
Cuisine Plan Travail Variation
3/0/11
i Cuisine Plan Travail Valeur Luminosité
3/0/12
i Cuisine Plan Travail Retour Info Commut
3/0/13
i Cuisine Plan Travail Retour Val Lumière
3/0/14
Lumière Îlot Cuisine
3/0/20
i Lumière Îlot Cuisine
3/0/21
Lumière Îlot Cuisine Valeur Luminosité
3/0/22

 et après concaténation j'obtiens:

# Applique Droite Chambre Parentale
    - name: "Applique Droite Chambre Parentale"   
       address: "2/0/20"     
       state_address: "2/0/21"

# Prise de Courant Gauche Chambre Parentale
    - name: "Prise de Courant Gauche Chambre Parentale"   
       address: "2/0/30"     
       state_address: "2/0/31" 

# Prise de Courant Droite Chambre Parentale
    - name: "Prise de Courant Droite Chambre Parentale"   
       address: "2/0/40"     
       state_address: "2/0/41"  

Puis je le colle dans VSC et avec de rechercher remplacer je formate correctement pour HA

Voir dans le message de Kerville, avec VBA, mais que je ne maitrise plus assez pour pouvoir aller plus loin avec, mais le fichier texte que Kerville a généré, est quasi parfait.
Enore merci à lui.
Répondre
#19
Hello Richard

du coup si je te suis bien, tu es parti sur une organisation du type: Partie du batiment/fonctions...

Avec 3/-/- qui correspond à la cuisine
Et -/0/- qui correspond aux luminaires

C'est bien cela?
Répondre
#20
Les GA ont été défini par zone et type de devices et période de vie ( jour et nuit)


[Image: 22120712472325602918064818.png]
Voir ici la structure de l'éclairage de la chambre dans la partie nuit du RDC:



[Image: 22120712472325602918064819.png]
Répondre
#21
A ok, tu as fais un mix. Pas con comme approche
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)