Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Hier sind die wichtigsten Änderungen für Benutzer und Plugin-Entwickler aufgeführt.

Benutzer

  • Setup-Assistent:
    • Der Setup-Assistent wurde auf die wichtigste Funktion, das Setzen der Sprache und aller Kennwörter, reduziert.
    • Die Zugangsdaten können auch als Datei heruntergeladen werden.
    • Die Ausführung des Setup-Assistenten ist freiwillig und kann abgebrochen werden. Es wird dringend empfohlen, den Assistenten durchzuführen und sichere Kennwörter zu setzen!
    • Alle weiteren Einstellungen können direkt in den Widgets vorgenommen werden.
  • User Interface:
    • Für eine bessere Übersicht werden Plugins und Systemeinstellungen nun auf zwei Seiten angezeigt, zwischen denen man hin- und herwechseln kann. In der Fußleiste findest du jetzt auch einen Button, um schnell zu den Einstellungen zu wechseln.
    • Das gesamte User-Interface wurde auf sogenanntes "Responsive Design" umgestellt - die Oberfläche passt sich an die Größe des Bildschirms an und kann jetzt besser mit Mobiltelefonen und Tablets verwendet werden. (Innerhalb von Plugins ist dies von der Gestaltung des Plugin-Entwicklers abhängig.)
    • Während die Hilfe eingeblendet ist, kann die Webseite weiter bedient werden.
    • Jedem LoxBerry kann ein eigener Name gegeben werden, der frei definierbar ist. Dieser Name wird immer in der Titelzeile angezeigt. So kann man schnell mehrere LoxBerry's unterscheiden. Diesen Namen kannst du in "Mein LoxBerry" anpassen.
    • LoxBerry verwendet nun Benachrichtigungen im User Interface. 
    • Die Formular-Validierung wurde neu entwickelt und die Fehlermeldungen bei falschen Angaben überarbeitet. 
    • Formulare wurden überarbeitet, um nur die relevanten Formularfelder anzuzeigen.
  • Automatische Updates:
    • LoxBerry führt nun standardmäßig alle 7 Tage automatische Security-Updates für Debian/Raspbian durch und rebootet ggf. auch automatisch. Dies kann im System-Menü "Updates" umgestellt werden.
    • LoxBerry Update führt nun automatische Updates von LoxBerry durch. Diese Update-Verwaltung ist voll ins System integriert und erlaubt sehr rasche Hotfixes und Erweiterungen von LoxBerry ohne manuelle Eingriffe. LoxBerry Update findest du ebenfalls unter Update. Dort kann man die Updatefunktion konfigurieren (Zeitplan, Releases oder Pre-Releases) und manuell starten 
    • Plugin Updates: Wenn Plugins dies unterstützen, kannst du Plugins automatisch aktualisieren lassen. Die Konfiguration findest du in der Plugin-Verwaltung. Das jeweilige Plugin muss diese neue LoxBerry-Funktion unterstützen.
  • Miniserver:
    • Das bzw. die Miniserver-Logs können direkt unter Miniserver aufgerufen werden.
    • Umlaute und Sonderzeichen im Miniserver-Benutzername und -Kennwort werden unterstützt (entsprechend der Loxone Begrenzungen. Eventuell bestehen Abhängigkeiten in den Plugins)
    • Die Prüfung der Miniserver-Authentifizierung kann direkt bei der Konfiguration durchgeführt werden, ohne jedesmal speichern zu müssen.
  • Plugin-Übersicht im LoxWiki: 
    • Die Plugin-Übersicht im LoxWiki wird die primäre Datenbank für LoxBerry-Plugins. Dort bitte den Download-Links folgen.
    • Das Plugin-Archiv auf loxberry.de wird mittelfristig eingestellt.  
    • Eine eigene Spalte bei den Plugins im Wiki zeigt die Kompatibilität jedes Plugins für Version 0.2.3 und Version 1.0. Speziell in der Umstiegsphase ist das eine Hilfe, ob die Wunschplugins auf der neuen Plattform funktionieren.
  • Verwendungszähler:
    • Der LoxBerry hat jetzt einen Verwendungszähler. Wir können damit zählen, wie viele unterschiedliche aktive LoxBerrys laufen. 
    • Die Erfassung ist vollständig anonym und nicht rückverfolgbar.
    • Erfasst wird die LoxBerry-Version und die Plattform (ARM, x86, x64)
    • Wir werden diese Zahlen als Grafik auf loxberry.de veröffentlichen.
    • Wenn du dies nicht möchtest, kannst du das in Mein LoxBerry abschalten.
  • Eigene Inhalte betreiben:
    • Um eigene Webseiten und Scripte zu betreiben, ist nun eine eigene, vom Webbrowser erreichbare Verzeichnisstruktur möglich. Siehe Eigene Webseiten und Scripte am LoxBerry betreiben
    • Sonst dürfen außer dem LoxBerry-Core System und den Plugins innerhalb des /opt/loxberry-Ordner keine Dateien oder Installationen abgelegt werden. Diese werden bei einem Update gelöscht!
    • Eigene Installationen deswegen in einem Ordner außerhalb von /opt/loxberry ablegen.
  • Weitere Neuerungen und Änderungen:
    • Am Raspberry 3 ist standardmäßig Bluetooth unterstützt.
    • Der HiFiBerry wird standardmäßig unterstützt.
    • Logfiles werden jetzt generell in der RAM-Disk gehalten zur Reduktion der Schreibzugriffe. Das Systemlog bleibt zur Fehlersuche bei Boot-Problemen weiterhin als Datei auf der SD-Karte.
    • Der Fehler, dass der LoxBerry (genauer gesagt Raspbian) trotz fixer IP-Adresse trotzdem per DHCP eine zweite IP-Adresse anfordert, tritt nicht mehr auf.
    • Der Hostname von loxberry kann geändert werden. Die Einstellung findest du unter „Netzwerk“.
    • Nicht nur Entwickler, sondern auch Benutzer können jetzt selbst neue Übersetzungen für LoxBerry und Plugins erstellen. Dies erfolgt direkt im Webinterface im Translate Widget. (Plugins in Perl oder PHP müssen dafür das LoxBerry-Templatesystem nutzen).

