Giter Site home page Giter Site logo

addon-grott-beta's Introduction

Grott

[!WARNING] > As there is no beta release of grott currently, this repository is similar to the non-beta.

Please switch to the non-beta version if you are looking for the most up-to-date releases.

The add-on can be found in the add-on store by searching for grott.

GitHub Release Project Stage License

Supports aarch64 Architecture Supports amd64 Architecture Supports armhf Architecture Supports armv7 Architecture Supports i386 Architecture

Github Actions Project Maintenance GitHub Activity

"Buy Me A Coffee"

About

This add-on allows you to run a local version of grott with the grott_ha extension on your Home Assistant instance.

๐Ÿ“š Read the full add-on documentation

It bundles:

In an easy to use and configure add-on add-on.

๐Ÿ“š Read the full add-on documentation

addon-grott-beta's People

Contributors

egguy avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

billibean89

addon-grott-beta's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

dockerfile
grott-beta/Dockerfile
  • ghcr.io/hassio-addons/base-python 14.0.0
github-actions
.github/workflows/ci.yaml
  • actions/checkout v4
  • frenck/action-addon-information v1.4.2
  • actions/cache v4.0.2
  • docker/setup-qemu-action v3.2.0
  • docker/setup-buildx-action v3.6.1
  • docker/login-action v3.3.0
  • docker/build-push-action v6.6.1
.github/workflows/deploy.yaml
  • actions/checkout v4
  • frenck/action-addon-information v1.4.2
  • peter-evans/repository-dispatch v3.0.0
.github/workflows/labels.yaml
.github/workflows/lock.yaml
.github/workflows/pr-labels.yaml
.github/workflows/release-drafter.yaml
.github/workflows/stale.yml
pip_requirements
grott-beta/requirements.txt
  • paho-mqtt ==1.6.1
  • requests ==2.32.3
  • influxdb ==5.3.2
  • grott-ha-plugin ==0.11.0
requirements.txt
  • pytest ==8.3.2
  • pytest-testinfra ==10.1.1
regex
grott-beta/Dockerfile
  • ghcr.io/hassio-addons/base-python 14.0.0
grott-beta/build.yaml
  • ghcr.io/hassio-addons/base-python/aarch64 14.0.0
  • ghcr.io/hassio-addons/base-python/amd64 14.0.0
  • ghcr.io/hassio-addons/base-python/armhf 14.0.0
  • ghcr.io/hassio-addons/base-python/armv7 14.0.0
  • ghcr.io/hassio-addons/base-python/i386 14.0.0
grott-beta/Dockerfile
  • alpine_3_20/bind-tools 9.18.27-r0
grott-beta/Dockerfile
  • grott Master@09a99347b0ae79398071b26f198e2630aadd4eb3

  • Check this box to trigger a request for Renovate to run again on this repository

Grott Wont Start

Since the update 2 days ago (also coincided with a HA core update), I have not been able to start Grott. See the error log below, specifically the following line:

./script.sh: line 241: dig: command not found

I have tried to restart Mosquito Broker then restart Grott but this didn't fix the issue.

Full error log as follows:
`s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service base-addon-banner: starting


Add-on: Grott Beta branch (2.8)
The Growatt inverter monitor with current HA plugin integrated

Add-on version: 61506dd
You are running the latest version of this add-on.
System: Home Assistant OS 12.1 (aarch64 / raspberrypi4-64)
Home Assistant Core: 2024.3.1
Home Assistant Supervisor: 2024.03.0

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[08:05:52] INFO: Preparing to start...
./script.sh: line 241: dig: command not found
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service base-addon-log-level: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service base-addon-log-level successfully stopped
s6-rc: info: service base-addon-banner: stopping
s6-rc: info: service base-addon-banner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped`

Install instructions

As a HA user I would be very interested as how to install your addon in HA. We are all very gratefull for your hard work and the sharing!!!

After reading the documentation I did not encounter any such instructions on how to install the zip.

what code base is addon-grott-beta relying and more open questions

Hi,
I had to fight a lot with the growatt deleted the grott ip in the wifi sticks adventure cause I was not aware of what was going on cause at the exact same time I had a maintenance week for my 8 inverters and got a new second distribution board and a complete AC re-wiring, then a new LAN cable and switches plus WLAN repeaters.

And when I came back with all my inverters everything was gone. And I had thought it must have been my fault cause the inverters were off grid and offline during all the rewiring. I had no clue what was going on except the growatt sensors were dead or depreciated and showed me a warning. Then I found out that the datalogger IP settings had been deleted which I had assumed was caused by the off grid situation for days.

Long story short it took me days or roughly a week to get behind and find the solution which seems to be reliable: I reentered the IP adresse in the datalogger and then had set the ggrowattip to 8.209.71.240
Growatt is no longer deleting my settings and I can still edit my settings of the SPH inverter especially discharging schedules and so on.

BUT: during all the mess when I was not aware what was going on I wondered about the basics like who can help me and what information would be needed. And of cause which version are you running was one of the first.
I had thought for whatever reason and believed I was running grott 2.8.3 as latest release but IS THAT REALLY true ?

And this is the weak or inconsistent point at least right now for me:

I have opened Grott addon and found this
image

And now I am wondering what is wrong: Am I running grott 2.8.3 or just 2.8 ?
Big differences regarding the support of different new inverters but I am not sure.

Then there is the second line called "Current version 0.1.7" with a link to a change log but also a lot more times where you simply find "grott 2.8"
I suggest to reduce how often you mention the version cause you would have to maintain that too, over time a lot of work if you wanna change that everywhere.
I am assuming that this grott ha is already 2.8.3 cause all the new min sph and what not invertermodels are implemented in this addon which grott has released with 2.8.3 I guess - not sure, but I believe there was a major change.

Finally I like the 1.0.7 in the second line and the change log but I miss that same number here on github cause I could not find that or overlooked that.

But again the whole thing becomes confusing cause if I look on the top of this page I can read
"egguy / addon-grott-beta"
and if I open the main page what do I have to read there ?

Grott beta 2.8.x

It is time to find a less confusing naming sheme used everywhere which clearly shows the roots, history and where it is like

"GROTT BETA 2.8.3 - The HA ADD ON V1.0.7"
Not 2.8.x which is confusing if Grott is 2.8.1 or 2.8.2 or 2.8.3 cause people will ask Johan for advice like I did and he will ask first WHICH version and of cause I told him "2.8.3" in my deepest believe but I am still not sure if that is true or not.

And then all the references like "addon is based on the 2.8 Branch of grott" is obsolete cause the root and the right version are part of the project title.

Side node: on that Grott beta 2.8.x page there you can find this line
"The grott server decodes them andsendsd them to your HA instance."
where I suggest to correct the "andsendsd" to "and sends" plus to mention also mqtt as the transmitter and receiver cause right now grott server is handing those data over to mqtt and the sending is done by mqtt.

Tiny point but important for newbies to understand that this essential element mqtt is mentioned in the big picture. Otherwise you would not know about mqtt till you end in the configuration.

I know these are tiny points but I guess it is time to take care for these especially in times when things had gone wrong and nothing seems to work anymor where everyone is searching for advice and solutions.

You have achieved a lot and there are just tiny bits / pieces missing like using the same term every time like 2.8.3 instead of 2.8.x and so on.
Great progress regarding the updates that came along with 1.0.7

Missing field for MOD inverter

Hi,
I am using the MIN in inverter type configuration to monitor a MOD inverter with battery and smart-meter. So far I get data but some are missing:

  • PV1 Energy - Today
  • Load consumption
    Is there a chance to get the values in?
    Thanks and BR
Bildschirmfoto 2024-01-30 um 09 51 17

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: packageRules[8]: Each packageRule must contain at least one match* or exclude* selector. Rule: {"customType":"regex","fileMatch":["^/Dockerfile$"],"matchStrings":["ENV GIT_REF=(?.*?)\n"],"currentValueTemplate":"Master","depNameTemplate":"grott","packageNameTemplate":"https://github.com/johanmeijer/grott","datasourceTemplate":"git-refs"}

Optimization: check the inverter mapping for troublemakers

I guess you have a list of supported inverters at least on the mapping level like
min
sph
max or so

You could check the values if there is an unknown 3 letter element and then reject to save cause: "mic inverters are not supported yet. please read the documentation carefully"
And there you can write that only the min, sph and max series are supported. In case you have a mic try to use MIN instead.

same for those with typos like "mix" or "mib" cause such mic error can take a time to find and fix and cause issues here which could be avoided. I have struggled with that 2 times, where the first time I got the solution from you and the second time I could not believe it cause the 8 inverter long mapping line had still contained 2 oe 3 old "mic" !

And therefore a check and message would be usefull to avoid further troubles cause in my case I have a report every minute, the usual user will have a report / update only every 5th minute and therefore will recognise the issue far later.

LOST IN THE GROWATT - GROTT - HA 'BERMUDA TRIANGLE'

General question:

It is hard to understand what this add-on is clearly for - at least for a beginner like me. Therefore here my story so far.

I have about 8 different growatt inverters and therefore I need solution that are working cause I have to deal with each of the inverter more or less just to get things right like observing my 14 strings and its kWh / kWp performance which growatt is not providing.

I started to install grott not being aware of this add-on and followed the muppet 3000 grott integration path which required a full running grott installation to start with. I struggled a lot with the grott setup cause the documentation is broken in between since the mulitple container architecture has started and the rpi setup or installation needs more to get the right release.

docker pull ledidobe/grott
is the command, but not working for you as a pi owner, cause now to get the right version with the full support you need to call
docker pull ledidobe/grott:beta
or
docker pull ledidobe/grott:2.8.3

Took me ages to find these tiny differences out cause I only got a message from grott that i was using the wrong architecture on my pi which I could not believe cause I had followed all the steps and all the links which were there to tell me that rpi is dead you need the new multi architecture what so ever where it again says docker pull ledidobe/grott and NOT docker pull ledidobe/grott:2.8.3

So I was forced to do the manual installation as the alternative for my Pi-3 which should run as the proxy for test purposes.
Then I set it up and could not get it running due to errors from the communication. Grott.ini shows in the mqtt section a user id and a password but I had not read about that i have to set up such user first and what not. But I did it later in HA and then it did not work again eeven though I had removed all the "#" in the mqtt section. I did believe that now everything was right, but it wasn't.
#auth = False
that is how the line of the grott.ini looks in the example directory but who would guess that you need to switch that to true in case that the grott.ini shows in the next line a user grott and a password grott2020 ?
I would assume that everything is prepared for starting, no, you have to change that to auth = True

For whatever reason it finally ran and so I kept track by installing the grott integration (@muppet3000) which worked great, also the multi inverter integration did not need any additional steps or work, cause I simply moved stick by stick from growatt server to grott and a minute later such inverter appeared in my HA and worked cause soon the entities were created, 34 for each inverter.

This is my journey, took me many days or over a week to get there that I am now happy having 7 inverters running on grott on pi 3 and also all the 34 sensors of each inverter in HA on my Pi-5 running HA OS.

