====== Simple Weather Service ====== Version History... Version history and releases can be found in Github: https://github.com/mjesun/loxberry-simple-weather-service ===== 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 [[https://shop.loxone.com/enus/weather-service-1-year.html|Loxone Weather Service]]). This plugin is heavily inspired in [[https://www.loxwiki.eu/display/LOXBERRY/Weather4Loxone|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 ===== * Plugin (with all releases) can be obtained at: https://github.com/mjesun/loxberry-simple-weather-service/releases/download/master/master.zip. * Source code can be found at: https://github.com/mjesun/loxberry-simple-weather-service/. ===== Installation & configuration in Loxone Config ===== - To make this work, you will first need to add the excellent [[https://www.loxwiki.eu/display/LOXBERRY/DNSmasq|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.\\ \\ - 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 [[https://www.loxone.com/enen/kb/miniserver-setup/#channetwdeta|on the Loxone KB]].\\ \\ - An API key from [[https://weatherbit.io/|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. - 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.\\ \\ - 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 [[https://www.loxwiki.eu/display/LOXBERRY/DNSmasq|DNSmasq]] plugin page.\\ \\ - 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).