I'm trying to make GROTT working. That would be fantastic. Maybe my personal knowlegde is too low...
I'm misssing a step by step guide to install GROTT using docker-compose. I want to connect it to Domoticz over MQTT.
I'm not getting any reaction from Grott. Nothing happens in MQTT.
Anyone who can help me?
This is the log :
dirk_dedeur@raspberrypi:/opt/grott $ docker compose up 10.3s
[+] up 2/2
✔ Container grott Created 0.3s
! grott Published ports are discarded when using host network mode 0.0s
Attaching to grott
grott | Grott Growatt logging monitor : 2.8.3
grott |
grott | Grott Command line parameters processed:
grott | verbose: True
grott | config file: grott.ini
grott | output file: <_io.TextIOWrapper name='' mode='w' encoding='utf-8'>
grott | nomqtt: False
grott | inverterid: automatic
grott | pvoutput: False
grott | blockcmd: False
grott | noipf: False
grott |
grott | Grott process configuration file
grott |
grott | Grott process environmental variables
grott |
grott | Pulled 'gblockcmd=False' from the environment
grott |
grott | Pulled 'gnomqtt=False' from the environment
grott |
grott | Pulled 'gmqttauth=False' from the environment
grott |
grott | Pulled 'gmqttuser=******' from the environment
grott |
grott | Pulled 'gmqttpassword=secret' from the environment
grott |
grott | Pulled 'gpvoutput=False' from the environment
grott |
grott | Pulled 'gpvapikey=yourapikey' from the environment
grott |
grott | Pulled 'gpvsystemid1=12345' from the environment
grott |
grott | Pulled 'ginflux=False' from the environment
grott |
grott | Pulled 'ginflux2=False' from the environment
grott |
grott | Pulled 'gifdbname=grottdb' from the environment
grott |
grott | Grott InfluxDB server IP address env invalid
grott |
grott | Pulled 'gifport=8086' from the environment
grott |
grott | Pulled 'gifuser=grott' from the environment
grott |
grott | Pulled 'giforg=grottorg' from the environment
grott |
grott | Pulled 'gifbucket=grottdb' from the environment
grott |
grott | Pulled 'giftoken=influx_token' from the environment
grott |
grott | Pulled 'gextension=false' from the environment
grott |
grott | Pulled 'gextname=grottext' from the environment
grott |
grott | Grott override settings if set in commandline
grott |
grott | Grott process json layout files
grott |
grott | Grott layout records loaded
grott | T02NNNN :
grott | {'decrypt': {'value': 'False'}, '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': 122, 'length': 4, 'type': 'num', 'divide': 10}, 'pvfrequentie': {'value': 130, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 134, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 138, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 142, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 150, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 154, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 158, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 166, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 174, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 182, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 190, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 198, 'length': 4, 'type': 'num', 'divide': 7200}, 'pvtemperature': {'value': 206, 'length': 2, 'type': 'num', 'divide': 10}, 'isof': {'value': 210, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'gfcif': {'value': 214, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'dcif': {'value': 218, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'vpvfault': {'value': 222, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'vacfault': {'value': 226, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'facfault': {'value': 230, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'tmpfault': {'value': 234, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'faultcode': {'value': 238, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'pvipmtemperature': {'value': 242, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 246, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'nbusvolt': {'value': 250, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'epv1today': {'value': 278, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 294, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 302, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 310, 'length': 4, 'type': 'num', 'divide': 10}, 'rac': {'value': 318, 'length': 4, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'eractoday': {'value': 326, 'length': 4, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'eractotal': {'value': 334, 'length': 4, 'type': 'num', 'divide': 1, 'incl': 'no'}}
grott | T05NNNN :
': {'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 |
grott | Grott external record whitelist 'recwl.txt' not found
grott |
grott | Grott records whitelisted : {'5129', '5116', '5103', '5219', '5250', '5003', '0103', '0104', '0150', '0116', '5104', '5150', '5004', '501b', '5216', '0105', '5119', '5016', '5019', '5105', '5005', '5050', '0119', '5229', '0120'}
grott |
grott | Grott settings:
grott |
grott | _Generic:
grott | version: 2.8.3
grott | verbose: True
grott | trace: False
grott | config file: grott.ini
grott | minrecl: 100
grott | decrypt: True
grott | compat: False
grott | invtype: default
grott | invtypemap: {}
grott | include_all: False
grott | blockcmd: False
grott | noipf: False
grott | time: auto
grott | sendbuf: True
grott | timezone: local
grott | valueoffset: 6
grott | offset: 6
grott | inverterid: automatic
grott | mode: proxy
grott | grottip default
grott | grottport 5279
grott | _MQTT:
grott | nomqtt False
grott | mqttip: localhost
grott | mqttport: 48150
grott | mqtttopic: energy/growatt
grott | mqttmtopic: False
grott | mqttmtopicname: energy/meter
grott | mqttinverterintopic: False
grott | mqtttretain: False
grott | mqtttauth: False
grott | mqttuser: ******
grott | mqttpsw: secret
grott | _Growatt server:
grott | growattip: 47.91.67.66
grott | growattport: 5279
grott | _PVOutput:
grott | pvoutput: False
grott | pvdisv1: False
grott | pvtemp: False
grott | pvurl: https://pvoutput.org/service/r2/addstatus.jsp
grott | pvapikey: yourapikey
grott | pvinverters: 1
grott | pvsystemid: 12345
grott | _Influxdb:
grott | influx: False
grott | influx2: False
grott | database: grottdb
grott | ip: localhost
grott | port: 8086
grott | user: grott
grott | password: secret
grott | organization: grottorg
grott | bucket: grottdb
grott | token: secret
grott | _Extension:
grott | extension: False
grott | extname: grottext
grott | extvar: {'none': 'none'}
grott |
grott |
grott | Grott proxy mode started
grott | Hostname : raspberrypi
grott | IP : 127.0.1.1 , port : 5279
grott |
w Enable Watch d Detach
I cutted some of the decription info from the log, otherwise the message was to big.
I have set the serverIP adres in the inverter to the raspberry that runs GROTT.
What am I missing?
I'm trying to make GROTT working. That would be fantastic. Maybe my personal knowlegde is too low...
I'm misssing a step by step guide to install GROTT using docker-compose. I want to connect it to Domoticz over MQTT.
I'm not getting any reaction from Grott. Nothing happens in MQTT.
Anyone who can help me?
This is the log :
dirk_dedeur@raspberrypi:/opt/grott $ docker compose up 10.3s
[+] up 2/2
✔ Container grott Created 0.3s
! grott Published ports are discarded when using host network mode 0.0s
Attaching to grott
grott | Grott Growatt logging monitor : 2.8.3
grott |
grott | Grott Command line parameters processed:
grott | verbose: True
grott | config file: grott.ini
grott | output file: <_io.TextIOWrapper name='' mode='w' encoding='utf-8'>
grott | nomqtt: False
grott | inverterid: automatic
grott | pvoutput: False
grott | blockcmd: False
grott | noipf: False
grott |
grott | Grott process configuration file
grott |
grott | Grott process environmental variables
grott |
grott | Pulled 'gblockcmd=False' from the environment
grott |
grott | Pulled 'gnomqtt=False' from the environment
grott |
grott | Pulled 'gmqttauth=False' from the environment
grott |
grott | Pulled 'gmqttuser=******' from the environment
grott |
grott | Pulled 'gmqttpassword=secret' from the environment
grott |
grott | Pulled 'gpvoutput=False' from the environment
grott |
grott | Pulled 'gpvapikey=yourapikey' from the environment
grott |
grott | Pulled 'gpvsystemid1=12345' from the environment
grott |
grott | Pulled 'ginflux=False' from the environment
grott |
grott | Pulled 'ginflux2=False' from the environment
grott |
grott | Pulled 'gifdbname=grottdb' from the environment
grott |
grott | Grott InfluxDB server IP address env invalid
grott |
grott | Pulled 'gifport=8086' from the environment
grott |
grott | Pulled 'gifuser=grott' from the environment
grott |
grott | Pulled 'giforg=grottorg' from the environment
grott |
grott | Pulled 'gifbucket=grottdb' from the environment
grott |
grott | Pulled 'giftoken=influx_token' from the environment
grott |
grott | Pulled 'gextension=false' from the environment
grott |
grott | Pulled 'gextname=grottext' from the environment
grott |
grott | Grott override settings if set in commandline
grott |
grott | Grott process json layout files
grott |
grott | Grott layout records loaded
grott | T02NNNN :
grott | {'decrypt': {'value': 'False'}, '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': 122, 'length': 4, 'type': 'num', 'divide': 10}, 'pvfrequentie': {'value': 130, 'length': 2, 'type': 'num', 'divide': 100}, 'pvgridvoltage': {'value': 134, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent': {'value': 138, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower': {'value': 142, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage2': {'value': 150, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent2': {'value': 154, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower2': {'value': 158, 'length': 4, 'type': 'num', 'divide': 10}, 'pvgridvoltage3': {'value': 166, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridcurrent3': {'value': 170, 'length': 2, 'type': 'num', 'divide': 10}, 'pvgridpower3': {'value': 174, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytoday': {'value': 182, 'length': 4, 'type': 'num', 'divide': 10}, 'pvenergytotal': {'value': 190, 'length': 4, 'type': 'num', 'divide': 10}, 'totworktime': {'value': 198, 'length': 4, 'type': 'num', 'divide': 7200}, 'pvtemperature': {'value': 206, 'length': 2, 'type': 'num', 'divide': 10}, 'isof': {'value': 210, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'gfcif': {'value': 214, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'dcif': {'value': 218, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'vpvfault': {'value': 222, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'vacfault': {'value': 226, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'facfault': {'value': 230, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'tmpfault': {'value': 234, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'faultcode': {'value': 238, 'length': 2, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'pvipmtemperature': {'value': 242, 'length': 2, 'type': 'num', 'divide': 10}, 'pbusvolt': {'value': 246, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'nbusvolt': {'value': 250, 'length': 2, 'type': 'num', 'divide': 10, 'incl': 'no'}, 'epv1today': {'value': 278, 'length': 4, 'type': 'num', 'divide': 10}, 'epv1total': {'value': 286, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2today': {'value': 294, 'length': 4, 'type': 'num', 'divide': 10}, 'epv2total': {'value': 302, 'length': 4, 'type': 'num', 'divide': 10}, 'epvtotal': {'value': 310, 'length': 4, 'type': 'num', 'divide': 10}, 'rac': {'value': 318, 'length': 4, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'eractoday': {'value': 326, 'length': 4, 'type': 'num', 'divide': 1, 'incl': 'no'}, 'eractotal': {'value': 334, 'length': 4, 'type': 'num', 'divide': 1, 'incl': 'no'}}
grott | T05NNNN :
': {'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 |
grott | Grott external record whitelist 'recwl.txt' not found
grott |
grott | Grott records whitelisted : {'5129', '5116', '5103', '5219', '5250', '5003', '0103', '0104', '0150', '0116', '5104', '5150', '5004', '501b', '5216', '0105', '5119', '5016', '5019', '5105', '5005', '5050', '0119', '5229', '0120'}
grott |
grott | Grott settings:
grott |
grott | _Generic:
grott | version: 2.8.3
grott | verbose: True
grott | trace: False
grott | config file: grott.ini
grott | minrecl: 100
grott | decrypt: True
grott | compat: False
grott | invtype: default
grott | invtypemap: {}
grott | include_all: False
grott | blockcmd: False
grott | noipf: False
grott | time: auto
grott | sendbuf: True
grott | timezone: local
grott | valueoffset: 6
grott | offset: 6
grott | inverterid: automatic
grott | mode: proxy
grott | grottip default
grott | grottport 5279
grott | _MQTT:
grott | nomqtt False
grott | mqttip: localhost
grott | mqttport: 48150
grott | mqtttopic: energy/growatt
grott | mqttmtopic: False
grott | mqttmtopicname: energy/meter
grott | mqttinverterintopic: False
grott | mqtttretain: False
grott | mqtttauth: False
grott | mqttuser: ******
grott | mqttpsw: secret
grott | _Growatt server:
grott | growattip: 47.91.67.66
grott | growattport: 5279
grott | _PVOutput:
grott | pvoutput: False
grott | pvdisv1: False
grott | pvtemp: False
grott | pvurl: https://pvoutput.org/service/r2/addstatus.jsp
grott | pvapikey: yourapikey
grott | pvinverters: 1
grott | pvsystemid: 12345
grott | _Influxdb:
grott | influx: False
grott | influx2: False
grott | database: grottdb
grott | ip: localhost
grott | port: 8086
grott | user: grott
grott | password: secret
grott | organization: grottorg
grott | bucket: grottdb
grott | token: secret
grott | _Extension:
grott | extension: False
grott | extname: grottext
grott | extvar: {'none': 'none'}
grott |
grott |
grott | Grott proxy mode started
grott | Hostname : raspberrypi
grott | IP : 127.0.1.1 , port : 5279
grott |
w Enable Watch d Detach
I cutted some of the decription info from the log, otherwise the message was to big.
I have set the serverIP adres in the inverter to the raspberry that runs GROTT.
What am I missing?