I found some goof info on the development group and got closer to a working 
setup.  I purchased an Adafruit HTU21 sensor board and using Bill Morrows 
code example I now get MQTT output like this:

TIME:0,INTE:19.36,INHU:59.75
TIME:0,INTE:19.35,INHU:59.74
TIME:0,INTE:19.35,INHU:59.88
TIME:0,INTE:19.32,INHU:59.83

*WeeWx still is not happy as I get this after starting WeeWX:*

Apr  7 18:59:33 ru-pi systemd[1]: Starting LSB: weewx weather system...
Apr  7 18:59:33 ru-pi weewx[19707]: engine: Initializing weewx version 3.8.0
Apr  7 18:59:33 ru-pi weewx[19707]: engine: Using Python 2.7.9 (default, 
Sep 17 2016, 20:26:04) #012[GCC 4.9.2]
Apr  7 18:59:33 ru-pi weewx[19707]: engine: Platform 
Linux-4.9.35-v7+-armv7l-with-debian-8.0
Apr  7 18:59:33 ru-pi weewx[19707]: engine: Locale is 'en_US.UTF-8'
Apr  7 18:59:33 ru-pi weewx[19707]: engine: pid file is /var/run/weewx.pid
Apr  7 18:59:33 ru-pi weewx[19697]: Starting weewx weather system: weewx.
Apr  7 18:59:33 ru-pi systemd[1]: Started LSB: weewx weather system.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Using configuration file 
/etc/weewx/weewx.conf
Apr  7 18:59:33 ru-pi weewx[19737]: engine: debug is 1
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Initializing engine
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading station type wxMesh 
(user.wxMesh)
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: MQTT host is localhost
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: MQTT topic is weather
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: MQTT client is wxclient
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: polling interval is 5.0
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: label map is {'INTE': 
'outTemp', 'INHU': 'inHumidity'}
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: Connected
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdTimeSynch
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdTimeSynch
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
user.owfs.OWFSService
Apr  7 18:59:33 ru-pi weewx[19737]: owfs: service version is 0.21
Apr  7 18:59:33 ru-pi weewx[19737]: owfs: binding is archive
Apr  7 18:59:33 ru-pi weewx[19737]: owfs: interface is u
Apr  7 18:59:33 ru-pi weewx[19737]: owfs: sensor map is {'extraTemp': 
'/uncached/28.70000A060000/temperature', 'inTemp': 
'/uncached/28.03CF08060000/temperature'}
Apr  7 18:59:33 ru-pi weewx[19737]: owfs: sensor type map is {}
Apr  7 18:59:33 ru-pi weewx[19737]: owfs: sensor unit system is metric
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
user.owfs.OWFSService
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdConvert
Apr  7 18:59:33 ru-pi weewx[19737]: engine: StdConvert target unit is 0x1
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdConvert
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdCalibrate
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdCalibrate
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdQC
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdQC
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.wxservices.StdWXCalculate
Apr  7 18:59:33 ru-pi weewx[19737]: wxcalculate: The following values will 
be calculated: barometer=prefer_hardware, windchill=prefer_hardware, 
dewpoint=prefer_hardware, appTemp=prefer_hardware, 
rainRate=prefer_hardware, windrun=prefer_hardware, 
heatindex=prefer_hardware, maxSolarRad=prefer_hardware, 
humidex=prefer_hardware, pressure=prefer_hardware, 
inDewpoint=prefer_hardware, ET=prefer_hardware, altimeter=prefer_hardware, 
cloudbase=prefer_hardware
Apr  7 18:59:33 ru-pi weewx[19737]: wxcalculate: The following algorithms 
will be used for calculations: altimeter=aaNOAA, maxSolarRad=RS
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.wxservices.StdWXCalculate
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: Added to queue of 1 message 
temperature
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdArchive
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Archive will use data binding 
wx_binding
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Record generation will be 
attempted in 'hardware'
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Using archive interval of 300 
seconds (specified in weewx configuration)
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Use LOOP data in hi/low 
calculations: 1
Apr  7 18:59:33 ru-pi weewx[19737]: manager: Daily summary version is 2.0
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Using binding 'wx_binding' to 
database 'weewx.sdb'
Apr  7 18:59:33 ru-pi weewx[19737]: manager: Starting backfill of daily 
summaries
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdArchive
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.restx.StdStationRegistry
Apr  7 18:59:33 ru-pi weewx[19737]: restx: StationRegistry: Registration 
not requested.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.restx.StdStationRegistry
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.restx.StdWunderground
Apr  7 18:59:33 ru-pi weewx[19737]: restx: Wunderground: Posting not 
enabled.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.restx.StdWunderground
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.restx.StdPWSweather
Apr  7 18:59:33 ru-pi weewx[19737]: restx: PWSweather: Posting not enabled.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.restx.StdPWSweather
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.restx.StdCWOP
Apr  7 18:59:33 ru-pi weewx[19737]: restx: CWOP: Posting not enabled.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.restx.StdCWOP
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.restx.StdWOW
Apr  7 18:59:33 ru-pi weewx[19737]: restx: WOW: Posting not enabled.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.restx.StdWOW
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.restx.StdAWEKAS
Apr  7 18:59:33 ru-pi weewx[19737]: restx: AWEKAS: Posting not enabled.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.restx.StdAWEKAS
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdPrint
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdPrint
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Loading service 
weewx.engine.StdReport
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Finished loading service 
weewx.engine.StdReport
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Starting up weewx version 3.8.0
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Station does not support 
reading the time
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Starting main packet loop.
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: Working on queue of 1
Apr  7 18:59:33 ru-pi weewx[19737]: wxMesh: Working on queue 0 payload : 
temperature
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Main loop exiting. Shutting 
engine down.
Apr  7 18:59:33 ru-pi weewx[19737]: engine: Caught unrecoverable exception 
in engine:
Apr  7 18:59:33 ru-pi weewx[19737]:     ****  need more than 1 value to 
unpack
Apr  7 18:59:33 ru-pi weewx[19737]:     ****  Traceback (most recent call 
last):
Apr  7 18:59:33 ru-pi weewx[19737]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 871, in main
Apr  7 18:59:33 ru-pi weewx[19737]:     ****      engine.run()
Apr  7 18:59:33 ru-pi weewx[19737]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 187, in run
Apr  7 18:59:33 ru-pi weewx[19737]:     ****      for packet in 
self.console.genLoopPackets():
Apr  7 18:59:33 ru-pi weewx[19737]:     ****    File 
"/usr/share/weewx/user/wxMesh.py", line 139, in genLoopPackets
Apr  7 18:59:33 ru-pi weewx[19737]:     ****      (key,value)  = 
datum.split(":")
Apr  7 18:59:33 ru-pi weewx[19737]:     ****  ValueError: need more than 1 
value to unpack
Apr  7 18:59:33 ru-pi weewx[19737]:     ****  Exiting.


Part of the wxMesh.py with line 139 in *BOLD:*

def genLoopPackets(self):
      while True:
# read whatever values we can get from the MQTT broker
logdbg("Working on queue of %d " % self.payload.qsize())
while not self.payload.empty():
 msg = str(self.payload.get())
 if msg != "Empty" :
   logdbg("Working on queue %d payload : %s" % (self.payload.qsize(), msg))
   data = {}
   row = msg.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())) # time from station is not yet reliable - 
replace it
     logdbg("key: "+key+" value: "+data[key])
     # map the data into a weewx loop packet
     _packet = {'usUnits': weewx.METRIC}
     for vname in data:
 _packet[self.label_map.get(vname, vname)] = _get_as_float(data, vname)

     yield _packet
    
logdbg("Sleeping for %d" % self.poll_interval)
time.sleep(self.poll_interval)

      self.client.disconnect()
      self.client.loop_stop()
        
I see *: *between keywords and values when  I view the MQTT messages in a 
terminal with mosquito_sub -t weather/#

Stumped again. 

-- 
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 weewx-user+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to