AND NOW I AM on the edge how to integrate or not the GROTT proxy function onto my Pi-5 ?

I had learned so far that I can not run docker containers inside HA OS cause HA OS itself is a kind of container system more or less.

So I had thought, that I simply could use the terminal to install grott and run grott there inside on HA OS but I am not sure cause while investigating I came across this soultion addon-grott-beta which I better can remind as the egguy.

I assume why it is called this way but beta is usually not the software people wanna start with even though grott is in the latest version only available as beta right now.
But I got it.

But even I have read the documentation here I am still asking myself what is this really for and if I am right using it.

Is it right that this addon brings basically a full running grott onto a HA OS system replacing the (for HA OS users) currently needed dedicated grott machine on the same HA OS instance ?

If so then it would need a more precise description "Grott for HA OS users" with no need for an extra machine.
And then it would be time to mention muppet3000 integration as the go to addon to get all the sensors automatically into HA.

Am I right about that ?
Can I replace my current dedicated Pi -3 Grott proxy server (acting for 7 inverters, not just 1 or 2) with addon-grott-beta and will this new addon have the same full functionality ?

Just to let you know: accidentily I did not follow the grott description for multi inverter operations fully, only for the first 2 I had created the yaml files and I had activated this grott.ini line too: mqttinverterintopic="True"

But: once I switched another stick from growatt server to my grott server the inverters appeared within a minute later (my sticks report every minute) in HA as new device in my only grott instance and with 34 inverters

Nothing fancy more needed. Move the stick and sensors appeared in HA

Maybe I am wrong but I would like to know that in advance cause right now my Pi-3 server with Chris / @muppet3000 integration is working fine.

But I would of cause prefer a 1 machine solution running HA and under its hood the Grott Addon with the GROTT integration which is confusing for most of the people cause everything seems to be grott.

I hope that the addon-grott-beta should act like grott under HA and might be called GROTT HA or HA GROTT with a reference that the integration is respronsible for the next step to create all sensors needed by just listenting to the mqtt traffic .
Would have helped me a lot , saved 3 or 4 days after all the struggles in the beginning.

And I simply had to write it down here to get a real glimpse what each of the component might be needed for and what it requires but for someone with no mqtt series and some usual HA knowledge this is currently a mess for any newbie or better a bermuda triangle.

GROTT it self should say for HA owners that are running HA OS that there are 2 ways

  • setup a dedicated pi or machines acting as grott server (or on a vm / container) or
  • install NOT MY GROTT, but the GROTT HA edition called GROTT HA ADDON which will do everything grott is doing

GROTT HA then should provide people the clear message that this is a kind of a port to run GROTT under HA OS and nothing more.
Finally it would make a lot sense to show those users that they will save a lot of time by installing also muppet3000 grott integration as the bridge from the grott server via mqtt to get the sensors created and running in HA.

Of cause i can be wrong with these assumption who is doing cause I am just a usual / average guy as Klopp once said when he arrived in Liverpool . But I have to start somewhere without risking too much.

Should I install addon-grott-beta on my HA installation and what would I have to change ?
copy the existing grott.ini and then replacing the ip adress in the sticks from the grott installation to the HA server ?

I hope someone can tell me where I am wrong or right.

Thanks , great job and I will now continue searching for more documentation about this topic before I crash my HA even though I have daily backups on google drive.

REQUIREMENT FOR MULTI INVERTER USECASES: number of lines in protocoll should be configureable in the configuration

Multi inverter owners have a bit or a lot more traffic and will struggle if they might recognice a flaw or issue in the tab with the protocol .

Then the current amount of lines shown there is too limited and usually stops somewhere randomly in the middle where you have seen an error but further details (lines) are missing like in my case the MiC that caused a full stop.

If you read the lines and then press actualize the next page of protocoll will be shown, but not the following lines after the issue.
You will get the lines of the moment you pressed actualise and that will not help any further cause the time for reading will be too long and new messages will have past meanwhile.

Therefore I suggest to offer an option in the configuration tab to set the amount of lines shown in the protocoll - at least offered for Multi inverter owners which you might detect by the lines {}.

Yes, I guess there is a log file deep down to be found in the file system under /config/grott that might deliver all the data, BUT

I simply want to have the same opportunity as a single inverter user who can read along what is coming from his inverter stick and passed over grott add on and therefore I would need more lines. I do not believe that a choice option between 50 or 100 or 200 lines would be more usefull. I guess each multi inverter owner will choose it differently to his needs in case he faces issues .

I have 8 and there is a lot going on when all inverters / stricks are sending messages every single minute, cause sometimes 3 inverters will send their messages within 2 seconds and then 30 seconds nothing, before the next wave of 2 inverters will report.

I am writing this due to a mistake I had made cause I had copied my multi inverter line with the {} from my notes and not a grott.ini
Therefore I pasted a line which still had 2 mic inverters inside

The grott add on worked fine in the beginning til the mic message arrived and then stopped until watchdog caused a restart without a notice so after 5 or 10 minutes i believed everything was fine cause the growatt cloud showed most recent data as I believed.

When I finally recogniced that something was wrong I checked the addon and saw it was grey,
i opened the addon and saw the red circle on the top which meant not running.
I pressed start / restart and it turned green again so everything looked normal cause my whole roof, I mean 13 strings were updated instantly.
And that is an impressive moment at least if you went from not available in the screenshot below to all data displayed like here within a second.

I use these power sensors to calculate the key figure power / kWp to be able to compare strings and see what is going on and investigate what like a shadow or a bad mc4 connector and what not cause a power / kWp underperformance has to have a cause in case of similiar orientaton, pitch and same panels. Same for kWh / kWp which is the long time comparison for example of a day to make sure that planning was right.

And when I pressed restart inside the grott ha add on seconds later I got this
image

ATTENTION: the upper part on the strings side is showing power per kWp
BUT in the lower part there is a summary of the green and yellow inverters which belong to 2 different "accounting" systems with the sum or total in the middle and these 3 figures are in kW for the accounting unit , not a kW / kWp

Back to the point: when I had restarted grott ha addon I went back to the protocol and found something like this but with a mic error which caused a full stop of the integration which then restarted due to watchdog being active. And those watchdog restarts supplied the data to growatt cloud and let me believe it was working now.
image

Attention: this screenshot is only representing the spot where I had faced the issues it so not the moment or second the MIC inverter had cause the server / grott add on to stop cause I was not able to find that moment where i could see the mic stop happening. I had seen that error only once, read through the lines and when I pressed actualize all these lines were gone and the new lines were from minutes or seconds later.

Hard to explain, but all multi inverter owners can face the same issue and will struggle without a protocoll length that is usefull for them.

Instalation 2 days ego stopped sending data to HA

  • Growatt packet received:
    <socket.socket fd=5, family=2, type=1, proto=0, laddr=('172.30.33.3', 5279), raddr=('192.168.1.108', 45262)>

    • Growatt packet received:
      <socket.socket fd=5, family=2, type=1, proto=0, laddr=('172.30.33.3', 5279), raddr=('192.168.1.108', 45262)>

    • Growatt packet received:
      <socket.socket fd=5, family=2, type=1, proto=0, laddr=('172.30.33.3', 5279), raddr=('192.168.1.108', 45262)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>

    • Growatt packet received:
      <socket.socket fd=4, family=2, type=1, proto=0, laddr=('172.30.33.3', 37144), raddr=('47.91.67.66', 5279)>
      s6-rc: info: service legacy-services: stopping
      s6-rc: info: service legacy-services successfully stopped
      s6-rc: info: service legacy-cont-init: stopping
      s6-rc: info: service legacy-cont-init successfully stopped
      s6-rc: info: service fix-attrs: stopping
      s6-rc: info: service base-addon-log-level: stopping
      s6-rc: info: service base-addon-log-level successfully stopped
      s6-rc: info: service fix-attrs successfully stopped
      s6-rc: info: service base-addon-banner: stopping
      s6-rc: info: service base-addon-banner successfully stopped
      s6-rc: info: service s6rc-oneshot-runner: stopping
      s6-rc: info: service s6rc-oneshot-runner successfully stopped
      s6-rc: info: service s6rc-oneshot-runner: starting
      s6-rc: info: service s6rc-oneshot-runner successfully started
      s6-rc: info: service base-addon-banner: starting


Add-on: Grott Beta branch (2.8)
The Growatt inverter monitor with current HA plugin integrated

Add-on version: 0.1.5
You are running the latest version of this add-on.
System: Home Assistant OS 12.4 (amd64 / qemux86-64)
Home Assistant Core: 2024.7.2
Home Assistant Supervisor: 2024.06.2

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting

s6-rc: info: service legacy-services successfully started
[20:03:50] INFO: Preparing to start...
**********************************************************************************
- Grott - libscrc not installed, no CRC checking only record validation on length!
**********************************************************************************
Grott Growatt logging monitor : 2.8.2

Grott process configuration file

Grott process environmental variables

Pulled 'ginvtype=default' from the environment

Pulled 'gnomqtt=True' from the environment

Pulled 'gextension=True' from the environment

Pulled 'gextname=grottext.ha' from the environment

Pulled 'gextvar={"ha_mqtt_host": "core-mosquitto", "ha_mqtt_port": "1883", "ha_mqtt_user": "addons", "ha_mqtt_password": "Aichoohau2zei4ohcheeghee0ne5ooth2aciuphieF6feiP6yee1shoo1agh4Oba", "ha_mqtt_retain": False}' from the environment

Grott override settings if set in commandline

Grott process json layout files

Grott proxy mode started
**********************************************************************************
- Grott - libscrc not installed, no CRC checking only record validation on length!
**********************************************************************************
Hostname : 8ce4abae-grott-current
IP : 172.30.33.3 , port : 5279

All sensors are not-known
On the shine phone app workin fine and on the growatt web,

I didn't change anything

No MQTT data in HA

Despite the settings below no MQTT data is visible in HA?

What am I doing wrong?

Inverter: MOD 6000TL3-XH
MQTT was already installed on HA
Redirected Growatt to HA IP : 192.168.2.33
Installed Grott Beta branch (2.8) Current version: 0.1.7
Configuration: invertert type : min, Enable grott MQTT

The IP adddress 172.30.33.0 shown in the logs is not known to me??

