kpishere / Net485

A popular network protocol for RS485 / EIA-485 transmission networks in residential HVAC following OSI Layer conventions
GNU General Public License v2.0
25 stars 4 forks source link

Net485

A popular network protocol for RS485 / EIA-485 transmission networks in residential HVAC following OSI Layer conventions

This project is still very much a work in progress. Each layer of the protocol, as it is added, will get it's own test script(s) and already Layer 1 is still very much usable for a variety of protocols. What each layer provides is briefly listed below.

Layer 1:

Layer 2:

Layers 3-5:

Milestone 1 :

A big change in project structure now. Now, with the coordinator services running (test_network_furnace and test_network_thermostat), their 2nd serial lines are expected to be communicating with the respective device's application process. The communication is the exact same packet structure as on the RS485 wire but is only the data packets relevant to the application (and some header values are switched as defined in CT documentation).

Presently, one can use the net485Listener tool to see packets to the device. I'll be making respective utilities to emulate some devices. This may be close to being useful for those that wish to make HVAC devices communicate now.

NOTE: Network shared data feature still is not implemented and remains to be done - this is to come soon once the devices can be virtualized and debuging/testing not so painfull.

Net485Listen

Do check out the sub-project under 'Applications' folder - a very handy snooper tool for existing networks. You got one of the following brands? They all use the same protocol (albeit with their own extensions). If any of you all are interested, I'm down for logging network activity and reverse-engineering and documenting all of these extensions and ultimately adding support to this library. You can help out by snooping your own network and submitting samples of what is logged. Data submitted is avilable under diag\logs folder.

Focus shifted

With the low level Coordinator functioning, there is a need for simulated networks in order to test device functionality. A framwork dependancy has shifted from ORSSerialPort to POSIXSerialPort as the latter supports physical and virtual devices equally well. With everything virtuallized, development/test/debug cycles should be much quicker and progress is expected to accelerate. As the workflow gets established, detail will be provided in how to construct it. Initial testing with the use of socat to create virtual serial ports that connect to UDP endpoints has gone well and it works with Node-Red quite nicely.