Plugin-Entwickler

  • Systembasis ist jetzt Raspbian Stretch. 
  • Im Widget "LoxBerry Dienste" kann man das Apache Errorlog "live" auch direkt über das Webinterface öffnen.
  • LoxBerry verwendet jetzt PHP 7
    • Manche Funktionen von PHP5 könnten in PHP7 nicht mehr funktionieren. Bitte den Migrations-Guide für PHP lesen: http://php.net/manual/de/migration70.php
    • Die Plugins dürfen per apt keine Libs nachinstallieren, die explizit PHP5 verlangen (z.B. statt php5-sqlite muss php-sqlite3 installiert werden). Wird das nicht geändert, wird LoxBerry PHP5 installieren, es wird aber trotzdem nicht funktionieren.
    • php-curl ist standardmäßig installiert (war's auch früher schon).
  • Die LoxBerry-Verzeichnisse stehen als Environment-Variablen bereit und sollen in Shell-Scripts verwendet werden.
  • Perl: 
    • Das System-Modul LoxBerry::System stellt globale Variablen für das Plugin bereit und kann direkt mit use LoxBerry::System eingebunden werden.
    • Das System-Modul LoxBerry::Web unterstützt bei der Darstellung der Templates und bei der Mehrsprachigkeit
    • Das System-Modul LoxBerry::Log unterstützt als integrierte Systemkomponente beim Erstellen von Logfiles.
    • Die genannten Module sollen verwendet werden. Die Module bieten eine Menge praktische Funktionen und sind update-sicher.
    • Unter anderem kann, integriert ins Template-System, auf einfachste Weise eine Navigation Bar dargestellt werden (z.B. um zwischen Haupt- und Einstellungsseite zu wechseln), siehe Navigation Bar (Perl).
  • PHP: 
    • Das PHP Module loxberry_system.php stellt die gleichen Systemfunktionen bereit wie das Perl-Modul LoxBerry::System und sollte eingesetzt werden.
    • Das PHP Module loxberry_web.php stellt die gleichen Systemfunktionen wie das Perl-Modul bereit, unter anderem das native Einbinden von Template-Header, -Footer, Hilfe, Multi-Language Support.
    • Wie bei Perl ist die Einbindung der Navigation Bar direkt integriert.
  • Alle Sprachen: Auch im daemon sind alle Umgebungsvariablen verfügbar, sowie ist das Einbinden der Perl- bzw. PHP-Module möglich.
  • Im Plugin können zur Laufzeit eigene Cronjobs erstellt werden. Es wird ein eigenes crontab-File bereitgestellt, worauf das Plugin Schreibrechte hat.
  • Da das komplette log-Verzeichnis nun in der RAM-Disk liegt, sind die Logverzeichnisse nach einem Reboot leer. Das Plugin muss damit umgehen können, dass es bei Nicht-Vorhandensein seines Logfiles dieses selbst erstellt.
  • MySQL ist nicht mehr im Standard-Image enthalten (Schonung SD-Karte).
  • cpanminus ist standardmäßig mitinstalliert. Mit cpanminus können Perl-Module, die nicht als Debian-Pakete vorliegen, nachinstalliert werden. Der bevorzugte Weg sollte bleiben, Perl-Module als Debian-Paket in apt nachzuinstallieren.
  • Der User loxberry ist standardmäßig in der audio-Gruppe, womit er vollen Zugriff auf die Audio-Devices hat.
  • Der User loxberry ist standardmäßig in der gpio-Gruppe, womit er vollen Zugriff auf die GPIO's hat.
  • Da der Hostname geändert werden kann, sollen Plugins, wenn erforderlich, den Hostnamen auslesen (siehe Perl/PHP-Modul), bzw. im Plugin darauf hinweisen, dass z.B. generierte URL‘s vom Benutzer anzupassen sind.
  • Anmeldedaten der Miniserver werden in der general.cfg jetzt URL-encoded gespeichert, um Umlautprobleme bei der Anmeldung zu vermeiden. In Perl liefert LoxBerry::System::get_miniservers() bzw. PHP LBSystem::get_miniservers() eigene Variablen für die Credentials im Normalformat und RAW zurück.
    • Migrationspfad für Plugins:
    • Bei Benutzern ohne Sonderzeichen funktionieren die Zugriffe mit allen Protokollen wie bisher.
    • Bei Benutzern mit Sonderzeichen funktioniert der Webzugriff ebenfalls wie bisher, da die Authentisierung am Miniserver mit URL-encoded Zeichen umgehen kann.
    • Plugins die FTP-Zugriff durchführen, müssen die Credentials jetzt URL-decoden, wenn Sonderzeichen unterstützt sein sollen.
    • Bei Perl bzw. PHP sollte auf LoxBerry::System/LBSystem und get_miniservers() umgestellt werden.
  • Im Plugin und während der Installation kann nun einfach überprüft werden, auf welcher Hardware-Plattform das Plugin ausgeführt bzw. installiert werden soll. zudem kann die Raspberry-Revision ausgelesen werden.
  • LoxBerry Update:
    • Die LoxBerry Update Funktion ermöglicht, dass das LoxBerry-Core Team rasch Fehler im Hauptsystem ausbessern kann, und auch Systemeinstellungen nachziehen, wenn das erforderlich ist. LoxBerry Update schließt dabei automatisch sämtliche Plugin-Verzeichnisse, sowie die benutzerspezifische LoxBerry-Konfiguration (z.B. die general.cfg) aus. 
    • Nach jedem LoxBerry Update werden die Standardberechtigungen der System-Dateien am gesamten LoxBerry (auch außerhalb von /opt/loxberry) zurückgesetzt. 
    • Wenn ein Plugin an Permissions etwas ändert (chown oder chmod), am besten die Datei /opt/loxberry/resetpermissions.sh ansehen, was wir hier machen. 
    • Bitte erstelle ein Issue, warum du Rechte ändern musst und wie du das machst - Wir helfen dir weiter, das zu umgehen. 
  • Automatische Sicherheits-Updates von Raspbian:
    • Wir halten das für einen wichtigen Punkt, dass Sicherheitsupdates von Debian/Raspbian installiert werden. Um Kompatibilitätsprobleme zu vermeiden, werden nur Sicherheitsupdates, keine Komplettupdates durchgeführt. Wir haben leider nicht in der Hand, welche Sicherheitsupdates installiert werden, und wie sich diese auswirken. Wir glauben nicht, dass das Auswirkungen auf Plugins hat - sollte es dazu kommen, bitte gib uns Bescheid, damit wir das evt. im Rahmen eine LoxBerry Updates schnell korrigieren können.
  • Plugin Updates:
    • Plugin-Entwickler haben die Möglichkeit, ihr Plugins automatisch aktualisieren zu lassen. Es ist dabei möglich, Releases und Pre-Releases auszuliefern. Anleitung dazu folgt.
  • In der Titelzeile wird immer der Name des LoxBerry angezeigt. Das passiert automatisch - als Plugin-Entwickler muss man sich darum nicht kümmern.
  • Es sind nun - zumindest vorübergehend - die Page Transitions von jQuery Mobile deaktiviert. Diese Page Transitions ermöglichten einen flüssigen Übergang ohne sichtbares Nachladen. Durch das von jQuery Mobile verwendete Verfahren des AJAX-Seiten-Reloads ist spezielle Eventsyntax beim Laden der Seite bei JavaScript-Code erforderlich, der weder von Core- noch Plugin-Entwicklern eingesetzt wurde. Die Folge war nicht funktioniernde JavaScript Events (z.B. Buttons funktionieren nicht bzw. nur beim Seiten-Refresh usw.)
  • Durch das Responsive Template wird das Layout auf Mobilgeräten größer. In Plugins mit statischem Tabellenlayout muss auf Mobilgeräten deswegen möglicherweise gescrollt werden. Nach Möglichkeit wird zukünftig auf altes Layouting mit Tabellen verzichtet und wie heute üblich mit CSS und DIV-Blöcken gelayoutet.
  • Plugin-Interface V2
    • Das Plugin kann ein eigenes sudoers File mitliefern, in dem der Entwickler Programme hinterlegen kann, die direkt mit "sudo" als root ausgeführt werden können.
    • Das Plugin kann festlegen, auf welcher Architektur das Plugin lauffähig ist, und andere Architekturen verhindern.
    • Zudem kann das Plugin im Installscript die Architektur abfragen, um beispielsweise für unterschiedliche Architekturen unterschiedliche Binaries zu installieren.
    • Im Plugin kann definiert werden, ob es Auto-Update anbietet. Die Einstellungen des Updates (Zeitplan, Auto-Update/Notify/Aus und ob Release oder Prerelease) wird vom Benutzer selbst ausgewählt.
    • Das Plugin kann LoxBerry direkt informieren, dass ein Reboot notwendig ist. LoxBerry zeigt dies bis zum Reboot präsent im Userinterface an.
  • Ein installiertes Plugin kann den Benutzer über das Userinterface auf einen nötigen Reboot hinweisen (z.B. wenn eine Änderung einer Einstellung einen Reboot erfordert):
    • Dazu an das (evt. noch nicht vorhandene) File $lbslogdir/reboot.required einen Text anhängen
    • In das File appenden: Einen Text (inklusive Plugin-Name), der beschreibt, warum rebootet werden muss.
    • Der nötige Reboot wird in der Fußzeile angezeigt.
    • In der Power-Übersicht werden die Texte angezeigt, die im reboot.required File stehen.
  • Plugin-Installation (unabhängig von der Version der Plugin-Schnittstelle):
    • Fehler und Warnungen bei der Installation werden dem Benutzer jetzt am Ende des Logs gesammelt zusammengefasst, um einen schnellen Überblick über Probleme zu liefern.
    • Während der Installation wird eine Suche nach dem statischen Pfad (Text) /opt/loxberry durchgeführt. Fundstellen werden dem Benutzer als Warnung ausgegeben. Plugin-Entwickler sollten keine statische Pfadangabe verwenden, sondern die verfügbaren Environmentvariablen. Die Suche kann keine Kommentare oder dergleichen erkennen, deswegen könnten die Warnungen irreführend/fehlerhaft sein.
    • Die Plugin-Installation ersetzt jetzt automatisch Konstanten in allen Textdateien des Plugins durch die entsprechenden Pfade, u.a. REPLACELBHOMEDIRREPLACELBPPLUGINDIR, usw. Damit ist es möglich, die richtigen Pfade direkt während der Installation einsetzen zu lassen. Siehe Plugin für den Loxberry entwickeln (Version 1.x)
    • Wird ein sudoers-File mit entsprechenden Einträgen mitgeliefert, kann nun bereits im postinstall mit "sudo <scriptname>" 
    • Bisher galt als Leitlinie, dass das Plugin als Icon die Button-Optik verwendet. Diese Button-Optik ist keine Empfehlung mehr. Das Icon kann inkl. Transparenz frei gestaltet und (wie bisher) als PNG in den vorgegebenen Auflösungen bereitgestellt werden. 
  • Änderung der Verzeichnisstruktur: Das Verzeichnis webfrontend/cgi heißt nun webfrontend/htmlauth. 
    • htmlauth ist mit LoxBerry-Authentifizierung, html ohne Authentifizierung.
    • In beiden Verzeichnissen können jetzt .cgi (Perl), .php und .html Dateien verwendet werden.
    • htmlauth ist über die URL http://loxberry/auth/plugins/<PLUGINNAME> erreichbar, html über die URL http://loxberry/plugins/<PLUGINNAME> (innerhalb eines Plugin niemals voll qualifizierte URI's mit http://loxberry/... verwenden, da der Hostname und Port geändert werden kann. Immer ohne Hostangabe verwenden z.B. /auth/plugins/<PLUGINNAME>) 
    • Verwendet man innerhalb von Plugins den Hostnamen localhost in der URI, erfolgt auch bei htmlauth keine Authentifizierung. Da dann aber zwangsweise eine voll qualifizierte URI verwendet werden muss, unbedingt den Apache-Port aus der Konfiguration ermitteln (PHP und Perl: $port = lbwebserverport();) und der URI entsprechend anhängen!
    • Jedes Plugin muss in htmlauth mindestens ein index.cgi, index.php oder index.html bereitstellen, worauf die Pluginübersicht verlinkt (bisher: nur index.cgi möglich)
    • Migratonspfad für Plugins:
    • Bei Plugins der Pluginschnittstelle V1 (LoxBerry 0.2.3) werden die Dateien bei der Installation automatisch in htmlauth abgelegt.
    • Das ursprüngliche cgi-Verzeichnis wird als Link ins htmlauth-Verzeichnis erzeugt, womit alte Pfadangaben weiterhin funktionieren 
    • Der HTTP-Pfad bleibt unverändert.
    • → Plugins mit Pluginschnittstelle V1 funktionieren ohne Änderung weiter
    • Neue Plugins der Pluginschnittstelle V2 (LoxBerry 1.x) sollen grundsätzlich die bereitgestellten Environmentvariablen und/oder die globalen Variablen der Perl- bzw. PHP-Module verwenden.
  • jQuery wurde von Version 1.8.2 auf Version 1.12.4 gehoben.
  • Sample-Plugins:
    • Es gibt zwei unabhängige, installierbare und lauffähige Sample-Plugins, einmal für Perl, einmal für PHP (PHP noch nicht verfügbar)
  • Plugin-Archiv auf loxberry.de
    • Wir kündigen das Auslaufen des Plugin-Archivs auf www.loxberry.de an. 
    • Das Archiv wird noch verfügbar sein und wir werden die Plugin-Entwickler rechtzeitig über die endgültige Schließung der Download-Funktion aufmerksam machen.
    • Die primäre Plugin-Dokumentationsseite wird die Plugin-Übersicht hier im Wiki unter Plugins
    • Wir empfehlen, auf loxberry.de hinterlegte Dokumentation in den Plugin-Artikel im Wiki zu übernehmen, und sollte noch kein Wiki-Artikel existieren, einen anzulegen.
    • Für die Download-Funktion empfehlen wir die Einrichtung eines GitHub-Kontos und die dortige Verwendung von Releases. Das Plugin-AutoUpdate ist dafür entworfen.
    • Alternativ werden wir am Download-Server für jeden Plugin-Entwickler einen eigenen Speicherbereich zur Verfügung stellen, der ebenfalls für das Plugin-AutoUpdate verwendet werden kann.
    • Der Link auf der Plugin-Seite des LoxBerry's führt nun ins Wiki zu den Plugins.
  • Plugin-Liste im Wiki: Eine neue Spalte "Kompatibilität" für LB 0.2.3 und LB 1.x wird - speziell für die Übergangsphase - eingeführt. 
    • Wir werden zu Beginn alle Plugins auf den Status LB 1.0 setzen, wenn das Plugin vom Entwickler auf der neuen Plattform noch nicht getestet wurde.
    • Wurde vom Entwickler das Plugin erfolgreich getestet, kann dieser selbst den Status auf LB 1.0 setzen.
    • Ist das Plugin nicht kompatibel, dann natürlich LB 1.X.
    • Wenn es Schwierigkeiten mit der neuen Plattform gibt, dann bitte in der Plugin-Beschreibung gesondert darauf eingehen, und LB 1.0 setzen.
    • Plugins, die neu unter LoxBerry 1.x entwickelt werden, sollten die selben Labels für LB 0.2.3 verwenden. Wird die Pluginschnittstelle V2.0 verwendet, und/oder die Module LoxBerry::System und LoxBerry::Web, ist das Plugin grundsätzlich nicht kompatiblel LB 0.2.3.

Image-Erstellung

  • Systembasis ist jetzt Raspbian Stretch. Äquivalent dazu ist Debian 9.
  • Die Image-Erstellung wurde stark vereinfacht. Sehr viele Tasks sind jetzt gescriptet. Siehe Eigenes Image erstellen (LoxBerry V1.x)
  • Es ist wichtig, dass die Architektur richtig gesetzt wird. Die Plugin-Ersteller haben jetzt die Möglichkeit, entsprechend der Architektur beispielsweise unterschiedliche Binaries (z.B. für ARM oder x64) zu installieren. Deswegen ist es wichtig, dass keine falschen Angaben im Image gemacht werden.


  • Keine Stichwörter