Hi all

I am enjoying a lot my Bresser Wifi Pro 5in1 weather station and I am 
pushing the data into my home assistant via the WeeWX docker. I first 
explain a bit how I did it, as it may help users with similar hardware, but 
at the end, I do have a question.

These are the things I did to get it working:

My weather station unfortunately did not allow for a direct connection to a 
home server, but it does allow for an upload to Wunderground. I created an 
account, and filled out the details and from then onwards, my station is 
sending data to Wunderground. But, I still wanted to capture the traffic 
for using in my home assistant. That's why in my ASUS router with Merlin 
firmware, I created some IP-tables to redirect the traffic to Wunderground 
to my WeeWx server:
 iptables -t nat -A PREROUTING -s bresserIP -p tcp --dport 80 -j DNAT 
--to-destination weewx-serverIP:3010 
iptables -t nat -A POSTROUTING -j MASQUERADE  

Now all packets will be redirected to port 3010.

Then I installed a docker container on my synology via docker-compose. The 
docker is from felddy, weewx. This combines MQTT,  weewx and the 
interceptor, as I am redirecting traffic.
--------------------------
version: "3.8"
services:
  weewx:
    container_name: weewx_bresser
    image: felddy/weewx
    init: true
    restart: "always"
    privileged: true
    network_mode: host    
    ports:
       - 8102:80
    volumes:
       - /volume1/docker/weewx/:/data
      - /volume1/docker/weewx/html/:/home/weewx/public_html/ 
    environment:
      - timezone=Europe/Brussels
      - WEEWX_UID=weewx
      - WEEWX_GID=dialout
-------------------
This docker requires in my data folder of course the configuration file. At 
first install, this file is created, then, you can fill it out. I copy here 
the most important parts of my weewx.conf.

##############################################################################

# This section is for general configuration information.

# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 2

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /home/weewx

# Whether to log successful operations. May get overridden below.
log_success = True

# Whether to log unsuccessful operations. May get overridden below.
log_failure = True

# Do not modify this. It is used when installing and updating weewx.
version = 4.10.2

##############################################################################
#   This section is for information about the station.

[Station]
    
    # Description of the station location
    location = "Thuis"
    
    # Latitude in decimal degrees. Negative for southern hemisphere
    latitude = fill_in_your_latitude
    # Longitude in decimal degrees. Negative for western hemisphere.
    longitude = fill_in_your_longitude
    
    # Altitude of the station, with the unit it is in. This is used only
    # if the hardware cannot supply a value.
    altitude = 41, meter    # Choose 'foot' or 'meter' for unit
    
    # Set to type of station hardware. There must be a corresponding stanza
    # in this file, which includes a value for the 'driver' option.
    station_type = Interceptor
  


    # If you have a website, you may specify an URL. This is required if you
    # intend to register your station.
    #station_url = http://www.example.com
    
    # The start of the rain year (1=January; 10=October, etc.). This is
    # downloaded from the station if the hardware supports it.
    rain_year_start = 1
    
    # Start of week (0=Monday, 6=Sunday)
    week_start = 0

##############################################################################

[Interceptor]
    # This section is for the network traffic interceptor driver.

    # The driver to use:
    driver = user.interceptor
    device_type = wu-client   #### this is used for all undefined clients 
which just upload to Wunderground.
    mode = listen
    address = my_weewx_server_ip_address
    port = 3010
##################################################
#   This section is for uploading data to Internet sites

[StdRESTful]
    
    # Uncomment and change to override logging for uploading services.
    # log_success = True
    # log_failure = True
