Tool written in GO for reading metrics from Sofar LSW-3 and writing results into MQTT topics. Program queries logger modbus port in infinite loop and sends data into MQTT topics (e.g. mosquito in HomeAssistant).
- Download go 1.19
- Clone this repo
git clone [email protected]:kubaceg/sofar_g3_lsw3_logger_reader.git
- Go into project directory
cd sofar_g3_lsw3_logger_reader
- Copy example config
cp config-example.yaml config.yaml
- Edit
config.yaml
in Your favorite editor, fill all required stuff - Build program
make build
or build for ARM machines e.g. raspberryPimake build-arm
- Run
bin/sofar
orbin/sofar-arm
Data will be sent into MQTT topic with name {mqttPrefix}/{fieldName}
where:
- mqttPrefix is value defined in
config.yaml
e.g./sensors/energy/inverter
- fieldName is measurement name, all available measurements are described in
adapters/devices/sofar/sofar_protocol.go
, e.g.PV_Generation_Today
Full topic name for given example values is /sensors/energy/inverter/PV_Generation_Today
.
Additional field is All
which contains all measurements and their values marshalled into one json.
This tool can integrate with Home Assistant using MQTT protocol. If You want to configure MQTT along with discovery feature, just fill 'ha_discovery_prefix' and all sensors will be configured automatically in Your Home Assistant instance.
Data can also be sent over OTLP protocol to a gRPC or http server. Typically, this would be received by the OTel-Collector for further export to any required platform.
Metrics are all captured as gauges and recorded and exported at the same frequency that measurements are taken.
Metric names follow the convention sofar.logger.<fieldName>
by default. This can be updated in the configuration file.
You can monitor Your solar instalation using grafana dashboard
This is based on program written by @sigxcpu76 XtheOne/Inverter-Data-Logger#37 (comment).
Feel free if You want to extend this tool with new features. Just open issue or make PR.