[RESOLU]Probleme script python charge batterie PC

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

[RESOLU]Probleme script python charge batterie PC

Message par balajol »

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:

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&param=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")
Un lien du type : " http://IP:Port/json.htm?type=command&param=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&param=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
Dernière modification par balajol le 11 oct. 2024, 15:59, modifié 4 fois.
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Probleme script python charge batterie PC

Message par Flying Domotic »

Remplacer

Code : Tout sélectionner

print("Erreur lors de la mise à jour du dummy")
par

Code : Tout sélectionner

print(F"Erreur lors de la mise à jour du dummy, code={response.status_code}: {response.text}")
devrait aider à trouver le code erreur.
Si ça raconte 401, alors il peut être utile d'ajouter un identifiant (username/password) dans la demande, ou de déclarer la machine qui fait la demande dans la liste des réseaux autorisés.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Probleme script python charge batterie PC

Message par balajol »

Bonjour, Bien Vu :)
En ajoutant identifiant et mot de passe dans le lien Json le script fonctionne.
Merci
B.
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: [RESOLU]Probleme script python charge batterie PC

Message par Flying Domotic »

On n'est pas à l'abri d'u coup de pot ...
Répondre