ccutrer / waterfurnace_aurora

Library for communication with WaterFurnace Aurora control systems
31 stars 7 forks source link

Illegal Data Address error #10

Closed doctorfred closed 2 years ago

doctorfred commented 2 years ago

Thank you for creating this!

My system is a Waterfurnace Series 7, IntelliZone 2, DHW, VS Drive, VS Pump

I built a cable as documented, using the DSD TECH SH-U11 adapter.

When starting Aurora MQTT bridge, I see an error:

Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]: /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:283:in `query': The data address received in the query is not an allowable address for the server (ModBus::Errors::IllegalDataAddress)
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:174:in `read_holding_registers'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:178:in `read_holding_register'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/proxy.rb:13:in `[]'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/modbus/slave.rb:26:in `[]'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/abc_client.rb:78:in `initialize'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_mqtt_bridge:38:in `new'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_mqtt_bridge:38:in `<top (required)>'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /usr/local/bin/aurora_mqtt_bridge:23:in `load'
Jan 26 16:10:52 raspberrypi aurora_mqtt_bridge[1276]:         from /usr/local/bin/aurora_mqtt_bridge:23:in `<main>'
Jan 26 16:10:52 raspberrypi systemd[1]: aurora_mqtt_bridge.service: Main process exited, code=exited, status=1/FAILURE

Is this something specific to my system and firmware? I get a different error if I unplug the cable from the ABC. If I edit abc_client.rb and set the zone count to 2 on line 78, I get the same IllegalDataAddress later on:

Jan 26 16:31:20 raspberrypi systemd[1]: aurora_mqtt_bridge.service: Service RestartSec=3s expired, scheduling restart.
Jan 26 16:31:20 raspberrypi systemd[1]: aurora_mqtt_bridge.service: Scheduled restart job, restart counter is at 344.
Jan 26 16:31:20 raspberrypi systemd[1]: Stopped Aurora MQTT Bridge.
Jan 26 16:31:20 raspberrypi systemd[1]: Started Aurora MQTT Bridge.
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]: /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:283:in `query': The data address received in the query is not an allowable address for the server (ModBus::Errors::IllegalDataAddress)
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/modbus/slave.rb:12:in `read_multiple_holding_registers'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/modbus/slave.rb:28:in `[]'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/abc_client.rb:162:in `refresh'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_mqtt_bridge:87:in `initialize'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_mqtt_bridge:615:in `new'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_mqtt_bridge:615:in `<top (required)>'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /usr/local/bin/aurora_mqtt_bridge:23:in `load'
Jan 26 16:31:24 raspberrypi aurora_mqtt_bridge[2500]:         from /usr/local/bin/aurora_mqtt_bridge:23:in `<main>'
Jan 26 16:31:24 raspberrypi systemd[1]: aurora_mqtt_bridge.service: Main process exited, code=exited, status=1/FAILURE
Jan 26 16:31:24 raspberrypi systemd[1]: aurora_mqtt_bridge.service: Failed with result 'exit-code'.
ccutrer commented 2 years ago

