[Resolu]:Debutant script :
Publié : 03 juin 2021, 19:24
Bonjour a tous,
j'appelle a l'aide pour trouver une solution. Mes connaissances en script shell étant limité, je n'arrive pas a trouver de solution a mon problème. j'ai posé la question dans l'index capteur. Je l'ai peut être ouvert au mauvais en droit? car aucune réponse. Je le mets donc dans scripts
J'ai chez moi une sonde smappee, qui mesure la puissance électrique de mon compteur. J'ai téléchargé un script
https://github.com/apazga/smappee-domoticz-bash
qui permet théoriquement d'avoir la mesure dans Domoticz. Malheureusement j'ai détecté un bug et je n'arrive pas trouver de solution.
j'ai une commande qui met dans une variable la requête au Smappee
SMAP=`curl http://${SMAPPEE_IP}/gateway/apipublic/reportInstantaneousValues`
ensuite une autre commande qui tente d'extraire dans cette chaine de caractère la puissance indiquée dans le smappee.
il s'agit de la valeur qui se trouve après activePower=\
pour cela le script utilise la commande
WATTS=`echo $SMAP |sed -e 's|.* activePower=\(.*\)|\1|' -e 's|\(.\{1,6\}\).*|\1|'`
mais la valeur n'a pas toujours le même format
en général, j'ai du genre123.456 w et pas de soucis, la valeur WATT=123.456
mais quelques fois la valeur renvoyée est du genre 12.3 w et la le script plante car dans la valeur WATT=12.3 w avec le w a la fin et la suite plante a cause du w
comment puis je corriger ce bug?
j'appelle a l'aide pour trouver une solution. Mes connaissances en script shell étant limité, je n'arrive pas a trouver de solution a mon problème. j'ai posé la question dans l'index capteur. Je l'ai peut être ouvert au mauvais en droit? car aucune réponse. Je le mets donc dans scripts
J'ai chez moi une sonde smappee, qui mesure la puissance électrique de mon compteur. J'ai téléchargé un script
https://github.com/apazga/smappee-domoticz-bash
qui permet théoriquement d'avoir la mesure dans Domoticz. Malheureusement j'ai détecté un bug et je n'arrive pas trouver de solution.
j'ai une commande qui met dans une variable la requête au Smappee
SMAP=`curl http://${SMAPPEE_IP}/gateway/apipublic/reportInstantaneousValues`
Code : Tout sélectionner
pi@raspberrypi:~ $ curl http://192.168.150.13/gateway/apipublic/reportInstantaneousValues
{"report":"Instantaneous values:<BR>voltage=235.2 Vrms<BR>FFTComponents:<BR>Phase 1:<BR>\tcurrent=1.437 A, activePower=224.13 W, reactivePower=253.044 var, apparentPower=338.032 VA, cosfi=66, quadrant=0, phaseshift=0.0, phaseDiff=0.0<BR>\tFFTComponents:<BR><BR>Load[640072] state[0] power: 0.0 on Wed Jun 02 07:12:44 GMT 2021<BR>Load[766089] state[0] power: 0.0 on Wed Jun 02 10:47:56 GMT 2021<BR>Load[768207] state[0] power: 0.0 on Wed Jun 02 10:33:21 GMT 2021<BR>Load[636494] state[0] power: 0.0 on Thu Jun 03 06:23:11 GMT 2021<BR>Load[1284372] state[0] power: 0.0 on Mon May 31 18:41:14 GMT 2021<BR>Load[1174230] state[0] power: 0.0 on Wed Jun 02 10:11:40 GMT 2021<BR>Load[554947] state[0] power: 0.0 on Wed Jun 02 21:00:13 GMT 2021<BR>Load[555781] state[0] power: 0.0 on Mon May 31 21:35:29 GMT 2021<BR>Load[634567] state[0] power: 0.0 on Thu Jun 03 06:11:32 GMT 2021<BR>Load[480594] state[0] power: 0.0 on Thu Jun 03 11:08:55 GMT 2021<BR>Load[633425] state[0] power: 0.0 on Tue Jun 01 11:58:34 GMT 2021<BR>Load[549008] state[0] power: 0.0 on Wed Jun 02 10:58:12 GMT 2021<BR>Load[2340027] state[0] power: 0.0 on Wed Jun 02 10:56:47 GMT 2021<BR>Load[633427] state[1] power: 111.5 on Thu Jun 03 09:19:57 GMT 2021<BR>Load[553684] state[0] power: 0.0 on Thu Jun 03 06:00:19 GMT 2021<BR>Load[483418] state[0] power: 0.0 on Thu Jun 03 10:54:39 GMT 2021<BR>Load[580566] state[1] power: 905.4 on Thu Jun 03 10:41:30 GMT 2021<BR>Load[2389249] state[0] power: 0.0 on Supi@raspberrpi@raspberrpi@raspberrpi@raspberrpi@raspberrpi@raspberrpi@raspberrpi@raspberrypi:~ $ il s'agit de la valeur qui se trouve après activePower=\
pour cela le script utilise la commande
WATTS=`echo $SMAP |sed -e 's|.* activePower=\(.*\)|\1|' -e 's|\(.\{1,6\}\).*|\1|'`
mais la valeur n'a pas toujours le même format
en général, j'ai du genre123.456 w et pas de soucis, la valeur WATT=123.456
mais quelques fois la valeur renvoyée est du genre 12.3 w et la le script plante car dans la valeur WATT=12.3 w avec le w a la fin et la suite plante a cause du w
comment puis je corriger ce bug?