[RESOLU]Probleme script python charge batterie PC
Publié : 11 oct. 2024, 11:05
EDIT: J'ai corrigé le script avec les informations nécessaires à son fonctionnement soit: user:password@adresseDomoticz:PortdeDomoticz et ne pas oublier de modifier l'Idx du Dummy Pourcentage à mettre à jour
Bonjour, Je me casse les dents sur un script python depuis plusieurs heures en compagnie de chatGpt..
Mon but est de surveiller la charge de la batterie d'un pc portable pour déceler une éventuelle panne alim ou coupure secteur prolongee.
PC sous bullseye, Python 3.9; Domoticz 2024.7
Le Dummy à renseigner porte l'idx : 2478 Type Pourcentage.
Voici le script:
Un lien du type : " http://IP:Port/json.htm?type=command¶m=udevice&idx=2478&svalue=100.0 "
dans la barre d'un navigateur met a jour le device.
Le script renvoi l'erreur: Envoi de la requête à Domoticz avec l'URL : http://IP:Port/json.htm?type=command¶m=udevice&idx=2478&svalue=100.0
Valeur de battery_percentage : 100.0
Erreur lors de la mise à jour du dummy
Merci de toute aide qui pourrait me debloquer
Cdt
Bertrand
Bonjour, Je me casse les dents sur un script python depuis plusieurs heures en compagnie de chatGpt..
Mon but est de surveiller la charge de la batterie d'un pc portable pour déceler une éventuelle panne alim ou coupure secteur prolongee.
PC sous bullseye, Python 3.9; Domoticz 2024.7
Le Dummy à renseigner porte l'idx : 2478 Type Pourcentage.
Voici le script:
Code : Tout sélectionner
import requests
def get_battery_percentage():
try:
# Ouvre les fichiers système pour lire l'état de la batterie
with open("/sys/class/power_supply/BAT0/charge_now", "r") as f_now, \
open("/sys/class/power_supply/BAT0/charge_full", "r") as f_full:
charge_now = int(f_now.read().strip()) # Charge actuelle
charge_full = int(f_full.read().strip()) # Charge maximale
percentage = (charge_now / charge_full) * 100 # Calcul du pourcentage
return round(percentage, 2) # Arrondi à 2 décimales
except FileNotFoundError:
return None # Si les fichiers n'existent pas ou la machine n'a pas de batterie
def update_domoticz_dummy(idx, battery_percentage):
# Remplace IP_DOMOTICZ par l'adresse IP de ton serveur Domoticz
url = f"http://user:password@IP:Port[/json.htm?type=command¶m=udevice&idx={idx}&svalue={battery_percentage}"
try:
print(f"Envoi de la requête à Domoticz avec l'URL : {url}") # Affichage de l'URL
print(f"Valeur de battery_percentage : {battery_percentage}") # Affichage de la valeur
# Envoie la requête HTTP à Domoticz
response = requests.get(url)
if response.status_code == 200:
print(f"Dummy mis à jour avec {battery_percentage}%")
else:
print("Erreur lors de la mise à jour du dummy")
except requests.RequestException as e:
print(f"Erreur de connexion à Domoticz : {e}")
# Exemple d'utilisation :
battery_percentage = get_battery_percentage()
if battery_percentage is not None:
# Mettre à jour le dummy dans Domoticz avec IDX = 2478
update_domoticz_dummy(idx=2478, battery_percentage=battery_percentage)
else:
print("Aucune batterie détectée")
dans la barre d'un navigateur met a jour le device.
Le script renvoi l'erreur: Envoi de la requête à Domoticz avec l'URL : http://IP:Port/json.htm?type=command¶m=udevice&idx=2478&svalue=100.0
Valeur de battery_percentage : 100.0
Erreur lors de la mise à jour du dummy
Merci de toute aide qui pourrait me debloquer
Cdt
Bertrand