Metainformationen zur Seite
LoxBerry XL - EXtended Logic
LoxBerry XL ist eine Funktionsbibliothek speziell für Anwender von LoxBerry - also nicht für die Plugin-Entwickler, sondern für die mehr als 4000 Benutzer von LoxBerry.
Zielgruppe sind Benutzer, denen das Zusammenbasteln von Logiken in der Loxone Config zu mühevoll, und das Programmieren mit PicoC zu gefährlich ist, sich aber trotzdem - für die eigene Installation - ein paar Funktionen zusammenstellen wollen. Initiale Intention war das Zusammenstoppeln von Daten für die Sprachausgabe, was direkt in Loxone ein Spagat ist.
LoxBerry XL ist Scripting in PHP. Der notwendige Skill für LoxBerry XL ist ein wenig PHP-Erfahrung (um zum Beispiel eine Schleife oder if
-Bedingungen programmieren zu können) - oder das Ergoogeln dieser Skills
LoxBerry XL stellt ein Interface bereit, mit dem ganz einfach lesend und schreibend auf den Miniserver, und MQTT zugegriffen werden kann. Außerdem stellt es Konstanten zur Verfügung, die man im SmartHome-Umfeld und bei der Sprachausgabe immer braucht.
Der Frage- und Informations-Thread im LoxForum: https://www.loxforum.com/forum/projektforen/loxberry/allgemeines-aa/269036-loxberry-xl-extended-logic
Aber am besten zeigen wir hier mal ein Beispiel:
<?php require_once "loxberry_XL.php"; // XL stellt Variablen für Uhrzeit und Datum bereit if( $xl->hour < 11 ) { $text = "Guten Morgen!"; } elseif ( $xl->hour < 17 ) { $text = "Schönen Nachmittag!"; } else { $text = "Guten Abend!"; } // XL kann direkt von deinen Miniserver-Inputs lesen $text .= "Draußen hat es " . $ms1->Außentemperatursensor . " Grad. "; // XL unterstützt alle Miniserver, die du in LoxBerry konfiguriert hast (z.B. im Gateway-Konzentrator-Betrieb, mehrere Wohnungen, oder auch via Loxone CloudDNS) // Hier ein Datenabruf vom Miniserver 2 if ( $ms2->Alarmanlage_status == "1" ) { $text .= "Die Alarmanlage ist SCHARF!"; } else { $text .= "Die Alarmanlage ist deaktiviert."; } // LoxBerry XL kann dann auch den Text zum Beispiel in einen virtuellen Texteingang schreiben $ms1->Haustür_TTS = $text; // ... oder das Licht einschalten :-) $ms1->Licht_Wohnzimmer("pulse"); // LoxBerry XL unterstützt standardmäßig MQTT über das MQTT Gateway plugin if( $mqtt->get("shellies/shellyplug-s-267E3C/relay/0" == "on") ) { // Licht brennt! Ausschalten! $mqtt->set("shellies/shellyplug-s-267E3C/relay/0/turn", "off"); }
Scripte am LoxBerry speichern
Die Scripte können direkt mit dem Windows Explorer auf einem eigenen Ordner abgelegt werden:
Verbinde dich mit dem Windows Explorer zur Freigabe \\loxberry\XL
Speichere deine Scripte im Ordner user
(Achtung: Scripte, die nicht in user liegen, werden von LoxBerry Update überschrieben bzw. gelöscht.)
Aufruf der Scripte
Gedacht ist es so, dass man die Scripte per Virtuellem HTTP Ausgang aus Loxone aufruft.
Virtueller Ausgang: http://<loxberryuser>:<loxberrypasswort>@loxberry
Virtueller Ausgangsbefehl: /XL/user/<meinscript>.php
Obwohl wir dafür noch keine spezielle XL-Implementierung haben, kann man die Scripte natürlich mit den herkömmlichen Linux Cronjobs auch periodisch starten, oder gar einfach laufen lassen.
Rückgabe an den Miniserver
Da XL direkt in virtuelle Eingänge bzw. Texteingänge schreiben kann, beschreibe mit XL einfach den gewünschten Funktionsbaustein oder virtuellen (Text-)Eingang, und sende deine Nachricht per MQTT. Der HTTP-Response selbst ist dann eigentlich nebensächlich. Aber das kann jeder machen wie er möchte
Kompatibilität
Alle LoxBerry XL Funktionen bleiben - wie auch die LoxBerry Libraries für Plugin-Entwickler - immer kompatibel, auch wenn du deinen LoxBerry aktualisierst. Es können natürlich neue Features dazukommen - deine Aufrufe funktionieren dennoch weiterhin.
Da LoxBerry XL auf die LoxBerry-Bibliotheken für die LoxBerry Plugin-Entwickler basiert, ist LoxBerry XL immer auf dem neuesten Stand. Beispielsweise unterstützt LoxBerry XL automatisch den Miniserver V2 mit https, IPv6 und Loxone Cloud DNS.
Übersicht, wie du auf die Scripte zugreifen kannst
Von wo | Wohin |
---|---|
Windows Freigabe (Windows Explorer, Notepad++) | \\loxberry\XL\examples \\loxberry\XL\user |
SSH (Putty), oder LoxBerry Dateimanager | /opt/loxberry/webfrontend/html/XL/examples /opt/loxberry/webfrontend/html/XL/user |
Webbrowser bzw. Loxone Virtueller Ausgang (zum Aufrufen der Scripts) | http://loxberry/XL/examples/<name>.php http://loxberry/XL/user/<name>.php |