Skip to end of metadata
Go to start of metadata

Einbindung

use LoxBerry::System;

Das Modul inkludiert automatisch die Module:

  • Config::Simple
  • URI::Escape

Befehle dieser Module können im Code direkt verwendet werden, ohne diese zusätzlich über use xxx einzubinden. Es tritt kein Fehler auf, wenn die Module trotzdem eingebunden werden. 

Globale Variablen

Für Plugin-Entwickler

Die Variablen haben (außer $lbhomedir, das überall gleich ist) alle das Präfix $lbp (für Plugin)

VariableVerwendung
$lbhomedir
Heimatverzeichnis von Loxberry, normalerweise /opt/loxberry
$lbpplugindir
Unterverzeichnis des gerade aktiven Plugins, z.B. squeezelite
$lbphtmlauthdir
Vollständiger Pfad zum HTMLAUTH-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/webfrontend/htmlauth/plugins/squeezelite
$lbcgidir
Legacy-Variable, nicht mehr verwenden. Zeigt auf $lbphtmlauthdir
$lbphtmldir
Vollständiger Pfad zum HTML-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/webfrontend/html/plugins/squeezelite
$lbptemplatedir
Vollständiger Pfad zum Template-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/templates/plugins/squeezelite
$lbpdatadir
Vollständiger Pfad zum Data-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/data/plugins/squeezelite
$lbplogdir
Vollständiger Pfad zum Log-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/log/plugins/squeezelite
$lbpconfigdir
Vollständiger Pfad zum Config-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/config/plugins/squeezelite
$lbpbindir
Vollständiger Pfad zum Bin-Verzeichnis des aktiven Plugins, z.B. /opt/loxberry/bin/plugins/squeezelite

Für LoxBerry System-Entwickler

Die Variablen haben (außer $lbhomedir, das überall gleich ist) alle das Präfix $lbs (für System statt wie bei den Plugins $lbp)

VariableVerwendung
$lbhomedir
Heimatverzeichnis von Loxberry, normalerweise /opt/loxberry
$lbshtmlauthdir
Vollständiger Pfad zum System-HTMLAUTH-Verzeichnis /opt/loxberry/webfrontend/htmlauth/system
$lbshtmldir
Vollständiger Pfad zum System-HTML-Verzeichnis /opt/loxberry/webfrontend/html/system
$lbstemplatedir
Vollständiger Pfad zum System-Template-Verzeichnis /opt/loxberry/templates/system
$lbsdatadir
Vollständiger Pfad zum System-Data-Verzeichnis /opt/loxberry/data/system
$lbslogdir
Vollständiger Pfad zum System-Log-Verzeichnis /opt/loxberry/data/system
$lbstmpfslogdir
Vollständiger Pfad zum System-tmpfs-Log-Verzeichnis /opt/loxberry/data/system_tmpfs
$lbsconfigdir
Vollständiger Pfad zum System-Config-Verzeichnis /opt/loxberry/config/system
$lbsbindir
Vollständiger Pfad zum System-Bin-Verzeichnis /opt/loxberry/bin
$lbssbindir

Vollständiger Pfad zum System-Bin-Verzeichnis /opt/loxberry/system/sbin

(Vorsicht bei der Schreibweise $lbssbindir vs. $lbsbindir)

Funktionen

LoxBerry::System::begins_with

Gibt 1 zurück, wenn der $searchstring am Beginn des $fullstrings steht.  Das ist praktisch, wenn in Konfigurationsdateien, die nicht mit Config::Simple geladen werden können, nach eindeutigen Schlüsselwörtern gesucht wird.

LoxBerry::System::bytes_humanreadable

Submit a size (e.g. a filesize) and it's input factor (B, KB, MB, GB, TB) to this function. It returns a human-readable string of your size value.

LoxBerry::System::check_securepin

Prüft den übergebenen Securepin gegen den gespeicherten, gehashten Securepin.

LoxBerry::System::currtime

Liefert einen vorformatierten Datum-/Zeit-String, zum Beispiel für Logfiles, zurück. Ohne Parameter wird human-readable, mit Parameter kann ein für Dateinamen optimierter Datumsstring, oder im ISO-Format, abgerufen werden.

LoxBerry::System::diskspaceinfo

Gibt Speicherplatzinformationen für einen einzelnen Pfad, oder für alle Mountpoints zurück.

LoxBerry::System::get_binaries

Die LoxBerry-Konfiguraton enthält die Binary-Pfade zu häufig verwendeten Binaries, um systemunabhängig zu bleiben. Nach Möglichkeit sollen bei der Verwendung diese Pfade statt hart kodierter Pfade verwendet werden.

LoxBerry::System::get_ftpport

