Simple Weather Service

Autor
Logo

icon_64.png

Status

UNSTABLE

Version1.0
Min. LB Version

LB 2.0.0 (Node.js is required)

Downloadhttps://github.com/mjesun/loxberry-simple-weather-service/releases/download/master/master.zip
ZweckProvide a simple way of getting weather data into the Loxone UI with barely zero configuration
LanguagesEN
Diskussion
 Version History...

Version history and releases can be found in Github: https://github.com/mjesun/loxberry-simple-weather-service

Content



Plugin

The goal of the plugin is to provide weather data to the Loxone Miniserver, by using the data sent by it. It is a 1:1 replacement of the Loxone Service. It does no more, and no less. The coordinates of the place used to retrieve data, and the altitude is obtained from the request the Loxone Miniserver does to the weather service, and the data is returned in real-time. The Loxone Miniserver checks weather data once an hour, so pulling data more often would not change much. Also, free weather data providers (like weatherbit.io, used in this plugin), will not refresh the data more often than this, unless you pay them (and for that, you could acquire the Loxone Weather Service).

This plugin is heavily inspired in Weather4Loxone, which accomplishes more functions than this one, like creating static HTML pages with additional data, or letting you push data back through UDP to the Miniserver. The motivation for creating this plugin is to bring its configuration to the minimum required, and provide a server that runs in the LoxBerry as opposed to a cronjob approach. This ensures that the most up to date weather data is provided to the Loxone Miniserver by the time it is requested by it. It's also worth noting that this project is also a proof-of-concept to develop a plugin that uses a Node.js service under the hood. Considering that JavaScript is an extremely popular language, it seemed interesting to test it as a viable alternative.

Download

Installation & configuration in Loxone Config

  1. To make this work, you will first need to add the excellent DNSmasq plugin. Once added, you will need to add weather.loxone.com to the list of hosts, pointing to the LoxBerry API; something similar to

       weather.loxone.com 192.168.1.2

    where 192.168.1.2 is the IP address of the LoxBerry. You will need to restart it later.

  2. You will have to configure the DNS of the Loxone Miniserver to point to the LoxBerry (the same IP address used in the previous step). You can do that by heading to the network preferences of the miniserver. More information can be found on the Loxone KB.

  3. An API key from weatherbit.io is required. You will need to register and paste it in the configuration panel.

Troubleshoot

In order to do multiple tests, you can always write a new configuration to the Loxone Miniserver. The Miniserver restarts every time you do so, and will immediately try acquiring weather information after its restart (probably because the information only lives in RAM). You can use this to trigger multiple tests.

  1. Make sure the plugin is working. You can do that by heading to http://192.168.1.2:6066/raw/?coord=13.8405,48.5998&asl=1000, where 192.168.1.2 is the IP address of the LoxBerry. You should then see the data obtained in a nice JSON format. If not, make sure the service is active. Service should start at boot time, so restarting the LoxBerry should suffice to bring it back. If the API key is invalid it will tell you so.

  2. Make sure the DNS configuration in DNSmasq is working. You can issue a query to it from the terminal by typing: dig +short weather.loxone.com @192.168.1.2, where 192.168.1.2 is the IP address of the LoxBerry. You should get back exactly the same IP. If not, make sure you have properly configured DNSmasq. You can check the steps above and/or refer to the DNSmasq plugin page.

  3. Make sure the Loxone Miniserver is using as DNS server the LoxBerry. This can be checked by opening the network tab in the configuration panel when clicking on the Miniserver. Note: I have found myself that for a while, after changing the DNS and restarting the miniserver, the UI still showed the default value (the one provided by my router), but internally the new DNS server was being used.

Roadmap

  • Write better documentation, both in this page, the LoxForum, and the GitHub project. Provide an icon.
  • Automate releases, make auto-upgrades work.
  • Translate the plugin to other languages.
  • Make the configuration page better.
  • Make the system to include weather providers fully agnostic and self-service.
  • Include tests with different weather data, timezones, etc, to ensure the response is the expected one.
  • Remove the need of the DNSmasq plugin (not sure about this one).