As I was following this thread and as I had a 'similar' problem (wr_rrd_update.py would not connect to INDI), I looked at some code and I may have found a discrepancy in the /usr/share/weatherradio/bin/weatherradio.py file.
Being far from knowing python much, I know it uses indents a lot and, in the 'connect' function of weatherradio.py, where it either connects via Serial or Ethernet, there is al level of indent that may be wrong in the Ethernet part of the if-else. From what I get, the part that I highlighted below won't get executed for a Serial connection, resulting in failure in connecting to the INDI Weather Radio driver. I reduced the indent of this section and wr_rrd_update.py could connect again.
Now waiting for some data to be displayed on the Web page and I will let you know if things worked.
Gilles
if mode == "Serial":
# ensure serial mode
indi.set_and_send_switchvector_by_elementlabel(dev,"CONNECTION_MODE","Serial")
# set the configured port
indi.set_and_send_text(dev,"DEVICE_PORT","PORT",devport)
else:
indi.set_and_send_switchvector_by_elementlabel(dev,"CONNECTION_MODE","Ethernet")
indi.set_and_send_text(dev,"DEVICE_ADDRESS","ADDRESS",ipaddress)
indi.set_and_send_text(dev,"DEVICE_ADDRESS","PORT",ipport)
[color=orange]
# connect driver
connection = indi.set_and_send_switchvector_by_elementlabel(dev,"CONNECTION","Connect")
# wait for the connection
time.sleep(7)
# ensure that all information is up to date
indi.process_events()
# check if the connection has been established
connection = indi.get_vector(dev, "CONNECTION")
# set location if connection was successful
if connection._light.is_ok():
indi.set_and_send_float(dev,"GEOGRAPHIC_COORD","LAT",float(lat))
indi.set_and_send_float(dev,"GEOGRAPHIC_COORD","LONG",float(long))
indi.set_and_send_float(dev,"GEOGRAPHIC_COORD","ELEV",float(elev))
[/color]
# update the result states
result = result and connection._light.is_ok()