Der FTP-Port des Miniservers ist nicht in der LoxBerry-Konfiguration (bzw. nicht bei get_miniservers() ) enthalten, sondern wird mit dieser Funktion abgefragt. Die Funktion unterstützt Loxone Cloud DNS.

LoxBerry::System::get_localip

Liefert die lokale IP-Adresse des LoxBerry als String zurück.

LoxBerry::System::get_miniserver_by_ip

Sucht in den konfigurierten Miniservern nach der übergebenen IP-Adresse und liefert die MS-Nummer zurück. Die Nummer kann im Hash von get_miniservers verwendet werden.

LoxBerry::System::get_miniserver_by_name

Sucht in den konfigurierten Miniservern nach dem übergebenen MS-Namen und liefert die MS-Nummer zurück. Die Nummer kann im Hash von get_miniservers verwendet werden.

LoxBerry::System::get_miniservers

Die Funktion get_miniservers liefert einen mehrdimensionalen Hash mit der gesamten Konfiguration aller Miniserver zurück. 

LoxBerry::System::get_plugins

Die Funktion get_plugins liest die Pluginliste des LoxBerry und liefert einen Array zurück, der auch direkt in HTML::Template verwendet werden kann. 

LoxBerry::System::is_disabled

Liefert nach Übergabe eines Strings (z.B. "disabled") zurück, ob dessen Inhalt wahr oder falsch ist. Dies kann beispielsweise beim Lesen eines Config-Files verwendet werden. Der Wert wird übergeben, und liefert True oder undef zurück. 

LoxBerry::System::is_enabled

Liefert nach Übergabe eines Strings (z.B. "enabled") zurück, ob dessen Inhalt wahr oder falsch ist. Dies kann beispielsweise beim Lesen eines Config-Files verwendet werden. Der Wert wird übergeben, und liefert 1 oder undef zurück. 

LoxBerry::System::lbfriendlyname

Liefert den vom Benutzer selbst definierbaren Namen dieses LoxBerrys als String zurück. Wenn du in deinem Plugin auf den LoxBerry verweist, kannst du auch direkt seinen Namen nennen.

LoxBerry::System::lbhostname

Liefert den Hostnamen als String zurück.

LoxBerry::System::lblanguage

Wertet eine als URL-Querystring übergebene lang-Variable aus. Ist diese nicht vorhanden, wird die in LoxBerry definierte Systemsprache zurückgegeben. 

LoxBerry::System::lbversion

Dies liefert die aktuelle LoxBerry-Version als String zurück.

LoxBerry::System::lbwebserverport

Liefert den Webserver-Port von LoxBerry zurück.

LoxBerry::System::lock

Erstellt ein Lock-File, das die PID des laufenden Prozesses enthält. Dieses Lock-File kann nur erstellt werden, wenn keine wichtigen Systemprozesse laufen. Es ist möglich, eine angegebene Zeit abzuwarten, sollte der Lock nicht freigegeben sein.

LoxBerry::System::plugindata

Diese Funktion liefert einen Hash mit allen Daten des aktuell aufrufenden Plugins aus der Plugindatenbank. Optional kann ein Pluginname oder ein Pluginfolder übergeben werden, um die Daten des angegebenen Plugins zu erhalten.

LoxBerry::System::pluginloglevel

Diese Funktion liefert den aktuell durch den Benutzer in der Plugin-Verwaltung eingestellten Loglevel.

LoxBerry::System::pluginversion

Diese Funktion liefert den Versionsstring des aufrufenden Plugins aus der Plugin-Datenbank.

LoxBerry::System::read_file

Liest den Inhalt der angegebenen Datei komplett aus und liefert ihn als String zurück.

LoxBerry::System::readlanguage

Liest die Sprache ins Template.

LoxBerry::System::reboot_required

Setzt den Status des LoxBerry, dass ein Reboot erforderlich ist. Dies kann beispielsweise an einer Änderung einer Plugin-Konfiguration getriggert werden, die einen Reboot erfordert.

LoxBerry::System::systemloglevel

Diese Funktion liefert den System-Loglevel von LoxBerry zurück. Diese Funktion ist vorrangig für LoxBerry-Core Entwickler.

LoxBerry::System::trim / ltrim / rtrim

Entspricht der aus anderen Sprachen bekannten Trim-Funktionen. ltrim entfernt alle linken, rtrim alle rechten, und trim beidseitig alle Leerzeichen.

LoxBerry::System::unlock

Entsperrt ein mit lock gesperrtes File.

LoxBerry::System::vers_tag

Fügt einem Versions-Tag den Buchstaben 'v' voran, sollte dieser fehlen. Dies wird für Versionen des Perl-Moduls version benötigt.

Debugging

To debug the module, use that code in your program:

$LoxBerry::System::DEBUG = 1;

This will send debugging messages to STDERR.

 
  • No labels