Thanks for the quick help
Hartmut

Am Samstag, 14. Januar 2017 13:55:57 UTC+1 schrieb gjr80:
>
> Not my night, instead of convert it is convertStd and you want .value not 
> .snow_val:
>
>  snow_total = convertStd(value_vt, event.record['usUnits']).value
>
> Gary
>
>
> On Saturday, 14 January 2017 22:39:49 UTC+10, Hartmut Schweidler wrote:
>>
>> Hallo
>>>
>>
>> my plan [snow] and [snowRate] , "cm", "group_snow"
>>
>>  1. /home/weewx/snow  value 1.5 (cm) snow   --> it is the value of the 
>> file snow
>>  2. snowhes.py reads the value of [snow]  (1.5)
>>  3. Write the value 1.5 to database (1.5 cm) as [snowRate] --> the 
>> result of the current snow
>>  4. and find the value between current 1.5 (cm) [snowRate] in database 
>> an the value snow current /home/weewx/snow
>>  5. the 'delta' [snowRate] and [snow] value 
>>                            1.5       -        1.5             result 0.0
>>  6. the result 0.0 write as [snow] in to database
>>
>> I hope to be able to represent 
>> 1. $current.snowl = 0.0 cm
>> 2. Today 1.5 cm snow
>> 3. last snow by change "lastrain.py" on 10.01.2017 09:00 
>>                                                           1 day, 12 
>> hours, 34 minutes ago 
>>
>> and now the syslog result
>>
>> Jan 14 13:06:11 wetterba weewx[2651]: snowdepth: SNOW value of 1.5
>> Jan 14 13:06:11 wetterba weewx[2651]: snowdepth: found usUnits of 16
>> Jan 14 13:06:11 wetterba weewx[2651]: engine: Caught unrecoverable 
>> exception in engine:
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****  16
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****  Traceback (most recent 
>> call last):
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/engine.py", line 847, in main
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      engine.run()
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/engine.py", line 158, in run
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      
>> self.dispatchEvent(weewx.Event(weewx.STARTUP))
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/engine.py", line 222, in dispatchEvent
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      callback(event)
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/engine.py", line 501, in startup
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      
>> self._catchup(self.engine.console.genStartupRecords)
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/engine.py", line 606, in _catchup
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      origin='hardware'))
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/engine.py", line 222, in dispatchEvent
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      callback(event)
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/user/snowhes.py", line 57, in newArchiveRecord
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      snow_total = 
>> convert(value_vt, event.record['usUnits']).snow_val
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****    File 
>> "/home/weewx/bin/weewx/units.py", line 1189, in convert
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****      conversion_func = 
>> conversionDict[val_t[1]][target_unit_type]
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****  KeyError: 16
>> Jan 14 13:06:11 wetterba weewx[2651]:     ****  Exiting.
>>
>> my file snowhes.py
>> """Put this file, snow.py, in the weewx 'user' directory, then modify 
>> weewx.conf
>> with something like this:
>>
>> [SnowDepth]
>>     filename = /home/weewx/snow
>>
>> To use as a service:
>>
>> [Engine]
>>     [[Service]]
>>         data_services = user.snowhes.SnowDepth
>> """
>> import syslog
>> import weewx
>> from weewx.engine import StdService
>> from weewx.units import ValueTuple, convert
>>
>> class SnowDepth(StdService):
>>     def __init__(self, engine, config_dict):
>>         super(SnowDepth, self).__init__(engine, config_dict)
>>         self._last_snow = 0.0
>>         d = config_dict.get('SnowDepth', {})
>>         self.filename  = d.get('filename', '/home/weewx/snow')
>>         syslog.syslog(syslog.LOG_INFO, "snowdepth: using %s" %  
>> self.filename)
>>         self.bind(weewx.NEW_ARCHIVE_RECORD, self.newArchiveRecord)
>>
>>     def newArchiveRecord(self, event):
>>         #try:
>>             with open(self.filename) as f:
>>                 snow_val = f.read()
>>             syslog.syslog(syslog.LOG_DEBUG, "snowdepth: found value of 
>> %s" % snow_val)
>>             syslog.syslog(syslog.LOG_INFO, "snowdepth: SNOW value of %s" 
>> % snow_val)
>>             
>>            
>>             # Convert our value to a type ValueTuple. We know it is in cm 
>> and
>>             # let's use group_snow (could use group_length too)
>>             value_vt = ValueTuple(float(snow_val), 'cm', 'group_snow')
>>             # Now convert the cm value to the same units as used in our 
>> record
>>             # The unit system of the record is in the records 'usUnits' 
>> field
>>             snow_total = convert(value_vt, 
>> event.record['usUnits']).snow_val
>>           
>>             #event.record['some_field_name'] = value_conv
>>             syslog.syslog(syslog.LOG_INFO, "snowdepth: found SNOW-value 
>> of %s" % snow_total)
>>             delta = weewx.wxformulas.calculate_rain(snow_total, 
>> self._last_snow)
>>             self._last_snow = float(snow_total)
>>
>>             event.record['snowRate'] = float(self._last_snow)
>>             event.record['snow'] = float(delta)
>>         #except Exception, e:
>>             syslog.syslog(syslog.LOG_ERR, "snowdepth: SYSLOG ERR cannot 
>> read value: %s" % e)
>>
>>  
>>
>

-- 
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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to