Comments (11)
Hi @popoviciri
I am currently working on new logic to easily provide different sensors based on the device type and connected extra's
Do you know if there is a key to determine if (and how many) are connected?
Would you be able to provide an export of requests to getAllOnlValues.json
and getAllParamValues.json
? That would help locating the correct keys to query and what data to expect.
Login to the webinterface of your device and go to the "Home" page
Open developer tools, go to network tab. Click clear in the top left and make sure recording is on.
While keeping the recording running:
Go to page "Instantaneous values" (a request to getAllOnlValues.json should appear)
Go to page "Device parameters" (a request to getAllParamValues.json should appear)
Save these requests as a HAR file and share that file.
This document might help:
https://support.zendesk.com/hc/en-us/articles/204410413-Generating-a-HAR-file-for-troubleshooting
from pysma.
After a quick search I found these:
DcMs_PanLevMdul_Vol: {
obj: "6100",
lri: "40652800"
},
DcMs_PanLevMdul_Amp: {
obj: "6100",
lri: "40652900"
},
DcMs_PanLevMdul_W: {
obj: "6100",
lri: "40652A00"
},
DcMs_PanLevMdul_Tmp: {
obj: "6100",
lri: "40652B00"
},
DcMs_PanLevMdul_SigPwr: {
obj: "6100",
lri: "00652C00"
},
Operation_PanLevMdul_Health: {
obj: "6180",
lri: "08652400"
},
DcCfg_PanLevMdul_Lbl: {
obj: "6800",
lri: "10852500"
},
DcCfg_PanLevMdul_SerNum: {
obj: "6800",
lri: "10852600"
},
DcCfg_PanLevMdul_Model: {
obj: "6800",
lri: "08852800"
},
DcCfg_PanLevMdul_SwRev: {
obj: "6800",
lri: "10853300"
},
Maybe the 6800_10852600
could be used. If multiple serials are provided I could count them and add sensors as needed.
from pysma.
Could you try to run the example.py
from my dev
branch against your inverter to see if it returns the optimizers now?
https://github.com/rklomp/pysma/tree/dev
from pysma.
WOW. I did not expect this when I asked for the custom sensor back :). Awesome work!
"The sun is getting low" 😉 and there is no power generated at the moment but inverter is still up. Here's the output from your example.py
:
DEBUG:pysma:Found device class 1
DEBUG:pysma:Sensor status: Will be decoded with "1"[0].val[0].tag from {'1': [{'val': [{'tag': 307}]}]}
DEBUG:pysma:Loading sensors for device class 1
DEBUG:pysma:Sensor energy_meter: No successful value decoded yet: {'1': [{'low': 0, 'high': None, 'val': None}]}
DEBUG:pysma:Optimizer 0 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 1 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 2 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 3 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 4 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 5 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 6 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
DEBUG:pysma:Optimizer 7 with serial {'val': '04C05B4000XXXXXX'} detected. Adding extra sensors.
WARNING:pysma:Duplicate SMA sensor key 6100_40652800 (idx: 0)
...
other lines here
...
DEBUG:pysma:Sensor grid_power_supplied: No successful value decoded yet: {'1': [{'val': None}]}
DEBUG:pysma:Sensor grid_power_absorbed: No successful value decoded yet: {'1': [{'val': None}]}
DEBUG:pysma:Sensor grid_total_yield: No successful value decoded yet: {'1': [{'val': None}]}
DEBUG:pysma:Sensor grid_total_absorbed: No successful value decoded yet: {'1': [{'val': None}]}
grid_power 0 W
power_l1 0 W
power_l2 0 W
power_l3 0 W
frequency 50.02 Hz
voltage_l1 229.18 V
voltage_l2 223.29 V
voltage_l3 229.42 V
current_l1 0.0 A
current_l2 0.0 A
current_l3 0.0 A
pv_power_a 0 W
pv_power_b 0 W
pv_voltage_a 273.78 V
pv_voltage_b 0.0 V
pv_current_a 0.0 A
pv_current_b 0.0 A
pv_gen_meter 2817.638 kWh
total_yield 2817.638 kWh
daily_yield 10126 Wh
grid_power_supplied
grid_power_absorbed
grid_total_yield
grid_total_absorbed
status Ok
optimizer_serial_004C05B400014CXXX
optimizer_power_0 0 W
optimizer_current_0 0.0 A
optimizer_voltage_0 34.2 V
optimizer_temp_0 342.0 C
optimizer_serial_104C05B400014CXXX
optimizer_power_1 0 W
optimizer_current_1 0.0 A
optimizer_voltage_1 34.15 V
optimizer_temp_1 341.5 C
optimizer_serial_204C05B400014CXXX
optimizer_power_2 1 W
optimizer_current_2 0.04 A
optimizer_voltage_2 34.2 V
optimizer_temp_2 342.0 C
optimizer_serial_304C05B400014CXXX
optimizer_power_3 0 W
optimizer_current_3 0.0 A
optimizer_voltage_3 34.35 V
optimizer_temp_3 343.5 C
optimizer_serial_404C05B400014CXXX
optimizer_power_4 1 W
optimizer_current_4 0.045 A
optimizer_voltage_4 33.85 V
optimizer_temp_4 338.5 C
optimizer_serial_504C05B400014CXXX
optimizer_power_5 1 W
optimizer_current_5 0.04 A
optimizer_voltage_5 33.79 V
optimizer_temp_5 337.9 C
optimizer_serial_604C05B400014CXXX
optimizer_power_6 0 W
optimizer_current_6 0.0 A
optimizer_voltage_6 33.9 V
optimizer_temp_6 339.0 C
optimizer_serial_704C05B400014CXXX
optimizer_power_7 0 W
optimizer_current_7 0.0 A
optimizer_voltage_7 34.0 V
optimizer_temp_7 340.0 C
INFO:__main__:Closing Session...
I can try tomorrow again, when the sun will hopefully shine again, but even with this data I can say it works! Temperature has to be divided by 10 (I do not know why SMA did that. I apply a factor 10 in my custom sensors as well). I do not have a meter so the first lines are throwing the error.
You were right to use 6800_10852600
. There are other options as well, but serial numbers seems solid!
I am not comfortable sharing entire HAR files and editing those is a pain, but I got the json response extracts from firefox: dumps.zip
The attached files mirrors this:
You probably don't need them anymore but maybe you find other useful stuff in there.
Thank you very much once again for your work!
Cheers
dumps.zip
from pysma.
Thanks! Looking good! I think the serial is not really needed as a sensor right?
Would DcMs_PanLevMdul_SigPwr
and Operation_PanLevMdul_Health
be of any use as a sensor? Any other values you would like to read?
I see the DcCfg_PanLevMdul_Lbl
would give me the name of the optimizer. I could also name the sensors optimizer_power_AA1
, optimizer_power_AA2
, etc.
What would your prefer?
from pysma.
I realize you do not actually have access to an inverter with optimizer, so here is how that looks like:
Personally I only use the power and temperature, and named each one very originally tigo1, tigo2 and so on:
These two are more than sufficient to identify a defective panel. Or optimizer :).
Sensor naming as optimizer_power_AA1
seems a good idea for installation with multiple strings. But Signal Strength and Status/Health are in my opinion pointless, because the zigbee network is always dropping packets, so those sensors will add no value. Same goes for serial numbers.
Some might find relevant Voltage DcMs_PanLevMdul_Vol
and Current DcMs_PanLevMdul_Amp
besides Power DcMs_PanLevMdul_W
.
Thank you once again for this!
Cheers
from pysma.
I just fixed the optimizer_temp
. It was querying the wrong key (same key as voltage). I should now return correct values. (9e56464)
from pysma.
Right!
status Ok
pv_power_a 328 W
pv_power_b 0 W
pv_voltage_a 264.29 V
pv_voltage_b 0.0 V
pv_current_a 1.246 A
pv_current_b 0.0 A
grid_power 302 W
frequency 50.02 Hz
current_l1 0.462 A
current_l2 0.466 A
current_l3 0.453 A
voltage_l1 229.24 V
voltage_l2 229.1 V
voltage_l3 225.59 V
power_l1 101 W
power_l2 103 W
power_l3 98 W
total_yield 2822.126 kWh
daily_yield 4460 Wh
pv_gen_meter 2822.126 kWh
optimizer_power_0 42 W
optimizer_current_0 1.285 A
optimizer_voltage_0 33.1 V
optimizer_temp_0 25.6 C
optimizer_power_1 42 W
optimizer_current_1 1.29 A
optimizer_voltage_1 32.95 V
optimizer_temp_1 24.8 C
optimizer_power_2 42 W
optimizer_current_2 1.285 A
optimizer_voltage_2 33.15 V
optimizer_temp_2 23.1 C
optimizer_power_3 43 W
optimizer_current_3 1.29 A
optimizer_voltage_3 33.45 V
optimizer_temp_3 22.4 C
optimizer_power_4 40 W
optimizer_current_4 1.29 A
optimizer_voltage_4 31.4 V
optimizer_temp_4 24.5 C
optimizer_power_5 40 W
optimizer_current_5 1.3 A
optimizer_voltage_5 31.45 V
optimizer_temp_5 24.0 C
optimizer_power_6 40 W
optimizer_current_6 1.29 A
optimizer_voltage_6 31.75 V
optimizer_temp_6 26.2 C
optimizer_power_7 40 W
optimizer_current_7 1.28 A
optimizer_voltage_7 32.0 V
optimizer_temp_7 24.9 C
If there is anything else you wanna try on my setup, let me know. I have a Tripower with one string and a Sunnyboy with two strings, both with with TS4-O optimizers.
Cheers!
from pysma.
I am creating a file with test data for testing the code.
Would you be able to share the response of your inverter for POST requests to /dyn/getAllOnlValues.json
and /dyn/getAllParamValues.json
?
You can get those via the developer console of your browser when you visit the Instantaneous values and Device parameters pages. The getAllParamValues.json
includes WiFi network names, MAC address and IP addresses if you want you can change these to something else. But please keep it as valid data ;)
If you need any help let me know. Thanks in advance!
from pysma.
Hi @rklomp,
I had these exported one year ago when you first updated this integration: dumps.zip. The optimizer bit reflects this screenshot:
If you need something else, let me know.
Cheers!
from pysma.
Thanks! I did not spot it while scrolling trough this issue.
Added your data as a test case: e71b25e
from pysma.
Related Issues (20)
- Support for SMA Data Manager M / Lite HOT 2
- Add Insulation Resistance Sensor HOT 13
- New "Sunny Tripower Smart Energy" HOT 25
- Include Current Power HOT 6
- Energy meter (Home manager 2.0) is not detected anymore HOT 10
- New Inverter Generation "Tripower X (STP XX-50)" not working HOT 29
- Feature request: control active power HOT 6
- Howto use the energy dashboard in HA with SUNNY TRIPOWER 10.0 SE HOT 1
- Pv_isolation_resistance Unavailable HOT 10
- Detect backup power grid (Ersatzstromnetz) HOT 1
- Error fetching SMA data HOT 10
- Fetching data from 2 (or more) devices with overlapping sensor-ids? HOT 20
- Support for inverters with 3 PV inputs
- Statistic entities home assistant HOT 11
- Sunny Tripower 10 HOT 2
- Example for one key [solved] HOT 7
- total_yield returns 0 during the night HOT 10
- Suddenly SMA response None HOT 3
- Suddenly I get Timeout. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pysma.