Commit graph

34 commits

Author SHA1 Message Date
Knuti_in_Paese
8eef8e2ef4 RPi: crash while using multi inverters with diff num of strings
add some comments
change timestamp format for logging
2023-07-20 13:02:23 +02:00
Knuti_in_Paese
5a93536940 Python goes in crash, when using an other InfoCommend
comment line 178 of main.py as before
add an else path in __init__.py
2023-07-17 19:44:52 +02:00
Knuti_in_Paese
9331d9197b RPi:crash when using additional InfoCommands
Python goes in crash, when using an other InfoCommend
i.e. uncomment line 178 of __main__.py
2023-07-17 19:25:24 +02:00
Betacentauri
9acd8c59cd [rpi] Use tx channel hopping and decrease timeout
Using only channel 40 for transmits led in some cases to no responses.
2023-05-06 12:03:52 +02:00
Knuti_in_Paese
892f554ff5 RPI:finer tuned debug logging
Description for prep RF24 and pyrf24 on debian 11 (bullseye) 64 bit OS
2023-02-04 11:41:29 +01:00
Knuti_in_Paese
0d552e3007 RPI:error handling while getting corruppted data
extended error handling while getting corruppted data on 64 bit operating system (bullseye)
lots of currupted data are reseived on Debian 11 OS. So we have to check the data length before using strict.unpack
2023-02-02 14:21:30 +01:00
Knuti_in_Paese
d996c2c10b RPI:using pyRF24 on Debian 11 bullseye environment
known RF24 lib can not installed on Debian 11 bullseye 64 bit operating system
now, system try to import RF24 nor pyrf24
2023-02-01 21:42:51 +01:00
Knuti_in_Päse
96d64faf62 RPi: send value irradiation to VZ and MQTT
to send all meassured and calculated values to Volkszaehler and to mqtt
change some logging levels for better differentiation
change frequency as part of AC phase
2023-01-25 11:49:13 +01:00
Knuti_in_Päse
d80a9c83a8 RPi:extend decoder for HardwareInfoResponse output
To print Firmware data in main or in output.py, we need to add a new method __dict__() to class HardwareInfoResponse
2023-01-16 19:38:20 +01:00
Knuti_in_Päse
5db34cd5f2
RPi: support to transmit some attributes
To import some attribute to data-dict-variable, we need to transport this attributes to ResponseDecoder-Class
2023-01-13 13:12:43 +01:00
Christian Ehrlicher
cbcfb8da72 RPI: use logging facility instead print() 2022-11-11 20:51:50 +01:00
Christian Ehrlicher
0df4f38dac RPI: remove unused function and import 2022-11-11 20:43:39 +01:00
Christian Ehrlicher
5cd2d70a9b RPI: some more changes to properly throw and catch exceptions 2022-10-02 13:03:43 +02:00
Christian Ehrlicher
f332738ceb RPI: properly catch exception when crc8 check failed 2022-09-17 10:29:20 +02:00
Christian Ehrlicher
fb6250a109 RPI: Request alarm when alarm id changes 2022-09-13 17:18:24 +02:00
Christian Ehrlicher
de90c19eb3 RPI: add handling for InverterDevInform_All message, handle
RealTimeRunData_Reality similar to RealTimeRunData_Debug
2022-09-12 18:58:28 +02:00
Christian Ehrlicher
c6fb43c4ef RPI: don't throw exception when no valid frame was received 2022-09-06 17:47:09 +02:00
DanielR92
121ce7cbe7
Update __init__.py (short one line)
Use the function 'hexify_payload()' in other lines
2022-06-30 09:31:19 +02:00
Jan-Jonas Sämann
34f6f9363d pypackage typo 2022-05-24 19:28:58 +02:00
Jan-Jonas Sämann
d5252866f8 pypackage add txpower min, high
Now txpower can be one of min, low, high, max
2022-05-24 18:34:38 +02:00
Jan-Jonas Sämann
68cb8a59d9 Pypackage Disable retransmit in log parse mode
Disable retransmit if InverterTransaction is invoked without an actual
radio attached.
2022-05-24 18:12:43 +02:00
Jan-Jonas Sämann
5935e0dabe Update pypackage set txpower per nrf/inverter
Add config parameter `txpower` in inverters- and nrf context.
This enables overriding txpower default RF24_PA_MAX, in some cases
inverters require RF24_PA_LOW. For larger setups, txpower can be set per
inverter to be able to query a far away (max) and a near by (low) one from within
one instance.

