Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • accepts http messages from a weather station (DP1500, GW1000, HP1000SE Pro, Sainlogic 7 in 1, ELV WS980WiFi, Eurochron EFWS 2900, ???) locally in WU or Ecowitt protocol via network
  • supports custom server on stations from Ambient Weather
  • does not require cloud services or internet connection
  • sends the converted metric or imperial values via UDP to any host or via broadcast in the network
  • is able to feed a MQTT broker
  • connection to any database system possible via telegraf
  • direct support of InfluxDB
  • saves the converted or imperial data sorted and / or extracted as CSV
  • enables forwarding to up to 50 servers that are not supported by the weather station itself (e.g. Awekas, PWSWeather, Windy or Luftdaten.info, but you could also use WU in a different interval)
  • can feed MeteotemplateWeathercloudwetter.com and weather365.net
  • may export incoming data to realtime.txt and clientraw.txt
  • can serve as an Ecowitt relay (forward in Ecowitt protocol) for Personal Weather Tablet, weewx, PWS Dashboard and any other program expecting Ecowitt-data
  • can forward incoming WU and Ecowitt messages via UDP - also as a broadcast - as they come in
  • is able to convert between WU, Ecowitt and Ambient Weather format (within limits)
  • can answer queries in WU protocol
  • Integrated web server provides the last data record in http, UDP, CSV, RAW and JSON format as well as a simple website
  • various watchdogs and warnings can be configured (battery, connection weather station and sensors, storm, thunderstorm, CO2-alert, leakage-alert ...)
  • calculates some extra data (dew point, feelslike, AQI, ...)
  • allows to gather specific values via http (getvalue)
  • it creates an import file for the automatic import of the data into WSWin
  • provides the Weather4Loxone plugin with the measured values from local weather station
  • No additional software is required (WS View only for teaching new sensors or for configuring the standard forwarding services)
  • also works without Loxone / LoxBerry as a systemd service on Linux-systems (a Raspi should be powerful enough) for connecting other systems ( generic-FOSHKplugin.zip )
  • is free of charge

The target system (e.g. Loxone Miniserver) hardly needs resources with this solution; it does not have to fetch any data or convert values - the plugin automatically sends the already converted data to the Miniserver whenever new measured values arrive from the weather station.
In addition, the measured and partly calculated values are also available to any other services via various interfaces and forwards.

...

Expand
titleSending FOSHKplugin data to a MQTT-server (deprecated)

Sending FOSHKplugin data (weather station data) to a MQTT-server (deprecated)

Because there was no native MQTT support up to version v0.08, the method described here was the only option of sending the data to an MQTT broker. This is still possible - but no longer necessary with v0.08 with its dedicated MQTT forward. 

However, it is possible to publish on an MQTT server using a  wrapper script. A cron job, a small bash script and the MQTT CLI are required.

Code Block
titlecronjob
* * * * * root /opt/FOSHKplugin/FOSHKplugin2mqtt.sh
* * * * * root sleep 30; /opt/FOSHKplugin/FOSHKplugin2mqtt.sh

The bash-script FOSHKplugin2mqtt.sh:

Code Block
languagebash
titleFOSHKplugin2mqtt.sh
#! /bin/bash
# FOSHKplugin2mqtt.sh
# script to pull data from FOSHKplugin and send them via mqtt
# could be started through cron

# FOSHKplugin-stuff
IP=192.168.15.236                      # address where FOSHKplugin is running
PORT=8080                              # port on which FOSHKplugin is running
FMT=STRING?units=m&crondaemon          # use units=e for imperial values
#FMT=RAW                               # or use RAW-data instead

# MQTT-stuff
MIP=192.168.15.236                     # address of MQTT-server
MPORT=1883                             # MQTT-port (usually 1883)
MUSR=loxberry                          # username for MQTT-server
MPWD=G3he1mesPassword                  # password for MQTT-user

# pull data from FOSHKplugin
URL=http://$IP:$PORT/$FMT              # just create the URL
payload=`curl -s $URL|sed "s/ /%20/g"|sed "s/[&; ]/ /g"`

# parse and send over to MQTT
for record in $payload; do
  set -- `echo $record | tr '=' ' '`
  key=$1
  value=`echo $2|sed "s/%20/ /g"|sed "s/\"//g"`
  mosquitto_pub --topic FOSHKplugin/$key -u $MUSR -P $MPWD -h $MIP -p $MPORT -m "$value"
  #echo "$key <-- $value"
done

mosquitto_pub is used to publish the data - so you have to make sure that this program is available:

Code Block
sudo apt install mosquitto-clients


