Jarno Rankinen
1b1a9c75ea
gh-6 Panel room temperature reading for Home Assistant status, comments
2023-02-23 20:08:47 +02:00
Jarno Rankinen
aba5156e7a
gh-6 Device operating mode parsed from bitfield. Bitfields are now 16 bits long, as they should be
2023-02-19 22:34:34 +02:00
Jarno Rankinen
175254b4ba
gh-16 Retry reading registers 5 times, added debug variable to PingvinKL.New(). Not much debug output yet.
2023-02-19 21:28:50 +02:00
Jarno Rankinen
e30c83c96a
gh-10 Background updates for data
2023-02-19 12:28:26 +02:00
Jarno Rankinen
d3c2dd5de3
gh-6 All the simpler values for /status endpoint implemented. Alarms, op mode, uptime&date will be in separate functions
2023-02-18 22:18:37 +02:00
Jarno Rankinen
9fefef8a98
gh-6 the update/populate functions now work on the struct they're a member of, instead of on a copy. Added /api/v1/status route
2023-02-18 21:52:53 +02:00
Jarno Rankinen
960c29fbf4
#6 Include raw data multiplier in register struct
2023-02-18 21:06:02 +02:00
Jarno Rankinen
337581be66
#6 Data structures for /status endpoint
2023-02-18 19:37:43 +02:00
Jarno Rankinen
48bdfd691b
gh-5 Proper handling of bitfield data type
2023-02-02 00:07:36 +02:00
Jarno Rankinen
1080219b23
gh-5 Handle unsigned & signed values
...
updateRegisters now handles signed values correctly. Bitfields and
enumerations are still interpreted as unsigned values
2023-02-01 23:09:50 +02:00
Jarno Rankinen
2758f67299
gh-5 Debug/other output
2023-02-01 22:19:57 +02:00
Jarno Rankinen
7eb75541d3
gh-5 Commenting
2023-02-01 00:04:13 +02:00
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
Jarno Rankinen
9f2d4b0c29
gh-5 Register data structure
...
Created preliminary struct for register data, create hreg slice
based on registers.csv
2023-01-31 23:01:09 +02:00
Jarno Rankinen
1a8cfe891d
gh-5 Created registers.csv from Enervent provided xlsx, change csv delimiter to semicolon
2023-01-31 22:57:14 +02:00
Jarno Rankinen
c45af6d1dd
Tidy up log error output
2023-01-29 23:34:43 +02:00
Jarno Rankinen
c16f94c6d4
Closes #9 Update coil values on startup. #10 /api/v1/coils route started
2023-01-29 23:31:21 +02:00
Jarno Rankinen
876123e518
#9 Mutex locking for bus operations
2023-01-29 22:09:37 +02:00
Jarno Rankinen
8143414c39
#9 Function to update all coil values
2023-01-29 21:56:22 +02:00
Jarno Rankinen
3fab63f60f
#9 Go: Get single coil
2023-01-29 14:42:03 +02:00
Jarno Rankinen
ddfbc4610d
Initial steps of go implementation, prime coil data from CSV file
2023-01-28 23:28:37 +02:00