I put all uploads on false, except for Weather Underground.
    [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.
        
        # If you wish to post to the Weather Underground, set the option 
'enable' to true,  then
        # specify a station (e.g., 'KORHOODR3') and password. To guard 
against parsing errors, put
        # the password in quotes.
        enable = true
        station = 'station_name'
        password = 'myKEY'
        
        # Set the following to True to have weewx use the WU "Rapidfire"
        # protocol. Not all hardware can support it. See the User's Guide.
        rapidfire = true

    [[MQTT]]
        server_url = mqtt://my_mqtt_server_IP:1883/
        topic = weather
retain = false
        unit_system = METRIC
binding = loop
 [[[inputs]]]
            [[[[rain]]]]
                name = dayRain_mm
units = mm       
            [[[[rainRate]]]]
                name = rainRate_mm_per_hour
                units = mm_per_hour

So far, so good. Then, I copy here an excerpt of the logs of the docker:

########################

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: GET: 
ID=XXX&PASSWORD=XXXX&action=updateraww&realtime=1&rtfreq=5&dateutc=now&baromin=30.03&tempf=69.8&dewptf=65.3&humidity=86&windspeedmph=0&windgustmph=0&winddir=22&rainin=0.0&dailyrainin=0.0&indoortempf=80.6&indoorhumidity=56

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: raw data: 
ID=XXX&PASSWORD=zUTmwZDQ&action=updateraww&realtime=1&rtfreq=5&dateutc=now&baromin=30.03&tempf=69.8&dewptf=65.3&humidity=86&windspeedmph=0&windgustmph=0&winddir=22&rainin=0.0&dailyrainin=0.0&indoortempf=80.6&indoorhumidity=56

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: using rain_total 0.0 from 
dailyrainin

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: ignored parameter ID=XXX

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: ignored parameter 
PASSWORD=XXXXXXXX

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: ignored parameter 
action=updateraww

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: ignored parameter 
realtime=1

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: ignored parameter rtfreq=5

Jul 31 06:33:42 weewx[18] INFO user.interceptor: unrecognized parameter 
rainin=0.0

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: raw packet: {'dateTime': 
1722407622, 'usUnits': 1, 'rain_total': 0.0, 'barometer': 30.03, 
'temperature_out': 69.8, 'dewpoint': 65.3, 'humidity_out': 86.0, 
'wind_speed': 0.0, 'wind_gust': 0.0, 'wind_dir': 22.0, 'temperature_in': 
80.6, 'humidity_in': 56.0, 'rain': 0.0}

Jul 31 06:33:42 weewx[18] DEBUG user.interceptor: mapped packet: 
{'dateTime': 1722407622, 'usUnits': 1, 'barometer': 30.03, 'outHumidity': 
86.0, 'inHumidity': 56.0, 'outTemp': 69.8, 'inTemp': 80.6, 'windSpeed': 
0.0, 'windGust': 0.0, 'windDir': 22.0, 'dewpoint': 65.3, 'rain': 0.0}

Jul 31 06:33:42 weewx[18] DEBUG user.mqtt: data: {'dateTime': 
'1722407622.0', 'barometer_mbar': '1016.9323640926025', 'outHumidity': 
'86.0', 'inHumidity': '56.0', 'outTemp_C': '20.999999999999996', 
'inTemp_C': '26.999999999999996', 'windSpeed_kph': '0.0', 'windGust_kph': 
'0.0', 'dewpoint_C': '18.499999999999996', 'dayRain_mm': '0.0', 
'appTemp_C': '24.039355932473097', 'cloudbase_meter': '344.7133813089929', 
'heatindex_C': '21.401111111111113', 'humidex_C': '27.428644270883083', 
'inDewpoint_C': '17.46023916206098', 'rainRate_mm_per_hour': '0.0', 
'windchill_C': '20.999999999999996', 'usUnits': '16.0'}

Jul 31 06:33:42 weewx[18] DEBUG weewx.restx: Ambient: url: 
https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?action=updateraw&ID=XXX&PASSWORD=XXX&softwaretype=weewx-4.10.2&baromin=30.030&dateutc=2024-07-31%2006%3A33%3A42&dewptf=65.3&humidity=086&tempf=69.8&realtime=1&rtfreq=2.5&windgustmph=0.0&windspeedmph=0.0

Jul 31 06:33:42 weewx[18] DEBUG weewx.restx: Wunderground-RF url: 
'https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?action=updateraw&ID=XXX&PASSWORD=XXX&softwaretype=weewx-4.10.2&baromin=30.030&dateutc=2024-07-31%2006%3A33%3A42&dewptf=65.3&humidity=086&tempf=69.8&realtime=1&rtfreq=2.5&windgustmph=0.0&windspeedmph=0.0'

Jul 31 06:33:42 weewx[18] INFO weewx.restx: MQTT: Published record 
2024-07-31 06:33:42 UTC (1722407622)

Jul 31 06:33:42 weewx[18] INFO weewx.restx: Wunderground-RF: Published 
record 2024-07-31 06:33:42 UTC (1722407622)


########################

So, in fact it all works nicely. There is a few (minor) questions I have:
- the docker is ignoring rainin and calculating the rain from the 
dailyrainin. I guess this works, but I do not understand why he is not 
sending rain data to Wunderground. In fact, as we are capturing directly a 
stream to rtupdate, why can he not just forward this stream. The rain data, 
originated from my weather station is in. 
- why does the docker upload twice, first as Ambient, then as 
Wunderground-RF?
- what if we want to use a newer version of WeeWx, and the Felddy container 
is not updated? 
- Is it possible to combine the Felddy container with other containers, or 
options, such as skins?
- I think that there is a newer version perhaps of the WeeWx-Interceptor. 
That's something I would like to try as well. 

*I hope first of all that this may help people getting started with this. I 
am very happy and grateful that these dockers exist and now, via MQTT, this 
data is sent to my home assistant! *But, as I like to be up-to-date, I also 
hope there are options to get updated packages, or include the reports and 
an own website via the containers. 

Thanks a lot!

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/7cdef1bd-f370-4f37-87c1-3a9c7a7bc9f4n%40googlegroups.com.

Reply via email to