`Grott settings:

_Generic:
version: 2.8.3
verbose: True
trace: False
config file: /config/grott/grott.ini
minrecl: 100
decrypt: True
compat: False
invtype: min
invtypemap: {}
include_all: False
blockcmd: False
noipf: False
time: auto
sendbuf: True
timezone: local
valueoffset: 6
offset: 6
inverterid: automatic
mode: proxy
grottip default
grottport 5279
_MQTT:
nomqtt False
mqttip: 172.30.33.0
mqttport: 1883
mqtttopic: energy/growatt
mqttmtopic: False
mqttmtopicname: energy/meter
mqttinverterintopic: False
mqtttretain: False
mqtttauth: True
mqttuser: addons
mqttpsw: secret
_Growatt server:
growattip: 47.91.67.66
growattport: 5279
_PVOutput:
pvoutput: False
pvdisv1: False
pvtemp: False
pvurl: https://pvoutput.org/service/r2/addstatus.jsp
pvapikey: yourapikey
pvinverters: 1
pvsystemid: systemid1
_Influxdb:
influx: False
influx2: False
database: grottdb
ip: localhost
port: 8086
user: grott
password: secret
organization: grottorg
bucket: grottdb
token: secret
_Extension:
extension: False
extname: grottext
extvar: {'none': 'none'}

Grott proxy mode started
**********************************************************************************
- Grott - libscrc not installed, no CRC checking only record validation on length!
**********************************************************************************
Hostname : 1ef934e0-grott-beta
IP : 172.30.33.13 , port : 5279

 `

` MQTT jsonmsg:
{"device": "XXX", "time": "2024-06-25T05:14:19", "buffered": "yes",
"values": {"pvserial": "YYY", "pvstatus": 0, "pvpowerin": 0,
"pv1voltage": 4149, "pv1current": 0, "pv1watt": 0, "pv2voltage": 1876,
"pv2current": 0, "pv2watt": 0, "pv3voltage": 0, "pv3current": 0, "pv3watt":
0, "pv4voltage": 0, "pv4current": 0, "pv4watt": 0, "pvpowerout": 0,
"pvfrequentie": 4999, "pvgridvoltage": 2353, "pvgridcurrent": 0,
"pvgridpower": 0, "pvgridvoltage2": 2327, "pvgridcurrent2": 0,
"pvgridpower2": 0, "pvgridvoltage3": 2317, "pvgridcurrent3": 0,
"pvgridpower3": 0, "vacrs": 4052, "vacst": 4020, "vactr": 4043,
"ptousertotal": 2513, "ptogridtotal": 0, "ptoloadtotal": 2513,
"totworktime": 8671065, "pvenergytoday": 0, "pvenergytotal": 21455,
"epvtotal": 22070, "epv1today": 0, "epv1total": 14964, "epv2today": 0,
"epv2total": 7106, "epv3today": 0, "epv3total": 0, "etousertoday": 0,
"etousertotal": 4436, "etogridtoday": 0, "etogridtotal": 15902,
"eloadtoday": 0, "eloadtotal": 10604, "deratingmode": 0, "iso": 4735,
"dcir": 0, "dcis": 0, "dcit": 0, "gfci": 4150, "pvtemperature": 301,
"pvipmtemperature": 473, "temp3": 292, "temp4": 0, "temp5": 348,
"pbusvoltage": 2106, "nbusvoltage": 2042, "ipf": 20000, "realoppercent": 0,
"opfullwatt": 60000, "standbyflag": 0, "faultcode": 0, "warningcode": 0,
"systemfaultword0": 0, "systemfaultword1": 0, "systemfaultword2": 0,
"systemfaultword3": 0, "systemfaultword4": 0, "systemfaultword5": 0,
"systemfaultword6": 0, "systemfaultword7": 0, "invstartdelaytime": 51,
"bdconoffstate": 0, "drycontactstate": 0, "edischrtoday": 0, "edischrtotal":
0, "echrtoday": 0, "echrtotal": 0, "eacchrtoday": 0, "eacchrtotal": 0,
"priority": 0, "epsfac": 0, "epsvac1": 0, "epsiac1": 0, "epspac1": 0,
"epsvac2": 0, "epsiac2": 0, "epspac2": 0, "epsvac3": 0, "epsiac3": 0,
"epspac3": 0, "epspac": 0, "loadpercent": 0, "pf": 10000, "dcv": 0,
"bdc1_sysstatemode": 0, "bdc1_faultcode": 0, "bdc1_warncode": 0,
"bdc1_vbat": 0, "bdc1_ibat": 0, "bdc1_soc": 0, "bdc1_vbus1": 0,
"bdc1_vbus2": 0, "bdc1_ibb": 0, "bdc1_illc": 0, "bdc1_tempa": 0,
"bdc1_tempb": 0, "bdc1_pdischr": 0, "bdc1_pchr": 0, "bdc1_edischrtotal": 0,
"bdc1_echrtotal": 0, "bdc1_flag": 0, "bdc2_sysstatemode": 0,
"bdc2_faultcode": 0, "bdc2_warncode": 0, "bdc2_vbat": 0, "bdc2_ibat": 0,
"bdc2_soc": 0, "bdc2_vbus1": 0, "bdc2_vbus2": 0, "bdc2_ibb": 0, "bdc2_illc":
0, "bdc2_tempa": 0, "bdc2_tempb": 0, "bdc2_pdischr": 0, "bdc2_pchr": 0,
"bdc2_edischrtotal": 0, "bdc2_echrtotal": 0, "bdc2_flag": 0, "bms_status":
0, "bms_error": 0, "bms_warninfo": 0, "bms_soc": 0, "bms_batteryvolt": 0,
"bms_batterycurr": 0, "bms_batterytemp": 0, "bms_maxcurr": 0,
"bms_deltavolt": 0, "bms_cyclecnt": 0, "bms_soh": 0, "bms_constantvolt": 0,
"bms_bms_info": 0, "bms_packinfo": 0, "bms_usingcap": 0, "bms_fw": 0,
"bms_mcuversion": 0, "bms_commtype": 0}}
- Grott MQTT topic used : energy/growatt
- MQTT message message sent
- Grott Send data to PVOutput disabled
- Grott Send data to Influx disabled
- Grott extension processing disabled

 - Growatt packet received:
	  <socket.socket fd=5, family=2, type=1, proto=0, laddr=('172.30.33.13', 5279), raddr=('192.168.2.10', 22467)>
 - Data less then minimum record length, data not processed

`

The MQTT log is showing:

2024-06-25 11:09:32: New connection from 172.30.33.13:47553 on port 1883.
2024-06-25 11:09:32: New client connected from 172.30.33.13:47553 as automatic (p2, c1, k60, u'addons').
2024-06-25 11:09:32: Client automatic disconnected.

Stoped working on 25 October

