Skip to content

Load solar production data directly from your AP systems ECU-R system, written in Go

License

Notifications You must be signed in to change notification settings

HectorMalot/ecur

Repository files navigation

ECU-R

ECU-R is a library to extract PV array and inverter information from the AP systems ECU-R energy monitor. You can use the library to connect and use the information directly in your own programs, or use the provided binary to print the information in a table of JSON format.

Supported information

  • ECU level information
    • Number of inverters registered / online
    • Current energy
    • Lifetime production
    • Today's total production
  • Inverter level information
    • Inverter status (online/offline)
    • Inverter signal strength
    • Grid frequency
    • Grid voltage
    • per MMPT power information

Ongoing work

  • Historic production information by week, month and year

Usage

Via the provided cli tool

go run github.com/hectormalot/ecur/cmd get --host $WIFI_IP_OF_ECUR --json

Using the library

package main

func main() {
    // Error handling omitted for clarity
    c, _ := ecur.NewClient(host, port)
    _ = c.Connect()
    defer c.Close()

    // ECU Level information
    EcuInfo, _ := c.GetECUInfo()
    c.ecuID = ecuInfo.EcuID

    // Inverter statistics
    InverterInfo, _ := c.GetInverterInfo()

    // Inverter signal strength
    InverterSignal, _ := c.GetInverterSignal()

    fmt.Println(EcuInfo, InverterInfo, InverterSignal)
}

Contribution

I only have a QS1 system at home. For YC600/YC1000 inverter models, I've used the reverse engineering work documented at the home assistant forums and tweakers.net. I'm happy to take pull requests for additional functionality and/or bug fixes.

License

All code made available under the MIT license

About

Load solar production data directly from your AP systems ECU-R system, written in Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages