Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Plugin Tiers] Solax

Pour échanger sur les plugins classés en catégorie "Monitoring"
jerome28
Timide
Messages : 63
Inscription : 26 déc. 2014, 16:50

Re: [Plugin Tiers] Solax

Message par jerome28 » 20 juil. 2019, 22:22

Bonjour à tous,
ma petite contribution :

je dispose d'un Solax X1 Retro Fit 5.0 depuis début 2019.
Firmware en V3.12.
J'ai constaté et cela est confirmé dans un autre forum, que l'accès à l'API locale du solax n'est plus disponible (demande un login/paswword en boucle et via la clef wifi subnet isolé non accessible sans connexion P2P)
info sur https://community.home-assistant.io/t/s ... uide/48008
L'API semble être désactivée depuis 2018 et donc sur les dernières mises à jour des firmwares ou les derniers modèles livrés.
J'ai contacté Solax pour obtenir des infos sur l'API mais rien.

Donc place à du reverse engineering :

1ere piste : le json du portail web SolaxCloud accessible sur l'URL https://solaxcloud.com/export/getReportData.do
https://github.com/DiedB/Homey-SolarPanels/issues/18
problème : je n'ai pas réussi à scripter le passage du login/password avec le cookie de session.
ok manuellement mais ko par le script

2eme piste, celle qui fonctionne depuis plusieurs semaines :
La Webapi utilisée par l'application Android SolaxCloud
J'ai installé l'application Packet Capture pour obtenir les différentes requêtes Web et avoir un json exploitable et complet.
J'ai ensuite positionné les requêtes dans un script Python que jeedom exécute toutes les 5 minutes (pas plus car le solax remonte les infos que toutes les 5 minutes dans le cloud). Le script écrit localement le fichier json obtenu pour que jeedom l'exploite facilement avec le plugin script et des commandes json du type :
result>0>ratedPower
result>0>gridpower
result>0>temperature
(...)

Le script python pour obtenir le fichier json :

Code : Tout sélectionner

# Starting a session in which we will store a JSESSIONID Cookie
import requests
import json
import time
from datetime import datetime

s = requests.Session()
s.keep_alive = True

#hearder smartphone
headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0.0; xxxxxxxx Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36',
    'Origin': 'file://',
    'Accept' : 'application/json, text/plain, */*',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7',
    'X-Requested-With': 'com.solaxcloud.starter'
    
}

#-----------------------------------------------------------------------------
# Logging in to get the Cookie
r=s.post(
url='http://www.solaxcloud.com:6080/proxy//login/login',
data={
'password': 'xxxxxxxx',
'userName': 'xxxxxxx',
'userType': '5'
},
headers=headers,
verify=False
)

#print(r.content)
#print(s.cookies.get_dict())
#time.sleep(3)
dct=s.cookies.get_dict()
jid=dct["JSESSIONID"]
#print(jid)
headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0.0; xxxxxx Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36',
    'Origin': 'file://',
    'Accept' : 'application/json, text/plain, */*',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7',
    'X-Requested-With': 'com.solaxcloud.starter',
    'JSESSIONID' : jid
}

#-----------------------------------------------------------------------------
r = s.post(
url='http://www.solaxcloud.com:6080/proxy//login/isArrears.do', 
data={
'tokenId': 'xxxxxxxxx',
'today': datetime.today().strftime('%Y-%m-%d')
},
headers=headers,
cookies=s.cookies,
verify=False
)
#print(r.content)
#-----------------------------------------------------------------------------
r = s.post(
url='http://www.solaxcloud.com:6080/proxy//dictionary/getDictionary', 
data={
'dictCode': 'APP_NEW_VERSION',
'lang': "'en_US"
},
headers=headers,
cookies=s.cookies,
verify=False
)
#print(r.content)
#-----------------------------------------------------------------------------
#Get info
r = s.post(
url='http://www.solaxcloud.com:6080/proxy//mysitenew/getBatteryData.do', 
data={
'tokenId': 'xxxxxxxxx',
'siteId': 'xxxxxxxxxx'
},
headers=headers,
cookies=s.cookies,
verify=False
)
#print(r.content)
#print(s.cookies.get_dict())


f=open('/usr/share/nginx/www/jeedom/plugins/script/core/ressources/solax.json', 'w') 
f.write(r.content)
f.close()
vous trouverez vos tokenId siteId password userName dans les captures du flux de l'application Solaxcloud obtenu avec Packet Capture par exemple.

Inconvénients de ce script :
non supporté et usage du json non officiel
cloud dépendant

