Bonjour,
J’ai fait tant bien que mal un script python que je lance depuis le plugin script basé sur un ruc tout fait pour ariston…
#!/usr/bin/env python3
import asyncio
from ariston_boiler_control import AristonBoilerControl, OperationMode
async def main():
try:
abc = AristonBoilerControl('email', 'password')
abc.login()
temperature = abc.get_target_temperature()
print(temperature) # valeur pour Jeedom
except Exception as e:
print(f"Erreur: {e}")
sys.exit(1)
asyncio.run(main())
Cela fonctionne MAIS… le retour dans Jeedom est
Dans la lib importée, il y a en retour le login sucessful et je ne veux pas modifier la lib
Comment je peux faire pour basculer mon info en numérique et n’avoir que 54.0 en retour dans Jeedom.
Merci de votre aide
la commande info dois être numeric non ?
Si je met ma commande info en numérique j’ai 0 puisque la cela retourne une chaine avec " Logi Successful 54 °C
Ma question est justement de savoir comment modifier en 54.0 numérique pour renvoyer vers Jeedom
et comme ça :
#!/usr/bin/env python3
import asyncio
from ariston_boiler_control import AristonBoilerControl, OperationMode
async def main():
try:
abc = AristonBoilerControl('email', 'password')
await abc.login()
temp = await abc.get_target_temperature()
print(temp) # valeur pour Jeedom
except Exception as e:
print(f"Erreur: {e}")
sys.exit(1)
asyncio.run(main())
CA génère une erreur dans le log du plugin script
0012|Erreur: object NoneType can't be used in 'await' expression
1 « J'aime »
et ça
#!/usr/bin/env python3
import asyncio
from ariston_boiler_control import AristonBoilerControl, OperationMode
#!/usr/bin/env python3
import asyncio
from ariston_boiler_control import AristonBoilerControl, OperationMode
async def main():
try:
abc = AristonBoilerControl('email', 'password')
abc.login()
temperature = abc.get_target_temperature()
numeric_temp = ''.join(c for c in str(temperature) if c.isdigit() or c == '.')
print(numeric_temp) # valeur pour Jeedom
except Exception as e:
print(f"Erreur: {e}")
sys.exit(1)
asyncio.run(main())
le truc c’est que abc.get_target_temperature renvoie bien 54.0 °C
mais le abc.login renvoit login successfull donc on dirait que le retour est une concaténation de tout
oui c’est ça le problème.
il faut de faire du genre un substr() php en python
doit bien y avoir un moyen de retourner juste le numérique vers jeedom
En attendant un spécialiste python, tu peux utiliser :
Merci j’avais pas pensé à cela.
Pour info j’utilise ce truc python pour ariston
https://pypi.org/project/ariston-boiler-control/
j’ai demandé toutes les valeurs possibles
abc.login()
ctemp = abc.get_current_temperature()
print(ctemp) # valeur pour Jeedom
ttemp = abc.get_target_temperature()
print(ttemp) # valeur pour Jeedom
gmode = abc.get_operation_mode()
print(gmode) # valeur pour Jeedom
gstate = abc.get_hp_state()
print(gstate) # valeur pour Jeedom
gboost = abc.get_boost()
print(gboost) # valeur pour Jeedom
J’ai fait un scénario Jeedom ou je passe en tag ce qui arrive du script
[2025-07-01 19:53:28][SCENARIO] Exécution d'un bloc code
[2025-07-01 19:53:28][SCENARIO] +----------------------------
[2025-07-01 19:53:28][SCENARIO] | Tag reçu : Login successful
32.0
54.0
OperationMode.HCHP
HPState.OFF
False
j’ai donc bien toutes mes infos mais ca me fait switcher vers un scénario et php mais bon je dois pouvoir me demerder mais c usine a gaz, et pour faire les set au lieu de get ca sera aussi usine
Sekiro
Juillet 1, 2025, 6:21
15
À essayer,pour voir si c’est one la sortie de Login qui vient foutre la merde
import asyncio
import sys
import io
from contextlib import redirect_stdout
from ariston_boiler_control import AristonBoilerControl
async def main():
try:
abc = AristonBoilerControl('email', 'password')
with io.StringIO() as buf, redirect_stdout(buf):
abc.login()
temperature = abc.get_target_temperature()
print(temperature)
except Exception as e:
print(f"Erreur: {e}")
sys.exit(1)
asyncio.run(main())
Bonsoir,
Merci de te pencher sur mon souci
Je viens de tester ta proposition et voici le retour dans le script jeedom
Dc la lib ne renvoit pas du numérique et ajoute un °C mais avec ton script je m’évite le login successful
Sekiro
Juillet 1, 2025, 7:41
17
import asyncio
import sys
import io
from contextlib import redirect_stdout
from ariston_boiler_control import AristonBoilerControl
async def main():
try:
abc = AristonBoilerControl('email', 'password')
with io.StringIO() as buf, redirect_stdout(buf):
abc.login()
with io.StringIO() as buf, redirect_stdout(buf):
temperature = abc.get_target_temperature()
print(temperature)
except Exception as e:
print(0)
sys.exit(1)
asyncio.run(main())
Tu peux ressayer ça,et passer en info numérique sur ton script
Bonjour,
J’ai proposé une PR pour faire en sorte que les messages ne soient plus envoyés si le nouveau paramètre est mis à True. Le résultat serait le suivant si la PR est validée :
#!/usr/bin/env python3
import asyncio
from ariston_boiler_control import AristonBoilerControl
async def main():
try:
abc = AristonBoilerControl('email', 'password', quiet_login=True) # Nouveau paramètre pour rendre la class silencieuse
abc.login() # Ligne optionnelle : le login est fait par la class si nécessaire
temperature = abc.get_target_temperature()
print(temperature) # valeur pour Jeedom
except Exception as e:
print('0')
sys.exit(1)
asyncio.run(main())
Surveillons si c’est validé…
À+
Michel
1 « J'aime »
Mips
Juillet 2, 2025, 4:44
19
En quoi ca aide pour limiter les print? Je vois pas la rapport avec le sujet
Regarde plus attentivement la valeur de la commande et la proposition de modification de Sekiro pour filtrer la valeur.
C’est niquel
Ca me remonte bien que la valeur et en info numerique !
Merci beaucoup !