Anchor
install
install

Expand
titleInstallation of FOSHKplugin generic version for several PWT instances

Installation of FOSHKplugin generic version for several PWT instances

Personal Weather Tablet (PWT) on an Android tablet is a very nice alternative to a dedicated console.
This means that old, disused tablets can still be put to good use. In custom server mode, PWT expects the weather station to deliver the Ecowitt data to the tablet. Since there is only the possibility of defining a single destination on the weather station, FOSHKplugin instead can receive this data and forward it to any other destination.

Required: 24/7 computer system (e.g. Raspberry Pi) with ssh access or local console for installation

1. Create a directory

Code Block
sudo mkdir /opt/FOSHKplugin

2. Change to the directory

Code Block
cd /opt/FOSHKplugin

3. Download the installation file

Code Block
wget -N http://foshkplugin.phantasoft.de/files/generic-FOSHKplugin.zip

4. Extract the installation file

Code Block
unzip generic-FOSHKplugin.zip

5. Start the installation script

Code Block
sudo ./generic-FOSHKplugin-install.sh --install

6. Initial configuration
In the square brackets there should already be meaningful defaults that can be selected with ENTER. However, you can also enter your own value in order to overwrite these defaults:

+++ FOSHKplugin +++ ip address of target system to send UDP-messages to []:
Leave blank if no UDP forwarding is required, otherwise enter the IP address of the destination of the UDP messages.

+++ FOSHKplugin +++ udp port on target system []:
Leave blank if no UDP forwarding is required, otherwise enter the UDP port of the target system.

+++ FOSHKplugin +++ ip address of local system [192.168.15.237]:
Enter the IP address of the local system, i.e. the device on which FOSHKplugin is to run (please do not use an IPv6 or localhost address).

+++ FOSHKplugin +++ http port on local system [8080]:
The local port on which the internal http server is started by FOSHKplugin, the default can be accepted with ENTER.

+++ FOSHKplugin +++ ip address of weather station [192.168.15.215]:
Please enter the IP address of the weather station here. This is generally found automatically.

+++ FOSHKplugin +++ command port of weather station [45000]:
The command port of the weather station. Here, too, the default 45000 (the default port for FOSHK weather stations) can be accepted with ENTER.

+++ FOSHKplugin +++ message-interval of weather station [30]:
Enter the desired interval in seconds at which the weather station sends the data to FOSHKplugin. The default of 30 seconds can be accepted - however, other time intervals can also be used. Note that this is also the minimum time interval for forwards.

+++ FOSHKplugin +++ are these settings ok? (Y/N)
The settings made are accepted with Y. With N it can be configured again if an error is discovered.

+++ FOSHKplugin +++ do you want to write settings into the config-file? (Y/N)
With Y these settings are written into the config file (foshkplugin.conf).

+++ FOSHKplugin +++ do you want to write settings into the weather station? (Y/N)
With Y the required data (IP address and port of the target system from the perspective of the weather station, the interval and the data format Ecowitt) are written to the weather station.

+++ FOSHKplugin +++ do you want to enable and start the service? (Y/N)
With Y, a service (foshkplugin) is installed and started, which is started automatically every time the computer is restarted and which leads to the restart of FOSHKplugin within a few seconds even if the program crashes.

7. advanced configuration
The foshkplugin.conf file can be edited with any editor in order to make further settings. For forward operation, however, only the required forwards need to be entered.

Code Block
vi foshkplugin.conf

The data received from the weather station are forwarded to other systems / programs via so-called forwards. A forward block is required for each desired forwarding, in which the target, format, interval and, if necessary, other forward-specific settings are specified.
A forward block is identified by [Forward-n] where n is a sequential number (1-50). This number must not be repeated within the config file.

Example of a forward to an installation of PWT on a device with the IP address 192.168.15.206:

Code Block
[Forward-1]
FWD_CMT = forward for PWT@Pixel 4a
FWD_ENABLE = True
FWD_URL = http://192.168.15.206:8572/data/report/
FWD_INTERVAL = 30
FWD_TYPE = RAWEW

Further forwards according to this template are possible:

Code Block
[Forward-2]
FWD_CMT = forward for PWT@Tablet bedroom
FWD_ENABLE = True
FWD_URL = http://192.168.15.216:8572/data/report/
FWD_INTERVAL = 30
FWD_TYPE = RAWEW

[Forward-3]
FWD_CMT = forward for PWT@Tablet next to the front door
FWD_ENABLE = True
FWD_URL = http://192.168.15.226:8572/data/report/
FWD_INTERVAL = 30
FWD_TYPE = RAWEW


...