When I changed batteries in the 6045M, the ID did not change. Need to watch your counter because the count does not always increment by 1.
As for a program, I use Node Red on a RPI. There is a node available for RTL_433 which decodes fine. Here is an output from that node:
{"time":"2021-04-22 09:35:24","model":"Acurite-6045M","id":121,"channel":"B","battery_ok":1,"temperature_F":59.5,"humidity":33,"strike_count":82,"storm_dist":24,"active":0,"rfi":0,"exception":0,"raw_msg":"80796f21901ba918f5"}