Because of the syntax, it's tempting to look at a ConfigObj file and think of it as assigning the right hand side to the left hand side. But, it's really not. It's a mapping. The left hand side *maps to* the right hand side.
As a key:value comes in from the file, we need to know what to do with the key. Given a key, what WeeWX name do we assign it to? With a mapping, we look it up, then do the assignment to the value. If we did it the other way around, we'd have to search all the *values* in the mapping to find what it should be mapped to. That's backwards from the way dictionaries work. -tk On Tue, Apr 23, 2019 at 5:51 AM Andrew Milner <[email protected]> wrote: > Tom > Forgive me for being a pedant - but shouldn't the label map for filepile > have the arguments the other way round > ie rather than > myVoltage = Supply Voltage > it should be > SupplyVoltage = myVoltage > ie > weewx destination field = source data field > > normally left of equals sign is the result of operations right of equals > sign > eg > a = 3 + 2 would put 5 into a > > > > On Tuesday, 23 April 2019 14:45:38 UTC+3, Thomas Keffer wrote: >> >> Take a look at Filepile <https://github.com/tkeffer/filepile>. It may do >> what you want, or help you write your own. >> >> -tk >> >> On Mon, Apr 22, 2019 at 7:43 PM <[email protected]> wrote: >> >>> Hi all >>> >>> I have devised a method to export my Air Quality Data (AQI) from my >>> Arduino based weather station to Weewx (it can't be sent via the usb port >>> with the rest of the data). It involves sending the data via a UDP >>> broadcast packet from the station, this is then captured by a small Python >>> script on my Weewx Pi and written to a txt file. >>> >>> The txt file data looks like this >>> AQI25=5.50,AQI100=4.10,AQIIndex=22,AQICO2=967 >>> >>> From the Weewx wiki I have crafted the beginning of a service to import >>> the data to my Wewwx database (extended with the 4 new data fields) but I'm >>> not sure how to complete that task. So far I have this, which I think will >>> grab the first value - how do I parse the other 3? Is it as simple as just >>> adding more lines such as event.record['AQI100'] = float(value) etc? >>> >>> *import* syslog >>> >>> *import* weewx >>> >>> *from* weewx.wxengine *import* StdService >>> >>> >>> *class* WDAQIService(StdService): >>> >>> *def** __init__*(self, engine, config_dict): >>> >>> super(WDAQIService, self).__init__(engine, config_dict) >>> >>> d = config_dict.get(*'WDAQIService'*, {}) >>> >>> self.filename = d.get(*'filename'*, *'/home/pi/AQIData.txt'*) >>> >>> syslog.syslog(syslog.LOG_INFO, *"WDAQIImport: using %s"* % >>> self.filename) >>> >>> self.bind(weewx.NEW_ARCHIVE_RECORD, self.read_file) >>> >>> >>> *def** read_file*(self, event): >>> >>> *try*: >>> >>> *with* open(self.filename) *as* f: >>> >>> value = f.read() >>> >>> syslog.syslog(syslog.LOG_DEBUG, *"WDAQIImport: found value >>> of %s"* % value) >>> >>> event.record[*'AQI25'*] = float(value) >>> >>> *except* Exception *as* e: >>> >>> syslog.syslog(syslog.LOG_ERR, *"WDAQIImport: cannot read >>> value: %s"* % e) >>> >>> Thanks >>> Colin >>> >>> -- >>> 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]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > 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]. > For more options, visit https://groups.google.com/d/optout. > -- 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]. For more options, visit https://groups.google.com/d/optout.
