Hi,
As the author of the previously mentioned uradmon, I probably should pitch in.
At first glance your json data and fields look very similar to uradmons, and that's without looking at the uradmon code (it's been a while!) Reviewing the code confirms that.
It should be a fairly straight forward to adapt it, with the bonus that the extra uradmon specific code (retries and timeouts) can hopefully be ignored in your case.
One difference is your data supplies a timestamp. uradmon.py generates its own timestamp as the unit doesn't supply one. The choices begin!
The uradmon.py was written pretty much as a standalone service, under weewx control of course.
It defines the units / groups / formats / labels and conversions etc that it uses because at the time these weren't included in weewx itself, plus it uses some oddball ones - Pa, cpm. I believe some of them are now included in weewx.
It writes to its own database primarily because I didn't want to go adding or co-opting weewx fields for uradmon purposes, and then live with the consequences at upgrade time. It also seemed the simplest method to prevent stomping on other users choices. It was also written before the new schema although looking at your fields there are some rather awair specific names?
The uradmon code is fairly well commented with example data (there are at least 4 different types of urad units) and if you go down that path and
have any queries then you can contact me directly - if you read this via an email client my address should be visible.