External REST control API for an Enervent Pingvin Kotilämpö residential heating/ventilation unit via RS485 bus using the Modbus protocol. Designed for Home Assistant integration
Go to file
Jarno Rankinen f4eb787a10 gh-5 Fetch register data from bus
- goburrow/modbus' ReadHoldingRegisters can only fetch 125 registers at a
time, so updateRegisters does several readings
- modbus.ReadHoldingRegisters returns a []byte, where each even byte represents
  the MSB of a int16/uint16 and every odd byte is the LSB
- updateRegisters loops through each response slice forming the 16-bit
  integers

Still need to figure out a way to properly handle the signed/unsigned
values, and also the enumerations and bitfields. Perhaps changing the
'signed' boolean to a byte and making that a bitfield representing the
value type would be a good way to go. The value can then be properly
formed when fetching it from the in-memory pingvinKL struct, while being
stored as an int(64) internally.
2023-02-01 00:03:47 +02:00
enervent-ctrl-go gh-5 Fetch register data from bus 2023-02-01 00:03:47 +02:00
enervent-ctrl-python Python: Fix Lock import 2023-01-29 14:41:25 +02:00
.gitignore Python: Fix Lock import 2023-01-29 14:41:25 +02:00
README.md Initial commit 2023-01-15 13:15:05 +02:00

README.md

Enervent-control

External control of an Enervent Pingvin Kotilämpö residential heating/ventilation unit via RS485 bus using the Modbus protocol.

Work is my Bachelor's Thesis at Oulu University of Applied Sciences, software development.