XPath avec retour de ligne

Échangez ici vos astuces sur la gestion des règles eedomus

XPath avec retour de ligne

Messagepar jmvong » 10 Avr 2019 19:50

Bonjour,

Est ce que quelqu'un a une idée si il est possible d'insérer dans le XML un retour à la ligne qui soit interprété par le XPath ?
Par exemple les stars du forum Influeman et autre Merguez.... :lol:

J'utilisais "\n" qui marche pour le XML utlisé entre chaque balise
mais pas à l'intérieur d'une balise le XPath fait alors une erreur

Et si oui comment le faire ?

Cordialement
JMVong
jmvong
 
Messages : 101
Inscription : 10 Sep 2017

Re: XPath avec retour de ligne

Messagepar xeos » 10 Avr 2019 21:02

Salut,

Il faut faire un concat de valeur avec entre un retour à la ligne.

Ex. concat('Eau : ',//temperature,'°C','<br> ','En horaire : ',//Horaire) - Le <br> est le retour à la ligne..
1 eedomus + - 1 RF Player - 3 RM Pro - 3 GH Mini - 1 WES - 1 Connexoon
73 modules Zwave - 37 Modules RF - 1 Mouton Worx
et un peu de fait maison
Je suis Fou et insatiable
xeos
 
Messages : 553
Inscription : 02 Sep 2017
Localisation : Alsace

Re: XPath avec retour de ligne

Messagepar RAR69 » 11 Avr 2019 22:27

Merci @XEOS pour l'astuce. C'est opérationnel...
Conso compteur Chauffage.PNG
Conso compteur Chauffage.PNG (21.86 Kio) Consulté 915 fois

Roland
J'en ai rêvé, Havok, P@t, merguez07, influman et MaDomotic les ont fait !!!
RAR69
 
Messages : 483
Inscription : 30 Août 2018
Localisation : Rhône

Re: XPath avec retour de ligne

Messagepar jmvong » 12 Avr 2019 08:11

xeos a écrit:Salut,

Il faut faire un concat de valeur avec entre un retour à la ligne.

Ex. concat('Eau : ',//temperature,'°C','<br> ','En horaire : ',//Horaire) - Le <br> est le retour à la ligne..


Je suis moins doué ....
J'y arrive pas
concat ne semble pas géré dans les scripts eedomus, c'est probablement évident pour vous tous .... :cry:
j'ai utilisé l'operateur '.'
Voici le retour du XML / Le XPATH est en error
Untitled.jpg
Untitled.jpg (138.62 Kio) Consulté 906 fois

Voici mon code :
$xml .= "<STATUT>".$mesure;
if ($mesure == "MISE A JOUR ARROSAGE A 18h") {
$xml .= '<br>';
if ($program <> "SUSPENDU") {
for ($i=1; $i <= $nbre_electrovanne; $i++) {
$api_electrovanne = $tab_api_current_arrosage['api_electrovanne'.$i];
$nom_electrovanne = $tab_api_current_arrosage['nom_electrovanne'.$i];
$debut_electrovanne = $tab_api_current_arrosage['debut_'.$i];
$duree_electrovanne = $tab_api_current_arrosage['duree_'.$i] * $tab_api_current_arrosage['coef_arrosage'];
$xml .= ' - '.$nom_electrovanne.' commence a '.$debut_electrovanne.' pendant '.$duree_electrovanne.' mn <br>';
}
}
else {
$xml .= 'ARROSAGE '.$program;
}
}
$xml .= "</STATUT>\n";
jmvong
 
Messages : 101
Inscription : 10 Sep 2017

Re: XPath avec retour de ligne

Messagepar jmvong » 12 Avr 2019 08:25

J'ai aussi essaye avec la balise <br />.
Il n'y a plus d'erreur mais pas de retour à la ligne
jmvong
 
Messages : 101
Inscription : 10 Sep 2017

Re: XPath avec retour de ligne

Messagepar jmvong » 12 Avr 2019 10:17

RAR69 a écrit:Merci @XEOS pour l'astuce. C'est opérationnel...
Conso compteur Chauffage.PNG

Roland



Pourriez vous mettre sur le forum le code ou la partie du code qui marche pour vous ?

Merci d'avance
jmvong
 
Messages : 101
Inscription : 10 Sep 2017

Re: XPath avec retour de ligne

Messagepar influman » 12 Avr 2019 10:20

jmvong a écrit:J'ai aussi essaye avec la balise <br />.
Il n'y a plus d'erreur mais pas de retour à la ligne


tu ne peux pas inclure le <br> dans la valeur retour du script, il ne sera pas correctement interprete en sortie.

J'ai un astuce pour faire ça, j'écris dans la valeur retournée un charabia du genre ."#*!".
et dans le xpath du périphérique, tu fais un change:

/STATUT change('#*!', '<br>')

c'est ce qui est fait par exemple dans le script Délestage avec le caractère "|". Ceux qui ne veulent pas du saut de ligne enlèvent le change du xpath
Entraide eedomus sur Telegram : http://t.me/eedomus
sur Skype :https://join.skype.com/pFyUcyVRVKmZ
influman
 
Messages : 2087
Inscription : 30 Oct 2013

Re: XPath avec retour de ligne

Messagepar jmvong » 12 Avr 2019 13:20

influman a écrit:
jmvong a écrit:J'ai aussi essaye avec la balise <br />.
Il n'y a plus d'erreur mais pas de retour à la ligne


tu ne peux pas inclure le <br> dans la valeur retour du script, il ne sera pas correctement interprete en sortie.

J'ai un astuce pour faire ça, j'écris dans la valeur retournée un charabia du genre ."#*!".
et dans le xpath du périphérique, tu fais un change:

/STATUT change('#*!', '<br>')

c'est ce qui est fait par exemple dans le script Délestage avec le caractère "|". Ceux qui ne veulent pas du saut de ligne enlèvent le change du xpath


Un grand merci !!!
jmvong
 
Messages : 101
Inscription : 10 Sep 2017

Re: XPath avec retour de ligne

Messagepar RAR69 » 12 Avr 2019 13:58

Pour être certain de l'affichage correct de n'importe quel symbol unicode, donc retour à la ligne en particulier, essaye d'utiliser la syntaxe générique suivante :
&#x...;
Où tu remplace les 3 points (...) par le code unicode hexadécimal du caractère voulu. (référence: http://www.w3.org/TR/2004/REC-xml-20040 ... references, chapitre 4.1 Character and Entity References )

Pour trouver la liste des codes hexadécimaux de l'unicode, tu dois aller à l'url suivante:
http://www.unicode.org/charts/

et donc cela donne : &#x000D pour le retour chariot...
Je ne garantie pas que cela fonctionne mais si cela peut aider. Moi je m'en sert pour afficher le caractère du symbole de l'EURO € dan un XPATH : &#x20ac
Exemple : concat(/MYELEC/ANNEE_HC * 1000, ' kWh (', /MYELEC/ANNEE_HCC * 1000, ' &#x20ac)')
Roland
J'en ai rêvé, Havok, P@t, merguez07, influman et MaDomotic les ont fait !!!
RAR69
 
Messages : 483
Inscription : 30 Août 2018
Localisation : Rhône

Re: XPath avec retour de ligne

Messagepar jmvong » 14 Avr 2019 08:00

Bonjour,
Merci a tous
La méthode "influeman" marche.... sur le portail web mais pas sur l'interface mobile android.
Je vais tester la methode "RAR69"

Par contre est-ce que quelqu'un a une idée de la longueur autorisés du xPath repris dans l'affichage de eedomus ?
jmvong
 
Messages : 101
Inscription : 10 Sep 2017

Re: XPath avec retour de ligne

Messagepar merguez07 » 14 Avr 2019 09:22

jmvong a écrit:Par contre est-ce que quelqu'un a une idée de la longueur autorisés du xPath repris dans l'affichage de eedomus ?


Salut jmvong,

si ta question est : Quel est le nombre de caractères possible affichable suite à une demande Xpath, j'ai réussi à en afficher environ 1750.
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 1444
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: XPath avec retour de ligne

Messagepar jmvong » 15 Avr 2019 12:57

merguez07 a écrit:
jmvong a écrit:Par contre est-ce que quelqu'un a une idée de la longueur autorisés du xPath repris dans l'affichage de eedomus ?


Salut jmvong,

si ta question est : Quel est le nombre de caractères possible affichable suite à une demande Xpath, j'ai réussi à en afficher environ 1750.


Merci
J avais l impreswion que ça bloquait vers les 70/80 caractères...
Ca doit être chose...
jmvong
 
Messages : 101
Inscription : 10 Sep 2017


Retour vers Règles et programmations

Qui est en ligne ?

Utilisateurs parcourant ce forum : Majestic-12 [Bot] et 1 invité