Thank you very much Tom. One thing I can not figure out is:
In the docs it says that everytime an archive period is over (every time a new record is done) all the newly generated images (plots) get copied into the public_html folder. What I noticed for me is that this is not the case. (actually it seems to be a lot longer until they are updated). When triggering a report manually using the wee_reports command the same behavior can be observed. However, when I delete the .png images (plots) from the public_html folder the fresh images get copied into the public_html right away when the next record is done. Can you tell me how to change this so the newest plot images are always copied to the public_html folder everytime a new record is done? I tried to set copy_always flag in the skin.conf in the copy_generator section but no change. Also cannot seem to find anything in the docs that can help me. Thank you very much, Henry. I have no stale_age or cronjob defined for report generation. On Wednesday, February 20, 2019 at 2:56:36 PM UTC+1, Tom Keffer wrote: > > When a new record arrives, WeeWX tries to write all the types it can into > the database. If a type is not in the database schema, it is skipped. > > If you're interested, the logic is in function manager._addSingleRecord() > <https://github.com/weewx/weewx/blob/master/bin/weewx/manager.py#L273>. > > -tk > > On Tue, Feb 19, 2019 at 11:02 PM Henry Denston <[email protected] > <javascript:>> wrote: > >> Tom, in case I would like to create my own database schema, is it enough >> to just remove the cloumns from the dictionary in this file: >> .\weewx\bin\schemas\wview.py'' ? >> Seems like weewx still tries to write to removed database columns when >> trying to save a record. >> >> Would really appreciate it in case you could name at least some files off >> the cuff that I have to look into. >> Thanks :) >> >> On Friday, February 15, 2019 at 11:23:00 PM UTC+1, Tom Keffer wrote: >>> >>> If you're going to all the trouble of creating a custom database schema, >>> you can certainly make additional changes to suit your needs. Just be >>> careful not to drop something you'll need for your reports. >>> >>> However, you'll find removing unused observation types does not save as >>> much space as you think. A major part of the database is the index, which >>> will still be there. >>> >>> As far as what's the best practice? I'd say, do what Google does: save >>> everything. Storage is cheap. >>> >>> -tk >>> >>> On Fri, Feb 15, 2019 at 11:50 AM Henry Denston <[email protected]> wrote: >>> >>>> Hi Tom, >>>> >>>> thank you very much for your great reply! :) >>>> I do not have an existing database yet. >>>> >>>> I already read the *Adding a new type to the database >>>> <http://weewx.com/docs/customizing.htm#add_archive_type> *section in >>>> the Customizing Guide, however was confused as I thought this only applies >>>> in case one wants to add a new observation type that is not present in >>>> weewx yet (as in the example electricity). >>>> I wanted to add additional radiation sources (and there is already the >>>> radiation observation type implemented in weewx), so I thought by using an >>>> already existing observation type I might not need to adjust the database >>>> structure. >>>> Your answer however, clearly shows how to make the required changes, >>>> thank you very much! (Maybe add this little example to the docs, right >>>> next >>>> to the electricity eample? :)) >>>> >>>> *Another question:* >>>> By using the file user/extensions.py additional sensors can be added >>>> to weewx as you have presented. >>>> Is it best practice to just append additionally required sensors to >>>> the standard weewx database structure or should I (make some additional >>>> changes to) 'rebuild' the used database structure for my system? >>>> For example in case I intend to use only about 8 sensors/values in my >>>> current system (e.g.: dateTime, usUnits, windSpeed, outTemp, radiation, >>>> radiation1, radiation2, radiation3) I could remove all additional values >>>> in >>>> the database that I will not use (e.g. barometer, pressure, altimeter, >>>> inTemp, etc....) ? Would love to hear your opinion on that. >>>> >>>> Thank you very much, Henry. >>>> >>>> >>>> On Friday, February 15, 2019 at 7:51:13 PM UTC+1, Tom Keffer wrote: >>>>> >>>>> Yes, your strategy would work, and your names (radiation1, radiation2, >>>>> and radiation3) are sensible names to give the extra sensors. >>>>> >>>>> You would have to change the database schema to accommodate the extra >>>>> sensors. >>>>> >>>>> Do you have an existing database, to which you want to add the new >>>>> observation types? If so, then follow the instructions in the Customizing >>>>> Guide, section *Adding a new type to the database >>>>> <http://weewx.com/docs/customizing.htm#add_archive_type>*. If there >>>>> is something that is confusing about the instructions, let us know what >>>>> the >>>>> problem is so we can clarify and, perhaps, update the documents and make >>>>> it >>>>> clearer. >>>>> >>>>> If you do not have an existing database, then it is slightly easier. >>>>> To the bottom of the file user/extensions.py, add the following: >>>>> >>>>> import schemas.wview >>>>> radiation_schema = schemas.wview.schema + [ >>>>> ('radiation1'', 'REAL'), >>>>> ('radiation2'', 'REAL'), >>>>> ('radiation3'', 'REAL'), >>>>> ] >>>>> >>>>> Then go into your weewx.conf and change the [DataBindings] and >>>>> [Databases] section so they look like this: >>>>> >>>>> [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.wxmanager.WXDaySummaryManager >>>>> # The schema defines the structure of the database. >>>>> # It is *only* used when the database is created. >>>>> schema = user.extensions.radiation_schema >>>>> >>>>> ############################################################################## >>>>> >>>>> # This section defines various databases. >>>>> >>>>> [Databases] >>>>> >>>>> # A SQLite database is simply a single file >>>>> [[archive_sqlite]] >>>>> database_name = radiation.sdb >>>>> database_type = SQLite >>>>> >>>>> # MySQL >>>>> [[archive_mysql]] >>>>> database_name = weewx >>>>> database_type = MySQL >>>>> >>>>> Restart WeeWX. >>>>> >>>>> WeeWX will now use the new database radiation.sdb, which will have >>>>> the new SQL columns. >>>>> >>>>> -tk >>>>> >>>>> >>>>> >>>>> On Fri, Feb 15, 2019 at 8:51 AM Henry Denston <[email protected]> wrote: >>>>> >>>>>> Hello everyone! >>>>>> >>>>>> I'm currently developing a custom weather station (a microcontroller >>>>>> collecting data from custom sensors and forwarding it to a RaspberryPi). >>>>>> I already read the customization guide multiple times and started to >>>>>> develop a custom weewx-driver for my custom weather station. >>>>>> The customization guide offers some very valuable insights. However, >>>>>> I still have some questions and misunderstandings I guess, so I hope >>>>>> some >>>>>> experienced users/developers can help me out. :) >>>>>> >>>>>> As already stated I started developing my own driver, I also edited >>>>>> the weewx.conf and my custom driver is loaded when I start weewx with: >>>>>> sudo >>>>>> ./bin/weewxd weewx.conf (it yields/prints packets) >>>>>> I checked the sql table structures in the documentation and now I'm >>>>>> not sure how to save my custom sensors values. >>>>>> For example: I have a windsensor (measuring windspeed only), a >>>>>> temperature sensor and 4 pyranometer sensors of different kind measuring >>>>>> the sun irradiation. >>>>>> Now in my custon driver I know that I can store/assign the windspeed >>>>>> and temperature like this for example: >>>>>> >>>>>> data = dict() >>>>>> >>>>>> >>>>>> data['dateTime'] = int(data_array[0]) # unix timestamp >>>>>> data['usUnits'] = weewx.METRIC >>>>>> data['windSpeed'] = float(data_array[1]) # Anemometer measuring >>>>>> windspeed only >>>>>> data['outTemp'] = float(data_array[0]) # PT100 measuring temperature >>>>>> outside >>>>>> >>>>>> >>>>>> yield data >>>>>> >>>>>> >>>>>> So this should be straight forward if I understand correctly. >>>>>> But how do I store my irradiation values from the various >>>>>> pyranomerters? >>>>>> >>>>>> It seems that in the expected database structure there is only one >>>>>> column for irradiation available. >>>>>> How can I store it so WeeWx can use it in its reports and archives? >>>>>> I have smth. like this in mind: >>>>>> >>>>>> data['radiation'] = float(dataset_array_sensor[2]) # pyranometer 1 >>>>>> data['radiation1'] = float(dataset_array_sensor[3]) # pyranometer 2 >>>>>> data['radiation2'] = float(dataset_array_sensor[4]) # pyranometer 3 >>>>>> data['radiation3'] = float(dataset_array_sensor[5]) # pyranometer 4 >>>>>> >>>>>> >>>>>> Would this work? >>>>>> Do I have to change the sql database structure for it to work? (I >>>>>> plan to use sqlite for it as its easier to use it out of the box) >>>>>> If so, how would I do it? >>>>>> >>>>>> I did read the customization guide multiple times but I'm really >>>>>> confused regarding this. >>>>>> I hope you can give me a hint into the right direction (I think I'm >>>>>> probably way overthinking this and just missing a small detail) >>>>>> Thank you very much in advance! :) >>>>>> >>>>>> Best regards, Henry. >>>>>> >>>>>
