Merci pour ce plugin que j’utilise pour afficher un log qui me sert de timeline.
J’ai un problème avec l’auto-actualisation (j’ai mis un cron toutes les minutes), elle purge les données de la tuile. Quand je réactualise manuellement les données réapparaissent.
tant que tu est dans les corrections je ne comprend pas pourquoi on se retrouve avec ce genre de valeur (sauf stokage en float)
la valeur que je remonte est une valeur entière (% de charge d’une batterie)
le résultat est surprenant
ca marche merci
je test en beta pour voir
mais mon script ne remonte que 2 caractères il ne peut pas y avoir de virgules …
je te met le script au cas ou …
import time
import os
import json
import requests
from requests.auth import HTTPDigestAuth
import pprint
import sys
# exemple de reponse a une commande pwr
'''
pwr
@
Power Volt Curr Tempr Tlow Thigh Vlow Vhigh Base.St Volt.St Curr.St Temp.St Coulomb Time B.V.St B.T.St
1 49390 0 21000 18000 18000 3291 3294 Idle Normal Normal Normal 35% 2019-12-22 15:07:15 Normal Normal
2 49400 0 21000 18000 18000 3292 3294 Idle Normal Normal Normal 33% 2019-12-22 15:07:14 Normal Normal
3 49404 0 21000 18000 18000 3292 3295 Idle Normal Normal Normal 42% 2019-12-22 15:07:14 Normal Normal
4 49405 0 21000 18000 18000 3292 3295 Idle Normal Normal Normal 43% 2019-12-22 15:07:14 Normal Normal
5 49398 0 20000 17000 17000 3292 3294 Idle Normal Normal Normal 44% 2019-12-22 15:07:14 Normal Normal
6 49393 0 20000 17000 17000 3292 3294 Idle Normal Normal Normal 39% 2019-12-22 15:07:14 Normal Normal
7 49393 0 20000 16000 17000 3292 3294 Idle Normal Normal Normal 41% 2019-12-22 15:07:14 Normal Normal
8 49402 0 19000 15000 16000 3293 3295 Idle Normal Normal Normal 44% 2019-12-22 15:07:14 Normal Normal
Command completed successfully
$$
pylon>
'''
def question_pylon(): # inerroge le BMS Pylontech avec une commande pwr
resp = requests.get('http://192.168.0.199/req?code=pwr')
if resp.status_code == requests.codes.ok:
#print('ca marche')
reponse = str(resp.text)
#print ('reponse OK')
else:
#print('ca marche pas')
reponse=''
return reponse
# reherche de la plus petite valeur des % de charge des 8 bateries
def pcbt():
rep = question_pylon()
x = rep.find("%") # cherche le 1er %
a=rep[x-4:x] # prend la valeur sur 2 caracteres
#print(a)
b=a # stock la valeur dans b
x = rep.find("%",x+1) # cherche le % suivant
a=rep[x-2:x] # prend la valeur sur 2 caracteres
if a<b: # si la valeur est plus petite
b=a # on la stock dans b
x = rep.find("%",x+1) # on recommence jusqu'a 8 fois
a=rep[x-2:x]
if a<b:
b=a
x = rep.find("%",x+1)
a=rep[x-2:x]
if a<b:
b=a
x = rep.find("%",x+1)
a=rep[x-2:x]
if a<b:
b=a
x = rep.find("%",x+1)
a=rep[x-2:x]
if a<b:
b=a
x = rep.find("%",x+1)
a=rep[x-2:x]
if a<b:
b=a
x = rep.find("%",x+1)
a=rep[x-2:x]
if a<b:
b=a
return(b) # retourne la valeur la plus petite des % de charge des 8 bateries
print(pcbt())