====== Weather4Loxone ====== == Probleme? == Lies die FAQ zur Fehlersuche! [[plugins:weather4loxone:w4l_fehlersuche_faq]] Version History... [[https://github.com/mschlenstedt/LoxBerry-Plugin-Weather4Lox/commits/master|Änderungshistorie]] {{plugins:weather4loxone:1215135927.jpg?200}} {{plugins:weather4loxone:1215135928.jpg?200}} {{plugins:weather4loxone:1215135925.jpg?200}} {{plugins:weather4loxone:1215135926.jpg?200}} {{plugins:weather4loxone:1215135924.jpg?250}} ====== Aufgabe des Plugins ====== Das Weather4Loxone Plugin stellt auf dem LoxBerry einen Wetterserver bereit, der auf die Daten von verschiedenen Wetterdiensten im Internet zugreift, diese Daten aufbereitet und dem Miniserver zur Verfügung stellt. Dabei stehen alle Wetterdaten sowohl als Variablen für die Programmierung als auch visuell aufbereitet für den Webpage-Baustein zur Verfügung. Per Weather Service Emulator kann das Wetter auch voll integriert in der Loxone App eingebunden werden, z. B. im Raummodus. Es können auf die aktuellen Wetterdaten, die tagesgenaue Vorhersage der nächsten 3-4 Tage sowie die stundengenaue Vorhersage der nächsten 36-48 Stunden zugegriffen werden (je nach Wetterdienst).  Die Anbindung an den Miniserver kann per Virtuellen UDP-Eingang als auch per Virtuellem HTML-Eingang erfolgen. ====== Download ====== * Das Plugin-Archiv (ZIP) kann auf GIT-Hub heruntergeladen werden: [[https://github.com/mschlenstedt/LoxBerry-Plugin-Weather4Lox/releases/]] * Der Sourcecode ist auf GitHub verfügbar: [[https://github.com/mschlenstedt/LoxBerry-Plugin-Weather4Lox]] ====== Fehlerberichte ====== Fehlerberichte bitte direkt im [[https://github.com/mschlenstedt/LoxBerry-Plugin-Weather4Lox/issues|Repository auf GitHub]] melden. LoxBerry Version? Plugin-Version? Plugin und LoxBerry auf dem neuesten Stand? ====== Einführungsvideo ====== {{youtube>l9Gh7wNAwJM?}} ====== Auswahl der Wetterdienste ====== Die meisten Wetterdienste bieten einen kostenlosen Zugang zu Ihren Daten an. Diese Zugänge sind aber meist mehr oder weniger stark gegenüber den kostenpflichtigen Zugängen beschnitten. Es fehlen z. B. die Stundenvorhersage oder die Stundenvorhersage wird nur für maximal 48h im Voraus gesendet.  Auch ist die Anzahl an Wetterstationen und somit die Genauigkeit der aktuellen Wetterdaten von Region zu Region sehr unterschiedlich. Seit Version 4.7.0 kann man daher im Weather4Loxone unterschiedliche Wetterdienste für aktuelle Daten sowie die Tages- und Stundenvorhersage wählen. Somit kann man sich seine Wetterdaten optimal zusammenstellen. === Weather Service Emulator === Hinweis: Wenn Du den Weather Service Emulator verwenden möchtest, benötigst Du mindestens 3 volle Tage (72h) stundengenaue Vorhersagedaten, ansonsten ist die Darstellung in der Loxone App fehlerhaft! === Anzahl Wetterdienste === Hinweis: Es ist nur ein Wetterdienst für den Betrieb des Plugins nötig!  ===== Best Practise ===== Ich habe mir von den unterstützen Wetterdiensten denjenigen herausgesucht, der mir für meinen Standort die besten aktuellen Wetterdaten bietet. Hierbei habe ich vor allem auf Bewölkung, Regen und Wind geachtet. Diesen habe ich als Standard-Wetterdienst konfiguriert. Für die Tages- und Stundenvorhersage verwende ich OpenWeatherMap® Visual Crossing®. Dieser Dienst bietet genügend Vorhersagedaten für den Weather Service Emulator. Zur Verbesserung der Genauigkeit der aktuellen Daten habe ich mir eine zuverlässige Wetterstation bei Wunderground® gesucht, die vor allem auch die Sonnenstrahlung in W/m² misst. Diese Daten binde ich über den Wunderground® Grabber mit ein. Da ich in der Lüftungsanlage einen eigenen Temperatursensor für die Außentemperatur verbaut habe, binde ich diese Temperatur zudem über den Loxone® Grabber in die Wetterdaten mit ein. ===== Übersicht kostenloser Zugänge ===== Stand: 20.01.2024 ^ Wetterdienst ^ Aktuelle Daten ^ Tagesvorhersage ^ Stundenvorhersage ^ Link ^ | OpenWeatherMap | Ja | Ja, 7 Tage | Ja, 120 Stunden(1) | [[https://openweathermap.org/price]](2) | | Visual Crossing | Ja | Ja, 14 Tage | Ja, 360 Stunden | [[https://visualcrossing.com]] | | Wttr.in | Ja | Ja, 3 Tage | Ja, 72 Stunden(3) | [[https://wttr.in|https://wttr.in]], 100% kostenlos, keine Subscription notwendig! Datenquelle ist %%[[https://www.worldweatheronline.com/|WorldWeatherOnline]]%% | | Weatherflow | Ja | Ja, 10 Tage | Ja, 240 Stunden | Nur für Besitzer einer Weatherflow Wetterstation (z. B. Tempest) | (1): 48 Stunden mit einer Auflösung von 1 Stunde, 49-120 Stunden mit einer Auflösung von 3 Stunden. Die 3-Stunden.Werte werden vom Plugin linear interpoliert, um stundengenaue Vorhersagen zu erhalten. (2): Subscription zur OneCall API 3.0 ist notwendig (3): Stundenvorhersage mit einer Auflösung von 3 Stunden. Die 3-Stunden.Werte werden vom Plugin linear interpoliert, um stundengenaue Vorhersagen zu erhalten. === Übertragene Wetterwerte === Achtung! Nicht alle Dienste übertragen auch alle Wetterdaten! Die Auswahl ist da sehr unterschiedlich. Wenn ein Wert vom Wetterdienst nicht angeboten wird, wird er automatisch auf **-9999** gesetzt. ===== Reihenfolge ===== Die Reihenfolge der Abrufe wird wie folgt durchgeführt: ^ Schritt ^ Was ^ Woher ^ | 1 | Aktuelle Wetterdaten | Standard Wetterservice | | 2 | Tagesvorhersage | Standard Wetterservice oder alternativer Wetterservice, je nach Konfiguration | | 3 | Stundenvorhersage | Standard Wetterservice oder alternativer Wetterservice, je nach Konfiguration | | 4 | Wunderground® Grabber | Wunderground® Webseite. Überschreibt die aktuellen Wetterdaten (Schritt 1) | | 5 | FOSHKplugin Grabber | [[plugins:foshkplugin:start|FOSHKplugin]] (LoxBerry). Überschreibt die aktuellen Wetterdaten (Schritt 1) und die Wunderground® Wetterdaten (Schritt 4) | | 6 | WU Upload Catcher Grabber | [[plugins:wu_upload_catcher:start|WU Upload Catcher Plugin]] (LoxBerry). Überschreibt die aktuellen Wetterdaten (Schritt 1) und die Wunderground® Wetterdaten (Schritt 4) und die Daten vom FOSHKplugin (Schritt 5). | | 7 | Loxone® Grabber | Miniserver. Überschreibt die aktuellen Wetterdaten (Schritt 1), die Wunderground® Wetterdaten (Schritt 4) und die Daten vom FOSHKplugin (Schritt 5) und die Daten vom WU Upload Catcher Plugin (Schritt 6). | ====== Konfigurationsoptionen ====== ===== Server Einstellungen ===== ==== Standard Wetter Service ==== Hier wählst Du aus, von welchem Wetterservice Du die Daten beziehen möchtest. Meist benötigst Du dazu einen entsprechenden (kostenlosen) API-Schlüssel, um Zugriff auf die Daten zu erhalten. Wenn nichts anderes konfiguriert ist, werden vom Standard-Wetterservice sowohl aktuelle Wetterdaten als auch die Tages- und Stundenvorhersage verwendet. ==== Alternativer Wetter Service für Tagesvorhersage ==== Ist diese Option aktiviert, wird die Tagesvorhersage von diesem Wetterservice und nicht vom Standard Wetter Service verwendet. Der Wetterservice muss dazu natürlich vollständig konfiguriert sein. ==== Alternativer Wetter Service für Stundenvorhersage ==== Ist diese Option aktiviert, wird die Stundenvorhersage von diesem Wetterservice und nicht vom Standard Wetter Service verwendet. Der Wetterservice muss dazu natürlich vollständig konfiguriert sein. ==== Abfrage-Intervall für alternative Wetter Services ==== Möchte man ein unterschiedliches Abfrageintervall für die alternativen Wetterservices (Tages-/Stundenvorhersage) nutzen, so kann man dieses Intervall hier einstellen. ==== Einheiten ==== Das Plugin unterstützt die beiden Einheitensysteme "Metrisch" und "Anglo-Amerikanisch". Diese Option hat sowohl Einfluss auf die Wetter-Visualisierung für den Webpage-Baustein als auch auf die Daten, die direkt an den Miniserver gesendet werden, um sie in der Programmierung weiter verarbeiten zu können. ==== Wunderground® Grabber ==== Wenn Du eine Wetterstation in Deiner Nähe hast, die Ihre Daten bei Wunderground® einspeist, kannst Du mit dieser Option die aktuellen Wetterdaten von dieser Station beziehen und damit die Daten von Deinem gewählten Wetterdienst überschreiben. Häufig sind diese Daten genauer als die vom Wetterdienst. Des weiteren bieten viele Wetterdienste keine Werte für Strahlung in W/m² an, viele Wunderground®-Stationen aber schon. Somit hast Du auch diesen Wert zumindestens bei den aktuellen Wetterdaten mit dabei. Um die Option zu nutzen, musst Du Dir eine passende Station in der Deiner Nähe auf der WunderMap® suchen und die StationID hier eintragen! {{plugins:weather4loxone:1215135923.png?250}} ==== FOSHKplugin Grabber ==== Wenn Du eine eigene Wetterstation besitzt und das [[plugins:foshkplugin:start|FOSHKplugin auf einem LoxBerry]] installiert hast, kannst Du direkt die aktuellen Daten Deiner Wetterstation in Weather4Loxone integrieren. Sie werden dann anstelle der Daten der Wetterstation verwendet und z. B. im Cloud Weather Emulator angezeigt. Dazu muss der "FOSHKplugin Grabber" aktiviert werden. Das Plugin holt die zu verwendenden Messwerte beim FOSHKplugin ab und ersetzt damit die Werte vom Wetterdienst. Als Option musst Du noch die IP-Adresse oder den Hostnamen des LoxBerry angeben, auf dem das FOSHKplugin läuft. Wenn es der gleiche LoxBerry ist, auf dem auch Weather4Loxone läuft, gib localhost an. Des weiteren benötigst Du noch den Port des FOSHKplugins. Standardmäßig ist das 8080. ==== WU Upload Catcher Grabber ==== Wenn Du eine eigene Wetterstation besitzt und das [[plugins:wu_upload_catcher:start|WU Upload Catcher Plugin auf einem LoxBerry]] installiert hast, kannst Du direkt die aktuellen Daten Deiner Wetterstation in Weather4Loxone integrieren. Sie werden dann anstelle der Daten der Wetterstation verwendet und z. B. im Cloud Weather Emulator angezeigt. Dazu muss der "WU Upload Catcher Plugin Grabber" aktiviert werden. Das Plugin holt die zu verwendenden Messwerte beim WU Upload Catcher Plugin ab und ersetzt damit die Werte vom Wetterdienst. Das Plugin muss auf dem gleichen LoxBerry wie das Weather4Loxone Plugin installiert sein. ==== Loxone® Grabber ==== Es ist möglich die Messdaten von eigenen Sensoren in den Wetterserver einzuspeisen. Sie werden dann anstelle der Daten der Wetterstation verwendet und z. B. im Cloud Weather Emulator angezeigt. Dazu muss der "Loxone Grabber" aktiviert werden. Das Plugin holt die zu verwendenden Messwerte am Miniserver ab (sie müssen also in Loxone Config integriert werden) und ersetzt damit die Werte vom Wetterdienst. Damit das Plugin die Werte in der Loxone Config (bzw, am Miniserver) findet, muss ein Baustein oder Virtueller Eingang, Merker etc. mit den folgenden Namen existieren:\\ \\ ''%%w4l_cur_w_gu%%''\\ ''%%w4l_cur_w_ch%%''\\ ''%%w4l_cur_pr%%''\\ ''%%w4l_cur_dp%%''\\ ''%%w4l_cur_tt_fl%%''\\ ''%%w4l_cur_hu%%''\\ ''%%w4l_cur_we_code%%''\\ ''%%w4l_cur_tt%%''\\ ''%%w4l_cur_w_dir%%''\\ ''%%w4l_cur_sr%%''\\ ''%%w4l_cur_w_sp%%''\\ Es spielt dabei keine Rolle, ob der Name in der Bezeichnung oder in der Beschreibung des Bausteins steht, beides funktioniert. Der Name beginnt mit w4l_ und anschließend mit dem Variablennamen der Wetterdaten - siehe Übersichtstabelle "Verfügbare Wetterdaten" weiter unten. Das Plugin versucht jedes Mal, wenn Wetterdaten vom Wetterservice abgeholt werden, diese Bausteine in der Loxone Config zu finden und liest bei Erfolg den entsprechenden Analogwert ein und überschreibt damit die Messdaten des Wetterdienstes. Beinhaltet der Baustein den Wert "-9999", so wird dieser Wert als ungültig erkannt und ignoriert. ==== Wetterdaten abrufen ==== Hier legst Du fest wie oft die Wetterdaten vom Wetterservice abgerufen werden sollen. Meist ist bei kostenlosen API-Schlüsseln die maximale Anzahl an Abfragen pro Tag begrenzt. Achte darauf dieses Limit nicht zu überschreiten! Die folgende Übersicht zeigt die maximal möglichen Abrufe der kostenlosen API-Keys (Stand: 12.11.2018): ^ Wetter-Engine ^ Freie API-Calls pro Tag ^ API-Calls pro Abruf ^ Maximaler Abfrage-Zyklus ^ | OpenWeatherMap | 1000 | 2 | Alle 3 Minuten | | Visual Crossing | 1000 | 1 | Alle 3 Minuten | | Wttr.in | Ohne Limit | 1 | Theoretisch 3 Minuten - **seit fair und nutzt Intervalle >= 15 Minuten**. Die Daten werden sowieso nur alle 30 Minuten aktualisiert! | | Weatherflow | Ohne LImit | 2 | Alle 3 Minuten | ===== OpenWeatherMap® ===== === OneCall 3.0 API notwendig === Ihr müsst euren API Key für die neue OneCall 3,0 API registrieren! Bei dieser API sind 1000 Abrufe täglich kostenlos, anschließend müsst ihr für weitere Abrufe zahlen. Beschränkt daher die Abrufe auf 1000 pro Tag und wählt eure Einstellungen im Plugin entsprechend. Die Registrierung (Subscription) erfolgt in eurem Useraccount auf OpenWeatherMap. {{plugins:weather4loxone:1731100688.png?600}} ==== API Key ==== Um auf die Daten von OpenWeatherMap® zugreifen zu können benötigt man einen kostenlosen API-Key. Diesen kannst Du direkt auf der Webseite von [[https://openweathermap.org/|OpenWeatherMap]] beantragen. Der kostenlose Schlüssel erlaubt maximal 1000 API-Calls am Tag, wobei zu beachten ist, dass pro Abruf 2 API-Calls durchgeführt werden müssen. D. h. es sind maximal 500 Abrufe pro Tag möglich. Des weiteren muss der API Key für die OneCall 3.0 API registriert sein! ==== Auswahl der Wetterstation / Geokoordinaten ==== Bei OpenWeatherMap® musst Du die Geokoordinaten Deines Standorts eintragen. OpenWeatherMap® wählt dann automatisch die für Dich am nächsten gelegene Wetterstation aus. Du kannst zur Hilfe die OSM Adresssuche verwenden, um Deine Geokoordinaten herauszufinden. ==== Sprache ==== Hier kannst Du die Sprache wählen, die bei der Abfrage der Daten von OpenWeatherMap® verwendet werden soll. Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Die dort verwendeten Texte (z. B. "Morgen Regen möglich") werden in der Sprache dargestellt, die hier eingestellt wird. ==== Station Land ==== Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Du kannst eine beliebige Bezeichnung wählen. ==== Station Stadt ==== Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Du kannst eine beliebige Bezeichnung wählen. ===== Visual Crossing® ===== ==== API Key ==== Um auf die Daten von Visual Crossing® zugreifen zu können benötigt man einen kostenlosen API-Key. Diesen kannst Du direkt auf der Webseite von [[https://www.visualcrossing.com/|Visual Crossing]] beantragen. Der kostenlose Schlüssel erlaubt maximal 1000 API-Calls am Tag. ==== Auswahl der Wetterstation / Geokoordinaten ==== Bei VisualCrossing® musst Du die Geokoordinaten Deines Standorts eintragen. VisualCrossing® wählt dann automatisch die für Dich am nächsten gelegene Wetterstation aus. Du kannst zur Hilfe die OSM Adresssuche verwenden, um Deine Geokoordinaten herauszufinden. ==== Sprache ==== Hier kannst Du die Sprache wählen, die bei der Abfrage der Daten von VisualCrossing® verwendet werden soll. Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Die dort verwendeten Texte (z. B. "Morgen Regen möglich") werden in der Sprache dargestellt, die hier eingestellt wird. ==== Station Land ==== Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Du kannst eine beliebige Bezeichnung wählen. ==== Station Stadt ==== Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Du kannst eine beliebige Bezeichnung wählen. ===== Wttr.in ===== == Seid fair! == Wttr.in ist eine **privat betriebene Webseite**. Der Betreiber stellt hier über die [[https://github.com/chubin/wttr.in|Software wttr.in]] mit seinem privaten Schlüssel für den Wetterservice WorldWeatherOnline die abgerufenen Daten zur Verfügung. Die Daten werden nur alle 30 Minuten aktualisiert, **daher machen Abrufintervalle kleiner 15 Minuten überhaupt keinen Sinn und belasten die Webseite nur unnötig!** ==== Station ID ==== Eine Wetterstation kann auf verschiedene Arten eingetragen werden: Städtenamen, Ortsnamen (Points of Interests), %%IATA Flughafencode oder auch GPS-Koordinaten (in der Form 51.07,13.77). Bei entlegenen Orten werden teilweise über Koordinaten keine nächst gelegene Wetterstation gefunden. Auch Points of Interests funktionieren eher selten. Probiert auf der Webseite aus, was für euren Ort die Besten Ergebnisse liefert. Dazu wird der Suchbegriff einfach an die URL angehängt, z. B. [[https://wttr.in/Dresden|https://wttr.in/Dresden]]%% Beispiele (die zu verwendende Station ID steht hinter dem letzten Slash ("/"): * [[https://www.wttr.in/Dresden|https://www.wttr.in/Dresden]] * [[https://wttr.in/51.0493286,13.7381437|https://wttr.in/51.0493286,13.7381437]] * [[https://wttr.in/DRS|https://wttr.in/DRS]] ==== Sprache ==== Hier kannst Du die Sprache wählen, die bei der Abfrage der Daten von Wttr.in verwendet werden soll. Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Die dort verwendeten Texte (z. B. "Morgen Regen möglich") werden in der Sprache dargestellt, die hier eingestellt wird. ===== Weatherflow® ===== ==== API Key ==== Um auf die Daten von Weatherflow® zugreifen zu können benötigt man einen API-Key. Den API Key bekommst Du, wenn Du eine entsprechende Wetterstation (z. B. Tempest) besitzt.  ==== Sprache ==== Hier kannst Du die Sprache wählen, die bei der Abfrage der Daten von Weatherflow® verwendet werden soll. Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Die dort verwendeten Texte (z. B. "Morgen Regen möglich") werden in der Sprache dargestellt, die hier eingestellt wird. Aktuell (Stand: Januar 2021) wird nur Englisch unterstützt. ==== Station Land ==== Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Du kannst eine beliebige Bezeichnung wählen. ==== Station Stadt ==== Diese Option hat nur Einfluss auf die Darstellung der Wetter-Visualisierung für den Webpage-Baustein. Du kannst eine beliebige Bezeichnung wählen. ==== Station ID ==== Gib hier die Station ID Deiner Wetterstation ein. Von dieser Station werden die aktuellen Wetterdaten sowie die Vorhersagedaten bezogen. ===== Miniserver ===== === Datenauswahl zur Übertragung === Hier wählst Du aus welche Vorhersagedaten per MQTT, UDP oder HTML an den Miniserver gesendet werden sollen bzw. für den Virtuellen HTML-Eingang bereitgestellt werden. Wähle nur die Vorhersageperioden aus, die Du in Deiner Programmierung auch verwenden möchtest. Unnötig ausgewählte Vorhersageperioden belasten den Miniserver unnötig und können unter Umständen zum unbeabsichtigten Reboot des Miniservers führen (siehe oben). === MQTT: Virtuelle Eingänge (Empfohlen) === Das Plugin sendet alle Daten an Deinen MQTT Broker bzw. das [[konfiguration:widget_help:widget_mqtt:|MQTT Gateway]], sofern dieser konfiguriert ist (Standard ab LoxBerry 3.0). Du kannst damit per Virtuellen Eingängen auf die Wetterdaten zugreifen. Im Gateway muss das Topic des Plugins abonniert werden (standardmäßig lautet das Topic "weather4lox/#") - das wird aber automatisch vom Plugin gemacht. Bitte lese in der Dokumentation des [[konfiguration:widget_help:widget_mqtt:|MQTT Widget]] nach, wie genau die Werte in der Loxone Config verwendet werden: [[konfiguration:widget_help:widget_mqtt:mqtt_gateway:mqtt_schritt_fur_schritt_mqtt_loxone|MQTT - Schritt für Schritt: MQTT -> Loxone]] Ich behandele das Thema "Anlegen eines Virtuellen Eingangs" hier nur in Kürze: * Virtuellen Eingang anlegen * Bezeichnung aus der Incoming Overview des Gateway kopieren und im Virtuellen Eingang exakt so einfügen.  * Als Digitaleingang verwenden: NEIN * Validierung korrekt setzen. ==== Virtuelle UDP Eingänge ==== Wenn Du die Wetterdaten in Deiner Programmierung per virtuellem UDP-Eingang einlesen möchtest, musst Du diese Option aktivieren und dabei noch den UDP-Port angeben, auf dem der Miniserver die Daten erwartet. Nach jedem Abruf der Wetterdaten (siehe oben) werden die Daten dann automatisch an den angegebenen Miniserver gesendet.  Nachdem Du die Option aktiviert hast (und die Einstellungen gespeichert hast), kannst Du nun schauen, ob die Daten im Miniserver auch ankommen. Dazu startest Du LoxoneConfig und verbindest Dich mit dem Miniserver. Im Reiter "Miniserver" aktivierst Du jetzt den UDP-Monitor (zusätzlich im Peripheriebaum auf Virtuelle Eingänge klicken, sonst erscheint die entsprechende Option nicht im Ribbon): {{plugins:weather4loxone:1215135922.png}} Jetzt wartet man, bis das Plugin wieder Wetterdaten von Wunderground abgerufen hat (eventuell für die ersten Tests das Abfrageintervall auf "Minütlich" ändern). Es sollten entsprechende Einträge im UDP-Log auftauchen: {{plugins:weather4loxone:1215135921.png}} Wenn alle Werte im UDP-Monitor auftauchen kannst Du Dich an die Auswertung der Daten machen. Hierzu werden Virtuelle UDP-Eingangsbefehle verwendet. Für jeden Wert muss ein separater UDP-Eingangsbefehl angelegt werden. Als erstes legst Du unter ''%%Peripherie -> Virtuelle E/A%%'' (oder per Taste F4) einen virtuellen UDP-Eingang an und benennst diesen beliebig (z. B. "Wetter"). Den Port, auf den der Eingang hören soll, musst Du in den Eigenschaften festlegen (normalerweise 7000). Dieser muss natürlich mit dem Port übereinstimmen, den Du oben im Plugin angegeben hast. Anschließend legst Du unterhalb des virtuellen Eingangs einen "Virtuellen UDP Eingang Befehl" an und benennst diesen ebenfalls beliebig (z. B. "Aktuelle Temperatur"). {{plugins:weather4loxone:1215135918.png?250}}  {{plugins:weather4loxone:1215135917.png}} In den Eigenschaften dieses Befehls musst Du unter "Befehlserkennung" nun noch eingeben, wie die empfangenen Daten verarbeitet werden sollen. Das Plugin sendet für jeden Wert dessen Typ, einen Unterstrich gefolgt von der Abkürzung, gefolgt von einem @-Zeichen und dem eigentlichen Wert. Also für die aktuelle Temperatur "''%%tt%%''" z. B. "''%%cur_tt@-3.9%%''". Somit gibt man unter Befehlserkennung an: cur_tt@\v Damit erkennt der Miniserver, dass es sich bei dem Wert um die gesendete aktuelle Temperatur handelt und setzt diese als Wert (alles, was nach dem @-Zeichen kommt: ''%%\v%%''). Diesen Schritt muss man nun für jeden Wert, den das Plugin sendet und den man in der Programmierung verarbeiten will, wiederholen. Der Wert bleibt immer so lange aktuell bis der Miniserver einen neuen Wert per UDP übermittelt bekommt. {{plugins:weather4loxone:1215135916.png?400}} Eine Besonderheit gibt es bei Werten, die eine Datums-/Uhrzeitangabe enthalten, zum Beispiel die Zeit des Sonnenaufgangs. Hier sendet das Plugin die Zeitangabe als Wert in Sekunden seit 01.01.2009. Diese Angabe erwartet der Miniserver in dieser Form. Im Virtuellen Eingang musst Du angeben, dass der empfangene Wert als Datum/Uhrzeit interpretiert werden soll: ''%%%%''. Wenn Du die Validierung verwenden möchtest, musst Du unbedingt darauf achten, den Parameter "Maximaler Wert" hoch genug einzustellen (Ideal: 1000000000 = 1+9 Nullen)! Ich empfehle für den Anfang die Validierung zu deaktivieren. {{plugins:weather4loxone:1215135915.png?400}} Welche Werte Du alle über den Virtuellen Eingang verwenden kannst findest Du ganz am Ende dieser Anleitung in den entsprechenden Tabellen. === HINWEIS === Mit aktuellem Stand der Firmware (9.x) können die Virtuellen Eingänge keinen Text auswerten (also z. B. „sonnig“)! ==== Virtuelle HTTP Eingänge ==== Anstelle von UDP kannst Du auch einen Virtuellen HTTP-Eingang verwenden. Vorteil ist, dass die Einrichtung im Gegensatz zu UDP häufig einfacher gelingt. Insbesondere wenn der LoxBerry nicht im eigenen Netzwerk betrieben wird solltest Du diese Methode verwenden, da man sich dann keine Gedanken über das Routing der UDP-Pakete machen muss. Nachteil ist, dass permanent vom Miniserver Anfragen an den LoxBerry gestellt werden, bei UDP hingegen werden nur direkt nachdem das Plugin neue Wetterdaten von Wunderground abgeholt hat diese an den Miniserver gesendet. Normalerweise sollten die Anfragen aber kein Problem für Dein Netzwerk und den LoxBerry darstellen. Die Einrichtung erfolgt analog zur Einrichtung der Virtuellen UDP-Eingänge (siehe oben), als Adresse für den HTML-Eingang dient folgende Adresse, als Abfragezyklus bietet sich 60 Sekunden an: http://IPADRESSE/plugins/weather4lox/weatherdata.html {{plugins:weather4loxone:1215135913.png?250}} Unterhalb des HTML-Eingangs wird analog zum UDP-Eingang ein „Virtueller HTML Eingang Befehl“ angelegt. Die Befehlserkennung ist identisch zum UDP-Eingang (siehe oben). ===== Weather Service Emulator / Webseite ===== ==== Weather Service Emulator ==== === DNSmasq === Das Plugin nutzt für diese Funktion die Software DNSmasq. Die Konfiguration erfolgt dabei vollautomatisch. Detektiert das Plugin allerdings ein installiertes [[plugins:dnsmasq:start|DNSmasq]] Plugin, so führt es aus Sicherheitsgründen die Konfiguration nicht automatisch durch! Bitte füge in diesem Fall folgende Zeilen zu Deiner DNSmasq Konfiguration manuell hinzu: ''%%address=/weather.loxone.com/LOXBERRY_IPADRESSE%%'' ''%%address=/weather-beta.loxone.com/LOXBERRY_IPADRESSE%%'' Dieser Schritt muss aber **wirklich nur durchgeführt** werden, wenn Du das DNSMasq Plugin installiert hast! Du bekommst dann einen entsprechenden Hinweis im Weather4Lox Plugin! Wenn Du das DNSMasq Plugin nicht nutzt, dann brauchst Du auch nichts manuell zu ändern! In diesem Fall konfiguriert das Plugin DNSMasq selbst! Das Plugin kann den Loxone Wetterserver emulieren. Damit ist eine volle Integration des Wetters in die Loxone App möglich, z. B. die Anzeige im Raummodus. Allerdings müssen dazu die Netzwerkeinstellungen am Miniserver verändert werden. Der Miniserver fragt das Wetter immer fest über die URL weather.loxone.com ab und authentifiziert sich dabei über seine Seriennummer. Die Emulation funktioniert wie folgt: Der LoxBerry wird mit der Software DNSMasq quasi als Nameserver konfiguriert. Er leitet alle DNS-Anfragen jedoch einfach weiter an den Nameserver Deines Providers - außer Anfragen an die Adresse weather.loxone.com. Diese leitet er auf seinen eigenen Webserver um und kann so die entsprechenden Wetterdaten an den Miniserver senden. In der Netzwerkkonfiguration des Miniservers muss daher als Nameserver zwingend die IP-Adresse des LoxBerry angegeben werden, damit der Miniserver alle DNS-Anfragen an den LoxBerry stellt. Zunächst aktiviert man im LoxBerry den Cloud Weather Emulator. Hinweis: Im Hintergrund konfiguriert das Plugin DNSMasq völlig selbstständig! Es muss nichts manuell installiert oder konfiguriert werden! Nun trägt man in der Netzwerk-Konfiguration des Miniservers den LoxBerry als Nameserver ein. Dazu in LoxoneConfig mit dem Miniserver verbinden, den Miniserver im Peripheriebaum anklicken und oben in der Menüleiste "Miniserver konfigurieren" auswählen. Die Einstellungen findet an im Reiter Netzwerk. Hier muss eine manuelle Konfiguration der Netzwerkeinstellungen ausgewählt werden und im Eintrag "DNS Server" die IP-Adresse des LoxBerry eingetragen werden: Anmerkung: die Wetterdaten werden vom Miniserver nur 1 mal pro Stunde abgerufen und aktualisiert. Dies ist eine Restriktion des Miniservers und kann nicht geändert werden. {{plugins:weather4loxone:1215135900.png?250}} In der Konfiguration muss die Verwendung des Wetterservers unter //Projekt → Wetterserver// noch aktiviert werden, damit der Miniserver den Wetterserver auch benutzt. Weitere Einstellungen sind an dieser Stelle nicht notwendig. {{plugins:weather4loxone:1215136131.png?250}} Anschließend muss der Miniserver neu gestartet werden. Er sollte in der App Konfiguration nun den Zugriff auf das Wetter erlauben und keinen Werbelink mehr für ein Wetterabo anzeigen. Der in der Loxone App angezeigte Ort kommt nicht vom Wetterservice, sondern aus der Loxone Config, in den Projekt-Einstellungen (oberstes Element im Baum), im Bereich Kunde / Ort. {{plugins:weather4loxone:1215135898.png?250}}  {{plugins:weather4loxone:1215135899.png?250}} ==== Theme und Iconset ==== Das Plugin stellt eine Webseite bereit, die über den Webpage-Baustein in die Loxone Visualisierung eingebunden werden kann. Das Theme sowie das Iconset, welches diese Webseite verwendet, kann über die beiden Optionen eingestellt werden. Die Adresse für den Webpage-Baustein lautet: http://IPADRESSE/plugins/weather4lox/webpage.html {{plugins:weather4loxone:1215135911.png}} {{plugins:weather4loxone:1215135910.png}} {{plugins:weather4loxone:1215135909.png}}  {{plugins:weather4loxone:1215135908.png}} ====== Verfügbare Wetterdaten ====== === Übertragene Wetterwerte === Achtung! Nicht alle Dienste übertragen auch alle Wetterdaten! Die Auswahl ist da sehr unterschiedlich. Wenn ein Wert vom Wetterdienst nicht angeboten wird, wird er automatisch auf **-9999** gesetzt. ^ Variable ^ Beschreibung ^ Einheit (metrisch) ^ Einlesen per Virtuellem Eingang (UDP/HTTP) ^ Verwendung im Theme für den Webpage-Baustein ^ Visual Crossing ^ Open Weather Map ^ Weatherflow ^ | **Aktuelle Wetterdaten (Current)** |||||||| | cur_date | Date Epoche | - | Ja | Ja | X | X | X | | cur_date_des | Date RFC822 | - | Nein | Ja | | X | X | | cur_date_tz_des_sh | Timeezone Short | - | Nein | Ja | | X | X | | cur_date_tz_des | Timezone Long | - | Nein | Ja | | X | X | | cur_date_tz | Timezone Offset | - | Nein | Ja | | X | X | | cur_loc_n | Observation Location | - | Nein | Ja | | X | X | | cur_loc_c | Location Country | - | Nein | Ja | | X | X | | cur_loc_ccode | Location Country Code | - | Nein | Ja | | - | - | | cur_loc_lat | Location Latitude | - | Ja | Ja | X | X | X | | cur_loc_long | Location Longitude | - | Ja | Ja | X | X | X | | cur_loc_el | Location Elevation | - | Ja | Ja | - | - | X | | cur_tt | Temperature | °C | Ja | Ja | X | X | X | | cur_tt_fl | Feelslike Temp | °C | Ja | Ja | X | X | X | | cur_hu | Rel. Humidity | % | Ja | Ja | X | X | X | | cur_w_dirdes | Wind Dir Description | - | Nein | Ja | | X | X | | cur_w_dir | Wind Dir Degrees | Grad | Ja | Ja | X | X | X | | cur_w_sp | Wind Speed | km/h | Ja | Ja | X | X | X | | cur_w_gu | Wind Gust | km/h | Ja | Ja | X | X | X | | cur_w_ch | Windchill | °C | Ja | Ja | X | X | X | | cur_pr | Pressure | mbar | Ja | Ja | X | X | X | | cur_dp | Dew Point | °C | Ja | Ja | X | X | X | | cur_vis | Visibility | km | Ja | Ja | X | X | - | | cur_sr | Solar Radiation | W/m² | Ja | Ja | X | - | X | | cur_hi | Heat Index | - | Ja | Ja | - | - | X | | cur_uvi | UV Index | - | Ja | Ja | X | X | X | | cur_prec_today | Precipitation Today | mm | Ja | Ja | - | - | X | | cur_prec_1hr | Precipitation 1hr | mm | Ja | Ja | X | X | X | | cur_we_icon | Weather Icon | - | Nein | Ja | | X | X | | cur_we_code | Weather Code | - | Ja | Ja | X | X | X | | cur_we_des | Weather Description | - | Nein | Ja | | X | X | | cur_moon_p | Moon: % Illuminated | % | Ja | Ja | X | X | - | | cur_moon_a | Moon: Age of Moon | Tage | Ja | Ja | - | - | - | | cur_moon_ph | Moon: Phase of Moon | - | Ja | Ja | X | X | - | | cur_moon_h | Moon: Hemisphere | - | Ja | Ja | - | - | - | | cur_sun_r | Sunrise | - | Ja (Zeit) | Ja | X | X | X | | cur_sun_s | Sunset | - | Ja (Zeit) | Ja | X | X | X | | cur_day | Date Day | - | Ja | Ja | X | X | X | | cur_month | Date Month | - | Ja | Ja | X | X | X | | cur_year | Date Year | - | Ja | Ja | X | X | X | | cur_hour | Date Hour | - | Ja | Ja | X | X | X | | cur_min | Date Minutes | - | Ja | Ja | X | X | X | | cur_ozone | Density of atmospheric ozone in DU | DU | Ja | Ja | - | - | - | | cur_sky | Sky (clouds) % | % | Ja | Ja | X | X | - | | cur_pop | % of Precipitation | % | Ja | Ja | X | - | X | | cur_snow | Snow | cm | Ja | Ja | X | X | - | | | | | | | | | | | **Tagesgenaue Vorhersage (Daily Forecast) HEUTE** |||||||| | dfc0_per | Period (0: Today…) | - | Ja | Ja | | X | X | | dfc0_date | Date Epoche | - | Ja | Ja | | X | X | | dfc0_day | Date DAY | - | Ja | Ja | | X | X | | dfc0_month | Date MONTH | - | Ja | Ja | | X | X | | dfc0_monthn | Date MONTHNAME | - | Nein | Ja | | X | X | | dfc0_monthn_sh | Date MONTHN. Short | - | Nein | Ja | | X | X | | dfc0_year | Date: YEAR | - | Ja | Ja | | X | X | | dfc0_hour | Date: HOUR | - | Ja | Ja | | X | X | | dfc0_min | Date: MINUTES | - | Ja | Ja | | X | X | | dfc0_wday | Date: WEEKDAY | - | Nein | Ja | | X | X | | dfc0_wday_sh | Date: WEEKD. Short | - | Nein | Ja | | X | X | | dfc0_tt_h | High Temperature | °C | Ja | Ja | | X | X | | dfc0_tt_l | Low Temperature | °C | Ja | Ja | | X | X | | dfc0_pop | % of Precipitation | % | Ja | Ja | | - | X | | dfc0_prec | Precipitation Forecast | mm | Ja | Ja | | X | - | | dfc0_snow | Snow Forecast | cm | Ja | Ja | | X | - | | dfc0_w_sp_h | Max. Wind Speed | km/h | Ja | Ja | | - | - | | dfc0_w_dirdes_h | Max. Wind Dir Descript. | - | Nein | Ja | | - | - | | dfc0_w_dir_h | Max. Wind Dir | Grad | Ja | Ja | | - | - | | dfc0_w_sp_a | Ave. Wind Speed | km/h | Ja | Ja | | X | - | | dfc0_w_dirdes_a | Ave. Wind Dir Descript. | - | Nein | Ja | | X | - | | dfc0_w_dir_a | Ave. Wind Dir | Grad | Ja | Ja | | X | - | | dfc0_hu_a | Ave. Humidity | % | Ja | Ja | | X | - | | dfc0_hu_h | Max. Humidity | % | Ja | Ja | | - | - | | dfc0_hu_l | Low. Humidity | % | Ja | Ja | | - | - | | dfc0_we_icon | Icon Name | - | Nein | Ja | | X | X | | dfc0_we_code | Weather Code | - | Ja | Ja | | X | X | | dfc0_we_des | Weather Description | - | Nein | Ja | | X | X | | dfc0_ozone | Density of atmospheric ozone in DU | DU | Ja | Ja | | - | - | | dfc0_moon_p | Moon: % Illuminated | % | Ja | Ja | | X | X | | dfc0_dp | Dew Point | °C | Ja | Ja | | X | - | | dfc0_pr | Pressure | mbar | Ja | Ja | | X | - | | dfc0_uvi | UV Index | - | Ja | Ja | | X | - | | dfc0_sun_r | Sunrise | - | Ja (Zeit) | Ja | | X | X | | dfc0_sun_s | Sunset | - | Ja (Zeit) | Ja | | X | X | | dfc0_vis | Visibility | km | Ja | Ja | | - | - | | | | | | | | | | | **Tagesgenaue Vorhersage (Daily Forecast)** || | | | | | | | **+1 Tag, +2 Tage, +3 Tage .... +7 Tage** |||||||| | Variablen beginnen mit | Siehe oben | - | Siehe oben | Siehe oben | Siehe oben | Siehe oben | Siehe oben | | dfc1_ | | - | | | | | | | dfc2_ | | - | | | | | | | usw. || - | | | | | | | | | | | | | | | | **Stundengenaue Vorhersage (Hourly Forecast)** || | | | | | | | **+1 Stunde** |||||||| | hfc1_per | Period (1: +1 Hour,…) | - | Ja | Ja | | X | X | | hfc1_date | Date Epoche | - | Ja | Ja | | X | X | | hfc1_day | Date: DAY | - | Ja | Ja | | X | X | | hfc1_month | Date: MONTH | - | Ja | Ja | | X | X | | hfc1_monthn | Date: MONTHNAME | - | Nein | Ja | | X | X | | hfc1_monthn_sh | Date: MONTHN. Short | - | Nein | Ja | | X | X | | hfc1_year | Date: YEAR | - | Ja | Ja | | X | X | | hfc1_hour | Date: HOUR | - | Ja | Ja | | X | X | | hfc1_min | Date: MINUTES | - | Ja | Ja | | X | X | | hfc1_wday | Date: WEEKDAY | - | Nein | Ja | | X | X | | hfc1_wday_sh | Date: WEEKD. Short | - | Nein | Ja | | X | X | | hfc1_tt | Temperature | °C | Ja | Ja | | X | X | | hfc1_tt_fl | Feelslike Temperature | °C | Ja | Ja | | X | X | | hfc1_hi | Heat Index | - | Ja | Ja | | - | - | | hfc1_hu | Humidity | % | Ja | Ja | | X | X | | hfc1_w_dirdes | Wind Dir. Description | - | Nein | Ja | | X | X | | hfc1_w_dir | Wind Dir. | Grad | Ja | Ja | | X | X | | hfc1_w_sp | Wind Speed | km/h | Ja | Ja | | X | X | | hfc1_w_ch | Windchill | °C | Ja | Ja | | X | X | | hfc1_pr | Pressure | mbar | Ja | Ja | | X | X | | hfc1_dp | Dewpoint | °C | Ja | Ja | | X | - | | hfc1_sky | Sky (clouds) % | % | Ja | Ja | | X | - | | hfc1_sky_des | Sky Description / WX | - | Nein | Ja | | - | - | | hfc1_uvi | UV Index | - | Ja | Ja | | - | X | | hfc1_prec | Quant. Precipitation FC | mm | Ja | Ja | | X | X | | hfc1_snow | Snow Forecast | cm | Ja | Ja | | X | - | | hfc1_pop | % of Precipitation (%) | % | Ja | Ja | | - | X | | hfc1_we_code | Weather Code | - | Ja | Ja | | X | X | | hfc1_we_icon | Icon Name | - | Nein | Ja | | X | X | | hfc1_we_des | Weather Description | - | Nein | Ja | | X | X | | | | | | | | | | | **Stundengenaue Vorhersage (Hourly Forecast)** || | | | | | | | **+2 Stunden ….. +48 Stunden** |||||||| | Variablen beginnen mit | Siehe oben | - | Siehe oben | Siehe oben | Siehe oben ||| | hfc2_ | | - | | | | | | | hfc3_ | | - | | | | | | | usw. | | - | | | | | | | | | | | | | | | | **Kalkulatorische Werte (calc)** || | | | | | | | **+4, +8, +16, +24, +32, +40, +48 Stunden** |||||||| | calc+4_ttmax | maximale Temperatur in den nächsten 4 h | °C | | | | | | | calc+4_ttmin | minimale Temperatur in den nächsten 4 h | °C | | | | | | | calc+4_popmax | maximale Regenwahrscheinlichkeit in den nächsten 4h | % | | | | | | | calc+4_popmin | minimale Regenwahrscheinlichkeit in den nächsten 4h | % | | | | | | | calc+4_prec | Regenmenge in den nächsten 4h | mm | | | | | | | calc+4_snow | Schneemenge in den nächsten 4h | cm | | | | | | | usw. | | | | | | | | ====== Wetter-Codes ====== ^ Code ^ Weather (EN) ^ Wetter (DE) ^ OpenWeatherMap ^ WeatherFlow ^ Visual Crossing ^ | 1 | clear, sunny | klar, sonnig | x | x | x | | 2 | mostly sunny, partly cloudy | Meist sonnig, vereinzelt bewölkt | x | x | x | | 3 | partly sunny, mostly cloudy | Vereinzelt sonnig, überwiegend bewölkt | x | - | x | | 4 | cloudy, overcast | bewölkt, bedeckt | x | x | x | | 5 | hazy | dunstig | x | - | - | | 6 | fog | nebelig | x | x | x | | 7 | very hot | sehr heiss | - | - | - | | 8 | very cold | sehr kalt | - | - | - | | 9 | blowing snow | Schneetreiben | - | - | - | | 10 | chance of showers | Schauer möglich | x | - | - | | 11 | showers | Schauer | x | - | x | | 12 | chance of rain | Regen möglich | x | x | - | | 13 | rain | Regen | x | - | x | | 14 | chance of thunderstorms | Gewitter möglich | - | x | - | | 15 | thunderstorms | Gewitter | x | x | x | | 16 | flurry | Schneegestöber | - | - | - | | 17 | - | - | - | - | - | | 18 | chance of flurries, chance of sleet | Schneegstöber möglich, Schneeregen möglich | - | x | - | | 19 | sleet | Schneeregen | x | x | x | | 20 | chance of snow | Schnee möglich | x | x | - | | 21 | snow | Schnee | x | x | x | | 22 | windy | Windig | - | - | x | | 23 | rain and snow | Schneeregen | x | - | - | | 24 | | | | | | | 25 | | | | | | | 26 | rain and snow / sleet | Schneeregen | x | - | - | | 27 | | | | | | | 28 | light rain and snow | Leichter Schneeregen | x | - | - | | 29 | rain and snow | Schneeregen | x | - | - |