Page 1 sur 2

plusieurs lignes dans vituel texte

Publié : 22 déc. 2016, 17:22
par lebphi
bonjour,

je voudrais regrouper plusieurs informations sur plusieurs lignes dans un capteur virtuel text. Est ce possible ?

exemple :
info1
info2
info3

j'ai essaye avec {"idx": 23,"nvalue" : 0,"svalue":"info1 \r\n info2 \r\n info2 "} mais ca ne marche pas.

merci d'avance

Re: plusieurs lignes dans vituel texte

Publié : 22 déc. 2016, 18:18
par vil1driver
Salut,

Essai

Code : Tout sélectionner

<br>

Re: plusieurs lignes dans vituel texte

Publié : 22 déc. 2016, 18:21
par lebphi
En essayant un peu tout, j'ai fini par trouver....

{"idx": 23,"nvalue" : 0,"svalue":"info1 <br> info2 <br> info2 "}

merci vil1driver, nos messages se sont croises

Re: plusieurs lignes dans vituel texte

Publié : 22 déc. 2016, 18:36
par vil1driver
Tu peux même colorer (toujours avec les balises html) ;)

Re: plusieurs lignes dans vituel texte

Publié : 23 déc. 2016, 08:43
par lebphi
en fait ca marche sur le navigateur mais ca ne marche pas pour l'application android domoticz lite

Re: plusieurs lignes dans vituel texte

Publié : 23 déc. 2016, 18:09
par Pyrrhus
Bonjour,
moi aussi j'aimerais bien avoir plusieurs lignes dans mon capteur texte, mais en bash et JSON:
Comment faire ?

Code : Tout sélectionner

curl -s "http://IP:port/json.htm?type=command&param=udevice&idx=IDX&svalue= info1 à la ligne info2 à la ligne info3"
Je suis sûr que ça doit être tout simple mais je n'arrive pas à trouver...

Re: plusieurs lignes dans vituel texte

Publié : 23 déc. 2016, 18:15
par vil1driver
Bah de la même façon mais en encodant le <br>
Ce qui te donne ceci comme séparateur

Code : Tout sélectionner

 %3Cbr%3E

Code : Tout sélectionner

curl -s "http://IP:port/json.htm?type=command&param=udevice&idx=IDX&svalue= info1 %3Cbr%3E info2 %3Cbr%3E info3"
Bien sûr tes info doivent aussi être encodées..

Le mieux étant donc d'encoder l'ensemble en une fois

Re: plusieurs lignes dans vituel texte

Publié : 23 déc. 2016, 18:48
par Pyrrhus
Merci Vil1driver, mais ça ne fonctionne pas, même avec l'exemple le plus simple:

Code : Tout sélectionner

curl -s "http://IP:port/json.htm?type=command&param=udevice&idx=IDX&svalue=test%3Cbr%3Etest"
Mon capteur texte m'affiche

Code : Tout sélectionner

test<br>test
au lieu de

Code : Tout sélectionner

test
test

Re: plusieurs lignes dans vituel texte

Publié : 23 déc. 2016, 19:20
par lebphi
pour info je passe par mqtt pour envoyer la commande et ca marche, j'arrive bien a avoir plusieurs ligne dans le texte en utilisant <br>. Par contre ca marche pas sur l'appli android domoticz lite.

Plus globalement, j'ai un programme python lit en boucle la liaison teleinfo et met à jour une base sqlite. Ensuite toutes les heures ou en cas de changement majeur, je change les valeurs dans domoticz via mqtt. Domoticz ne sert que pour l'affichage. J'ai utilise cette methode pour pouvoir gerer toutes les infos de la trame teleinfo tempo triphasee, ce que ne fait pas correctement domoticz je trouve.

Donc globalement ca fonctionne mais par contre je remplis inutilement les logs associes aux virtuels. Y aurait il un moyen de les limiter en nombres d'enregistrements ou carrement d'annuler la fonction log ?

Re: plusieurs lignes dans vituel texte

Publié : 23 déc. 2016, 19:36
par Pyrrhus
J'ai trouvé !
il faut encoder le saut de ligne en utf8 ce qui donne

Code : Tout sélectionner

curl -s "http://IP:port/json.htm?type=command&param=udevice&idx=IDX&svalue=test%0Atest"
résultat:

Code : Tout sélectionner

test
test
Donc pour un espace, il faut écrire %20

Code : Tout sélectionner

curl -s "http://IP:port/json.htm?type=command&param=udevice&idx=IDX&svalue=test%201%0Atest%202"
résultat:

Code : Tout sélectionner

test 1
test 2
Si ça peut servir !