Eigene-programme
- Grundsätzlich können in fhem eigene Programme zur weiteren automatisierung angelegt werden
- Die Dateinamen müssen folgende Syntax haben „99_<NAME>.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.= '</br>'.$HASH{$_}; } fhem("set SYS_Backup ".$mybackups); } #########################################################################