Page 1 sur 1

[Python] Etat des batteries dans un widget

Publié : 15 déc. 2014, 21:48
par patrice
Bonsoir

Je poste ici une version plus "pythonesque" du script de récupération de l'etat des batteries du blog
Cela diffère uniquement par la méthode python utilisée beaucoup plus canonique

Le principe est le même : avoir un widget virtual sensor pourcentage ,renseigner les adresses,port,idx du coposant a interroger et du composant % et initialiser la variable terme= avec le terme à rechercher

La variable debug=1 affiche le resultat reçu de Domoticz

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-


# la 2eme version du script python pour les batteries 
# utilise le dict JSON que renvoie Domoticz
# Domoticz renvoie 2 pavés de données ,1 pave concernant les géneralités (long/lat, status ...)
# on peut aller chercher ces données par un r[terme] si les données sont dans la partie haute (avant le result[
# 1 autre pavé qui content les datas spécifiques au capteur en question , ces valeurs sont dans la liste result
# on utilise alors r['result'][0][terme] pour aller chercher dans le dict de la liste result

# il faut le module requests 
# sudo pip install requests 

import time
import requests


############# Parametres ################################# 


#debug = 1 on affiche les chaines de caracteres recues
debug=0


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.1.81'
domoticz_port='8080'


# l'idx du peripherique ZWave a interroger pour batterie (cf Idx Domoticz) 
periph_zwave_idx='105'


#terme a rechercher
terme='BatteryLevel'

# ici l'idx Domoticz du widget a alimenter avec la valeur lue
# un widget pourcentage est adatpté pour les capacité des batteries
idx_widget_texte='145'

# fin du parametrage #


###############  fin des parametres #############################

def maj_widget(valeur_batterie):
    requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+idx_widget_texte+json_url_text2+valeur_batterie
    r=requests.get (requete)


# l URL Domoticz a interroger pour recuperer les infos est type=devices&rid=XXX

json_url1='/json.htm?type=devices&rid='
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_zwave_idx


# l URL Domoticz pour le widget virtuel 
json_url_text1='/json.htm?type=command&param=udevice&idx='
json_url_text2='&svalue='
#http://IP:PORT/json.htm?type=command&param=udevice&idx=mon_idx&svalue=POURCENTAGE



##### main ##

result={}
r=requests.get (requete).json()
valeur_batterie=str(r['result'][0][terme])

if debug==1:
    print r
    print valeur_batterie
    ma=raw_input ('entrez valeur')

maj_widget(valeur_batterie)


Re: Etat des batteries dans un widget

Publié : 19 mars 2016, 08:29
par romu044
Bonjour,

Je débute avec Domoticz, et ce forum est une mine d'or, mais il faut savoir creuser :D
Le script je le mets où ? il faut créer un fichier en ssh ?
Si oui où le placer et comment le nommer
Et faut il en créer un pour chaque module dont on veut la remonté du niveau de batterie

Merci d'avance pour les réponses.

Re: Etat des batteries dans un widget

Publié : 19 mars 2016, 08:37
par patrice
romu044 a écrit :Bonjour,

Je débute avec Domoticz, et ce forum est une mine d'or, mais il faut savoir creuser :D
Merci et le blog associé est aussi une mine d'or http://easydomoticz.com/domoticz-et-scripts-les-bases/
Le script je le mets où ?
Le mieux est de creer un dossier specifique mais tu auras la réponse dans l'article du blog
il faut créer un fichier en ssh ?

Si oui où le placer et comment le nommer
Il faut utiliser la connexion ssh pour créer un fichier en effet et comme c'est du python tu peux l’appeler xxxxx.py
Et faut il en créer un pour chaque module dont on veut la remonté du niveau de batterie
Oui ou modifier le script python pour en gérer plusieurs

Re: Etat des batteries dans un widget

Publié : 20 mars 2016, 19:20
par romu044
Merci Patrice,

Effectivement, désolé j'avais pas vu cette partie.

Je vais tester