Shinephone stoped working also
Logg:
T06NNNN :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'recortype1': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num'}, 'pvpowerin': {'value': 162, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 174, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 178, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 190, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 202, 'length': 4, 'type': 'numx', 'divide': 10}, 'pvfrequentie': {'value': 210, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 214, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 218, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 222, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 230, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 234, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 238, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 246, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 250, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 254, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 262, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 270, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 278, 'length': 4, 'type': 'num', 'divide': 7200}, 'pvtemperature': {'value': 286, 'length': 2, 'type': 'num', 'divide': 10}, 'isof': {'value': 290, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'gfcif': {'value': 294, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'dcif': {'value': 298, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'vpvfault': {'value': 302, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'vacfault': {'value': 306, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'facfault': {'value': 310, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'tmpfault': {'value': 314, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'faultcode': {'value': 318, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'pvipmtemperature': {'value': 322, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 326, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'nbusvolt': {'value': 330, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'epv1today': {'value': 358, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 366, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 374, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 382, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 390, 'length': 4, 'type': 'num', 'divide': 10}}
T05NNNNX :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 36, 'length': 10, 'type': 'text'}, 'date': {'value': 56, 'divide': 10}, 'recortype1': {'value': 70, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 74, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 78, 'length': 2, 'type': 'num'}, 'pvpowerin': {'value': 82, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 90, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 94, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 98, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 106, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 110, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 114, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 170, 'length': 4, 'type': 'numx', 'divide': 10}, 'pvfrequentie': {'value': 178, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 182, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 190, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 198, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 202, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 206, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 214, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 218, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 222, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 266, 'length': 4, 'type': 'num', 'divide': 7200}, 'pvenergytoday': {'value': 274, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 282, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 290, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1today': {'value': 298, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 306, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 314, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 322, 'length': 4, 'type': 'num', 'divide': 10}, 'pvtemperature': {'value': 450, 'length': 2, 'type': 'num', 'divide': 10}, 'pvipmtemperature': {'value': 466, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 470, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'nbusvolt': {'value': 474, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}}
T06NNNNX :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'recortype1': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num'}, 'pvpowerin': {'value': 162, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 174, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 178, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 190, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 250, 'length': 4, 'type': 'numx', 'divide': 10}, 'pvfrequentie': {'value': 258, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 262, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 266, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 270, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 278, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 282, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 294, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 298, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 302, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 346, 'length': 4, 'type': 'num', 'divide': 7200}, 'pvenergytoday': {'value': 354, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 362, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 370, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1today': {'value': 378, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 386, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 394, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 402, 'length': 4, 'type': 'num', 'divide': 10}, 'pvtemperature': {'value': 530, 'length': 2, 'type': 'num', 'divide': 10}, 'pvipmtemperature': {'value': 546, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 550, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'nbusvolt': {'value': 554, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}}
T06NNNNXSPH :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'recortype1': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num'}, 'pvpowerin': {'value': 162, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 174, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 178, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 190, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 298, 'length': 4, 'type': 'numx', 'divide': 10}, 'pvfrequentie': {'value': 306, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 310, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 314, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 318, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 326, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 330, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 334, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 342, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 346, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 350, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 386, 'length': 4, 'type': 'num', 'divide': 7200}, 'eactoday': {'value': 370, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 370, 'length': 4, 'type': 'num', 'divide': 10}, 'eactotal': {'value': 378, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 522, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1today': {'value': 394, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 402, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 410, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 418, 'length': 4, 'type': 'num', 'divide': 10}, 'pvtemperature': {'value': 530, 'length': 2, 'type': 'num', 'divide': 10}, 'pvipmtemperature': {'value': 534, 'length': 2, 'type': 'num', 'divide': 10}, 'pvboosttemp': {'value': 538, 'length': 2, 'type': 'num', 'divide': 10}, 'bat_dsp': {'value': 546, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 550, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#nbusvolt': {'value': 554, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#ipf': {'value': 558, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#realoppercent': {'value': 562, 'length': 2, 'type': 'num', 'divide': 100, 'incl': 'no'}, '#opfullwatt': {'value': 566, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#deratingmode': {'value': 574, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'eacharge_today': {'value': 606, 'length': 4, 'type': 'num', 'divide': 10}, 'eacharge_total': {'value': 614, 'length': 4, 'type': 'num', 'divide': 10}, 'batterytype': {'value': 634, 'length': 2, 'type': 'num', 'divide': 1}, 'uwsysworkmode': {'value': 666, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword0': {'value': 670, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword1': {'value': 674, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword2': {'value': 678, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword3': {'value': 682, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword4': {'value': 686, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword5': {'value': 690, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword6': {'value': 694, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword7': {'value': 698, 'length': 2, 'type': 'num', 'divide': 1}, 'pdischarge1': {'value': 702, 'length': 4, 'type': 'num', 'divide': 10}, 'p1charge1': {'value': 710, 'length': 4, 'type': 'num', 'divide': 10}, 'vbat': {'value': 718, 'length': 2, 'type': 'num', 'divide': 10}, 'SOC': {'value': 722, 'length': 2, 'type': 'num', 'divide': 1}, 'pactouserr': {'value': 726, 'length': 4, 'type': 'num', 'divide': 10}, '#pactousers': {'value': 734, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#pactousert': {'value': 742, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pactousertot': {'value': 750, 'length': 4, 'type': 'num', 'divide': 10}, 'pactogridr': {'value': 758, 'length': 4, 'type': 'num', 'divide': 10}, '#pactogrids': {'value': 766, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#pactogridt': {'value': 774, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pactogridtot': {'value': 782, 'length': 4, 'type': 'num', 'divide': 10}, 'plocaloadr': {'value': 790, 'length': 4, 'type': 'num', 'divide': 10}, '#plocaloads': {'value': 798, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#plocaloadt': {'value': 806, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'plocaloadtot': {'value': 814, 'length': 4, 'type': 'num', 'divide': 10}, '#ipm': {'value': 822, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#battemp': {'value': 826, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'spdspstatus': {'value': 830, 'length': 2, 'type': 'num', 'divide': 10}, 'spbusvolt': {'value': 834, 'length': 2, 'type': 'num', 'divide': 10}, 'etouser_tod': {'value': 842, 'length': 4, 'type': 'num', 'divide': 10}, 'etouser_tot': {'value': 850, 'length': 4, 'type': 'num', 'divide': 10}, 'etogrid_tod': {'value': 858, 'length': 4, 'type': 'num', 'divide': 10}, 'etogrid_tot': {'value': 866, 'length': 4, 'type': 'num', 'divide': 10}, 'edischarge1_tod': {'value': 874, 'length': 4, 'type': 'num', 'divide': 10}, 'edischarge1_tot': {'value': 882, 'length': 4, 'type': 'num', 'divide': 10}, 'eharge1_tod': {'value': 890, 'length': 4, 'type': 'num', 'divide': 10}, 'eharge1_tot': {'value': 898, 'length': 4, 'type': 'num', 'divide': 10}, 'elocalload_tod': {'value': 906, 'length': 4, 'type': 'num', 'divide': 10}, 'elocalload_tot': {'value': 914, 'length': 4, 'type': 'num', 'divide': 10}}
T05NNNNSPF :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'divide': 10, 'incl': 'yes'}, 'pvserial': {'value': 36, 'length': 10, 'type': 'text'}, 'date': {'value': 56, 'divide': 10}, 'recortype1': {'value': 70, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 74, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 78, 'length': 2, 'type': 'num'}, 'vpv1': {'value': 82, 'length': 2, 'type': 'num', 'divide': 10}, 'vpv2': {'value': 86, 'length': 2, 'type': 'num', 'divide': 10}, 'ppv1': {'value': 90, 'length': 4, 'type': 'num', 'divide': 10}, 'ppv2': {'value': 98, 'length': 4, 'type': 'num', 'divide': 10}, 'buck1curr': {'value': 106, 'length': 2, 'type': 'num', 'divide': 10}, 'buck2curr': {'value': 110, 'length': 2, 'type': 'num', 'divide': 10}, 'op_watt': {'value': 114, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 114, 'length': 4, 'type': 'num', 'divide': 10}, 'op_va': {'value': 122, 'length': 4, 'type': 'num', 'divide': 10}, 'acchr_watt': {'value': 130, 'length': 4, 'type': 'num', 'divide': 10}, 'acchr_VA': {'value': 138, 'length': 4, 'type': 'num', 'divide': 10}, 'bat_Volt': {'value': 146, 'length': 2, 'type': 'num', 'divide': 100}, 'batterySoc': {'value': 150, 'length': 2, 'type': 'num', 'divide': 1}, 'bus_volt': {'value': 154, 'length': 2, 'type': 'num', 'divide': 10}, 'grid_volt': {'value': 158, 'length': 2, 'type': 'num', 'divide': 10}, 'line_freq': {'value': 162, 'length': 2, 'type': 'num', 'divide': 100}, 'outputvolt': {'value': 166, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridvoltage': {'value': 166, 'length': 2, 'type': 'num', 'divide': 10}, 'outputfreq': {'value': 170, 'length': 2, 'type': 'num', 'divide': 100}, 'invtemp': {'value': 178, 'length': 2, 'type': 'num', 'divide': 10}, 'dcdctemp': {'value': 182, 'length': 2, 'type': 'num', 'divide': 10}, 'loadpercent': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'buck1_ntc': {'value': 206, 'length': 2, 'type': 'num', 'divide': 10}, 'buck2_ntc': {'value': 210, 'length': 2, 'type': 'num', 'divide': 10}, 'OP_Curr': {'value': 214, 'length': 2, 'type': 'num', 'divide': 10}, 'Inv_Curr': {'value': 218, 'length': 2, 'type': 'num', 'divide': 10}, 'AC_InWatt': {'value': 222, 'length': 4, 'type': 'num', 'divide': 10}, 'AC_InVA': {'value': 230, 'length': 4, 'type': 'num', 'divide': 10}, 'faultBit': {'value': 238, 'length': 2, 'type': 'num', 'divide': 1}, 'warningBit': {'value': 242, 'length': 2, 'type': 'num', 'divide': 1}, 'faultValue': {'value': 246, 'length': 2, 'type': 'num', 'divide': 1}, 'warningValue': {'value': 250, 'length': 2, 'type': 'num', 'divide': 1}, 'constantPowerOK': {'value': 266, 'length': 2, 'type': 'num', 'divide': 1}, 'epv1tod': {'value': 270, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'epv1tot': {'value': 278, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'epvToday': {'value': 278, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 278, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2tod': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'epvTotal': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2tot': {'value': 294, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'eacCharToday': {'value': 310, 'length': 4, 'type': 'num', 'divide': 10}, 'eacCharTotal': {'value': 318, 'length': 4, 'type': 'num', 'divide': 10}, 'ebatDischarToday': {'value': 326, 'length': 4, 'type': 'num', 'divide': 10}, 'ebatDischarTotal': {'value': 334, 'length': 4, 'type': 'num', 'divide': 10}, 'eacDischarToday': {'value': 342, 'length': 4, 'type': 'num', 'divide': 10}, 'eacDischarTotal': {'value': 350, 'length': 4, 'type': 'num', 'divide': 10}, 'ACCharCurr': {'value': 358, 'length': 2, 'type': 'num', 'divide': 10}, 'ACDischarWatt': {'value': 362, 'length': 4, 'type': 'num', 'divide': 10}, 'ACDischarVA': {'value': 370, 'length': 4, 'type': 'num', 'divide': 10}, 'BatDischarWatt': {'value': 378, 'length': 4, 'type': 'num', 'divide': 10}, 'BatDischarVA': {'value': 386, 'length': 4, 'type': 'num', 'divide': 10}, 'BatWatt': {'value': 394, 'length': 4, 'type': 'numx', 'divide': 10}}
T06NNNNSPF :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'recortype1': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num'}, 'vpv1': {'value': 162, 'length': 2, 'type': 'num', 'divide': 10}, 'vpv2': {'value': 166, 'length': 2, 'type': 'num', 'divide': 10}, 'ppv1': {'value': 170, 'length': 4, 'type': 'num', 'divide': 10}, 'ppv2': {'value': 178, 'length': 4, 'type': 'num', 'divide': 10}, 'buck1curr': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'buck2curr': {'value': 190, 'length': 2, 'type': 'num', 'divide': 10}, 'op_watt': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'op_va': {'value': 204, 'length': 4, 'type': 'num', 'divide': 10}, 'acchr_watt': {'value': 210, 'length': 4, 'type': 'num', 'divide': 10}, 'acchr_VA': {'value': 218, 'length': 4, 'type': 'num', 'divide': 10}, 'bat_Volt': {'value': 226, 'length': 2, 'type': 'num', 'divide': 100}, 'batterySoc': {'value': 230, 'length': 2, 'type': 'num', 'divide': 1}, 'bus_volt': {'value': 234, 'length': 2, 'type': 'num', 'divide': 10}, 'grid_volt': {'value': 238, 'length': 2, 'type': 'num', 'divide': 10}, 'line_freq': {'value': 242, 'length': 2, 'type': 'num', 'divide': 100}, 'outputvolt': {'value': 246, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridvoltage': {'value': 246, 'length': 2, 'type': 'num', 'divide': 10}, 'outputfreq': {'value': 250, 'length': 2, 'type': 'num', 'divide': 100}, 'invtemp': {'value': 258, 'length': 2, 'type': 'num', 'divide': 10}, 'dcdctemp': {'value': 262, 'length': 2, 'type': 'num', 'divide': 10}, 'loadpercent': {'value': 266, 'length': 2, 'type': 'num', 'divide': 10}, 'buck1_ntc': {'value': 286, 'length': 2, 'type': 'num', 'divide': 10}, 'buck2_ntc': {'value': 290, 'length': 2, 'type': 'num', 'divide': 10}, 'OP_Curr': {'value': 294, 'length': 2, 'type': 'num', 'divide': 10}, 'Inv_Curr': {'value': 298, 'length': 2, 'type': 'num', 'divide': 10}, 'AC_InWatt': {'value': 302, 'length': 4, 'type': 'num', 'divide': 10}, 'AC_InVA': {'value': 310, 'length': 4, 'type': 'num', 'divide': 10}, 'faultBit': {'value': 318, 'length': 2, 'type': 'num', 'divide': 1}, 'warningBit': {'value': 322, 'length': 2, 'type': 'num', 'divide': 1}, 'faultValue': {'value': 326, 'length': 2, 'type': 'num', 'divide': 1}, 'warningValue': {'value': 330, 'length': 2, 'type': 'num', 'divide': 1}, 'constantPowerOK': {'value': 346, 'length': 2, 'type': 'num', 'divide': 1}, 'epvtoday': {'value': 358, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 358, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 366, 'length': 4, 'type': 'num', 'divide': 10}, 'eacCharToday': {'value': 390, 'length': 4, 'type': 'num', 'divide': 10}, 'eacCharTotal': {'value': 398, 'length': 4, 'type': 'num', 'divide': 10}, 'ebatDischarToday': {'value': 406, 'length': 4, 'type': 'num', 'divide': 10}, 'ebatDischarTotal': {'value': 414, 'length': 4, 'type': 'num', 'divide': 10}, 'eacDischarToday': {'value': 422, 'length': 4, 'type': 'num', 'divide': 10}, 'eacDischarTotal': {'value': 430, 'length': 4, 'type': 'num', 'divide': 10}, 'ACCharCurr': {'value': 438, 'length': 2, 'type': 'num', 'divide': 10}, 'ACDischarWatt': {'value': 442, 'length': 4, 'type': 'num', 'divide': 10}, 'ACDischarVA': {'value': 450, 'length': 4, 'type': 'num', 'divide': 10}, 'BatDischarWatt': {'value': 458, 'length': 4, 'type': 'num', 'divide': 10}, 'BatDischarVA': {'value': 466, 'length': 4, 'type': 'num', 'divide': 10}, 'BatWatt': {'value': 474, 'length': 4, 'type': 'numx', 'divide': 10}}
T06NNNNXTL3 :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'recortype1': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num'}, 'pvpowerin': {'value': 162, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 174, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 178, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 190, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pv3voltage': {'value': 202, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pv3current': {'value': 206, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pv3watt': {'value': 210, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pvpowerout': {'value': 298, 'length': 4, 'type': 'numx', 'divide': 10}, 'pvfrequentie': {'value': 306, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 310, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 314, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 318, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 326, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 330, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 334, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 342, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 346, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 350, 'length': 4, 'type': 'num', 'divide': 10}, 'Vac_RS': {'value': 358, 'length': 2, 'type': 'num', 'divide': 10}, 'Vac_ST': {'value': 362, 'length': 2, 'type': 'num', 'divide': 10}, 'Vac_TR': {'value': 366, 'length': 2, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 370, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 378, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 386, 'length': 4, 'type': 'num', 'divide': 7200}, 'epv1today': {'value': 394, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 402, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 410, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 418, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 522, 'length': 4, 'type': 'num', 'divide': 10}, 'pvtemperature': {'value': 530, 'length': 2, 'type': 'num', 'divide': 10}, 'pvipmtemperature': {'value': 534, 'length': 2, 'type': 'num', 'divide': 10}, 'pvboottemperature': {'value': 538, 'length': 2, 'type': 'num', 'divide': 10}, 'temp4': {'value': 542, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'uwBatVolt_DSP': {'value': 546, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 550, 'length': 2, 'type': 'num', 'divide': 1}, 'nbusvolt': {'value': 554, 'length': 2, 'type': 'num', 'divide': 1}}
T060120 :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'voltage_l1': {'value': 160, 'length': 4, 'type': 'num', 'divide': 10}, 'voltage_l2': {'value': 168, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'voltage_l3': {'value': 176, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'Current_l1': {'value': 184, 'length': 4, 'type': 'num', 'divide': 10}, 'Current_l2': {'value': 192, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'Current_l3': {'value': 200, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'act_power_l1': {'value': 208, 'length': 4, 'type': 'numx', 'divide': 10}, 'act_power_l2': {'value': 216, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'act_power_l3': {'value': 224, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'app_power_l1': {'value': 232, 'length': 4, 'type': 'numx', 'divide': 10}, 'app_power_l2': {'value': 240, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'app_power_l3': {'value': 248, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'react_power_l1': {'value': 256, 'length': 4, 'type': 'numx', 'divide': 10}, 'react_power_l2': {'value': 264, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'react_power_l3': {'value': 272, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'powerfactor_l1': {'value': 280, 'length': 4, 'type': 'numx', 'divide': 1000}, 'powerfactor_l2': {'value': 288, 'length': 4, 'type': 'numx', 'divide': 1000, 'incl': 'yes'}, 'powerfactor_l3': {'value': 296, 'length': 4, 'type': 'numx', 'divide': 1000, 'incl': 'yes'}, 'pos_rev_act_power': {'value': 304, 'length': 4, 'type': 'numx', 'divide': 10}, 'pos_act_power': {'value': 304, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'rev_act_power': {'value': 304, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'yes'}, 'app_power': {'value': 312, 'length': 4, 'type': 'numx', 'divide': 10}, 'react_power': {'value': 320, 'length': 4, 'type': 'numx', 'divide': 10}, 'powerfactor': {'value': 328, 'length': 4, 'type': 'numx', 'divide': 1000}, 'frequency': {'value': 336, 'length': 4, 'type': 'num', 'divide': 10}, 'L1-2_voltage': {'value': 344, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'L2-3_voltage': {'value': 352, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'L3-1_voltage': {'value': 360, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'yes'}, 'pos_act_energy': {'value': 368, 'length': 4, 'type': 'numx', 'divide': 10}, 'rev_act_energy': {'value': 376, 'length': 4, 'type': 'numx', 'divide': 10}, 'pos_act_energy_kvar': {'value': 384, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'no'}, 'rev_act_energy_kvar': {'value': 392, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'no'}, 'app_energy_kvar': {'value': 400, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'no'}, 'act_energy_kwh': {'value': 408, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'no'}, 'react_energy_kvar': {'value': 416, 'length': 4, 'type': 'numx', 'divide': 10, 'incl': 'no'}}
T06501b :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'device': {'value': 'SDM630', 'type': 'def', 'incl': 'no'}, 'logstart': {'value': 96, 'type': 'def', 'incl': 'no'}, 'active_energy': {'pos': 1, 'type': 'log'}, 'reactive_energy': {'pos': 2, 'type': 'log'}, 'activePowerL1': {'pos': 3, 'type': 'log'}, 'activePowerL2': {'pos': 4, 'type': 'log'}, 'activePowerL3': {'pos': 5, 'type': 'log'}, 'reactivePowerL1': {'pos': 6, 'type': 'log'}, 'reactivePowerL2': {'pos': 7, 'type': 'log'}, 'reactivePowerL3': {'pos': 8, 'type': 'log'}, 'apperentPowerL1': {'pos': 9, 'type': 'log'}, 'apperentPowerL2': {'pos': 10, 'type': 'log'}, 'apperentPowerL3': {'pos': 11, 'type': 'log'}, 'powerFactorL1': {'pos': 12, 'type': 'log'}, 'powerFactorL2': {'pos': 13, 'type': 'log'}, 'powerFactorL3': {'pos': 14, 'type': 'log'}, 'voltageL1': {'pos': 15, 'type': 'log'}, 'voltageL2': {'pos': 16, 'type': 'log'}, 'voltageL3': {'pos': 17, 'type': 'log'}, 'currentL1': {'pos': 18, 'type': 'log'}, 'currentL2': {'pos': 19, 'type': 'log'}, 'currentL3': {'pos': 20, 'type': 'log'}, 'power': {'pos': 21, 'type': 'log'}, 'active_power': {'pos': 21, 'type': 'logpos'}, 'reverse_active_power': {'pos': 21, 'type': 'logneg'}, 'apparent_power': {'pos': 22, 'type': 'log'}, 'reactive_power': {'pos': 23, 'type': 'log'}, 'power_factor': {'pos': 24, 'type': 'log'}, 'frequency': {'pos': 25, 'type': 'log'}, 'posiActivePower': {'pos': 26, 'type': 'log'}, 'reverActivePower': {'pos': 27, 'type': 'log'}, 'posiReactivePower': {'pos': 28, 'type': 'log'}, 'reverReactivePower': {'pos': 29, 'type': 'log'}, 'apparentEnergy': {'pos': 30, 'type': 'log'}, 'totalActiveEnergyL1': {'pos': 31, 'type': 'log'}, 'totalActiveEnergyL2': {'pos': 32, 'type': 'log'}, 'totalActiveEnergyL3': {'pos': 33, 'type': 'log'}, 'totalRectiveEnergyL1': {'pos': 34, 'type': 'log'}, 'totalRectiveEnergyL2': {'pos': 35, 'type': 'log'}, 'totalRectiveEnergyL3': {'pos': 36, 'type': 'log'}, 'total_energy': {'pos': 37, 'type': 'log'}, 'l1Voltage2': {'pos': 38, 'type': 'log'}, 'l2Voltage3': {'pos': 39, 'type': 'log'}, 'l3Voltage1': {'pos': 40, 'type': 'log'}, 'pos41': {'pos': 41, 'type': 'log', 'incl': 'no'}, 'pos42': {'pos': 42, 'type': 'log', 'incl': 'no'}, 'pos43': {'pos': 43, 'type': 'log', 'incl': 'no'}, 'pos44': {'pos': 44, 'type': 'log', 'incl': 'no'}, 'pos45': {'pos': 45, 'type': 'log', 'incl': 'no'}, 'pos46': {'pos': 46, 'type': 'log', 'incl': 'no'}, 'pos47': {'pos': 47, 'type': 'log', 'incl': 'no'}, 'pos48': {'pos': 48, 'type': 'log', 'incl': 'no'}, 'pos49': {'pos': 49, 'type': 'log', 'incl': 'no'}, 'pos50': {'pos': 50, 'type': 'log', 'incl': 'no'}, 'pos51': {'pos': 51, 'type': 'log', 'incl': 'no'}, 'pos52': {'pos': 52, 'type': 'log', 'incl': 'no'}, 'pos53': {'pos': 53, 'type': 'log', 'incl': 'no'}, 'pos54': {'pos': 54, 'type': 'log', 'incl': 'no'}, 'pos55': {'pos': 55, 'type': 'log', 'incl': 'no'}, 'pos56': {'pos': 56, 'type': 'log', 'incl': 'no'}, 'pos57': {'pos': 57, 'type': 'log', 'incl': 'no'}, 'pos58': {'pos': 58, 'type': 'log', 'incl': 'no'}, 'pos59': {'pos': 59, 'type': 'log', 'incl': 'no'}, 'pos60': {'pos': 60, 'type': 'log', 'incl': 'no'}, 'pos61': {'pos': 61, 'type': 'log', 'incl': 'no'}, 'pos62': {'pos': 62, 'type': 'log', 'incl': 'no'}, 'pos63': {'pos': 63, 'type': 'log', 'incl': 'no'}, 'pos64': {'pos': 64, 'type': 'log', 'incl': 'no'}, 'pos65': {'pos': 65, 'type': 'log', 'incl': 'no'}, 'pos66': {'pos': 66, 'type': 'log', 'incl': 'no'}}
T05NNNNXSPH :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 36, 'length': 10, 'type': 'text'}, 'date': {'value': 56, 'divide': 10}, 'recortype1': {'value': 70, 'length': 2, 'type': 'num', 'incl': 'no'}, 'recortype2': {'value': 74, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 78, 'length': 2, 'type': 'num'}, 'pvpowerin': {'value': 82, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 90, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 94, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 98, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 106, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 110, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 114, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 218, 'length': 4, 'type': 'numx', 'divide': 10}, 'pvfrequentie': {'value': 226, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 230, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 234, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 238, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 246, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 250, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 254, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 262, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 266, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 270, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 306, 'length': 4, 'type': 'num', 'divide': 7200}, 'eactoday': {'value': 290, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 290, 'length': 4, 'type': 'num', 'divide': 10}, 'eactotal': {'value': 298, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 442, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1today': {'value': 314, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 322, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 330, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 338, 'length': 4, 'type': 'num', 'divide': 10}, 'pvtemperature': {'value': 450, 'length': 2, 'type': 'num', 'divide': 10}, 'pvipmtemperature': {'value': 454, 'length': 2, 'type': 'num', 'divide': 10}, 'pvboosttemp': {'value': 458, 'length': 2, 'type': 'num', 'divide': 10}, 'bat_dsp': {'value': 466, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 470, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#nbusvolt': {'value': 474, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#ipf': {'value': 478, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#realoppercent': {'value': 482, 'length': 2, 'type': 'num', 'divide': 100, 'incl': 'no'}, '#opfullwatt': {'value': 486, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#deratingmode': {'value': 494, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'eacharge_today': {'value': 526, 'length': 4, 'type': 'num', 'divide': 10}, 'eacharge_total': {'value': 534, 'length': 4, 'type': 'num', 'divide': 10}, 'batterytype': {'value': 554, 'length': 2, 'type': 'num', 'divide': 1}, 'uwsysworkmode': {'value': 586, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword0': {'value': 590, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword1': {'value': 594, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword2': {'value': 588, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword3': {'value': 602, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword4': {'value': 606, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword5': {'value': 610, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword6': {'value': 614, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword7': {'value': 618, 'length': 2, 'type': 'num', 'divide': 1}, 'pdischarge1': {'value': 622, 'length': 4, 'type': 'num', 'divide': 10}, 'p1charge1': {'value': 630, 'length': 4, 'type': 'num', 'divide': 10}, 'vbat': {'value': 738, 'length': 2, 'type': 'num', 'divide': 10}, 'SOC': {'value': 742, 'length': 2, 'type': 'num', 'divide': 1}, 'pactouserr': {'value': 746, 'length': 4, 'type': 'num', 'divide': 10}, '#pactousers': {'value': 654, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#pactousert': {'value': 662, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pactousertot': {'value': 670, 'length': 4, 'type': 'num', 'divide': 10}, 'pactogridr': {'value': 678, 'length': 4, 'type': 'num', 'divide': 10}, '#pactogrids': {'value': 686, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#pactogridt': {'value': 694, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'pactogridtot': {'value': 702, 'length': 4, 'type': 'num', 'divide': 10}, 'plocaloadr': {'value': 710, 'length': 4, 'type': 'num', 'divide': 10}, '#plocaloads': {'value': 718, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#plocaloadt': {'value': 726, 'length': 4, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'plocaloadtot': {'value': 734, 'length': 4, 'type': 'num', 'divide': 10}, '#ipm': {'value': 742, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, '#battemp': {'value': 746, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'spdspstatus': {'value': 750, 'length': 2, 'type': 'num', 'divide': 10}, 'spbusvolt': {'value': 754, 'length': 2, 'type': 'num', 'divide': 10}, 'etouser_tod': {'value': 762, 'length': 4, 'type': 'num', 'divide': 10}, 'etouser_tot': {'value': 770, 'length': 4, 'type': 'num', 'divide': 10}, 'etogrid_tod': {'value': 778, 'length': 4, 'type': 'num', 'divide': 10}, 'etogrid_tot': {'value': 786, 'length': 4, 'type': 'num', 'divide': 10}, 'edischarge1_tod': {'value': 794, 'length': 4, 'type': 'num', 'divide': 10}, 'edischarge1_tot': {'value': 802, 'length': 4, 'type': 'num', 'divide': 10}, 'eharge1_tod': {'value': 810, 'length': 4, 'type': 'num', 'divide': 10}, 'eharge1_tot': {'value': 818, 'length': 4, 'type': 'num', 'divide': 10}, 'elocalload_tod': {'value': 826, 'length': 4, 'type': 'num', 'divide': 10}, 'elocalload_tot': {'value': 834, 'length': 4, 'type': 'num', 'divide': 10}}
T06NNNNXSPA :
{'decrypt': {'value': 'True'}, 'datalogserial': {'value': 16, 'length': 10, 'type': 'text', 'incl': 'yes'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text'}, 'date': {'value': 136, 'divide': 10}, 'group1start': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'group1end': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num'}, 'uwsysworkmode': {'value': 666, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword0': {'value': 162, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword1': {'value': 166, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword2': {'value': 170, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword3': {'value': 174, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword4': {'value': 178, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword5': {'value': 182, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword6': {'value': 186, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword7': {'value': 190, 'length': 2, 'type': 'num', 'divide': 1}, 'pdischarge1': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pcharge1': {'value': 202, 'length': 4, 'type': 'num', 'divide': 10}, 'vbat': {'value': 210, 'length': 2, 'type': 'num', 'divide': 10}, 'SOC': {'value': 214, 'length': 2, 'type': 'num', 'divide': 1}, 'pactouserr': {'value': 218, 'length': 4, 'type': 'num', 'divide': 10}, 'pactousers': {'value': 226, 'length': 4, 'type': 'num', 'divide': 10}, 'pactousert': {'value': 234, 'length': 4, 'type': 'num', 'divide': 10}, 'pactousertot': {'value': 242, 'length': 4, 'type': 'num', 'divide': 10}, 'pactogridr': {'value': 250, 'length': 4, 'type': 'num', 'divide': 10}, 'pactogrids ': {'value': 258, 'length': 4, 'type': 'num', 'divide': 10}, 'pactogrid t': {'value': 266, 'length': 4, 'type': 'num', 'divide': 10}, 'pactogridtot': {'value': 274, 'length': 4, 'type': 'num', 'divide': 10}, 'plocaloadr': {'value': 282, 'length': 4, 'type': 'num', 'divide': 10}, 'plocaloads': {'value': 290, 'length': 4, 'type': 'num', 'divide': 10}, 'plocaloadt': {'value': 298, 'length': 4, 'type': 'num', 'divide': 10}, 'plocaloadtot': {'value': 306, 'length': 4, 'type': 'num', 'divide': 10}, 'ipm': {'value': 314, 'length': 2, 'type': 'num', 'divide': 10}, 'battemp ': {'value': 318, 'length': 2, 'type': 'num', 'divide': 10}, 'spdspstatus': {'value': 322, 'length': 2, 'type': 'num', 'divide': 10}, 'spbusvolt': {'value': 328, 'length': 2, 'type': 'num', 'divide': 10}, 'etouser_tod': {'value': 334, 'length': 4, 'type': 'num', 'divide': 10}, 'etouser_tot': {'value': 342, 'length': 4, 'type': 'num', 'divide': 10}, 'etogrid_tod': {'value': 350, 'length': 4, 'type': 'num', 'divide': 10}, 'etogrid_tot': {'value': 358, 'length': 4, 'type': 'num', 'divide': 10}, 'edischarge1_tod': {'value': 366, 'length': 4, 'type': 'num', 'divide': 10}, 'edischarge1_tot': {'value': 374, 'length': 4, 'type': 'num', 'divide': 10}, 'eharge1_tod': {'value': 382, 'length': 4, 'type': 'num', 'divide': 10}, 'eharge1_tot': {'value': 390, 'length': 4, 'type': 'num', 'divide': 10}, 'elocalload_tod': {'value': 398, 'length': 4, 'type': 'num', 'divide': 10}, 'elocalload_tot': {'value': 406, 'length': 4, 'type': 'num', 'divide': 10}, 'dwexportlimitap': {'value': 414, 'length': 4, 'type': 'num', 'divide': 10}, 'epsfac': {'value': 426, 'length': 2, 'type': 'num', 'divide': 100}, 'epsvac1': {'value': 430, 'length': 2, 'type': 'num', 'divide': 10}, 'epsiac1': {'value': 434, 'length': 2, 'type': 'num', 'divide': 10}, 'epspac1': {'value': 438, 'length': 4, 'type': 'num', 'divide': 10}, 'epsvac2': {'value': 446, 'length': 2, 'type': 'num', 'divide': 10}, 'epsiac2': {'value': 450, 'length': 2, 'type': 'num', 'divide': 10}, 'epspac2': {'value': 454, 'length': 4, 'type': 'num', 'divide': 10}, 'epsvac3': {'value': 462, 'length': 2, 'type': 'num', 'divide': 10}, 'epsiac3': {'value': 466, 'length': 2, 'type': 'num', 'divide': 10}, 'epspac3': {'value': 470, 'length': 4, 'type': 'num', 'divide': 10}, 'loadpercent': {'value': 478, 'length': 2, 'type': 'num', 'divide': 1}, 'pf': {'value': 482, 'length': 2, 'type': 'num', 'divide': 10}, 'bmsstatusold': {'value': 486, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsstatus': {'value': 490, 'length': 2, 'type': 'num', 'divide': 1}, 'bmserrorold': {'value': 494, 'length': 2, 'type': 'num', 'divide': 1}, 'bmserror': {'value': 498, 'length': 2, 'type': 'num', 'divide': 1}, 'bmssoc': {'value': 502, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsbatteryvolt': {'value': 506, 'length': 2, 'type': 'num', 'divide': 100}, 'bmsbatterycurr': {'value': 510, 'length': 2, 'type': 'num', 'divide': 100}, 'bmsbatterytemp': {'value': 514, 'length': 2, 'type': 'num', 'divide': 100}, 'bmsmaxcurr': {'value': 518, 'length': 2, 'type': 'num', 'divide': 100}, 'bmsgaugerm': {'value': 522, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsgaugefcc': {'value': 526, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsfw': {'value': 530, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsdeltavolt': {'value': 534, 'length': 2, 'type': 'num', 'divide': 1}, 'bmscyclecnt': {'value': 538, 'length': 2, 'type': 'num', 'divide': 1}, 'bmssoh': {'value': 542, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsconstantvolt': {'value': 546, 'length': 2, 'type': 'num', 'divide': 100}, 'bmswarninfoold': {'value': 550, 'length': 2, 'type': 'num', 'divide': 1}, 'bmswarninfo': {'value': 554, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsgaugeiccurr': {'value': 558, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsmcuversion': {'value': 562, 'length': 2, 'type': 'num', 'divide': 100}, 'bmsgaugeversion': {'value': 566, 'length': 2, 'type': 'num', 'divide': 1}, 'bmswgaugefrversionl': {'value': 570, 'length': 2, 'type': 'num', 'divide': 1}, 'bmswgaugefrversionh': {'value': 574, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsbmsinfo': {'value': 578, 'length': 2, 'type': 'num', 'divide': 1}, 'bmspackinfo': {'value': 582, 'length': 2, 'type': 'num', 'divide': 1}, 'bmsusingcap': {'value': 586, 'length': 2, 'type': 'num', 'divide': 1}, 'bmscell1volt': {'value': 590, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell2volt': {'value': 594, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell3volt': {'value': 598, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell4volt': {'value': 602, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell5volt': {'value': 606, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell6volt': {'value': 610, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell7volt': {'value': 614, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell8volt': {'value': 618, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell9volt': {'value': 622, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell10volt': {'value': 626, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell11volt': {'value': 630, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell12volt': {'value': 634, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell13volt': {'value': 638, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell14volt': {'value': 642, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell15volt': {'value': 646, 'length': 2, 'type': 'num', 'divide': 100}, 'bmscell16volt': {'value': 650, 'length': 2, 'type': 'num', 'divide': 100}, 'acchargeenergytodayh': {'value': 654, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'group2start': {'value': 658, 'length': 2, 'type': 'num', 'incl': 'no'}, 'group2end': {'value': 662, 'length': 2, 'type': 'num', 'incl': 'no'}, 'acchargeenergytoday': {'value': 666, 'length': 2, 'type': 'num', 'divide': 1}, 'acchargeenergytotal': {'value': 670, 'length': 4, 'type': 'num', 'divide': 1}, 'acchargepower': {'value': 1638, 'length': 4, 'type': 'num', 'divide': 10}, '70%_invpoweradjust': {'value': 686, 'length': 2, 'type': 'num', 'divide': 1}, 'extraacpowertogrid': {'value': 1582, 'length': 4, 'type': 'num', 'divide': 10}, 'eextratoday': {'value': 1590, 'length': 4, 'type': 'num', 'divide': 10}, 'eextratotal': {'value': 1598, 'length': 4, 'type': 'num', 'divide': 10}, 'esystemtoday': {'value': 1606, 'length': 4, 'type': 'num', 'divide': 10}, 'esystemtotal': {'value': 1614, 'length': 4, 'type': 'num', 'divide': 10}, 'group3start': {'value': 1166, 'length': 2, 'type': 'num', 'incl': 'no'}, 'group3end': {'value': 1170, 'length': 2, 'type': 'num', 'incl': 'no'}, 'inverterstatus': {'value': 1174, 'length': 2, 'type': 'num', 'divide': 1}, 'pacs': {'value': 1314, 'length': 4, 'type': 'numx', 'divide': 10}, 'fac': {'value': 1322, 'length': 2, 'type': 'num', 'divide': 100}, 'vac1': {'value': 1326, 'length': 2, 'type': 'num', 'divide': 10}, 'iac1': {'value': 1330, 'length': 2, 'type': 'num', 'divide': 10}, 'pac1': {'value': 1334, 'length': 4, 'type': 'num', 'divide': 10}, 'eactoday': {'value': 1386, 'length': 4, 'type': 'num', 'divide': 10}, 'eactot': {'value': 1394, 'length': 4, 'type': 'num', 'divide': 10}, 'timetotal': {'value': 1402, 'length': 4, 'type': 'num', 'divide': 7200}, 'Temp1': {'value': 1546, 'length': 2, 'type': 'num', 'divide': 10}, 'Temp2': {'value': 1550, 'length': 2, 'type': 'num', 'divide': 10}, 'Temp3': {'value': 1554, 'length': 2, 'type': 'num', 'divide': 10}, 'Temp4': {'value': 1558, 'length': 2, 'type': 'num', 'divide': 10}, 'uwbatvoltdsp': {'value': 1562, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvoltage': {'value': 1566, 'length': 2, 'type': 'num', 'divide': 10}, 'nbusvoltage': {'value': 1570, 'length': 2, 'type': 'num', 'divide': 10}, 'remotectrlen': {'value': 1574, 'length': 2, 'type': 'num', 'divide': 1}, 'remotectrlpower': {'value': 1578, 'length': 2, 'type': 'num', 'divide': 1}, 'eacchargetoday': {'value': 1622, 'length': 4, 'type': 'num', 'divide': 10}, 'eacchargetotal': {'value': 1630, 'length': 4, 'type': 'num', 'divide': 10}, 'priority': {'value': 1646, 'length': 2, 'type': 'num', 'divide': 1}, 'batterytype': {'value': 1650, 'length': 2, 'type': 'num', 'divide': 1}, 'autoproofreadcmd': {'value': 1654, 'length': 2, 'type': 'num', 'divide': 1}}
T06NNNNXMIN :
{'decrypt': {'value': 'true'}, 'pvserial': {'value': 76, 'length': 10, 'type': 'text', 'divide': 10}, 'date': {'value': 136, 'divide': 10}, 'group1start': {'value': 150, 'length': 2, 'type': 'num', 'incl': 'no'}, 'group1end': {'value': 154, 'length': 2, 'type': 'num', 'incl': 'no'}, 'pvstatus': {'value': 158, 'length': 2, 'type': 'num', 'divide': 1}, 'pvpowerin': {'value': 162, 'length': 4, 'type': 'num', 'divide': 10}, 'pv1voltage': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1current': {'value': 174, 'length': 2, 'type': 'num', 'divide': 10}, 'pv1watt': {'value': 178, 'length': 4, 'type': 'num', 'divide': 10}, 'pv2voltage': {'value': 186, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2current': {'value': 190, 'length': 2, 'type': 'num', 'divide': 10}, 'pv2watt': {'value': 194, 'length': 4, 'type': 'num', 'divide': 10}, 'pv3voltage': {'value': 202, 'length': 2, 'type': 'num', 'divide': 10}, 'pv3current': {'value': 206, 'length': 2, 'type': 'num', 'divide': 10}, 'pv3watt': {'value': 210, 'length': 4, 'type': 'num', 'divide': 10}, 'pv4voltage': {'value': 218, 'length': 2, 'type': 'num', 'divide': 10}, 'pv4current': {'value': 222, 'length': 2, 'type': 'num', 'divide': 10}, 'pv4watt': {'value': 226, 'length': 4, 'type': 'num', 'divide': 10}, 'pvpowerout': {'value': 250, 'length': 4, 'type': 'num', 'divide': 10}, 'pvfrequentie': {'value': 258, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 262, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 266, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 270, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 278, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 282, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 294, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 298, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 302, 'length': 4, 'type': 'num', 'divide': 10}, 'vacrs': {'value': 310, 'length': 2, 'type': 'num', 'divide': 10}, 'vacst': {'value': 314, 'length': 2, 'type': 'num', 'divide': 10}, 'vactr': {'value': 318, 'length': 2, 'type': 'num', 'divide': 10}, 'ptousertotal': {'value': 322, 'length': 4, 'type': 'num', 'divide': 10}, 'ptogridtotal': {'value': 330, 'length': 4, 'type': 'num', 'divide': 10}, 'ptoloadtotal': {'value': 338, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 346, 'length': 4, 'type': 'num', 'divide': 7200}, 'pvenergytoday': {'value': 354, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 362, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal ': {'value': 370, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1today ': {'value': 378, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 386, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 394, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 402, 'length': 4, 'type': 'num', 'divide': 10}, 'epv3today': {'value': 410, 'length': 4, 'type': 'num', 'divide': 10}, 'epv3total': {'value': 418, 'length': 4, 'type': 'num', 'divide': 10}, 'etousertoday': {'value': 426, 'length': 4, 'type': 'num', 'divide': 10}, 'etousertotal': {'value': 434, 'length': 4, 'type': 'num', 'divide': 10}, 'etogridtoday': {'value': 442, 'length': 4, 'type': 'num', 'divide': 10}, 'etogridtotal': {'value': 450, 'length': 4, 'type': 'num', 'divide': 10}, 'eloadtoday': {'value': 458, 'length': 4, 'type': 'num', 'divide': 10}, 'eloadtotal': {'value': 466, 'length': 4, 'type': 'num', 'divide': 10}, 'deratingmode': {'value': 502, 'length': 2, 'type': 'num', 'divide': 1}, 'iso': {'value': 506, 'length': 2, 'type': 'num', 'divide': 1}, 'dcir': {'value': 510, 'length': 2, 'type': 'num', 'divide': 10}, 'dcis': {'value': 514, 'length': 2, 'type': 'num', 'divide': 10}, 'dcit': {'value': 518, 'length': 2, 'type': 'num', 'divide': 10}, 'gfci': {'value': 522, 'length': 4, 'type': 'num', 'divide': 1}, 'pvtemperature': {'value': 530, 'length': 2, 'type': 'num', 'divide': 10}, 'pvipmtemperature': {'value': 534, 'length': 2, 'type': 'num', 'divide': 10}, 'temp3': {'value': 538, 'length': 2, 'type': 'num', 'divide': 10}, 'temp4': {'value': 542, 'length': 2, 'type': 'num', 'divide': 10}, 'temp5': {'value': 546, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvoltage': {'value': 550, 'length': 2, 'type': 'num', 'divide': 10}, 'nbusvoltage': {'value': 554, 'length': 2, 'type': 'num', 'divide': 10}, 'ipf': {'value': 558, 'length': 2, 'type': 'num', 'divide': 1}, 'realoppercent': {'value': 562, 'length': 2, 'type': 'num', 'divide': 1}, 'opfullwatt': {'value': 566, 'length': 4, 'type': 'num', 'divide': 10}, 'standbyflag': {'value': 574, 'length': 2, 'type': 'num', 'divide': 1}, 'faultcode': {'value': 578, 'length': 2, 'type': 'num', 'divide': 1}, 'warningcode': {'value': 582, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword0': {'value': 586, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword1': {'value': 590, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword2': {'value': 594, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword3': {'value': 598, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword4': {'value': 602, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword5': {'value': 606, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword6': {'value': 610, 'length': 2, 'type': 'num', 'divide': 1}, 'systemfaultword7': {'value': 614, 'length': 2, 'type': 'num', 'divide': 1}, 'invstartdelaytime': {'value': 618, 'length': 2, 'type': 'num', 'divide': 1}, 'bdconoffstate': {'value': 630, 'length': 2, 'type': 'num', 'divide': 1}, 'drycontactstate': {'value': 634, 'length': 2, 'type': 'num', 'divide': 1}, 'group2start': {'value': 658, 'length': 2, 'type': 'num', 'incl': 'no'}, 'group2end': {'value': 662, 'length': 2, 'type': 'num', 'incl': 'no'}, 'edischrtoday': {'value': 666, 'length': 4, 'type': 'num', 'divide': 10}, 'edischrtotal': {'value': 674, 'length': 4, 'type': 'num', 'divide': 10}, 'echrtoday': {'value': 682, 'length': 4, 'type': 'num', 'divide': 10}, 'echrtotal': {'value': 690, 'length': 4, 'type': 'num', 'divide': 10}, 'eacchrtoday': {'value': 698, 'length': 4, 'type': 'num', 'divide': 10}, 'eacchrtotal': {'value': 706, 'length': 4, 'type': 'num', 'divide': 10}, 'priority': {'value': 742, 'length': 2, 'type': 'num', 'divide': 1}, 'epsfac': {'value': 746, 'length': 2, 'type': 'num', 'divide': 100}, 'epsvac1': {'value': 750, 'length': 2, 'type': 'num', 'divide': 10}, 'epsiac1': {'value': 754, 'length': 2, 'type': 'num', 'divide': 10}, 'epspac1': {'value': 758, 'length': 4, 'type': 'num', 'divide': 10}, 'epsvac2': {'value': 766, 'length': 2, 'type': 'num', 'divide': 10}, 'epsiac2': {'value': 770, 'length': 2, 'type': 'num', 'divide': 10}, 'epspac2': {'value': 774, 'length': 4, 'type': 'num', 'divide': 10}, 'epsvac3': {'value': 782, 'length': 2, 'type': 'num', 'divide': 10}, 'epsiac3': {'value': 786, 'length': 2, 'type': 'num', 'divide': 10}, 'epspac3': {'value': 790, 'length': 4, 'type': 'num', 'divide': 10}, 'epspac': {'value': 798, 'length': 4, 'type': 'num', 'divide': 10}, 'loadpercent': {'value': 806, 'length': 2, 'type': 'num', 'divide': 10}, 'pf': {'value': 810, 'length': 2, 'type': 'num', 'divide': 10}, 'dcv': {'value': 814, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc1_sysstatemode': {'value': 830, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc1_faultcode': {'value': 834, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc1_warncode': {'value': 838, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc1_vbat': {'value': 842, 'length': 2, 'type': 'num', 'divide': 100}, 'bdc1_ibat': {'value': 846, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_soc': {'value': 850, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc1_vbus1': {'value': 854, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_vbus2': {'value': 858, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_ibb': {'value': 862, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_illc': {'value': 866, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_tempa': {'value': 870, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_tempb': {'value': 874, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc1_pdischr': {'value': 878, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc1_pchr': {'value': 886, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc1_edischrtotal': {'value': 894, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc1_echrtotal': {'value': 902, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc1_flag': {'value': 914, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc2_sysstatemode': {'value': 922, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc2_faultcode': {'value': 926, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc2_warncode': {'value': 930, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc2_vbat': {'value': 934, 'length': 2, 'type': 'num', 'divide': 100}, 'bdc2_ibat': {'value': 938, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_soc': {'value': 942, 'length': 2, 'type': 'num', 'divide': 1}, 'bdc2_vbus1': {'value': 946, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_vbus2': {'value': 950, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_ibb': {'value': 954, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_illc': {'value': 958, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_tempa': {'value': 962, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_tempb': {'value': 966, 'length': 2, 'type': 'num', 'divide': 10}, 'bdc2_pdischr': {'value': 970, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc2_pchr': {'value': 978, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc2_edischrtotal': {'value': 986, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc2_echrtotal': {'value': 994, 'length': 4, 'type': 'num', 'divide': 10}, 'bdc2_flag': {'value': 1006, 'length': 4, 'type': 'num', 'divide': 1}, 'bms_status': {'value': 1014, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_error': {'value': 1018, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_warninfo': {'value': 1022, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_soc': {'value': 1026, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_batteryvolt': {'value': 1030, 'length': 2, 'type': 'num', 'divide': 100}, 'bms_batterycurr': {'value': 1034, 'length': 2, 'type': 'num', 'divide': 100}, 'bms_batterytemp': {'value': 1038, 'length': 2, 'type': 'num', 'divide': 10}, 'bms_maxcurr': {'value': 1042, 'length': 2, 'type': 'num', 'divide': 100}, 'bms_deltavolt': {'value': 1046, 'length': 2, 'type': 'num', 'divide': 100}, 'bms_cyclecnt': {'value': 1050, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_soh': {'value': 1054, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_constantvolt': {'value': 1058, 'length': 2, 'type': 'num', 'divide': 100}, 'bms_bms_info': {'value': 1062, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_packinfo': {'value': 1066, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_usingcap': {'value': 1070, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_fw': {'value': 1074, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_mcuversion': {'value': 1078, 'length': 2, 'type': 'num', 'divide': 1}, 'bms_commtype': {'value': 1082, 'length': 2, 'type': 'num', 'divide': 1}}

Grott external record whitelist 'recwl.txt' not found

Grott records whitelisted : {'5004', '0103', '5219', '5129', '0105', '0104', '0120', '5103', '5016', '5116', '5150', '5119', '0119', '5104', '5250', '5216', '0116', '5019', '501b', '0150', '5105', '5229', '5005', '5003', '5050'}

Grott settings:

_Generic:
version: 2.8.2
verbose: True
trace: False
config file: /config/grott/grott.ini
minrecl: 100
decrypt: True
compat: False
invtype: default
invtypemap: {}
include_all: False
blockcmd: False
noipf: False
time: auto
sendbuf: True
timezone: local
valueoffset: 6
offset: 6
inverterid: automatic
mode: proxy
grottip default
grottport 5279
_MQTT:
nomqtt False
mqttip: 172.30.33.0
mqttport: 1883
mqtttopic: energy/growatt
mqttmtopic: False
mqttmtopicname: energy/meter
mqttinverterintopic: False
mqtttretain: False
mqtttauth: True
mqttuser: addons
mqttpsw: secret
_Growatt server:
growattip: 47.91.67.66
growattport: 5279
_PVOutput:
pvoutput: False
pvdisv1: False
pvtemp: False
pvurl: https://pvoutput.org/service/r2/addstatus.jsp
pvapikey: yourapikey
pvinverters: 1
pvsystemid: systemid1
_Influxdb:
influx: False
influx2: False
database: grottdb
ip: localhost
port: 8086
user: grott
password: secret
organization: grottorg
bucket: grottdb
token: secret
_Extension:
extension: True
extname: grott_ha
extvar: {'ha_mqtt_host': 'core-mosquitto', 'ha_mqtt_port': '1883', 'ha_mqtt_user': 'addons', 'ha_mqtt_password': 'deeRae6Iek9tohb2suu6cudagoh1aedabei4jeNe7Yengeiloo7ieGaivazohvu6', 'ha_mqtt_retain': True}

Grott proxy mode started
**********************************************************************************
- Grott - libscrc not installed, no CRC checking only record validation on length!
**********************************************************************************
Hostname : 8ce4abae-grott-current
IP : 172.30.33.2 , port : 5279

How to set this addon to server mode?

The original Grott has a server mode, where the data is not sent to the Growatt servers. I would like to also use that function in this add-on. Is that possible?

I see there is a gmode option. Which is set to proxy, but I cannot find the other options which can be put here. server and str (found that in the code somewhere) both result in grott running in proxy mode.

No shutdown when the value drops to 0

I have a small big problem currently.
I have a Growatt MIC 600TL-X inverter.
It turns off the ShineWifi stick when the inverter turns itself off in the evening.
Unfortunately Grott 2.7 still transmits the last wattage numbers to Growat and also to MQTT. So it is not recognized that the inverter is off and the value should be 0.

What can I do?

Serial to device mapping

Hi - not really an issue, but possibly helpful for your serial to device mapping logic?

My Growatt Inverter (serial CHAB81905A) isn't recognised, according to the log. For your reference it's an 5500MTL-S, bought in Australia.

Growatt data decrypted V2
Inverter serial not recognised - using inverter type default
Grott HA 0.10.1 - creating CHAB81905A config in HA, 32 to push

shinelink forced reset?

this could be a grott issue, but might aswell be a growatt thing....

I have been using this addon for several months working perfectly....however, since today the data stopped comming through grott.
When I looked into the shinelink, it reverted back by sending the updates towards server.growatt.com
After setting the IP to "resolvdomain to off", adding my homeassistent IP and restarting the shinelink, one new update is recieved via GROTT......after which the shinelink reverts back again to the original server, with "resolvdomain to on".

does GROTT pass "reset" requests from growatt towards the shinelink, or does my shinelink get crappy.

(also tried to update the DNS on the shinelink to point from 8.8.8.8 towards my own pihole internal DNS....but apparently the shinelink does not allow me to safe with an alternative dns)

does above sound familiar to someone? any idea's?

if the reset comes from growatt....(via grott)....is it possible to block those resets within grott?

Someone have a tutorial to install??

Hi, i have used the addon till 5 days ago, ans with the changes in growatt server i have lost everything. What i say? I remove everything on my system because i were crazy with why my system stopped to work ans now i need put back again.

In the shinelan setting control web, i had changes the IP of the server to my homeasistant installation (192.168.1.101) but when a install grott addon and grott integration, It doesnt received data
Screenshot_20240722_130910_com android chrome
Screenshot_20240722_130950_com android chrome
Screenshot_20240722_131007_com android chrome

Pd: sorry for my english.

Thanks

Unexpected drop in reported solar production

As I noted in another issue the 'server IP' was changed which caused the local logging to stop. In my local network I added an DNS entry to force server.growatt.com to report to my HA instance.

Screenshot 2024-07-18 at 19 42 54

After I added this 'fix' I thought all was well because data from the inverter was coming into HA. However since three days the reported solar production has one or twice a day an unexpected drop. As this is a cumulative value a drop should not happen.

Screenshot 2024-07-18 at 19 49 58 Screenshot 2024-07-18 at 19 39 48

Wattage over time seems normal, some disruptions due the wrong reporting host on the 16th and 17th:

Screenshot 2024-07-18 at 19 41 22

What could be wrong in my set-up?

MOVE TO GROTT STABLE 2.8.3 Addon ! - this announcement is missing

I usually do read the descriptions and instructions carefully and try to follow the steps closely cause I am in foreign waters and have to trust the navigator.

As you had told me yesterday I am on the outdated, even though still working and sooner or later dying "beta branch" as the title says.

So today I checked out where I could find a hint that here the game might be over soon and that I should move.
Therefore I suggest to add a hint and a short guidance for those that might read this like I did today (who had never done such addon change) here
image

I suggest to explain that the beta version 0.1.7 was relying on GROTT 2.8.3 beta and that with the release of Johanns stable 2.8.3 a change to a second now stable branch was needed too.

You should start with a full backup.
then open the addon store and look there for a grott stable 2.8.3 to install.
Install the new addon but do not start it cause it is a second instance of grott with a basic configuration, which requires to open the configuration page of the beta one and copy the values one by one to the grott stable one and save that.
Stop the old one and then start the new one. Check log / protocoll to see how the new one is performing.
Transition done.

That way no one would left behind.

I have no clue how to push a notification to all still active users of the beta add on - like me till yesterday - that they should move so I think some will end up here not getting aware about the move to the stable version.
THose will be most likely HA guys who just arrived on HA and have not so much clue about the architecture of HA and what is going on. I had been looking for a receipe to get growatt inverter data into HA to later get a dashboard incl. all the new loads like heatpump , split AC and EV which are using far more energy than our house had been used before.

Thanks - and again: might be worth to open the discussion page cause this might also have been a point worth to discuss as to claim it is a real issue and bloat the main issue list with tiny points.

Great work and achievements with the beta, but I also love the new stable 0.1.10 !

No contact with api

I am having trouble reaching the api. This is the logging of the grott addon beta. Don't know what to do about it.

Grott Beta branch (2.8)
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service base-addon-banner: starting


Add-on: Grott Beta branch (2.8)
The Growatt inverter monitor with current HA plugin integrated

Add-on version: 0.1.5
You are running the latest version of this add-on.
System: Home Assistant OS 11.4 (amd64 / qemux86-64)
Home Assistant Core: 2024.1.5
Home Assistant Supervisor: 2024.01.0

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[17:35:56] INFO: Preparing to start...
[17:36:02] ERROR: Got unexpected response from the API: Service not enabled
./script.sh: line 230: GROTT_CONFIG_MQTT_HOST: unbound variable
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service base-addon-log-level: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service base-addon-log-level successfully stopped
s6-rc: info: service base-addon-banner: stopping
s6-rc: info: service base-addon-banner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.