====== Eigene-programme ====== * Grundsätzlich können in fhem eigene Programme zur weiteren automatisierung angelegt werden * Die Dateinamen müssen folgende Syntax haben "99_.pm". Diese Dateinamen, beginnend mit "99_..." werden von fhem automatisch beim Start berücksichtigt * Wenn man andere Dateinamensyntax verwendet, muss man die Datei explizit in der fhem.cfg angeben. * Damit die Datei auch in der WebGUI unter "edit files" auftaucht, muss der Dateiname mit "...Utils.pm" enden. * Die Datei muss immer diese Grundstrucktur enthalten: ############################################## # $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $ # # Save this file as 99_myUtils.pm, and create your own functions in the new # file. They are then available in every Perl expression. package main; use strict; use warnings; use POSIX; sub myUtils_Initialize($$) { my ($hash) = @_; } # Enter you functions below _this_ line. 1; * Der Eigene Code befindet sich dann immer zwischen den Zeilen "...Initialize..." und "1;" ====== 99_myBackupUtils.pm ====== ######################################################################### ## Funktion......: FHEM Backup ## Besonderheiten: Anzeige der vorhandenen Backups im dummy ######################################################################### sub list_backup_files() { # Directory, followed by a '/' my $dir = "/var/opt/fhem_backup/"; # List only $max Files, to disable set $max to 0 my $max=4; my $mybackups; my %HASH; fhem("backup"); opendir DIR, $dir or die $!; while(my $file = readdir DIR){ next if($file eq "." || $file eq ".."); $HASH{(stat($dir.$file))[9]}=$file; } my $count = keys %HASH; $mybackups="List only last $max Files of $count" if($count>$max); foreach (sort keys %HASH) { next if ((($count-- -$max) >0)&&$max); $mybackups.= '
'.$HASH{$_}; } fhem("set SYS_Backup ".$mybackups); } #########################################################################