diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm
index 563e86967..89c29d832 100755
--- a/fhem/FHEM/01_FHEMWEB.pm
+++ b/fhem/FHEM/01_FHEMWEB.pm
@@ -138,6 +138,7 @@ FHEMWEB_Initialize($)
refresh
reverseLogs:0,1
roomIcons
+ sortRooms
smallscreen:unused
stylesheetPrefix
touchpad:unused
@@ -923,6 +924,18 @@ FW_makeTableFromArray($$@) {
}
}
+sub
+FW_roomIdx(\@$)
+{
+ my ($arr,$v) = @_;
+ my ($index) = grep { $arr->[$_] =~ /^$v$/ } 0..$#$arr;
+
+ return "9999-$v" if( !defined($index) );
+
+ return $index;
+}
+
+
##############
# Header, Zoom-Icons & list of rooms at the left.
sub
@@ -982,9 +995,13 @@ FW_roomOverview($)
}
$FW_room = "" if(!$FW_room);
+ my @sortBy = split( " ", AttrVal( $FW_wname, "sortRooms", "" ) );
+ @sortBy = sort keys %FW_rooms if( scalar @sortBy == 0 );
+
##########################
# Rooms and other links
- foreach my $r (sort keys %FW_rooms) {
+ foreach my $r ( sort { FW_roomIdx(@sortBy,$a) cmp
+ FW_roomIdx(@sortBy,$b) } keys %FW_rooms ) {
next if($r eq "hidden" || $FW_hiddenroom{$r});
$FW_room = $r if(!$FW_room && $FW_ss);
$r =~ s/</g;
@@ -2648,6 +2665,14 @@ FW_ActivateInform()
+
+