Update config vars to Grott v2.6.1g
This commit is contained in:
+79
-37
@@ -1,36 +1,93 @@
|
||||
# Home Assistant Grott
|
||||
## The Growatt inverter monitor
|
||||
## The Growatt Inverter Monitor
|
||||
[](https://www.paypal.com/donate?business=RQFS46F9JTESQ&item_name=Grott+¤cy_code=EUR)
|
||||
|
||||
The growatt inverter sends log data to the growatt website at the internet. At this website (or with the mobile app) you can see detailed information on how the inverter is performing.
|
||||
<i><b>(Per 28-12-2021 version 2.6 (2.6.1g) has been promoted to master branche)</b></i>
|
||||
|
||||
**Grott** will monitor and process this data (containing information about performance and status of the inverter) and send this to:
|
||||
Growatt inverters can send performance and status metrics (log data) to the Growatt company servers. The inverters rely on either a ShineWIFI module or a ShineLAN box to relay the data to Growatt. The metrics stored on the Growatt servers then can be viewed on the Growatt website or using the ShinePhone mobile app.
|
||||
|
||||
* MQTT
|
||||
* PVOutput.org
|
||||
* InfluxDB (V1 and V2)
|
||||
* Using the extension functionality you can add your own processing and output functionality,
|
||||
|
||||
MQTT can be used to distribute the data to other applications like: NodeRed, Grafana (using InfluxDB), Home Assistant, OpenHab and Domoticz. Descriptions and examples are available in the Wiki
|
||||
The purpose of Grott is to read, parse and forward the *raw metrics as they are sent* to Growatt servers. This means other applications can consume the raw Growatt metrics without relying on the Growatt API and servers and without delay.
|
||||
|
||||
The program is written in python and runs under Linux, Windows and is available in a docker container on Docker Hub (see: https://github.com/johanmeijer/grott/wiki/Docker-support, containers available at:https://hub.docker.com/u/ledidobe).
|
||||
|
||||
Grott can be started from the command line or as a (linux or Windows ) service.
|
||||
### Two modes of metric data retrieval
|
||||
Grott can intercept the inverter metrics in two distinct modes:
|
||||
* Proxy mode (man in the middle): The Growatt ShineWifi or ShineLAN box can be easily configured to use Grott as an alternative server to the default server.growatt.com. Grott then acts as a relay to the Growatt servers. Grott reads the transmitted data, and then forwards the data to server.grott.com.
|
||||
* Sniff mode (original connection): Can be used if your router is linux based. IPTables NAT masquerading is used in conjuction with a python packet sniffer to read the data. (This is more resource intensive on the linux host).
|
||||
|
||||
To "see" the growatt data, the network traffic needs to be routed via the system Grott is running (see: https://github.com/johanmeijer/grott/wiki/Rerouting-Growatt-Wifi-TCPIP-data-via-your-Grott-Server).
|
||||
|
||||
Please see the wiki (https://github.com/johanmeijer/grott/wiki) for more information and installation details. There is also a short first time installation description available.
|
||||
### Where Grott can forward metric data to
|
||||
Grott can forward the parsed metrics to:
|
||||
* MQTT (suggested option for many home automation systems such as Home Assistant, OpenHAB and Domoticz)
|
||||
* InfluxDB v1 and v2 (a time series database with dashboarding functionality)
|
||||
* PVOutput.org (a service for sharing and comparing PV output data)
|
||||
* Custom output using the extension functionality (Examples available for Export to CSV files and writing to a Http Server).
|
||||
|
||||
# Version History
|
||||
## New in Version 2.4.0
|
||||
Introduce possibility to add extensions for additional (personalized) processing.
|
||||
|
||||
### Compatibility
|
||||
The program is written in python and runs under Linux, Windows.
|
||||
It can run:
|
||||
* Interactive from the command line interface
|
||||
* As a Linux or Windows service
|
||||
* As a [Docker container](https://github.com/johanmeijer/grott/wiki/Docker-support).
|
||||
|
||||
And is tested, but not limited to, inverter models:
|
||||
+ 1500-S (ShineWiFi)
|
||||
+ 3000-S (Shinelan)
|
||||
+ 2500-MTL-S (ShineWiFi)
|
||||
+ 4200-MTL-S (Shinelan)
|
||||
+ 5000TL-X (ShineWifi-X)
|
||||
+ 3600TL-XE (ShineLink-X)
|
||||
+ 3600TL-XE (ShineLan)
|
||||
+ MOD 5000TL3-X* (ShineLan)
|
||||
+ MOD 9000TL3-X*
|
||||
|
||||
**Experimental in latest 2.6 branch*
|
||||
|
||||
The Docker images are tested RPI(arm32), Ubuntu and Synology NAS
|
||||
|
||||
## Grott installation
|
||||
|
||||
### ShineLAN or ShineWIFI configuration
|
||||
If Grott is running in proxy mode the ShineLAN box or ShineWIFI module [needs to be configured](https://github.com/johanmeijer/grott/wiki/Rerouting-Growatt-Wifi-TCPIP-data-via-your-Grott-Server) to send data to Grott instead of the Growatt server API.
|
||||
Please see the [Wiki](https://github.com/johanmeijer/grott/wiki) for further information and installation details.
|
||||
|
||||
## What's new
|
||||
### New in Version 2.6.1 (Master)
|
||||
#### TL3-X 3 phase inverter support
|
||||
see issue #81/#82/#85: add invtype=tl3 in grott.ini [Generic] section (or use ginvtype="tl3" environmental variable e.g. for docker ledidome/grott:2.6.1f)
|
||||
#### SPF off grid inverter support
|
||||
see issue #42/#46: add invtype=spf in grott.ini [Generic] section (or use ginvtype=spf environmental variable e.g. for docker)
|
||||
#### SPH hybrid (grid/battery) support
|
||||
see issue #34: add invtype=sph in grott.ini [Generic] section (or use ginvtype=sph environmental variable e.g. for docker)
|
||||
#### Growatt Smart Meter support
|
||||
see issue #47: data will be processed automatically and send to MQTT, InfluxDB and PVOutput.org
|
||||
#### Export to CSV file
|
||||
see issue #79, pull request #91. Moe information can be found in the wiki: https://github.com/johanmeijer/grott/wiki/Extensions
|
||||
|
||||
### New in Version 2.5.x
|
||||
Improved dynamic data processing and dynamic generation of output allowing:
|
||||
* add new output (values) without changing code (using external layout definitions)
|
||||
* rename keywords in MQTT JSON message and influxDB to own naming convention
|
||||
* format the verbose output values
|
||||
* Allow negative values for pvpowerout. New (always on) inverters can also use power.
|
||||
* Bugfix inluxdb port error
|
||||
|
||||
see: https://github.com/johanmeijer/grott/wiki/Grott-advanced-(customize-behaviour)
|
||||
<br>
|
||||
Added new outout values to mqtt and influxDB to support 3 phase grid connection (actual information on voltage, current and power delivered), total active worktime (in 0.5 S) and energy generation per PV string (day and total)
|
||||
<br>
|
||||
|
||||
Improve environmental processing for mqtt/influxDB/growatt ip and port definitions
|
||||
|
||||
### New in Version 2.4.0
|
||||
Introduce possibility to add extensions for additional (personalized) processing.
|
||||
,br.
|
||||
see: https://github.com/johanmeijer/grott/wiki/Extensions
|
||||
|
||||
## New in Version 2.3.1
|
||||
### New in Version 2.3.1
|
||||
Direct output to inlfuxdb (v1 and v2)
|
||||
<br>
|
||||
see: https://github.com/johanmeijer/grott/wiki/InfluxDB-Support
|
||||
## New in Version 2.2.6
|
||||
### New in Version 2.2.6
|
||||
Mulitiple inverter (multiple system id's) support in PVOutput.org
|
||||
<br>
|
||||
see: https://github.com/johanmeijer/grott/wiki/PVOutput.org-support
|
||||
@@ -39,7 +96,7 @@ see: https://github.com/johanmeijer/grott/wiki/PVOutput.org-support
|
||||
This file is deleted from the grott default directory to simply github installation (not overwrite your settings).
|
||||
It is advised to copy this file into the Grott default directory (and customise it) during first time installation
|
||||
|
||||
## New in Version 2.2.1
|
||||
### New in Version 2.2.1
|
||||
#### Automatic protocol detection and processing
|
||||
Limited .ini configuration needed (inverterid, encryption, offset and record layout is automaticially detected)
|
||||
#### Direct output to PVOutput.org (no mqtt processing needed).
|
||||
@@ -54,8 +111,7 @@ If date/time is available in the data (inserted by the inverter) this will be us
|
||||
If date/time is not available in the data record the server time will be used (as it was originally).
|
||||
In the mqtt message the key buffered is added (yes/no) which indicates that the message is from the buffer (past) or actual.
|
||||
|
||||
## Version 2: Introduction of 2 modes support: sniff and proxy.
|
||||
|
||||
### Version 2: Introduction of 2 modes support: sniff and proxy.
|
||||
In sniff mode (default and compatable with older Grott versions) IP sniffering technology is used (based on: https://github.com/buckyroberts/Python-Packet-Sniffer). In this mode the data needs to be "re-routed" using linux IP forwarding on the device Grott is running. In this mode Grott "sees" every IP package and when a Growatt TCP packages passes it will be processed and a MQTT will be sent if inverter status information is detected.
|
||||
|
||||
With the proxy mode Grott is listening on a IP port (default 5279), processes the data (sent MQTT message) and routes the original packet to the growatt website.
|
||||
@@ -88,9 +144,7 @@ Sniff mode is not supported under Windows
|
||||
<br>
|
||||
In sniff mode it is necessary to run Grott with SUDO rights.
|
||||
|
||||
***
|
||||
|
||||
## Minimal installation
|
||||
#### Minimal installation
|
||||
The following modules are needed the use Grott:
|
||||
- grott.py
|
||||
- grott.ini (available in examples direcory)
|
||||
@@ -99,17 +153,5 @@ The following modules are needed the use Grott:
|
||||
- grottproxy.py
|
||||
- grottsniffer.py
|
||||
|
||||
|
||||
### The Grott monitor is tested on Raspian (Raspberry PI),Ubuntu and windows 10 (proxy only), with
|
||||
+ 1500-S (ShineWiFi)
|
||||
+ 3000-S (Shinelan)
|
||||
+ 2500-MTL-S (ShineWiFi)
|
||||
+ 4200-MTL-S (Shinelan)
|
||||
+ 5000TL-X (ShineWifi-X)
|
||||
+ 3600TL-XE (ShineLink-X)
|
||||
+ 3600TL-XE (ShineLan)
|
||||
|
||||
## The Docker images are tested RPI(arm32), Ubuntu and Synology NAS
|
||||
|
||||
#### More Version History: see Version_history.txt file.
|
||||
#### Grott is a "hobby" project you can use it as it is (with the potential errors and imperfections). Remarks and requests for improvement are welcome.
|
||||
|
||||
+5
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Grott",
|
||||
"version": "0.2",
|
||||
"version": "2.6.1g",
|
||||
"slug": "grott",
|
||||
"description": "The Growatt inverter monitor",
|
||||
"url": "https://github.com/johanmeijer/grott",
|
||||
@@ -29,10 +29,13 @@
|
||||
"gblockcmd": "bool?",
|
||||
"gnoipf": "bool?",
|
||||
"gtime": "str?",
|
||||
"gtimezone": "str?",
|
||||
"gsendbuf": "bool?",
|
||||
"gcompat": "bool?",
|
||||
"gvalueoffset": "int?",
|
||||
"ginverterid": "str?",
|
||||
"gincludeall": "bool?",
|
||||
"ginvtype": "str?",
|
||||
"gdecrypt": "bool?",
|
||||
"ggrowattip": "str?",
|
||||
"ggrowattport": "port?",
|
||||
@@ -46,6 +49,7 @@
|
||||
"gpvoutput": "bool?",
|
||||
"gpvapikey": "str?",
|
||||
"gpvsystemid": "int?",
|
||||
"gpvinverters": "int?",
|
||||
"ginflux": "bool?" ,
|
||||
"ginflux2": "bool?",
|
||||
"gifdbname": "str?",
|
||||
|
||||
@@ -8,10 +8,13 @@ if bashio::config.has_value 'ggrottport'; then export ggrottport="$(bashio::con
|
||||
if bashio::config.has_value 'gblockcmd'; then export gblockcmd="$(bashio::config 'gblockcmd')"; fi
|
||||
if bashio::config.has_value 'gnoipf'; then export gnoipf="$(bashio::config 'gnoipf')"; fi
|
||||
if bashio::config.has_value 'gtime'; then export gtime="$(bashio::config 'gtime')"; fi
|
||||
if bashio::config.has_value 'gtimezone'; then export gtimezone="$(bashio::config 'gtimezone')"; fi
|
||||
if bashio::config.has_value 'gsendbuf'; then export gsendbuf="$(bashio::config 'gsendbuf')"; fi
|
||||
if bashio::config.has_value 'gcompat'; then export gcompat="$(bashio::config 'gcompat')"; fi
|
||||
if bashio::config.has_value 'gvalueoffset'; then export gvalueoffset="$(bashio::config 'gvalueoffset')"; fi
|
||||
if bashio::config.has_value 'ginverterid'; then export ginverterid="$(bashio::config 'ginverterid')"; fi
|
||||
if bashio::config.has_value 'gincludeall'; then export gincludeall="$(bashio::config 'gincludeall')"; fi
|
||||
if bashio::config.has_value 'ginvtype'; then export ginvtype="$(bashio::config 'ginvtype')"; fi
|
||||
if bashio::config.has_value 'gdecrypt'; then export gdecrypt="$(bashio::config 'gdecrypt')"; fi
|
||||
if bashio::config.has_value 'ggrowattip'; then export ggrowattip="$(bashio::config 'ggrowattip')"; fi
|
||||
if bashio::config.has_value 'ggrowattport'; then export ggrowattport="$(bashio::config 'ggrowattport')"; fi
|
||||
@@ -25,6 +28,7 @@ if bashio::config.has_value 'gmqttpassword'; then export gmqttpassword="$(bashi
|
||||
if bashio::config.has_value 'gpvoutput'; then export gpvoutput="$(bashio::config 'gpvoutput')"; fi
|
||||
if bashio::config.has_value 'gpvapikey'; then export gpvapikey="$(bashio::config 'gpvapikey')"; fi
|
||||
if bashio::config.has_value 'gpvsystemid'; then export gpvsystemid="$(bashio::config 'gpvsystemid')"; fi
|
||||
if bashio::config.has_value 'gpvinverters'; then export gpvinverters="$(bashio::config 'gpvinverters')"; fi
|
||||
if bashio::config.has_value 'ginflux'; then export ginflux="$(bashio::config 'ginflux')"; fi
|
||||
if bashio::config.has_value 'ginflux2'; then export ginflux2="$(bashio::config 'ginflux2')"; fi
|
||||
if bashio::config.has_value 'gifdbname'; then export gifdbname="$(bashio::config 'gifdbname')"; fi
|
||||
|
||||
Reference in New Issue
Block a user