Browse Source

RPi:specify README.md and collect data from EventsResponse

pull/646/head
Knuti_in_Paese 2 years ago
parent
commit
9a0bee831d
  1. 26
      tools/rpi/README.md
  2. 15
      tools/rpi/hoymiles/decoders/__init__.py

26
tools/rpi/README.md

@ -84,9 +84,14 @@ If there are no error messages on the last step, then the NRF24 Wrapper has been
Building RF24 Wrapper for Debian 11 (bullseye) 64 bit operating system
----------------------------------------------------------------------
The description above does not work on Debian 11 (bullseye) 64 bit operating system.
There are 2 possible sollutions to install the RF24 Wrapper.
Please check first, if you have Debian 11 (bullseye) 64 bit operating system installed:
- `uname -a` search for aarch64
- `lsb_release -d`
- `cat /etc/debian_version`
* `1. solution:`
There are 2 possible solutions to install the RF24 wrapper:
* `1. Solution:`
```code
sudo apt install cmake git python3-dev libboost-python-dev python3-pip python3-rpi.gpio
@ -101,13 +106,13 @@ cd RF24
rm -rf build Makefile.inc
./configure --driver=SPIDEV
```
* edit `Makefile.inc` with your prefered editor e.g. nano or vi
old:
# edit `Makefile.inc` with your prefered editor e.g. nano or vi
- old:
```code
CPUFLAGS=-marm -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard
CFLAGS=-marm -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -Ofast -Wall -pthread
```
new:
- new:
```code
CPUFLAGS=
CFLAGS=-Ofast -Wall -pthread
@ -125,8 +130,7 @@ python3 -m pip list #watch for RF24 module - if its there its installed
```
* `2. solution:`
* `2. Solution:`
```code
sudo apt install git python3-dev libboost-python-dev python3-pip python3-rpi.gpio
@ -135,6 +139,14 @@ cd pyRF24
python3 -m pip install . -v # this step takes about 5 minutes on my RPI-4 !
```
If you have problems with your radio module from ahoi,
e.g.: cannot interpret received data,
please try to reduce the speed of the radio module!
Add the following line to your ahoy.yml configuration file in "nrf" section:
* `spispeed: 600000`
Required python modules
-----------------------

15
tools/rpi/hoymiles/decoders/__init__.py

@ -327,9 +327,9 @@ class EventsResponse(UnknownResponse):
#logging.debug(' payload has valid modbus crc')
self.response = self.response[:-2]
status = struct.unpack('>H', self.response[:2])[0]
a_text = self.alarm_codes.get(status, 'N/A')
logging.info (f' Inverter status: {a_text} ({status})')
self.status = struct.unpack('>H', self.response[:2])[0]
self.a_text = self.alarm_codes.get(self.status, 'N/A')
logging.info (f' Inverter status: {self.a_text} ({self.status})')
chunk_size = 12
for i_chunk in range(2, len(self.response), chunk_size):
@ -350,6 +350,14 @@ class EventsResponse(UnknownResponse):
dbg += f' {fmt:7}: ' + str(struct.unpack('>' + fmt, chunk))
logging.debug(dbg)
def __dict__(self):
""" Base values, availabe in each __dict__ call """
data = super().__dict__()
data['inv_stat_num'] = self.status
data['inv_stat_txt'] = self.a_text
return data
class HardwareInfoResponse(UnknownResponse):
def __init__(self, *args, **params):
super().__init__(*args, **params)
@ -371,7 +379,6 @@ class HardwareInfoResponse(UnknownResponse):
""" Base values, availabe in each __dict__ call """
data = super().__dict__()
responce_info = self.response
if (len(self.response) != 16):
logging.error(f'HardwareInfoResponse: data length should be 16 bytes - measured {len(self.response)} bytes')

Loading…
Cancel
Save