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.