Valid values can be:
 * `txpower: 'max'` (corresponds to RF24_PA_MAX, default)
 * `txpower: 'low'` (corresponds to RF24_PA_LOW)
2022-05-23 07:31:09 +02:00
Jan-Jonas Sämann
93b3f02b24 Add pypackage retransmit last frame
Mentioned in #30 by @stefan123t
2022-05-21 17:58:50 +02:00
Jan-Jonas Sämann
e4eebb67e4 Improve python code quality
Mostly fix naming convetion, add descriptions. Cleanup code, left behind
from tinkering.
2022-05-16 12:29:58 +02:00
Jan-Jonas Sämann
7415139038 Provide rx time in response 2022-05-15 16:06:38 +02:00
Jan-Jonas Sämann
0f52c62b3f Setup NRF send/receive pipes
Fixes no response from WR
2022-05-14 19:47:10 +02:00
Jan-Jonas Sämann
d408264521 Adds documentation to python-hoymiles module 2022-05-11 18:52:28 +02:00
Jan-Jonas Sämann
d27f0c1148 Integrate ahoy.py into hoymiles module
Finally get rid of ahoy.py and integrate functionallity into the module
itself. Prepares for pipelines, adding pip installer or debian packaging.

Improve configuration adds commandline switches for:

  * `--verbose, enabling verbose logging
  * `--log-transactions`, outbut all rf raw data

Improve loop, now runs all queued commands per inverter within interval.
Skip sleep when interval is allready due.
2022-05-11 00:05:09 +02:00
Jan-Jonas Sämann
6627eeb931 Update channel hop list
remove channel 9 and 11 because there was never seen a single frame
received
2022-05-08 16:25:53 +02:00
Jan-Jonas Sämann
3b54b58567 Update Decodes, group decoders by inverter serial
Seems to be that we can not exactly determine the actual model by
looking at the serial. What we seemingly can guess is how many MPPT and
Phases a range of serials have.

Some Group-Based decoders should be compatible across the group.

A group is now named by the lowest model

  * 1121: HM300 1 MPPT, 1 Phase
  * 1141: HM600 2 MPPT, 1 Phase
  * 1161: HM1200 4 MPPT, 1 Phase
2022-05-08 12:38:00 +02:00
Jan-Jonas Sämann
0ee867993c MQTT payload injection and default unknown decoder
Adds the ability to directly inject payloads to be sent to the inverter.
Fixes application crash at missing decoder by adding default decoding.

All unknown payloads are now printed as long- and short-lists for faster
protocol analysis
2022-05-06 19:54:04 +02:00
Jan-Jonas Sämann
9026dfa4bc Prepare decoder template for HM-1500 2022-05-05 19:42:58 +02:00
Jan-Jonas Sämann
9d75ca0c34 Ahoy Python Rewrite
Is was clear, the cmd approach does not decode payloads reliably.
The modular form allows for easy tinkering.

This implements

 * hoymiles protocol
 * transport-layer enables for retransmit of missed fragments
 * full payload decode
 * device specific decoders
 * transaction tracking enables decoding of different datasets
 * multi-inverter support
 * configuration format change to YAML (required for multi-inverter)

First PoC, lots of things have to be relocated, rewritten and exteded.

Currently only supports Hoymiles HM-600, more device decodes have to be added by
users who have the hardware.
2022-05-05 18:35:24 +02:00
Jan-Jonas Sämann
d7f9f6d3be PoC Hoymiles package full payload decode WIP
Transform ahoy.py into a python library, implements decoding of
fragmented large payloads.
The module also allows for easier tinkering and replay testing.
2022-05-02 22:41:42 +02:00