I don't think so. "hail" is treated no differently than "rain."
-tk On Sun, Dec 3, 2017 at 6:42 PM, 'Christian Peters' via weewx-user < [email protected]> wrote: > Tom, > > I got it working...but I don't now why?! :-D > > To clarify I used a second instance of weewx running wxMesh. As I has only > one rain bucket per weewx I thougth I could change back in the weewx > instance running wxMesh to the rain database entry. > My binding for wxMesh is now 'rain=rain'. > I changed in the wxMesh driver to METRICWX as I want the mm for rain and > send 0.1 as value per bucket tip. 5 time tip: wxMesh grabs 0.5 > > wxMesh: Got message TIME:0,radiation:0.25,cpm:45, > cps:1,temp_2m:50.81,temp_5cm:50.60,temp_dht22:19.70,hum_ > dht22:38.50,rain:0.50 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: Working on payload : > TIME:0,radiation:0.25,cpm:45,cps:1,temp_2m:50.81,temp_5cm: > 50.60,temp_dht22:19.70,hum_dht22:38.50,rain:0.50 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: TIME value: 1512346642 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: radiation value: 0.25 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: cpm value: 45 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: cps value: 1 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: temp_2m value: 50.81 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: temp_5cm value: 50.60 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: temp_dht22 value: 19.70 > Dec 4 01:17:22 sensweewx[24607]: wxMesh: key: hum_dht22 value: 38.50 > Dec 4 01:17:22 rumo sensweewx[24607]: wxMesh: key: *rain value: 0.50* > Dec 4 01:17:22 rumo sensweewx[24607]: wxMesh: Sleeping for 5 > > The query in my main weewx instance to the wxMesh (sensweewx with mqtt): > > <tr> > <td class="stats_label">Rain today Lambrecht</td> > <td class="stats_data">$day($data_ > binding='mqtt_binding').rain.sum</td> > </tr> > > and the result is now ok: > > Rain today Lambrecht: 0,5 mm > > Maybe the mapping to hail was the problem...now all works as expected!? > > > Regards, > > Christian > > > > > > Am Sonntag, 3. Dezember 2017 20:14:42 UTC+1 schrieb Tom Keffer: >> >> I'm still a little hazy on what the issue is. What do you mean by "the >> values don't match"? Which values? And I don't know where your website is. >> >> The wxMesh driver (at least as posted here >> <https://github.com/morrowwm/weewxMQTT/blob/master/bin/user/wxMesh.py>) >> expects weewx.METRIC units, that is, rain (and hail) should be in >> centimeters, not millimeters. You can't just simply change to >> weewx.METRICWX in your copy, because then the other units will be wrong. >> >> Run weewx from the command line and watch what it prints. Tip the bucket >> and see what value gets printed. Is it what you expected? >> >> -tk >> >> On Sun, Dec 3, 2017 at 9:16 AM, 'Christian Peters' via weewx-user < >> [email protected]> wrote: >> >>> Tom, >>> >>> I use the wxMesh driver but I think your demo code is imlemented in that >>> way you posted: >>> >>> #!/usr/bin/python >>> # >>> # weewx driver that reads data from MQTT subscription >>> # >>> # This program is free software: you can redistribute it and/or modify >>> it under >>> # the terms of the GNU General Public License as published by the Free >>> Software >>> # Foundation, either version 3 of the License, or any later version. >>> # >>> # This program is distributed in the hope that it will be useful, but >>> WITHOUT >>> # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or >>> FITNESS >>> # FOR A PARTICULAR PURPOSE. >>> # >>> # See http://www.gnu.org/licenses/ >>> >>> # >>> # The units must be weewx.US: >>> # degree_F, inHg, inch, inch_per_hour, mile_per_hour >>> # >>> # To use this driver, put this file in the weewx user directory, then >>> make >>> # the following changes to weewx.conf: >>> # >>> # [Station] >>> # station_type = wxMesh >>> # [wxMesh] >>> # host = localhost # MQTT broker hostname >>> # topic = weather # topic >>> # driver = user.wxMesh >>> # >>> # If the variables in the file have names different from those in >>> weewx, then >>> # create a mapping such as this: >>> # >>> # [wxMesh] >>> # ... >>> # [[label_map]] >>> # temp = outTemp >>> # humi = outHumidity >>> # in_temp = inTemp >>> # in_humid = inHumidity >>> >>> from __future__ import with_statement >>> import syslog >>> import time >>> import paho.mqtt.client as mqtt >>> import weewx.drivers >>> >>> DRIVER_VERSION = "0.1" >>> >>> def logmsg(dst, msg): >>> syslog.syslog(dst, 'wxMesh: %s' % msg) >>> >>> def logdbg(msg): >>> logmsg(syslog.LOG_DEBUG, msg) >>> >>> def loginf(msg): >>> logmsg(syslog.LOG_INFO, msg) >>> >>> def logerr(msg): >>> logmsg(syslog.LOG_ERR, msg) >>> >>> def _get_as_float(d, s): >>> v = None >>> if s in d: >>> try: >>> v = float(d[s]) >>> except ValueError, e: >>> logerr("cannot read value for '%s': %s" % (s, e)) >>> return v >>> >>> def loader(config_dict, engine): >>> return wxMesh(**config_dict['wxMesh']) >>> >>> class wxMesh(weewx.drivers.AbstractDevice): >>> """weewx driver that reads data from a file""" >>> >>> def __init__(self, **stn_dict): >>> # where to find the data file >>> self.host = stn_dict.get('host', 'localhost') >>> self.topic = stn_dict.get('topic', 'weather') >>> # how often to poll the weather data file, seconds >>> self.poll_interval = float(stn_dict.get('poll_interval', 5.0)) >>> # mapping from variable names to weewx names >>> self.label_map = stn_dict.get('label_map', {}) >>> >>> loginf("host is %s" % self.host) >>> loginf("topic is %s" % self.topic) >>> loginf("polling interval is %s" % self.poll_interval) >>> loginf('label map is %s' % self.label_map) >>> >>> self.payload = "Empty" >>> #self.payloadList = [payload] >>> self.client = mqtt.Client(client_id="XXX", protocol=mqtt.MQTTv31) >>> >>> #self.client.on_connect = self.on_connect >>> self.client.on_message = self.on_message >>> >>> self.client.username_pw_set("XXX", "XXX") >>> self.client.connect(self.host, 1883, 60) >>> self.client.subscribe(self.topic, qos=1) >>> >>> # The callback for when a PUBLISH message is received from the server. >>> def on_message(self, client, userdata, msg): >>> self.payload = str(msg.payload) >>> logdbg("Got message %s" % str(msg.payload)) >>> >>> def genLoopPackets(self): >>> while True: >>> self.client.loop() >>> # read whatever values we can get from the MQTT broker >>> logdbg("Working on payload : %s" % self.payload) >>> if self.payload != "Empty" : >>> data = {} >>> row = self.payload.split(","); >>> for datum in row: >>> (key,value) = datum.split(":") >>> data[key] = value >>> if( key=="TIME" and data[key] == "0"): >>> data[key] = str(int(time.time())) >>> logdbg("key: "+key+" value: "+data[key]) >>> >>> *# map the data into a weewx loop packet* >>> * _packet = {'usUnits': weewx.METRICWX}* >>> *for vname in data:* >>> * _packet[self.label_map.get(vname, vname)] = _get_as_float(data, vname)* >>> >>> *yield _packet* >>> self.payload = "Empty" >>> >>> logdbg("Sleeping for %d" % self.poll_interval) >>> time.sleep(self.poll_interval) >>> self.client.disconnect() >>> @property >>> def hardware_name(self): >>> return "wxMesh" >>> >>> I got 0.1mm on Payload hail...but If I look at the values they doesn't >>> match (printed on my website). >>> If I change to 'US' units then my Celsius values mapped wrong so I think >>> in general changing to METRICWX in the wxMesh driver works. >>> >>> I think I have to look in the database what hail values were written if >>> I simulate a 0.1mm rain event (at the moment one switch to press...just >>> before wirering to the bucket in the garden).... >>> >>> Thanks for you help. >>> >>> Regards, >>> >>> Christian >>> >>> Am Sonntag, 3. Dezember 2017 14:50:27 UTC+1 schrieb Tom Keffer: >>>> >>>> You're being a little vague on the details. What results are you >>>> getting? And, what do you mean by "send 0.1 (mm)?" Do you mean in the loop >>>> packets? If so, your genLoopPackets() function should look something >>>> like this (NOT TESTED): >>>> >>>> def genLoopPackets(): >>>> data = {'dateTime': time.time(), 'usUnits': weewx.METRIC} >>>> data['outTemp'] = (something) >>>> ... >>>> data['hail'] = 0.1 # NB: This would be 0.1 cm, or 1mm >>>> >>>> yield data >>>> >>>> There are a two other assumptions as well: >>>> >>>> 1. You have not implemented genArchiveRecords() and are, therefore, >>>> depending on software record generation to turn your loop packets into >>>> archive records. >>>> 2. The observation type 'hail' is in your schema. This is the >>>> normal situation with the default "wview" schema, so I'm assuming you >>>> have >>>> not changed it. >>>> >>>> >>>> -tk >>>> >>>> >>>> >>>> On Sun, Dec 3, 2017 at 6:56 AM, 'Christian Peters' via weewx-user < >>>> [email protected]> wrote: >>>> >>>>> Tom, >>>>> >>>>> that seems not to solve my problem. I send 0.1 (mm) but didn't get >>>>> that into weewx. >>>>> As I already have a rain bucket with the VPII I used 'hail' and 'hail >>>>> rate". Could these be a problem or can't I use it for a second rain bucket >>>>> (same computation as rain?). >>>>> >>>>> Regard, >>>>> >>>>> Chrstian >>>>> >>>>> Am Sonntag, 26. November 2017 15:09:33 UTC+1 schrieb Tom Keffer: >>>>>> >>>>>> That could be it. weewx.METRIC has rainfall in cm, weewx.METRICWX in >>>>>> mm. See the Units <http://weewx.com/docs/customizing.htm#units> >>>>>> appendix in the Customizing Guide. >>>>>> >>>>>> -tk >>>>>> >>>>>> On Sun, Nov 26, 2017 at 8:02 AM, 'Christian Peters' via weewx-user < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Tom, >>>>>>> >>>>>>> thank you for that hint. So emitting in mm was the right change. >>>>>>> I just wonder why my temp values are ok but my rain data isn't!? >>>>>>> Just found that on the wxMesh driver: >>>>>>> >>>>>>> # map the data into a weewx loop packet >>>>>>> _packet = {'usUnits': weewx.METRIC} >>>>>>> >>>>>>> So I think I have to switch to METRICWX. >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Christian >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> 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. >>>>>>> >>>>>> >>>>>> -- >>>>> 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. >>>>> >>>> >>>> -- >>> 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. >>> >> >> -- > 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. > -- 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.
