Skip to content

Commit

Permalink
Merge branch 'master' into feature/sessions_stats
Browse files Browse the repository at this point in the history
  • Loading branch information
naltatis committed Sep 27, 2024
2 parents 7ce708f + 53928bd commit 1c1cdee
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 18 deletions.
7 changes: 4 additions & 3 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ jobs:
go-version: ${{ env.GO_VERSION }}
id: go

- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli

- name: Patch ASN1
run: make patch-asn1-sudo

Expand All @@ -111,6 +108,10 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TESLA_CLIENT_ID: ${{ secrets.TESLA_CLIENT_ID }}

- uses: actions/setup-python@v5
- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli

- name: Publish .deb to Cloudsmith
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,6 @@ jobs:
go-version: ${{ env.GO_VERSION }}
id: go

- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli

- name: Patch ASN1
run: make patch-asn1-sudo

Expand Down Expand Up @@ -105,6 +102,10 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
TESLA_CLIENT_ID: ${{ secrets.TESLA_CLIENT_ID }}

- uses: actions/setup-python@v5
- name: Install Cloudsmith CLI
run: pip install --upgrade cloudsmith-cli

- name: Publish .deb to Cloudsmith
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
Expand Down
2 changes: 1 addition & 1 deletion .goreleaser-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ checksum:
name_template: "checksums.txt"

snapshot:
name_template: '{{ .Version }}{{ if eq (len (split .Version ".")) 2 }}.0{{ end }}+{{ .Timestamp }}'
version_template: '{{ .Version }}{{ if eq (len (split .Version ".")) 2 }}.0{{ end }}+{{ .Timestamp }}'

changelog:
sort: asc
Expand Down
8 changes: 4 additions & 4 deletions charger/mypv-elwa2.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ func (wb *MyPvElwa2) heartbeat(timeout time.Duration) {
// Status implements the api.Charger interface
func (wb *MyPvElwa2) Status() (api.ChargeStatus, error) {
res := api.StatusA
b, err := wb.conn.ReadInputRegisters(elwaRegStatus, 1)
b, err := wb.conn.ReadHoldingRegisters(elwaRegStatus, 1)
if err != nil {
return res, err
}
Expand Down Expand Up @@ -181,7 +181,7 @@ var _ api.Meter = (*MyPvElwa2)(nil)

// CurrentPower implements the api.Meter interface
func (wb *MyPvElwa2) CurrentPower() (float64, error) {
b, err := wb.conn.ReadInputRegisters(elwaRegPower, 1)
b, err := wb.conn.ReadHoldingRegisters(elwaRegPower, 1)
if err != nil {
return 0, err
}
Expand All @@ -193,7 +193,7 @@ var _ api.Battery = (*MyPvElwa2)(nil)

// CurrentPower implements the api.Meter interface
func (wb *MyPvElwa2) Soc() (float64, error) {
b, err := wb.conn.ReadInputRegisters(elwaRegTemp, 1)
b, err := wb.conn.ReadHoldingRegisters(elwaRegTemp, 1)
if err != nil {
return 0, err
}
Expand All @@ -205,7 +205,7 @@ var _ api.SocLimiter = (*MyPvElwa2)(nil)

// GetLimitSoc implements the api.SocLimiter interface
func (wb *MyPvElwa2) GetLimitSoc() (int64, error) {
b, err := wb.conn.ReadInputRegisters(elwaRegTempLimit, 1)
b, err := wb.conn.ReadHoldingRegisters(elwaRegTempLimit, 1)
if err != nil {
return 0, err
}
Expand Down
34 changes: 28 additions & 6 deletions cmd/dumper.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"os"
"slices"
"strings"
"text/tabwriter"
"time"
Expand Down Expand Up @@ -36,6 +37,11 @@ func (d *dumper) DumpWithHeader(name string, device interface{}) {
func (d *dumper) Dump(name string, v interface{}) {
w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', 0)

var isHeating bool
if fd, ok := v.(api.FeatureDescriber); ok {
isHeating = slices.Contains(fd.Features(), api.Heating)
}

// meter

if v, ok := v.(api.Meter); ok {
Expand Down Expand Up @@ -95,10 +101,18 @@ func (d *dumper) Dump(name string, v interface{}) {
}
}

if err != nil {
fmt.Fprintf(w, "Soc:\t%v\n", err)
if isHeating {
if err != nil {
fmt.Fprintf(w, "Temp:\t%v\n", err)
} else {
fmt.Fprintf(w, "Temp:\t%.0f°C\n", soc)
}
} else {
fmt.Fprintf(w, "Soc:\t%.0f%%\n", soc)
if err != nil {
fmt.Fprintf(w, "Soc:\t%v\n", err)
} else {
fmt.Fprintf(w, "Soc:\t%.0f%%\n", soc)
}
}
}

Expand Down Expand Up @@ -204,10 +218,18 @@ func (d *dumper) Dump(name string, v interface{}) {
}

if v, ok := v.(api.SocLimiter); ok {
if limitSoc, err := v.GetLimitSoc(); err != nil {
fmt.Fprintf(w, "Limit Soc:\t%v\n", err)
if isHeating {
if limitSoc, err := v.GetLimitSoc(); err != nil {
fmt.Fprintf(w, "Max Temp:\t%v\n", err)
} else {
fmt.Fprintf(w, "Max Temp:\t%d°C\n", limitSoc)
}
} else {
fmt.Fprintf(w, "Limit Soc:\t%d%%\n", limitSoc)
if limitSoc, err := v.GetLimitSoc(); err != nil {
fmt.Fprintf(w, "Limit Soc:\t%v\n", err)
} else {
fmt.Fprintf(w, "Limit Soc:\t%d%%\n", limitSoc)
}
}
}

Expand Down
60 changes: 60 additions & 0 deletions templates/definition/charger/elli-wallbox-2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
template: eebus
products:
- brand: Elli
description:
generic: Charger Connect 2
- brand: Elli
description:
generic: Charger Pro 2
- brand: Elli
description:
generic: Charger Pro Eichrecht 2
- brand: Volkswagen
description:
generic: Charger Connect 2
- brand: Volkswagen
description:
generic: Charger Pro 2
- brand: Volkswagen
description:
generic: Charger Pro Eichrecht 2
- brand: Skoda
description:
generic: Charger Connect
- brand: Skoda
description:
generic: Charger Pro
- brand: Skoda
description:
generic: Charger Pro Eichrecht
- brand: Cupra
description:
generic: Charger Pro 2
- brand: Cupra
description:
generic: Charger Pro 2
- brand: Cupra
description:
generic: Charger Pro Eichrecht 2
capabilities: ["iso151182", "mA"]
requirements:
evcc: ["eebus"]
description:
de: |
Die Wallbox muss im normalen Lademodus betrieben werden.
Die Nutzung der Phasenumschaltung ist in evcc momentan noch nicht möglich.
Eine Identifikation des Fahrzeugs über die RFID Karte ist nicht möglich.
en: |
The device has to be used in the normal charging mode.
The usage of phase switching is currently not possible in evcc.
The identification of a vehicle using the RFID card is not possible.
params:
- preset: eebus
render: |
{{ include "eebus" . }}
meter: true
vasvw: true
2 changes: 1 addition & 1 deletion templates/definition/meter/fronius-solarapi-v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ capabilities: ["battery-control"]
requirements:
description:
de: |
Solar API sollte nur als Fallback genutzt werden. Die Intergration über Modbus ist bevorzugt.
Solar API sollte nur als Fallback genutzt werden. Die Integration über Modbus ist bevorzugt.
Benutzername und Passwort werden nur für die aktive Batteriesteuerung benötigt.
Expand Down

0 comments on commit 1c1cdee

Please sign in to comment.