mirror of
https://github.com/suaveolent/hoymiles-wifi.git
synced 2024-09-20 03:10:11 +00:00
update
This commit is contained in:
parent
2d42c2f9bc
commit
a41144e367
@ -0,0 +1,5 @@
|
||||
import logging
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
@ -1,13 +1,11 @@
|
||||
import socket
|
||||
import struct
|
||||
from hoymiles_wifi import logger
|
||||
from hoymiles_wifi.protos.RealData_pb2 import RealDataResDTO, HMSStateResponse
|
||||
import crcmod
|
||||
import logging
|
||||
from datetime import datetime
|
||||
import time
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
INVERTER_PORT = 10081
|
||||
|
||||
class NetworkState:
|
||||
@ -24,7 +22,7 @@ class Inverter:
|
||||
def set_state(self, new_state):
|
||||
if self.state != new_state:
|
||||
self.state = new_state
|
||||
logging.info(f"Inverter is {new_state}")
|
||||
logger.info(f"Inverter is {new_state}")
|
||||
|
||||
def update_state(self):
|
||||
self.sequence = (self.sequence + 1) & 0xFFFF
|
||||
@ -46,7 +44,7 @@ class Inverter:
|
||||
|
||||
len_bytes = struct.pack('>H', len(request_as_bytes) + 10)
|
||||
|
||||
message = header + struct.pack('>HHH', self.sequence, crc16, len(request_as_bytes)) + request_as_bytes
|
||||
message = header + struct.pack('>HHH', self.sequence, crc16, len_bytes) + request_as_bytes
|
||||
|
||||
ip = socket.gethostbyname(self.host)
|
||||
address = (ip, INVERTER_PORT)
|
||||
@ -56,7 +54,7 @@ class Inverter:
|
||||
stream.sendall(message)
|
||||
buf = stream.recv(1024)
|
||||
except socket.error as e:
|
||||
logging.debug(str(e))
|
||||
logger.error(str(e))
|
||||
self.set_state(NetworkState.Offline)
|
||||
return None
|
||||
|
||||
@ -64,7 +62,7 @@ class Inverter:
|
||||
parsed = HMSStateResponse.FromString(buf[10:10 + read_length])
|
||||
|
||||
if parsed is None:
|
||||
logging.debug("Error parsing response")
|
||||
logger.error("Error parsing response")
|
||||
self.set_state(NetworkState.Offline)
|
||||
return None
|
||||
|
||||
|
@ -34,13 +34,13 @@ message PortState {
|
||||
}
|
||||
|
||||
message HMSStateResponse {
|
||||
bytes dtu_sn = 1; // serial
|
||||
int32 time = 2; // epoch
|
||||
int32 device_nub = 3;
|
||||
int32 pv_nub = 4; // repeats cp field from request
|
||||
int32 package_nub = 5;
|
||||
string dtu_sn = 1; // serial
|
||||
int32 time = 2; // epoch
|
||||
int32 device_nub = 3;
|
||||
int32 pv_nub = 4; // repeats cp field from request
|
||||
int32 package_nub = 5;
|
||||
repeated InverterState inverter_state = 9;
|
||||
repeated PortState port_state = 11;
|
||||
int32 pv_current_power = 12; // [W], factor 0.1
|
||||
int32 pv_daily_yield = 13; // [Wh]
|
||||
int32 pv_current_power = 12; // [W], factor 0.1
|
||||
int32 pv_daily_yield = 13; // [Wh]
|
||||
}
|
@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eRealData.proto\"]\n\x0eRealDataResDTO\x12\x0f\n\x07ymd_hms\x18\x01 \x01(\t\x12\n\n\x02\x63p\x18\x02 \x01(\x05\x12\x10\n\x08\x65rr_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\"\xe3\x01\n\rInverterState\x12\x0e\n\x06inv_id\x18\x01 \x01(\x03\x12\x0f\n\x07port_id\x18\x02 \x01(\x05\x12\x14\n\x0cgrid_voltage\x18\x03 \x01(\x05\x12\x11\n\tgrid_freq\x18\x04 \x01(\x05\x12\x18\n\x10pv_current_power\x18\x05 \x01(\x05\x12\x10\n\x08unknown1\x18\x07 \x01(\x05\x12\x10\n\x08unknown2\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x10\n\x08unknown3\x18\n \x01(\x05\x12\x10\n\x08unknown4\x18\x0c \x01(\x05\x12\x11\n\tbit_field\x18\x14 \x01(\x05\"\xa0\x01\n\tPortState\x12\r\n\x05pv_sn\x18\x01 \x01(\x03\x12\x0f\n\x07pv_port\x18\x02 \x01(\x05\x12\x0e\n\x06pv_vol\x18\x03 \x01(\x05\x12\x0e\n\x06pv_cur\x18\x04 \x01(\x05\x12\x10\n\x08pv_power\x18\x05 \x01(\x05\x12\x17\n\x0fpv_energy_total\x18\x06 \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\x07 \x01(\x05\x12\x10\n\x08\x62itfield\x18\x08 \x01(\x05\"\xe3\x01\n\x10HMSStateResponse\x12\x0e\n\x06\x64tu_sn\x18\x01 \x01(\x0c\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x12\n\ndevice_nub\x18\x03 \x01(\x05\x12\x0e\n\x06pv_nub\x18\x04 \x01(\x05\x12\x13\n\x0bpackage_nub\x18\x05 \x01(\x05\x12&\n\x0einverter_state\x18\t \x03(\x0b\x32\x0e.InverterState\x12\x1e\n\nport_state\x18\x0b \x03(\x0b\x32\n.PortState\x12\x18\n\x10pv_current_power\x18\x0c \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\r \x01(\x05\x62\x06proto3')
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eRealData.proto\"]\n\x0eRealDataResDTO\x12\x0f\n\x07ymd_hms\x18\x01 \x01(\t\x12\n\n\x02\x63p\x18\x02 \x01(\x05\x12\x10\n\x08\x65rr_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\"\xe3\x01\n\rInverterState\x12\x0e\n\x06inv_id\x18\x01 \x01(\x03\x12\x0f\n\x07port_id\x18\x02 \x01(\x05\x12\x14\n\x0cgrid_voltage\x18\x03 \x01(\x05\x12\x11\n\tgrid_freq\x18\x04 \x01(\x05\x12\x18\n\x10pv_current_power\x18\x05 \x01(\x05\x12\x10\n\x08unknown1\x18\x07 \x01(\x05\x12\x10\n\x08unknown2\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x10\n\x08unknown3\x18\n \x01(\x05\x12\x10\n\x08unknown4\x18\x0c \x01(\x05\x12\x11\n\tbit_field\x18\x14 \x01(\x05\"\xa0\x01\n\tPortState\x12\r\n\x05pv_sn\x18\x01 \x01(\x03\x12\x0f\n\x07pv_port\x18\x02 \x01(\x05\x12\x0e\n\x06pv_vol\x18\x03 \x01(\x05\x12\x0e\n\x06pv_cur\x18\x04 \x01(\x05\x12\x10\n\x08pv_power\x18\x05 \x01(\x05\x12\x17\n\x0fpv_energy_total\x18\x06 \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\x07 \x01(\x05\x12\x10\n\x08\x62itfield\x18\x08 \x01(\x05\"\xe3\x01\n\x10HMSStateResponse\x12\x0e\n\x06\x64tu_sn\x18\x01 \x01(\t\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x12\n\ndevice_nub\x18\x03 \x01(\x05\x12\x0e\n\x06pv_nub\x18\x04 \x01(\x05\x12\x13\n\x0bpackage_nub\x18\x05 \x01(\x05\x12&\n\x0einverter_state\x18\t \x03(\x0b\x32\x0e.InverterState\x12\x1e\n\nport_state\x18\x0b \x03(\x0b\x32\n.PortState\x12\x18\n\x10pv_current_power\x18\x0c \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\r \x01(\x05\x62\x06proto3')
|
||||
|
||||
_globals = globals()
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
||||
|
Loading…
Reference in New Issue
Block a user