Il serait intéressant de pouvoir dialoguer localement avec le solax sans passer par le cloud mais bon je ne sais pas pourquoi ils ont fait le choix de ne plus exposer leur API :?
Jeedom cubietruck+SSD+ usb Z-stick+52 modules zwave +cam Zavio B7210 et Aviosys 9100a +Karotz+RFXcom+Orvibo
Fibaro HC2(2012-2013)->Zipabox (2013-2015)->jeedom
Domotique : Alarme, volets, Eclairage, suivi conso électrique et 1 wallbox VE (Leaf)

jcvi19
Timide
Messages : 49
Inscription : 11 janv. 2015, 18:46
Localisation : Tarn et Garonne

Re: [Plugin Tiers] Solax

Message par jcvi19 » 23 juil. 2019, 11:43

Salut, je n'ai pas trouvé grand chose, si ce n'est le port UDP qui est utilisé, a par ça rien d'exploitable.
Pour la production j'ai mis un compteur EDF d'occas, j'ai les datas de la teleinfo.
Merci pour cette tentative, je suivrai ce fil si jamais il y a des avancées.
Raspberry pi 2 + MEGA 2560 + 433 + LCD.
10 cdes Volet SmartHome MMV-T100 + 6 Contacts SmartHome : ECR-100 + 2 douilles DIO.
12 prises 433 + 1 Nabaztag + 1 nimbus + 3 cameras fixe + 1 mobile + 1 roomba
Teleinfo + Arduino + LCD

Vinbor312
Timide
Messages : 15
Inscription : 02 juil. 2019, 08:52
Localisation : Toulouse

Re: [Plugin Tiers] Solax

Message par Vinbor312 » 23 juil. 2019, 21:26

@jerome28 dans le même esprit as tu essayé de capturer les trames de l'appli android en mode local en ce connectant au SSID de l'onduleur?

jerome28
Timide
Messages : 63
Inscription : 26 déc. 2014, 16:50

Re: [Plugin Tiers] Solax

Message par jerome28 » 23 juil. 2019, 22:46

Vinbor312 a écrit :
23 juil. 2019, 21:26
@jerome28 dans le même esprit as tu essayé de capturer les trames de l'appli android en mode local en ce connectant au SSID de l'onduleur?
bonjour,
je n'ai pas reussi a faire une capture sur le ssid du wifi.
la capture était vide
Jeedom cubietruck+SSD+ usb Z-stick+52 modules zwave +cam Zavio B7210 et Aviosys 9100a +Karotz+RFXcom+Orvibo
Fibaro HC2(2012-2013)->Zipabox (2013-2015)->jeedom
Domotique : Alarme, volets, Eclairage, suivi conso électrique et 1 wallbox VE (Leaf)

Vinbor312
Timide
Messages : 15
Inscription : 02 juil. 2019, 08:52
Localisation : Toulouse

Re: [Plugin Tiers] Solax

Message par Vinbor312 » 24 juil. 2019, 09:24

bonjour,
je n'ai pas reussi a faire une capture sur le ssid du wifi.
la capture était vide

Bonjour jerome28
tu as bien coché le mode local sur l'aplli ?
j'ai deux type de capture avec 2 ports différent 5.5.5.8:6080 et 5.5.5.8 :80
sur le 6080 c'est effectivement vide
voilà ce que je capture sur le port 80:

Code : Tout sélectionner

POST /?optType=ReadRealTimeData HTTP/1.1
Host: 5.8.8.8
Connection: keep-alive
Content-Length: 0
Accept: */*
Origin: file://
User-Agent: Mozilla/5.0 (Linux; Android 8.0.0; LG-H930 Build/OPR1.170623.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.143 Mobile Safari/537.36
Content-Type: application/x-www-form-urlencoded
X-Requested-With: com.solaxcloud.starter
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7

Code : Tout sélectionner

HTTP/1.1 200 OK
	Server: MySocket Server
	Date: TEST
		Accept: application/json
	Content-Type: application/json
	Content-Length: 358
	Accept-Ranges: bytes

Code : Tout sélectionner

{"type":"X1-Boost-Air-Mini","SN":"SWXXXXXXX","ver":"2.31.3","Data":[4.4,0.0,118.8,0.0,2.1,235.9,473,43,5.9,734.6,0,532,0,0.00,0.00,0,0,0,0.0,0.0,0.00,0.00,0,0,0,0.0,0.0,0.00,0.00,0,0,0,0.0,0.0,0,0,0,0,0,0,0,0.00,0.00,0,0,0,0,0,0,0,50.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],"Information":[2.000,4,"X1-Boost-Air-Mini","XMXXXXXXXXXX",1,3.21,1.08,1.10,0.00]}
*j'ai remplacé mon serial number sur la dernière trame SWXXXXXX et XMXXXXX

Avatar de l’utilisateur
Sattaz
Timide
Messages : 191
Inscription : 22 nov. 2015, 20:34

Re: [Plugin Tiers] Solax

Message par Sattaz » 10 août 2019, 20:43

Salut,

Vinbor312, il y a deux donc une option ‘locale’ à activer au niveau de l’onduleur?
Ensuite est-ce que ça fonctionne avec mon plugin ?
Désolé mais je n’ai plus accès à l’onduleur de mon ami... si tu confirme cela, peux-tu mettre une capture d’écran de ce qu’il faut activer?
Je modifierai alors la documentation.

Merci !
Sébastien

jgign
Timide
Messages : 4
Inscription : 05 juin 2018, 19:13

Re: [Plugin Tiers] Solax

Message par jgign » 17 août 2019, 20:57

Bonsoir,
Je compte me faire installer un kit photovoltaique avec pour onduleur le SOLAX X1 BOSST X1 5.0T.
Est ce que ce dernier sera compatible avec ton plugin?
Merci.

jerome28
Timide
Messages : 63
Inscription : 26 déc. 2014, 16:50

Re: [Plugin Tiers] Solax

Message par jerome28 » 18 août 2019, 10:24

jgign a écrit :
17 août 2019, 20:57
Bonsoir,
Je compte me faire installer un kit photovoltaique avec pour onduleur le SOLAX X1 BOOST X1 5.0T.
Est ce que ce dernier sera compatible avec ton plugin?
Merci.
Bonjour,
Si l'onduleur est livré avec une version du firmware récente (2018 ou 2019), l'API locale du Solax sera probablement fermée et donc ce plugin ne fonctionnera pas.
Pour moi la 2eme solution avec l'API / Json de l'application android fonctionne toujours
Jeedom cubietruck+SSD+ usb Z-stick+52 modules zwave +cam Zavio B7210 et Aviosys 9100a +Karotz+RFXcom+Orvibo
Fibaro HC2(2012-2013)->Zipabox (2013-2015)->jeedom
Domotique : Alarme, volets, Eclairage, suivi conso électrique et 1 wallbox VE (Leaf)

jgign
Timide
Messages : 4
Inscription : 05 juin 2018, 19:13

Re: [Plugin Tiers] Solax

Message par jgign » 18 août 2019, 18:37

Merci pour la réponse. Mais elle ne me plait pas lol.

C'est bien dommage.

Vinbor312
Timide
Messages : 15
Inscription : 02 juil. 2019, 08:52
Localisation : Toulouse

Re: [Plugin Tiers] Solax

Message par Vinbor312 » 30 août 2019, 22:36

Sattaz a écrit :
10 août 2019, 20:43
Salut,

Vinbor312, il y a deux donc une option ‘locale’ à activer au niveau de l’onduleur?
Ensuite est-ce que ça fonctionne avec mon plugin ?
Désolé mais je n’ai plus accès à l’onduleur de mon ami... si tu confirme cela, peux-tu mettre une capture d’écran de ce qu’il faut activer?
Je modifierai alors la documentation.

Merci !
Bonjour Sébastien
il n'y a rien à activer c'est le mode d'accès de base de cette onduleur pour paramétré la connexion vers la box.
Hélas cet accès a une adresse IP 5.5.5.8 est n'est pas modifiable. donc je n'arrive pas à faire fonctionner le plugin.

Vincent

nicog
Timide
Messages : 9
Inscription : 08 juil. 2018, 20:39

Re: [Plugin Tiers] Solax

Message par nicog » 20 sept. 2019, 20:42

Hello!

Des news sur le fonctionnement de ce plugin ?

A+

Nicolas

Vinbor312
Timide
Messages : 15
Inscription : 02 juil. 2019, 08:52
Localisation : Toulouse

Re: [Plugin Tiers] Solax

Message par Vinbor312 » 25 sept. 2019, 19:48

rien de mon coté :-(

nicog
Timide
Messages : 9
Inscription : 08 juil. 2018, 20:39

Re: [Plugin Tiers] Solax

Message par nicog » 27 sept. 2019, 09:44

:( aussi!

Dommage, du coup je pense utiliser un Qubino smart meter pour pouvoir faire le suivi de prod sous Jeedom et optimiser mon autoconso...

Si vous avez d'autres idées...

A+

Nicolas

Répondre

Revenir vers « [Catégorie] Monitoring »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités