Warp: fix SDM630 not detected (#2219)
This commit is contained in:
parent
759381a2f3
commit
8eeebb63df
2 changed files with 16 additions and 25 deletions
|
|
@ -55,11 +55,10 @@ func NewWarpFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
}
|
||||
|
||||
if cc.UseMeter != nil {
|
||||
// TODO remove
|
||||
// TODO deprecated
|
||||
util.NewLogger("warp").WARN.Println("usemeter is deprecated and will be removed in a future release")
|
||||
}
|
||||
|
||||
_ = wb.isPro()
|
||||
hasMeter := wb.hasMeter()
|
||||
|
||||
var currentPower func() (float64, error)
|
||||
|
|
@ -131,7 +130,7 @@ func (wb *Warp) hasMeter() bool {
|
|||
).StringGetter()(); err == nil {
|
||||
var res warp.MeterState
|
||||
if err := json.Unmarshal([]byte(state), &res); err == nil {
|
||||
return res.State == 2
|
||||
return res.State == 2 || len(res.PhasesConnected) > 0
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -151,19 +150,6 @@ func (wb *Warp) hasCurrents() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (wb *Warp) isPro() bool {
|
||||
if state, err := provider.NewMqtt(wb.log, wb.client,
|
||||
fmt.Sprintf("%s/evse/low_level_state", wb.root), 1, 0,
|
||||
).StringGetter()(); err == nil {
|
||||
var res warp.LowLevelState
|
||||
if err := json.Unmarshal([]byte(state), &res); err == nil {
|
||||
return len(res.AdcValues) > 2
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// Enable implements the api.Charger interface
|
||||
func (wb *Warp) Enable(enable bool) error {
|
||||
// set auto_start_charging
|
||||
|
|
@ -187,8 +173,8 @@ func (wb *Warp) Enable(enable bool) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (wb *Warp) status() (warp.Status, error) {
|
||||
var res warp.Status
|
||||
func (wb *Warp) status() (warp.EvseState, error) {
|
||||
var res warp.EvseState
|
||||
|
||||
s, err := wb.statusG()
|
||||
if err == nil {
|
||||
|
|
@ -217,7 +203,7 @@ func (wb *Warp) autostart() (bool, error) {
|
|||
func (wb *Warp) isEnabled() (bool, error) {
|
||||
enabled, err := wb.autostart()
|
||||
|
||||
var status warp.Status
|
||||
var status warp.EvseState
|
||||
if err == nil {
|
||||
status, err = wb.status()
|
||||
}
|
||||
|
|
@ -259,7 +245,7 @@ func (wb *Warp) Enabled() (bool, error) {
|
|||
|
||||
// Status implements the api.Charger interface
|
||||
func (wb *Warp) Status() (api.ChargeStatus, error) {
|
||||
var status warp.Status
|
||||
var status warp.EvseState
|
||||
|
||||
s, err := wb.statusG()
|
||||
if err == nil {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ const (
|
|||
Timeout = 30 * time.Second
|
||||
)
|
||||
|
||||
type Status struct {
|
||||
// https://www.warp-charger.com/api.html#evse_state
|
||||
type EvseState struct {
|
||||
Iec61851State int `json:"iec61851_state"`
|
||||
VehicleState int `json:"vehicle_state"`
|
||||
ChargeRelease int `json:"charge_release"`
|
||||
|
|
@ -20,6 +21,7 @@ type Status struct {
|
|||
Uptime int64 `json:"uptime"`
|
||||
}
|
||||
|
||||
// https://www.warp-charger.com/api.html#evse_low_level_state
|
||||
type LowLevelState struct {
|
||||
LedState int `json:"led_state"`
|
||||
CpPwmDutyCycle int `json:"cp_pwm_duty_cycle"`
|
||||
|
|
@ -29,9 +31,12 @@ type LowLevelState struct {
|
|||
Gpio []bool
|
||||
}
|
||||
|
||||
// https://www.warp-charger.com/api.html#meter_state
|
||||
type MeterState struct {
|
||||
State int `json:"state"` // Warp 1 only
|
||||
Power float64 `json:"power"`
|
||||
EnergyRel float64 `json:"energy_rel"`
|
||||
EnergyAbs float64 `json:"energy_abs"`
|
||||
State int `json:"state"` // Warp 1 only
|
||||
Power float64 `json:"power"`
|
||||
EnergyRel float64 `json:"energy_rel"`
|
||||
EnergyAbs float64 `json:"energy_abs"`
|
||||
PhasesActive []bool `json:"phases_active"`
|
||||
PhasesConnected []bool `json:"phases_connected"`
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue