Hi Gary,
Thank you again for your response. And you are correct in that I am looking
at going down the second path. I think I understand what you are
explaining. If I am planning to use the maximum 8 soil moisture sensors,
would I duplicate each of these lines you have provided for each sensor, or
can I string them together in some order? We've had really good results
with these sensors,and I am thinking of adding more. So if I am going to
extend the schema, why not do it for the rest of them. Looking at the
"wview_extended.py", I see that the first part is repeated, ('soilMoist1',
'REAL').
Maybe something like this?
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','soilMoist6','soilMosit7','soilMoist8', 'SCALAR')]
}
import weewx.units
weewx.units.obs_group_dict['soilMoist5','soilMoist6','soilMost7,'soilMoist8']
= 'group_moisture'
Thanks for all your help and guidance!
Rob
On Thu, Aug 20, 2020 at 8:52 PM gjr80 <[email protected]> wrote:
> Hi Rob,
>
> To take the second part of your question first, I am currently putting
> together a page to go in the GW1000 driver wiki on how to extend the
> Seasons skin to include additional observations such as provided by the
> GW1000 driver. This will also cover adding plots and will complement the
> page re displaying GW1000 sensor battery states in Seasons
> <https://github.com/gjr80/weewx-gw1000/wiki/Adapting-the-Seasons-skin-to-display-battery-states>
> .
>
> Now for the db shema. As a general rule of thumb you should *avoid*
> modifying any of the WeeWX files except for weewx.conf, files in
> /home/weewx/bin/user (or /usr/share/weewx/user for package installs) and
> files in the skins directory. Those files/locations are preserved during
> WeeWX upgrades whereas other WeeWX files are liable to be overwritten
> during an upgrade meaning your changes may be lost, or at best may need to
> be re-applied. However, what you want to do can easily be done without
> running foul of future upgrades.
>
> There are two basic ways you can add a new observation to your database,
> first you can re-purpose an existing field. For example, someone with a
> second rain gauge might re-purpose the field hailRate as the rain rate
> field for the second rain gauge. Most easily done if the re-purposed field
> uses the same units as the data you wish to store in the re-purposed field
> but you can essentially use any field. The upside is you don't need to
> change your schema, the downside is it may not be obvious from the field
> name as to what observation is stored in that field.
>
> The second approach is to modify your database schema by adding a new
> field. This is more involved, thought the process is straight forward.
> Adding another field will not substantially increase the size of the
> database or adversely affect performance and I think the benefits of
> self-evident field names count for a lot, especially if you are going to be
> making changes to skins etc to display your data. At the end of the day the
> choice is yours.
>
> I will assume you are going down the second path. The process you need to
> follow is not so much 'modifying wview_extended.py' (remember the rule of
> thumb I mentioned) but rather creating your own schema based on the schema
> in wview_extended.py which you then extend with your new fields. The
> process is covered in Adding a new type to the database
> <http://weewx.com/docs/customizing.htm#add_archive_type> in the
> Customization Guide though you will need to make a couple of slight
> changes. The first change you need to make is instead of inserting the
> lines of code at step 1 in the process in the file user/electricity.py
> (the user directory is in /home/weewx/bin or /usr/share/weewx depending
> on your WeeWX install type), you should add the lines to the end of the
> special file users/extensions.py, something like this (untested):
>
> import schemas.wview_extended
>
> my_schema = {
> 'table': schemas.wview_extended.table + [('soilMoist5', 'REAL')],
> 'day_summaries' : schemas.wview_extended.day_summaries + [('soilMoist5',
> 'SCALAR')]
> }
>
>
> The second change is that you will need to tell WeeWX what unit group your
> new field belongs to so WeeWX knows what units to use and how to format the
> field in reports. This is done by adding the following to the end of
> user/extensions.py (untested):
>
> import weewx.units
>
> weewx.units.obs_group_dict['soilMoist5'] = 'group_moisture'
>
> Otherwise follow the steps as is and once complete you should find your
> database now includes a field soilMoist5.
>
> Gary
>
> On Thursday, 20 August 2020 12:10:39 UTC+10, Blaze wrote:
>>
>> I think this is really a multipart question, but I am trying to
>> understand the best/proper way to add Ecowitt soil sensors to my reports.
>> Keeping in mind that I want to be able to upgrade to future releases as
>> they come available with the least amount of post upgrade effort.
>>
>> *Setup*
>> Ubuntu 20.04.1 LTS
>> WeeWx v4.1.1 using setup.py
>> gw1000-0.1.0b11
>> sqlite db
>> Seasons skin
>> Ecowitt GW1000 WiFi Gateway
>> 1 Outdoor Temp Sensor
>> 1 Indoor Temp Sensor
>> 5 Soil Moisture Sensors (temporarily 5th sensor is broken while waiting
>> for replacement)
>>
>> Out of the box everything is showing up in the Seasons' report except my
>> soil moisture sensors. I do have data for the first 4 soil moisture sensors
>> in the sqlite db, but nothing for 5th one. And I can see there is no entry
>> in the db for SoilMoisture sensors 5-8. So begins my adventure of learning
>> more about this awesome project called WeeWx.
>>
>> So I am thinking I have at least 3 tasks.
>>
>> First I need to extend the db to accommodate SoilMoisture sensors 5-8?
>> For this task do I extend the schema by modifying the wview_extended.py
>> and the wview.py to include these extra sensors in the db? Or is the better
>> approach to use something like adding a new type to the database as
>> described in the Customization Guide?
>>
>> Second modify the reporting mechanism to show SoilMoisture in my Seasons'
>> report.
>> I'm really uncertain for this portion. I did a grep in
>> the /home/weewx/bin/ directory, and I can see several files where "soil "
>> is referenced. Do I just need to add entries in these files for extra
>> sensors?
>>
>> *Command used: *
>> grep -iHR soil /home/weewx/bin/*
>>
>> *Relevant files (or so I think) referencing the word "soil".*
>> /home/weewx/bin/schemas/wview.py
>> /home/weewx/bin/schemas/wview_extended.py
>> /home/weewx/bin/user/gw1000.py (this one seems to already have all
>> the sensors)
>> /home/weewx/bin/weewx/units.py
>> /home/weewx/bin/weewx/restx.py
>>
>> And would the last task be to update the appropriate files in
>> the /home/weewx/skins/Seasons/ to actually generate the graphs I want to
>> have displayed in my report?
>>
>> Thanks in advance for any help or guidance.
>> Rob
>>
>>
>>
>> --
> 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/8dbd5209-bc5e-4f76-9457-c04369eefea6o%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/8dbd5209-bc5e-4f76-9457-c04369eefea6o%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/CAHmVY1eo%3DQ%2BC1eqZ4DekiO--uyhN54DNu0ATxncsjOHRiP78aA%40mail.gmail.com.