Rob, weewx.units.obs_group_dict['soilMoist5','soilMoist6','soilMoist7','soilMoist8'] = 'group_moisture'
may have been accepted by python but it is not correct, it needs to be: weewx.units.obs_group_dict['soilMoist5'] = 'group_moisture' weewx.units.obs_group_dict['soilMoist6'] = 'group_moisture' weewx.units.obs_group_dict['soilMoist7'] = 'group_moisture' weewx.units.obs_group_dict['soilMoist8'] = 'group_moisture' There is no need to re-run the wee_database commands, just make the change to user/extensions.py and restart WeeWX before you use soilMoist5 to soilMoist8 in any reports. Gary On Monday, 24 August 2020 at 10:28:58 UTC+10 Blaze wrote: > Thanks Gary, and yes you are correct I did miss the "import > schemas.wview_extended". > > I gave it a try, but I had to make a few adjustments to > the "/home/weewx/bin/user/extensions.py" file. Below is the one that seemed > to work for me. Or at least I can see my database has been extended! Plus > when the report runs, I'm not seeing any errors in the "/var/log/syslog". > My extra sensors should arrive in the next day or two, and I will be able > to confirm the database is being updated. Is there a way to tell if my > sensors belong to "group_moisture", or if what I have done is successful? > > # > # Copyright (c) 2009-2015 Tom Keffer <[email protected]> > # > # See the file LICENSE.txt for your full rights. > # > > """User extensions module > > This module is imported from the main executable, so anything put here > will be > executed before anything else happens. This makes it a good place to put > user > extensions. > """ > > import locale > # This will use the locale specified by the environment variable 'LANG' > # Other options are possible. See: > # http://docs.python.org/2/library/locale.html#locale.setlocale > locale.setlocale(locale.LC_ALL, '') > > import schemas.wview_extended > > my_schema = { > 'table': schemas.wview_extended.table + [('soilMoist5', > 'REAL'),('soilMoist6', 'REAL'),('soilMoist7', 'REAL'),('soilMoist8', > 'REAL')], > 'day_summaries' : schemas.wview_extended.day_summaries + > [('soilMoist5','SCALAR'),('soilMoist6','SCALAR'),('soilMoist7','SCALAR'),('soilMoist8','SCALAR')] > } > > import weewx.units > > weewx.units.obs_group_dict['soilMoist5','soilMoist6','soilMoist7','soilMoist8'] > > = 'group_moisture' > > Below is the output to my screen when I ran the --reconfigure command. > > root@myweewx:~# /home/weewx/bin/wee_database /home/weewx/weewx.conf > --reconfigure > Using configuration file /home/weewx/weewx.conf > Using database binding 'wx_binding', which is bound to database > 'archive_sqlite' > Copying database 'weewx.sdb' to 'weewx.sdb_new' > The new database will use the same unit system as the old ('US'). > Are you sure you wish to proceed (y/n)? y > Database 'weewx.sdb' copied to 'weewx.sdb_new' in 2.92 seconds. > > And below is my query for the extra sensors in the database. > > root@myweewx:~# sqlite3 /home/weewx/archive/weewx.sdb_new > SQLite version 3.31.1 2020-01-27 19:55:54 > Enter ".help" for usage hints. > sqlite> .headers on > sqlite> SELECT dateTime,soilMoist4 FROM archive ORDER BY dateTime ASC > LIMIT 5; > dateTime|soilMoist4 > 1596909900|60.0 > 1596910200|60.0 > 1596910500|60.0 > 1596910800|60.0 > 1596911100|60.0 > sqlite> SELECT dateTime,soilMoist5 FROM archive ORDER BY dateTime ASC > LIMIT 5; > dateTime|soilMoist5 > 1596909900| > 1596910200| > 1596910500| > 1596910800| > 1596911100| > sqlite> SELECT dateTime,soilMoist6 FROM archive ORDER BY dateTime ASC > LIMIT 5; > dateTime|soilMoist6 > 1596909900| > 1596910200| > 1596910500| > 1596910800| > 1596911100| > sqlite> SELECT dateTime,soilMoist7 FROM archive ORDER BY dateTime ASC > LIMIT 5; > dateTime|soilMoist7 > 1596909900| > 1596910200| > 1596910500| > 1596910800| > 1596911100| > sqlite> SELECT dateTime,soilMoist8 FROM archive ORDER BY dateTime ASC > LIMIT 5; > dateTime|soilMoist8 > 1596909900| > 1596910200| > 1596910500| > 1596910800| > 1596911100| > > > Thank you for all your help! > Rob > > On Sun, Aug 23, 2020 at 5:21 PM gjr80 <[email protected]> wrote: > >> Looks good though you have missed an import: >> >> import schemas.wview_extended >> >> needs to be included in extensions.py before you create my_schema. Not >> sure if it’s a typo/formatting issue or not but the group assignment >> statements need to be on separate lines, python will complain otherwise. >> >> Also, when running wee_database you may or may not need to prefix >> wee_database with sudo, it will depend on you system/WeeWX install. Try it >> without, if you get an error try it with. >> >> Gary >> >> On Monday, 24 August 2020 at 02:35:12 UTC+10 Blaze wrote: >> >>> Thank you both Graham and Gary! Would either of you or someone else mind >>> reviewing my proposed steps? >>> >>> In reading the Adding a new type to the database >>> <http://weewx.com/docs/customizing.htm#add_archive_type>, and what you >>> have both provided, I think I have a good understanding except for the 4th >>> step. Below are the steps I think I need to follow. >>> >>> *Step 1.* >>> Stop WeeWX >>> >>> /etc/init.d/weewx stop >>> >>> >>> *Step 2.* >>> Make a backup of the sqlite database >>> >>> cp /home/weewx/archive/weewx.sdb >>> /home/weewx/archive/weewx.sdb.bkup08232020a >>> >>> >>> *Step 3.* >>> Edit the "/home/weewx/bin/user/extensions.py" file. >>> >>> # >>> # Copyright (c) 2009-2015 Tom Keffer <[email protected]> >>> # >>> # See the file LICENSE.txt for your full rights. >>> # >>> >>> """User extensions module >>> >>> This module is imported from the main executable, so anything put here >>> will be >>> executed before anything else happens. This makes it a good place to put >>> user >>> extensions. >>> >>> """ >>> my_schema = { >>> 'table': schemas.wview_extended.table + [ >>> ('soilMoist5', 'REAL'), >>> ('soilMoist6', 'REAL'), >>> ('soilMoist7', 'REAL'), >>> ('soilMoist8', 'REAL') >>> ], >>> >>> 'day_summaries' : schemas.wview_extended.day_summaries + >>> [('soilMoist5','scalar'),('soilMoist6','scalar'),('soilMoist7','scalar'),('soilMoist8', >>> >>> 'scalar')] >>> >>> import weewx.units >>> >>> weewx.units.obs_group_dict['soilMoist5'] = >>> 'group_moisture' weewx.units.obs_group_dict['soilMoist6'] = >>> 'group_moisture' weewx.units.obs_group_dict['soilMoist7'] = >>> 'group_moisture' weewx.units.obs_group_dict['soilMoist8'] = 'group_moisture' >>> >>> import locale >>> # This will use the locale specified by the environment variable 'LANG' >>> # Other options are possible. See: >>> # http://docs.python.org/2/library/locale.html#locale.setlocale >>> locale.setlocale(locale.LC_ALL, '') >>> >>> >>> *Step 4.* >>> Change the line "schema = schemas.wview_extended.schema" to "schema = >>> user.extensions.my_schema" for the [[wx_binding]] option under >>> the [DataBindings] in my "/home/weewx/weewx.conf" file. >>> >>> [DataBindings] >>> >>> [[wx_binding]] >>> # The database must match one of the sections in [Databases]. >>> # This is likely to be the only option you would want to change. >>> database = archive_sqlite >>> # The name of the table within the database >>> table_name = archive >>> # The manager handles aggregation of data for historical >>> summaries >>> manager = weewx.manager.DaySummaryManager >>> # The schema defines the structure of the database. >>> # It is *only* used when the database is created. >>> #schema = schemas.wview_extended. >>> *schema = user.extensions.my_schema* >>> [[forecast_binding]] >>> manager = weewx.manager.Manager >>> schema = user.forecast.schema >>> table_name = archive >>> database = forecast_sqlite >>> >>> >>> *Step 5.* >>> Run the following command to create and populate the new database. >>> >>> /home/weewx/bin/wee_database /home/weewx/weewx.conf --reconfigure >>> >>> >>> *Step 6.* >>> Replace the old database with the one created in Step 5. >>> >>> mv /home/weewx/archive/weewx.sdb_new /home/weewx/archive/weewx.sdb >>> >>> >>> *Step 7.* >>> Start WeeWX >>> >>> /etc/init.d/weewx start >>> >>> >>> Thanks again! >>> Rob >>> >>> On Fri, Aug 21, 2020 at 11:51 PM Graham Eddy <[email protected]> wrote: >>> >>>> more like (and watch your commas, semicolons and case): >>>> >>>> import schemas.wview_extended >>>> >>>> my_schema = { >>>> 'table': schemas.wview_extended.table + [ >>>> ('soilMoist5', 'REAL’), ('soilMoist6', 'REAL’), >>>> ('soilMoist7', 'REAL’), ('soilMoist8', 'REAL') >>>> ], >>>> 'day_summaries' : schemas.wview_extended.day_summaries + >>>> [('soilMoist5’,’scalar’),(‘soilMoist6’,’scalar’),(‘soilMoist7’,’scalar’),('soilMoist8', >>>> ’scalar')] >>>> } >>>> >>>> import weewx.units >>>> >>>> weewx.units.obs_group_dict[‘soilMoist5’] = ‘group_moisture’ >>>> weewx.units.obs_group_dict[‘soilMoist6’] = ‘group_moisture’ >>>> weewx.units.obs_group_dict[‘soilMoist7’] = ‘group_moisture’ >>>> weewx.units.obs_group_dict['soilMoist8'] = 'group_moisture' >>>> >>>> >>>> -- >>>> 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/7069D2C1-0BEE-4008-8C71-3D282A27220A%40gmail.com >>>> >>>> <https://groups.google.com/d/msgid/weewx-user/7069D2C1-0BEE-4008-8C71-3D282A27220A%40gmail.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/1c827370-5291-4b7e-aa13-8d51b4ee737cn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/1c827370-5291-4b7e-aa13-8d51b4ee737cn%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/5b542d8e-4eaf-4b59-a329-2d7e72649f48n%40googlegroups.com.
