Jarno Rankinen
afcbe06581
gh-24Rework of the locking mechanisms. The bug causinga deadlock was probably caused by locking bebefore calling another function that also tries to acquire the lock...
2023-03-09 22:05:46 +02:00
Jarno Rankinen
c79f172f32
gh-24 WriteRegister uses common modbus.Client
2023-03-09 21:57:32 +02:00
Jarno Rankinen
d0d26d346a
gh-24 ReadRegister uses common modbus.Client
2023-03-09 21:51:43 +02:00
Jarno Rankinen
602a560cf9
gh-24 updateCoils and updateRegisters now use common modbus.Client
2023-03-09 21:26:28 +02:00
Jarno Rankinen
a49978ee5f
gh-21 PUT /api/v1/temperature/<action> for changing temperature setpoint
2023-03-09 16:15:54 +02:00
Jarno Rankinen
193cfede8d
0.0.12 Include all coil values in homeassistant status output
2023-03-08 20:46:07 +02:00
Jarno Rankinen
8e8b51f8b9
Improved p.Debug.Println, left out the DEBUG: prefix as couldn't figure out how to add the suffix yet. Closes gh-17
2023-03-03 09:28:41 +02:00
Jarno Rankinen
dbbc22809e
0.0.10 PinvinKL.Debug.Println, logs debug messages with prefix 'DEBUG:' if debug is enabled
2023-03-03 08:20:54 +02:00
Jarno Rankinen
ce1c569564
Methods for reading and writing single holding registers. Unfortunately the writes don't seem to have much effect, the registers are reset after a short period or instantly. Maybe due to something with the library, but no errors are produced. Closes gh-5
2023-03-02 14:24:05 +02:00
Jarno Rankinen
bcb8d55126
gh-10 0.0.7 Check that only one of mutex coils is 1 at a time
2023-03-02 13:36:49 +02:00
Jarno Rankinen
c304704656
Finish renaming and actually show values for Measurements
2023-02-28 20:51:53 +02:00
Jarno Rankinen
6053698552
Rename VentInfo to Measurements, add heater element water temperature to Home Assistant data
2023-02-28 20:47:47 +02:00
Jarno Rankinen
150ed97071
gh-6 /api/v1/status returns float values if applicable
2023-02-27 21:10:24 +02:00
Jarno Rankinen
853ef45464
gh-10 WriteCoils, wrapper for forcing multiple consecutive coils with a boolean slice
2023-02-25 01:21:42 +02:00
Jarno Rankinen
f76bddbb45
gh-10 read/write single coil api method
...
GET /api/v1/coils/N
- read coil N (int)
POST /api/v1/coils/N/VAL
- set coil N (int) to VAL, VAL can be one of accepted values for
strconv.ParseBool (1 or 0 is the simplest)
2023-02-24 22:52:13 +02:00
Jarno Rankinen
6198d2b522
Added debug output to Monitor()
2023-02-24 21:55:24 +02:00
Jarno Rankinen
5fddc0dcb7
gh-10 Method for writing a single coil
2023-02-23 22:07:51 +02:00
Jarno Rankinen
1759dabbca
gh-6 Found coil for overpressure (3) by experimenting, fix HA status logic
2023-02-23 20:42:00 +02:00
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