Assuming you've got an appropriate entry in [DataBindings] for your binding 'sqlitedup_binding', yes, you've got the idea.
If you don't want the daily summaries, in the [DataBindings] section, option manager, substitute Manager for WXDaySummaryManager. (Although, I must admit, I've never actually tried this!) Certain aggregations will not be available, but it should otherwise work. -tk On Sat, Oct 7, 2017 at 10:32 PM, Glenn McKechnie <glenn.mckech...@gmail.com> wrote: > I've had this itch for a while - generating an sqlite database, as > well as the mysql one that I use. > I use mysql for a remote installation of mesowx - using luc's sync.py. > I also intend to (eventually) setup replication so that's another > reason to stay with mysql. > > I also like the sqlite database for its simplicity and low memory > requirements - it fits perfectly with a memory only installation such > as rorpi. To allow a demo of weewx-wxobs to run on my rorpi web > server, I need a live, current, and light database. So... > > I can get that if I hitch into weewx and convince it to generate an > sqlite database with real data (a simulator doesn't really cut it .) > I've read the various threads and this time decided that perhaps it > was worth tackling. The following is the result , and after taking out > all the redundant cruft (unsuccessfull attempts) I'm left with the > following - that actually works, almost too well? > > It's still working, and I'm still surprised. Now, I'm left wondering > what am I missing, is it really this minimal? > > Specifically, and this is the main concern. Is this all that's > required to hitch a ride on the NEW_ARCHIVE_RECORD? No other > housekeeping required to keep weewx sane and troublefree? > > (On a minor note. Is there a way to get the NEW_ARCHIVE RECORD that > doesn't generate the daily summaries? Not that it really matters as, > they are really no weight to carry around. Curiosity I guess) > > I'm happy with a seperate database, there's no need to hijack the > weewx.sdb default name. > There's no error, exception, missing database, dog's gone missing, > sanity checks yet and I expect those to be the next priority ie: I'll > dig around the code base and extensions and find something to adapt . > :-) > I've added the schema as mine has expanded from the defaults. > > Code is in-line below and at https://github.com/glennmckechnie/weewx- > sqlitedupe > > # $Id: csv.py 1319 2015-05-10 08:27:43Z mwall $ > # Copyright 2015 Matthew Wall > # > # sqlitedupe.py > # based on the csv, pmon and cmon extensions by mwall > # Copyright 2017 Glenn McKechnie > # glenn.mckech...@gmail.com > > > #import os > #import os.path > #import time > import syslog > > import weewx > import weewx.engine > import weeutil.weeutil > import weedb > > VERSION = "0.1" > > def logmsg(level, msg): > syslog.syslog(level, 'sqlitedupe: %s' % msg) > > def logdbg(msg): > logmsg(syslog.LOG_DEBUG, msg) > > def loginf(msg): > logmsg(syslog.LOG_INFO, msg) > > def logerr(msg): > logmsg(syslog.LOG_ERR, msg) > > schema = [ > ('dateTime', 'INTEGER NOT NULL UNIQUE PRIMARY KEY'), > ('heatindex', 'REAL'), > ('outHumidity', 'REAL'), > ('maxSolarRad', 'REAL'), > ('hail', 'REAL'), > ('inTempBatteryStatus', 'REAL'), > ('rainBatteryStatus', 'REAL'), > ('hailRate', 'REAL'), > ('altimeter', 'REAL'), > ('outTempBatteryStatus', 'REAL'), > ('radiation', 'REAL'), > ('inTemp', 'REAL'), > ('inDewpoint', 'REAL'), > ('barometer', 'REAL'), > ('windchill', 'REAL'), > ('dewpoint', 'REAL'), > ('windrun', 'REAL'), > ('rain', 'REAL'), > ('humidex', 'REAL'), > ('pressure', 'REAL'), > ('ET', 'REAL'), > ('rainRate', 'REAL'), > ('usUnits', 'INTEGER NOT NULL'), > ('rainCount4', 'REAL'), > ('rainCount3', 'REAL'), > ('rainCount1', 'REAL'), > ('appTemp', 'REAL'), > ('windBatteryStatus', 'REAL'), > ('interval', 'INTEGER NOT NULL'), > ('windDir', 'REAL'), > ('outTemp', 'REAL'), > ('windSpeed', 'REAL'), > ('inHumidity', 'REAL'), > ('windGust', 'REAL'), > ('windGustDir', 'REAL'), > ('cloudbase', 'REAL') > ] > > class SQLiteDupe(weewx.engine.StdService): > def __init__(self, engine, config_dict): > super(SQLiteDupe, self).__init__(engine, config_dict) > d = config_dict.get('SQLiteDupe', {}) > self.binding = d.get('binding', 'archive') > if self.binding == 'archive': > self.bind(weewx.NEW_ARCHIVE_RECORD, self.handle_new_archive) > #else: > # self.bind(weewx.NEW_LOOP_PACKET, self.handle_new_loop) > > # get the database parameters we need to function > binding = d.get('data_binding', 'sqlitedupe_binding') > self.dbm = self.engine.db_binder.get_manager(data_binding=binding, > initialize=True) > > # be sure database matches the schema we have > dbcol = self.dbm.connection.columnsOf(self.dbm.table_name) > dbm_dict = > weewx.manager.get_manager_dict_from_config(config_dict, binding) > dupecol = [x[0] for x in dbm_dict['schema']] > if dbcol != dupecol: > raise Exception('sqlitedupe schema mismatch: %s != %s' % > (dbcol, dupecol)) > > def handle_new_archive(self, event): > """save data to database""" > self.dbm.addRecord(event.record) > > > # loginf('new_archive_record %s' %(event.record)) > # loginf('new_archive_record %s' %(event)) > # data record {'heatindex': 17.296875000000004, 'outHumidity': > 72.454275, 'maxSolarRad': 782.7650660547766, 'hail': 0.0, > 'inTempBatteryStatus': 4.93, 'rainBatteryStatus': 4.95, 'hailRate': > 0.0, 'altimeter': 1016.2321988390987, 'outTempBatteryStatus': 4.96, > 'radiation': 1400.0322500000002, 'inTemp': 21.65625, 'inDewpoint': > 48.14709605637118, 'barometer': 1015.294, 'windchill': > 17.296875000000004, 'dewpoint': 12.293227803655595, 'windrun': > 20.47582442781085, 'rain': 0.0, 'humidex': 19.710957581208838, > 'pressure': 963.4797924584669, 'ET': 0.010438185627416401, 'rainRate': > 0.0, 'usUnits': 17, 'rainCount4': 987.0, 'rainCount3': 835.0, > 'rainCount1': 20227967.0, 'appTemp': 15.479917358792356, > 'windBatteryStatus': 4.95, 'interval': 1, 'dateTime': 1507163160.0, > 'windDir': 241.28352189240834, 'outTemp': 17.296875000000004, > 'windSpeed': 3.609926636088604, 'inHumidity': 44.3086, 'windGust': > 3.823387430030153, 'windGustDir': 247.47474747474746, 'cloudbase': > 1073.9298293015042} > > Cheers > Glenn > > rorpi - read only raspberry pi & various weewx addons > https://github.com/glennmckechnie >