Yeah, sorry, the post took awhile to appear so I couldn't update it with the full log, whole thing is attached below. Looking at the repo, there was a change to crc16.py 11 months ago that may have caused this:
- def crc16(bytes, crc_start=0):
+ def crc16(byte_buf, crc_start=0):
- return reduce(lambda crc_sum, ch: (_table[(crc_sum >> 8) ^ ch] ^ (crc_sum << 8)) & 0xffff, byte_buf, crc_start)
+ crc_sum = reduce(lambda crc, ch : (_table[(crc >> 8) ^ ch] ^ (crc << 8)) & 0xffff, byte_iter, crc_start)
but see my earlier comment about no hablo Python :).
CRITICAL __main__: Caught unrecoverable exception:
CRITICAL __main__: **** unsupported operand type(s) for ^: 'int' and 'str'
CRITICAL __main__: **** Traceback (most recent call last):
CRITICAL __main__: **** File "/usr/share/weewx/weewxd.py", line 127, in main
CRITICAL __main__: **** engine.run()
CRITICAL __main__: **** ~~~~~~~~~~^^
CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 204, in run
CRITICAL __main__: **** for packet in self.console.genLoopPackets():
CRITICAL __main__: **** ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
CRITICAL __main__: **** File "/etc/weewx/bin/user/meteostick.py", line 311, in genLoopPackets
CRITICAL __main__: **** data = self.station.parse_readings(readings, self.rain_per_tip)
CRITICAL __main__: **** File "/etc/weewx/bin/user/meteostick.py", line 638, in parse_readings
CRITICAL __main__: **** data = self.parse_raw(raw,
CRITICAL __main__: **** self.channels['iss'],
CRITICAL __main__: **** ...<3 lines>...
CRITICAL __main__: **** self.channels['temp_hum_2'],
CRITICAL __main__: **** rain_per_tip)
CRITICAL __main__: **** File "/etc/weewx/bin/user/meteostick.py", line 687, in parse_raw
CRITICAL __main__: **** Meteostick._check_crc(raw_msg_crc, chksum)
CRITICAL __main__: **** ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
CRITICAL __main__: **** File "/etc/weewx/bin/user/meteostick.py", line 505, in _check_crc
CRITICAL __main__: **** crc_result = crc16(msg)
CRITICAL __main__: **** File "/usr/share/weewx/weewx/crc16.py", line 49, in crc16
CRITICAL __main__: **** return reduce(lambda crc_sum, ch: (_table[(crc_sum >> 8) ^ ch] ^ (crc_sum << 8)) & 0xffff,
CRITICAL __main__: **** byte_buf, crc_start)
CRITICAL __main__: **** File "/usr/share/weewx/weewx/crc16.py", line 49, in <lambda>
CRITICAL __main__: **** return reduce(lambda crc_sum, ch: (_table[(crc_sum >> 8) ^ ch] ^ (crc_sum << 8)) & 0xffff,
CRITICAL __main__: **** ~~~~~~~~~~~~~~~^~~~
CRITICAL __main__: **** TypeError: unsupported operand type(s) for ^: 'int' and 'str'
CRITICAL __main__: **** Exiting.
Traceback (most recent call last):
File "/usr/share/weewx/weewxd.py", line 226, in <module>
main()
~~~~^^
File "/usr/share/weewx/weewxd.py", line 127, in main
engine.run()
~~~~~~~~~~^^
File "/usr/share/weewx/weewx/engine.py", line 204, in run
for packet in self.console.genLoopPackets():
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/etc/weewx/bin/user/meteostick.py", line 311, in genLoopPackets
data = self.station.parse_readings(readings, self.rain_per_tip)
File "/etc/weewx/bin/user/meteostick.py", line 638, in parse_readings
data = self.parse_raw(raw,
self.channels['iss'],
...<3 lines>...
self.channels['temp_hum_2'],
rain_per_tip)
File "/etc/weewx/bin/user/meteostick.py", line 687, in parse_raw
Meteostick._check_crc(raw_msg_crc, chksum)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/etc/weewx/bin/user/meteostick.py", line 505, in _check_crc
crc_result = crc16(msg)
File "/usr/share/weewx/weewx/crc16.py", line 49, in crc16
return reduce(lambda crc_sum, ch: (_table[(crc_sum >> 8) ^ ch] ^ (crc_sum << 8)) & 0xffff,
byte_buf, crc_start)
File "/usr/share/weewx/weewx/crc16.py", line 49, in <lambda>
return reduce(lambda crc_sum, ch: (_table[(crc_sum >> 8) ^ ch] ^ (crc_sum << 8)) & 0xffff,
~~~~~~~~~~~~~~~^~~~
TypeError: unsupported operand type(s) for ^: 'int' and 'str'