Hmm... that's almost my exact configuration, so I'm surprised you would get that error. Can you do aurora_fetch /dev/ttyUSB0 valid --yaml > myheatpump.yml (adjusting the serial port if necessary) and then e-mail me the resulting file (assuming it doesn't run into errors)?

doctorfred commented 2 years ago

Same thing:

aurora_fetch /dev/ttyUSB0 valid --yaml Traceback (most recent call last): 9: from /usr/local/bin/aurora_fetch:23:in <main>' 8: from /usr/local/bin/aurora_fetch:23:inload' 7: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_fetch:35:in <top (required)>' 6: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/exe/aurora_fetch:35:innew' 5: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/abc_client.rb:78:in initialize' 4: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.5/lib/aurora/modbus/slave.rb:26:in[]' 3: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/proxy.rb:13:in []' 2: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:178:inread_holding_register' 1: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:174:in read_holding_registers' /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:283:inquery': The data address received in the query is not an allowable address for the server (ModBus::Errors::IllegalDataAddress)

I’m wondering if there’s something wrong with the port or bit rate or some such. I don’t know much of anything about RS-485/RS-422.

On Jan 26, 2022, at 8:22 PM, Cody Cutrer @.***> wrote:

Hmm... that's almost my exact configuration, so I'm surprised you would get that error. Can you do aurora_fetch /dev/ttyUSB0 valid --yaml > myheatpump.yml (adjusting the serial port if necessary) and then e-mail me the resulting file (assuming it doesn't run into errors)?

— Reply to this email directly, view it on GitHub https://github.com/ccutrer/waterfurnace_aurora/issues/10#issuecomment-1022757174, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABL7VQVA4X64LFA2P7FT7H3UYCM7HANCNFSM5M4EAC7Q. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you authored the thread.

ccutrer commented 2 years ago

oh right, that makes sense... it goes through the same initialization first. lemme look and see if I can simplify that code to get past that part, and get to the part where it tries everything it can looking for valid registers

ccutrer commented 2 years ago

okay, 0.7.6 released that should bypass your error on initialization, and then try really hard to get all the data it can.

doctorfred commented 2 years ago

This time it looks like it’s hanging on the read:

Successfully installed waterfurnace_aurora-0.7.6 2 gems installed @.***:/usr/local/bin $ aurora_fetch /dev/ttyUSB0 valid ^CTraceback (most recent call last): 25: from /usr/local/bin/aurora_fetch:23:in <main>' 24: from /usr/local/bin/aurora_fetch:23:inload' 23: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/exe/aurora_fetch:49:in <top (required)>' 22: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:64:inquery_registers' 21: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:64:in each' 20: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:65:inblock in query_registers' 19: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:71:in rescue in block in query_registers' 18: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:71:ineach' 17: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:72:in block (2 levels) in query_registers' 16: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:77:inrescue in block (2 levels) in query_registers' 15: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:77:in each' 14: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:78:inblock (3 levels) in query_registers' 13: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/modbus/slave.rb:26:in []' 12: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/proxy.rb:13:in[]' 11: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:178:in read_holding_register' 10: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:174:inread_holding_registers' 9: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:267:in query' 8: from /usr/lib/ruby/2.5.0/timeout.rb:103:intimeout' 7: from /usr/lib/ruby/2.5.0/timeout.rb:93:in block in timeout' 6: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:269:inblock in query' 5: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/rtu_slave.rb:32:in read_pdu' 4: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/modbus/slave.rb:35:inread_rtu_response' 3: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/rtu.rb:43:in read' 2: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/rtu.rb:43:inloop' 1: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/rtu.rb:47:in block in read' /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/rtu.rb:47:inwait_readable': Interrupt

I hit ctrl-c after awhile.

On Jan 26, 2022, at 8:37 PM, Cody Cutrer @.***> wrote:

oh right, that makes sense... it goes through the same initialization first. lemme look and see if I can simplify that code to get past that part, and get to the part where it tries everything it can looking for valid registers

— Reply to this email directly, view it on GitHub https://github.com/ccutrer/waterfurnace_aurora/issues/10#issuecomment-1022763929, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABL7VQVJ3X5MHT7XPTH654LUYCOXLANCNFSM5M4EAC7Q. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you authored the thread.

ccutrer commented 2 years ago

It might take awhile. Possibly several minutes. You can also add --no-try-individual and it won't try quite so hard, but might be missing some data.

doctorfred commented 2 years ago

I can see the send/receive light on the rs422 dogle going nuts and the send/receive on the ABC main board flashing i respose to your aurora_fetch. I’ll wait awhile.

Thank you for helping!

On Jan 26, 2022, at 9:42 PM, Cody Cutrer @.***> wrote:

It might take awhile. Possibly several minutes. You can also add --no-try-individual and it won't try quite so hard, but might be missing some data.

— Reply to this email directly, view it on GitHub https://github.com/ccutrer/waterfurnace_aurora/issues/10#issuecomment-1022792656, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABL7VQQQOM4AQFTNPCQ64RLUYCWKTANCNFSM5M4EAC7Q. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you authored the thread.

doctorfred commented 2 years ago

Ok - it quit by itself:

@.***:/usr/local/bin $ aurora_fetch /dev/ttyUSB0 valid Traceback (most recent call last): 10: from /usr/local/bin/aurora_fetch:23:in <main>' 9: from /usr/local/bin/aurora_fetch:23:inload' 8: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/exe/aurora_fetch:49:in <top (required)>' 7: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:64:inquery_registers' 6: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:64:in each' 5: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:65:inblock in query_registers' 4: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:71:in rescue in block in query_registers' 3: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:71:ineach' 2: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:72:in block (2 levels) in query_registers' 1: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/modbus/slave.rb:14:inread_multiple_holding_registers' /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:283:in `query': The function code received in the query is not an allowable action for the server (ModBus::Errors::IllegalFunction)

and

@.***:/usr/local/bin $ aurora_fetch /dev/ttyUSB0 valid --yaml --no-try-individual Traceback (most recent call last): 10: from /usr/local/bin/aurora_fetch:23:in <main>' 9: from /usr/local/bin/aurora_fetch:23:inload' 8: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/exe/aurora_fetch:49:in <top (required)>' 7: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:64:inquery_registers' 6: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:64:in each' 5: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:65:inblock in query_registers' 4: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:71:in rescue in block in query_registers' 3: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:71:ineach' 2: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/abc_client.rb:72:in block (2 levels) in query_registers' 1: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.6/lib/aurora/modbus/slave.rb:14:inread_multiple_holding_registers' /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:283:in `query': The function code received in the query is not an allowable action for the server (ModBus::Errors::IllegalFunction)

was much faster, but same output.

On Jan 26, 2022, at 9:51 PM, Erik Frederick @.***> wrote:

I can see the send/receive light on the rs422 dogle going nuts and the send/receive on the ABC main board flashing i respose to your aurora_fetch. I’ll wait awhile.

Thank you for helping!

On Jan 26, 2022, at 9:42 PM, Cody Cutrer @. @.>> wrote:

It might take awhile. Possibly several minutes. You can also add --no-try-individual and it won't try quite so hard, but might be missing some data.

— Reply to this email directly, view it on GitHub https://github.com/ccutrer/waterfurnace_aurora/issues/10#issuecomment-1022792656, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABL7VQQQOM4AQFTNPCQ64RLUYCWKTANCNFSM5M4EAC7Q. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you authored the thread.

ccutrer commented 2 years ago

0.7.7 will ignore that error as well and keep going.

doctorfred commented 2 years ago

—no-try-individual:

doctorfred commented 2 years ago

And w/o no-try-individual, it errors:

@.***:/usr/local/bin $ aurora_fetch /dev/ttyUSB0 valid --yaml > ~/out.yml Traceback (most recent call last): 17: from /usr/local/bin/aurora_fetch:23:in <main>' 16: from /usr/local/bin/aurora_fetch:23:inload' 15: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/exe/aurora_fetch:49:in <top (required)>' 14: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:64:inquery_registers' 13: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:64:in each' 12: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:65:inblock in query_registers' 11: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:71:in rescue in block in query_registers' 10: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:71:ineach' 9: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:72:in block (2 levels) in query_registers' 8: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:77:inrescue in block (2 levels) in query_registers' 7: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:77:in each' 6: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/abc_client.rb:78:inblock (3 levels) in query_registers' 5: from /var/lib/gems/2.5.0/gems/waterfurnace_aurora-0.7.7/lib/aurora/modbus/slave.rb:26:in []' 4: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/proxy.rb:13:in[]' 3: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:178:in read_holding_register' 2: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:174:inread_holding_registers' 1: from /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:266:in query' /var/lib/gems/2.5.0/gems/rmodbus-ccutrer-2.1.0/lib/rmodbus/client/slave.rb:275:inrescue in query': Timed out during read attempt (ModBus::Errors::ModBusTimeout)

On Jan 26, 2022, at 9:58 PM, Cody Cutrer @.***> wrote:

0.7.7 will ignore that error as well and keep going.

— Reply to this email directly, view it on GitHub https://github.com/ccutrer/waterfurnace_aurora/issues/10#issuecomment-1022799176, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABL7VQWTHEDNWCLUEUZ4PRDUYCYELANCNFSM5M4EAC7Q. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you authored the thread.

ccutrer commented 2 years ago

:nod: I'll try and look at the data tomorrow, see if I can make sense of it, and request more if I need to.

doctorfred commented 2 years ago

Problem was my system was at Firmware 2.0.4. Fixed in 0.8.0. Thanks!