This project provides a boilerplate to read data from the data bus from devices manufactured by TA (Technische Alternative)
- UVR 31
- UVR 42
- UVR 64
- HRZ 65
- EEG 30
- TFM 66
- UVR 1611 available under
uvr/1611 - UVR 61-3
- ESR 21
The data bus uses a signal at 488 frequency to transmit bits. The bit stream is manchester encoded as described in docs/Schnittstelle Datenleitung 1.6.pdf (German only).
The project contains an implementation of a pipeline to decode the data signal of an UVR1611. The pipeline consists of several stages which decode bits to bytes and then to packets. The stages are abstracted by interfaces
WordConsumer -> BitConsumer -> ByteConsumer -> PacketConsumer
WordConsumerinsignal.go: Converts a bit of typebig.WordtoBitwhich includes the bit value and a timestampBitConsumerinuvr/1611/sync.go: Synchronizes the decoding and passes bits through to next bit consumer when synchronizedBitConsumerinbyte.go: Accumulates bits to one byte and checks start and stop bitByteConsumerinuvr/1611/packet_decoder.go: Accumulates bytes to one packetPacketConsumerbypacketConsumerinuvr/1611/util.gowhich calls a function when packet arrives
- Speed step
speed_step.go- Add methods to check if enabled
- Add method to get value
- Heat meter
heatmeter.go- Decode power of heatmeters
Matthias Hochgatterer
Github: https://github.com/brutella/
Twitter: https://twitter.com/brutella
gouvr is available under the MIT license. See the LICENSE file for more info.