(I'm providing comments I think fill in context and gaps.)
I'm using GW1000 and have a WH51 soil sensor, too.

GJR80 (Gary), excellent advice. Thanks.

Blaze (Rob), I chose to use the Ecowitt web site until I can read and use 
the new GW1000 driver in weewx. Its advantage is that Ecowitt tells me all 
the sensors it finds and is therefore a very useful testing tool. The 
GW1000 seems like an SDR dongle and a wifi router, with a temperature, 
humidity, pressure sensor attached. There's some calculation and memory, 
too. The RTL-433 and some of the weewx functions seem to be at the Ecowitt 
web site.

So the GW1000 is also a sensor-aggregator. Its manual says it will 
recognise up to eight (8) WH51 moisture meters. The manual says:

   1. 
   
   Additional/optional sensors:
    One WH32 outdoor temperature and humidity sensor.  possibly because 
   this is not a multi-channel device - see WH31 below.
   - 
      
        One WH40 self-emptying rain gauge sensor
      - 
      
        One WS68 wireless anemometer 
      - 
      
        One WH57 lightning sensor 
      - 
      
        Up to 8 WH31 multi-channel temperature and humidity sensors
      - 
      
        Up to 8 WH51 soil moisture sensors 
      - 
      
        Up to 4 WH41 PM2.5 air quality sensors 
      - 
      
        Up to 4 WH55 Water leak sensors
      
 Future sensors (to be developed), such as: water temp, soil temp 


On Friday, 21 August 2020 at 10:52:13 UTC+10 gjr80 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/ef4be458-b4ae-476c-aff2-d6b98aded427n%40googlegroups.com.

Reply via email to