Fix wallbe register decoding for officially unsupported SDM meters
This commit is contained in:
parent
f0a14abcad
commit
58d946bd47
1 changed files with 2 additions and 1 deletions
|
|
@ -175,8 +175,9 @@ func (wb *Wallbe) ChargingTime() (time.Duration, error) {
|
|||
func (wb *Wallbe) decodeReading(b []byte) float64 {
|
||||
v := binary.BigEndian.Uint32(b)
|
||||
|
||||
// assuming high register first
|
||||
if wb.encoding == encodingSDM {
|
||||
bits := (v&0xffff)<<16 | (v>>16)&0xffff
|
||||
bits := uint32(b[3])<<0 | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24
|
||||
f := math.Float32frombits(bits)
|
||||
return float64(f)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue