2025-05-09 21:49:58 +02:00

127 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Froggit Weather Station Protocols for Custom Server
This documentation explains how to receive data from a Froggit weather station using your own server. It covers two protocols: **Ecowitt** (POST requests) and **Wunderground** (GET requests).
### Hardware:
- DP2000 7-In-1 Y-Edition Wifi/Lan Wireless Weather Station: [Product Link](https://www.froggit.de/dp2000-7-in-1-y-edition-wifi-lan-wireless-weather-station.html)
- It is recommended to put the Gateway into a VLan
## Setup
1. **Power the Gateway**: Connect the Gateway to a power source, and after a short period, a new Wi-Fi network (GW2000X-WIFIXXXX) should appear.
2. **Connect to the Gateways Wi-Fi**: Use the Gateways Wi-Fi to connect and open `192.168.4.1` in your browser.
3. **Select Connection Type**: In the “Local Network” tab, select your preferred connection type: **WiFi** or **Ethernet** (via cable).
4. **Configure Protocol**: Under the "Weather Services" tab, choose the desired protocol type: **Ecowitt** or **Wunderground**.
**Ecowitt Example**:
![Ecowitt Protocol Setup](./images/customized_ecowitt.png)
**Wunderground Example**:
![Wunderground Protocol Setup](./images/customized_wunderground.png)
## PHP Code
The `both.php` file supports both **Ecowitt** and **Wunderground** protocols.
## Example Protocol Data
### Ecowitt (POST)
- **HTTP Method**: POST
- **Data Format**: URL-encoded body
#### Example POST Data:
```php
[PASSKEY] => 123*****************************
[stationtype] => GW2000A_V3.2.4
[runtime] => 296
[heap] => 110140
[dateutc] => 2025-05-08 16:00:56
[tempinf] => 69.26
[humidityin] => 61
[baromrelin] => 28.804
[baromabsin] => 28.804
[tempf] => 69.44
[humidity] => 60
[vpd] => 0.290
[winddir] => 69
[windspeedmph] => 0.00
[windgustmph] => 3.36
[maxdailygust] => 11.41
[solarradiation] => 0.15
[uv] => 0
[rainratein] => 0.000
[eventrainin] => 0.000
[hourlyrainin] => 0.000
[dailyrainin] => 0.000
[weeklyrainin] => 0.000
[monthlyrainin] => 0.000
[yearlyrainin] => 0.000
[totalrainin] => 0.000
[wh65batt] => 0
[freq] => 868M
[model] => GW2000A
[interval] => 8
```
### Wunderground (GET)
- **HTTP Method**: GET
- **Data Format**: URL parameters (Query Parameters)
- **Protocol**: https://support.weather.com/s/article/PWS-Upload-Protocol?language=en_US
#### Example GET Data:
```php
[ID] => 1
[PASSWORD] => 1
[tempf] => 69.44
[humidity] => 60
[dewptf] => 55.04
[windchillf] => 69.44
[winddir] => 69
[windspeedmph] => 0.00
[windgustmph] => 0.00
[rainin] => 0.000
[dailyrainin] => 0.000
[weeklyrainin] => 0.000
[monthlyrainin] => 0.000
[yearlyrainin] => 0.000
[solarradiation] => 0.15
[UV] => 0
[indoortempf] => 69.26
[indoorhumidity] => 61
[baromin] => 28.804
[lowbatt] => 0
[dateutc] => now
[softwaretype] => GW2000A_V3.2.4
[action] => updateraw
[realtime] => 1
[rtfreq] => 5
```
---
## PHP Code Overview
The provided PHP code extracts data from incoming **POST** (Ecowitt) and **GET** (Wunderground) requests and normalizes the values before storing them into an SQLite database.
### Key Mapping from Wunderground to Ecowitt:
```php
$WUNDERGROUND_TO_ECOWITT = array(
'tempf' => 'tempf',
...
);
```
---
## Conclusion
This setup allows you to receive weather station data from either **Ecowitt** or **Wunderground** protocols, process it on your custom server, and store the data in an SQLite database for further analysis. The PHP code provided normalizes the data and ensures compatibility with both protocols.