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] <javascript:>> 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] <javascript:>. >> 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.
