diff --git a/fhem/FHEM/95_Dashboard.pm b/fhem/FHEM/95_Dashboard.pm
new file mode 100644
index 000000000..d5bfacc2e
--- /dev/null
+++ b/fhem/FHEM/95_Dashboard.pm
@@ -0,0 +1,464 @@
+########################################################################################
+#
+# 95_Dashboard.pm
+#
+########################################################################################
+# Released : 20.12.2013 @svenson08
+# Version : 1.15
+# Revisions:
+# 0001: Released to testers
+# 0002: Don't show link on Groups with WebLinks. Hide GroupToogle Button (new Attribut dashboard_showtooglebuttons).
+# Set the Columnheight (new Attribur dashboard_colheight).
+# 0003: Dashboard Entry over the Room-List, set the Room "Dashboard" to hiddenroom. Build weblink independently.
+# Dashboard Row on Top and Bottom (no separately columns). Detail Button
+# to jump into define Detailview. Don't show link on Groups with SVG and readingsGroup.
+# 0004: Sort the Groupentrys (@gemx). Hide Room Dashboard.
+# 0005: Fix dashboard_row center
+# 0006: Released Version 1.10. Rename Module from 95_FWViews to 95_Dashboard. Rename view_* Attributes to
+# dashboard_*. Rename fhemweb_FWViews.js to dashboard.js. Cleanup CSS. Reduce single png-Images to one File only.
+# Fix duplicated run of JS Script. Dashboard STAT show "Missing File" Information if installation is wrong.
+# 0007: use jquery.min and jquery-ui.min. add dashboard_debug attribute. Check dashboard_sorting value plausibility.
+# Change default Values. First Release to FHEM SVN.
+#
+# Known Bugs/Todos:
+# 95_Dashboard.pm : Message *_weblink already defined, delete it first on rereadcfg
+# Dashboard.js : No Change to iconplus on restoreOrder
+# Add German commandref =begin html_DE / =end html_DE
+# Add/Write FHEM Wiki-Doku
+########################################################################################
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+########################################################################################
+# Helpfull Links:
+# http://jquery.10927.n7.nabble.com/saving-portlet-state-td125831.html
+# http://jsfiddle.net/w7ZvQ/
+# http://jsfiddle.net/adamboduch/e6zdX/1/
+# http://www.innovativephp.com/jquery-resizable-practical-examples-and-demos/
+# http://jsfiddle.net/raulfernandez/mAuxn/
+
+package main;
+
+use strict;
+use warnings;
+
+use vars qw($FW_dir); # base directory for web server
+use vars qw($FW_icondir); # icon base directory
+use vars qw($FW_room); # currently selected room
+use vars qw(%defs); # FHEM device/button definitions
+use vars qw($FW_wname); # Web instance
+use vars qw(%FW_hiddenroom);# hash of hidden rooms, used by weblink
+use vars qw(%FW_types); # device types,
+
+# --------------------------- Globale Variabeln ----------------------------------------------
+my %group;
+my $fwjquery = "jquery.min.js";
+my $fwjqueryui = "jquery-ui.min.js";
+# -------------------------------------------------------------------------------------------
+
+sub Dashboard_Initialize ($) {
+ my ($hash) = @_;
+
+ $hash->{DefFn} = "Dashboard_define";
+ $hash->{UndefFn} = "Dashboard_Undef";
+ $hash->{FW_detailFn} = "Dashboard_detailFn";
+ $hash->{AttrList} = "disable:0,1 ".
+ "dashboard_sorting ".
+ "dashboard_colwidth ".
+ "dashboard_colheight ".
+ "dashboard_rowtopheight ".
+ "dashboard_rowbottomheight ".
+ "dashboard_groups ".
+ "dashboard_lockstate:unlock,lock ".
+ "dashboard_colcount:1,2,3,4,5 ".
+ "dashboard_showbuttonbar:0,1 ".
+ "dashboard_showhelper:0,1 ".
+ "dashboard_showtooglebuttons:0,1 ".
+ "dashboard_row:top,center,bottom,top-center,center-bottom,top-center-bottom ".
+ "dashboard_debug:0,1 ".
+ $readingFnAttributes;
+
+ $data{FWEXT}{Dashboard}{LINK} = "?room=Dashboard";
+ $data{FWEXT}{Dashboard}{NAME} = "Dashboard";
+
+ return undef;
+}
+
+sub DashboardAsHtml($)
+{
+ my ($d) = @_;
+
+ my $ret = "";
+ my $debugfield = "hidden";
+
+ my $h = $defs{$d};
+ my $name = $defs{$d}{NAME};
+ my $id = $defs{$d}{NR};
+ my $disable = AttrVal($defs{$d}{NAME}, "disable", 0);
+ my $sorting = AttrVal($defs{$d}{NAME}, "dashboard_sorting", ",");
+ my $colcount = AttrVal($defs{$d}{NAME}, "dashboard_colcount", 1);
+ my $colwidth = AttrVal($defs{$d}{NAME}, "dashboard_colwidth", 320);
+ my $colheight = AttrVal($defs{$d}{NAME}, "dashboard_colheight", 400);
+ my $rowtopheight = AttrVal($defs{$d}{NAME}, "dashboard_rowtopheight", 250);
+ my $rowbottomheight = AttrVal($defs{$d}{NAME}, "dashboard_rowbottomheight", 250);
+ my $showhelper = AttrVal($defs{$d}{NAME}, "dashboard_showhelper", 1);
+ my $lockstate = AttrVal($defs{$d}{NAME}, "dashboard_lockstate", "unlock");
+ my $showbuttonbar = AttrVal($defs{$d}{NAME}, "dashboard_showbuttonbar", 1);
+ my $showtooglebuttons = AttrVal($defs{$d}{NAME}, "dashboard_showtooglebuttons", 1);
+ my $row = AttrVal($defs{$d}{NAME}, "dashboard_row", "center");
+ my $debug = AttrVal($defs{$d}{NAME}, "dashboard_debug", "0");
+ my $dashboardgroups = AttrVal($defs{$d}{NAME}, "dashboard_groups", "");
+
+ if ($sorting !~ /,:[0-9]/ && $sorting ne ",") {Log3 $d, 3, "[".$name. "] Value of attribut dashboard_sorting is wrong. Saved sorting can not be set. Fix Value or delete the Attribute.";}
+ if ($disable == 1) { $defs{$d}{STATE} = "disabled"; }
+ return $ret if (($dashboardgroups eq "") || ($disable == 1));
+ if ($debug == 1) { $debugfield = "edit" };
+ if (not ($colwidth =~ /^\d+$/)) { $colwidth = 320 };
+ if (not ($colheight =~ /^\d+$/)) { $colheight = 400 };
+ if (not ($rowtopheight =~ /^\d+$/)) { $rowtopheight = 50 };
+ if (not ($rowbottomheight =~ /^\d+$/)) { $rowbottomheight = 50 };
+ %group = BuildGroupList($dashboardgroups);
+
+ $ret .= "
+ Creates a Dashboard in any group can be arranged. The positioning may depend the Groups and column width are made
+ arbitrarily by drag'n drop. Also, the width and height of a Group can be increased beyond the minimum size.
+
+
+
+ Define
+
dashboard_sorting
+ Contains the position of each group. Value is written by the "Set" button. It is not recommended to take manual changes.
+
+
+
dashboard_row
+ To select which rows are displayed. top only; center only; bottom only; top and center; center and bottom; top,center and bottom.
+
+
+
dashboard_colwidth
+ Width of each column in which the groups may be positioned.
+
+
+
dashboard_colheight
+ Height of each column in which the groups may be positioned.
+
+
+
vdashboard_rowtopheight
+ Height of the top row in which the groups may be positioned.
+
+
+
"dashboard_rowbottomheight
+ Height of the bottom row in which the groups may be positioned.
+
+
+
dashboard_groups
+ Comma-separated list of the names of the groups to be displayed.
+
+
+
dashboard_lockstate
+ When set to "unlock" you can edit the Dashboard. When set to "lock" no change can be made.
+ If the bar is hidden dashboard_lockstate is "lock". Editing is possible only with activated switch panel.
+
+
+
dashboard_colcount
+ Number of columns in which the groups can be displayed. Nevertheless, it is possible to have multiple groups
+ to be positioned in a column next to each other. This is dependent on the width of columns and groups.
+
+
+
dashboard_showbuttonbar
+ Displayed above the Dashboard a buttonbar panel. If the bar is hidden dashboard_lockstate the "lock" is used.
+
+
+
dashboard_showhelper
+ Displays frames in order to facilitate the positioning of the groups.
+
+
+
dashboard_showtooglebuttons
+ Displays a Toogle Button on each Group do collapse.
+