I didn't have any problem reading the data in via my existing python code
(although I suspect your sample may be cleaner, I'll try that too).
What I was concerned with is the schema *** = schema *** + schema ***.
Since I'm not extending this schema, I commented out that line. Added the
service to weewx.conf, restarted weewx w/ debug=1, saw it add the service
(and now the new .pyc exists in user), and it's reading the data into
weewx.sdb. Now it's a simple matter of editing my skins to add the
parameter.
Thanks --Phil
On Monday, April 13, 2020 at 2:42:05 PM UTC+2, Thomas Keffer wrote:
>
> You want something like:
>
> with open('/path/to/file') as f:
> value = f.readline().strip()
> event.record['leafTemp1'] = float(value) if value != '' else None
>
> Or, use filepile <https://github.com/tkeffer/filepile>, although that
> would require you to change the format of your data file.
>
> -tk
>
> On Mon, Apr 13, 2020 at 4:35 AM Messy Potamia <[email protected]
> <javascript:>> wrote:
>
>> I want to read in a single %2.2f from a file "special.dat" and store it
>> in something I'll never otherwise use, "leafTemp1".
>>
>> My weewx is 3.6.2. I have read the suggestion to use a 2nd database,
>> however I do not want to do that. I have written a custom .py before to
>> read data from a 2-element data file, but I extended the schema to do that
>> (and I remember Tom asking why, and it was because I thought that was the
>> thing to do, anyway I don't want to do that this time)
>>
>> pi@RPI3:~ $ cat /home/weewx/special.dat
>> 32.67
>> pi@RPI3:~ $
>>
>> Here is the python I copied & modified a few years ago, which works for
>> that system:
>> #!/usr/bin/env python
>>
>> #file user/lakedata.py
>> import weewx
>> from weewx.engine import StdService
>>
>> class AddLakedata(StdService):
>>
>> def __init__(self, engine, config_dict):
>> # Initialize my superclass first:
>> super(AddLakedata, self).__init__(engine, config_dict)
>> # Bind to any new archive record events:
>> self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_packet)
>>
>> def new_archive_packet(self, event):
>>
>> #(code that reads two measurements from a file)
>> with open("/mnt/wxdata/weewxmbdata.dat") as f:
>> for line in f:
>> numbers_str = line.split()
>> numbers_float = [float(x) for x in numbers_str]
>> value1 = numbers_float[0]
>> value2 = numbers_float[1]
>>
>> event.record['lakeElevation'] = value1
>> event.record['lakeWaveheight'] = value2
>>
>> import schemas.wview
>> schema_with_lakedata = schemas.wview.schema + [('lakeElevation', 'REAL')]
>> + [('lakeWaveheight', 'REAL')] + [('lightning', 'REAL')]
>>
>> #
>>
>> The above code works fine on a previous installation and I'm not going to
>> mess with it. This install however, I will be reading a single value, and
>> applying it into an existing field in the default existing database. My
>> concern is, in the above lakedata.py, which represents an extended schema,
>> what changes when I'm using the existing schema?
>>
>> Thanks for clarifying this for me.
>>
>> Phil
>>
>> --
>> 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] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-user/a7495c2d-f450-46cf-a88f-c75e696f1940%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/weewx-user/a7495c2d-f450-46cf-a88f-c75e696f1940%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/72175d38-5066-4fc8-94fe-51ceba7af339%40googlegroups.com.