Bonjour,
J’ai commencé par faire un compte pour récupérer mes données sur solarman et connecté mon onduleur.
Voici la fonction python qui fait la récupération des données :
# Lecture sur Solarman
# --------------------
def read_solarman():
cookies = {
'language': '7',
'autoLogin': 'on',
'Language': 'fr',
'rememberMe': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'timeOffset': 'undefined',
'JSESSIONID': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
}
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
'Referer': 'https://home.solarman.cn/device/inverter/view.html?v=2.3.0',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
}
data = {
'deviceId': 'XXXXXXXXX'
}
try:
data = requests.post('https://home.solarman.cn/cpro/device/inverter/goDetailAjax.json', headers=headers, cookies=cookies, data=data,timeout=5).json()['result']['deviceWapper']
MQTT_TOPIC_2 = "SolarmanPV"
lst = ['realTimeDataBattery','realTimeDataElect','realTimeDataImp','realTimeDataPower','realTimeDataTemp']
# for champs in lst:
# MQTT_MSG ={info['name']:info["value"] for info in data[champs]}
# client.publish(MQTT_TOPIC_2+"/"+champs, json.dumps(MQTT_MSG), 1)
for champs in lst:
MQTT_MSG ={info['name']:info["value"] for info in data[champs]}
now = datetime.datetime.now().strftime("%a %b %d %H:%M:%S %Y")
MQTT_MSG['time'] = now
for k, v in MQTT_MSG.items():
try:
MQTT_MSG[k] = float(v)
except:
MQTT_MSG[k] = v
pass
client.publish(MQTT_TOPIC_2+"/"+champs, json.dumps(MQTT_MSG), 1)
except:
print("Solarman too long...")
return
If faut remplir les différents champs rememberMe, JSESSIONID et deviceId.
J’avais utilisé le mode console de chrome pour les récupérer. Je n’ai pas retrouvé la manip ce soir …
Il faut ensuite faire un script python avec une boucle infinie pour récupérer les données avec MQTT dans Jeedom, ou alors utiliser le plugin script et récupérer les données au format json directement.
Pour ma part j’avais utilisé MQTT car je me sert d’un script qui collecte des données de différentes sources en même temps.
Voilà c’est un peu brut de pomme mais j’espère que ça peut t’aider et peut être une idée pour faire un vrai plugin avec un développeur motivé?