Perl-Modul LoxBerry::System
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)
Variable | Verwendung |
---|---|
$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)
Variable | Verwendung |
---|---|
$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::epoch2lox
Diese Funktion liefert aus einem Unix Epoch Timestamp den Loxone Timestamp (oder wahlweise den Loxone Timestamp von der aktuellen Zeit).
LoxBerry::System::execute
This function executes a shell command, and returns exitcode and it's output. With named parameters, also logging is done into a LoxBerry::Log object.
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::lbcountry
Returns the current user country of LoxBerry (e.g. "at")
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::lox2epoch
Diese Funktion liefert aus einem Lonone Timestamp den Unix Epoch Timestamp.
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.
LoxBerry::System::write_file
Schreibt den Inhalt von $content in die Datei mit Dateinamen $filename. Gibt undef bei OK, oder den Fehler als String zurück.
Debugging
To debug the module, use that code in your program:
$LoxBerry::System::DEBUG = 1;
This will send debugging messages to STDERR.