I would suggest thinking of it in terms of multiplexing your 3 different data streams into one, which would then present to an instance of weewxd. There are several ways to do this.
The traditional way is to pick one of the streams to be the main one and write a driver for it. The other two streams would then be interleaved by using custom WeeWX services. This would be "Configuration 4 <https://github.com/weewx/weewx/wiki/intake-strategies#configuration-4-driver-with-services-for-additional-data-sources>" in the wiki article *Strategies for getting data into WeeWX.* Usually this is done with only two streams, not three, but there's no reason not to do it Another approach would be to write a single, more sophisticated, driver that interleaves the three streams internally. How you do this would depend on the interface to your data sources. For example, if they are all hardware, a select statement might be required. If it's through an HTTP interface, an internal HTTP client might do it. Still another approach would be to think of your three streams as the basis of a new, custom weather station, with its own hardware. This could be implemented using an RPi, or some microcontroller. You would then write a pretty simple WeeWX driver to read from this hardware. Other approaches are also possible. Not sure where StdPrint comes in... On Fri, Oct 7, 2022 at 3:39 PM Steven Sarns <[email protected]> wrote: > Hello, I would not yet call myself a beginner Python programmer, but > having fallen from the nest too many times to count – I am ready to fly! I > have a question about code structure as it relates to Weewx and Python on > the Raspberry Pi (3B+, PiOS). Here’s the setup; one outdoor unit sends > frequent data packets (wind, rain), another (separate) outdoor unit sends > infrequent packets (temperature, pressure, humidity, particle count), > indoor Pi receives outdoor packets and acquires additional data > (temperature, pressure). The data link is based on the nRF24L01+ which can > hold two or three messages before losing anything. > > My thinking is that I need to code a driver in Python that acquires the > incoming data packets and assembles a new LOOP packet to send to Weewx upon > receipt of data message from an outdoor unit. I have coded this block in as > interrupt service routine. I understand the need to modify the > weewx.engine.StdPrint service to agree with my data structure. What I do > not understand is how to send this data as a LOOP packet to the > weewx.engine.MyPrint service. Any helpful words or links would be > appreciated. Thanks for your patience and assistance. > > -- > You received this message because you are subscribed to the Google Groups > "weewx-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/da42eab7-240a-4c62-b899-578599be77a3n%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/da42eab7-240a-4c62-b899-578599be77a3n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEDuwn5mXWt1TPURg7aFy3BfdC%3DGupRWD%3D%2B%2BjjaiaLpD8g%40mail.gmail.com.
