diff --git a/.gitattributes b/.gitattributes
index aba8092dd7d7b4ad6a48ed7521807a4ec1f53d48..721bfee0f598a3a5e838a13b11f1bf00a595a0ce 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3255,6 +3255,8 @@ MAC/Navigator2/panels/objects/Hardware/Station_Clock.pnl -text
 MAC/Navigator2/panels/objects/Hardware/Station_HBA.pnl -text
 MAC/Navigator2/panels/objects/Hardware/Station_LBA.pnl -text
 MAC/Navigator2/panels/objects/Hardware/Station_Subrack_small.pnl -text
+MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl -text
+MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl -text
 MAC/Navigator2/panels/objects/Hardware/Station_small.pnl -text
 MAC/Navigator2/panels/objects/Hardware/Subrack_ClockBoard.pnl -text
 MAC/Navigator2/panels/objects/Hardware/Subrack_Numbers.pnl -text
diff --git a/MAC/Navigator2/panels/main.pnl b/MAC/Navigator2/panels/main.pnl
index ae29c504231ad211ecf740eeb1f05b58e9993df2..21e134c6d4eb9ba382b5b2a1e383de028f07cfb8 100644
--- a/MAC/Navigator2/panels/main.pnl
+++ b/MAC/Navigator2/panels/main.pnl
@@ -60,6 +60,7 @@ dyn_string SWLevelRefNames;
 dyn_string datastreamRefNames;
 dyn_string swCtrlRefNames;
 dyn_string memAndHDDRefNames;
+dyn_string stationViewRefNames;
 string strPanelName;
 string strModuleName;
 string baseDP=\"\";
@@ -104,6 +105,13 @@ void clearMemAndHDDRefNames() {
   dynClear(memAndHDDRefNames);
 }
 
+void clearStationViewRefNames() {
+  // remove all symbols because new ones will be added
+  for (int i=1; i <= dynlen(stationViewRefNames); i++) {
+    removeSymbol(strModuleName,\"\",stationViewRefNames[i]);
+  }
+  dynClear(stationViewRefNames);
+}
 void redraw() {
   dynClear(station_result);
   dynClear(station_procList);
@@ -131,6 +139,11 @@ void redraw() {
   if (dynlen(memAndHDDRefNames) > 0) {
     clearMemAndHDDRefNames();
   }
+
+  if (dynlen(stationViewRefNames) > 0) {
+    stationViewRefNames();
+  }
+
   addSWLevels();
 
   addDatastreams();
@@ -139,6 +152,7 @@ void redraw() {
   
   addMemAndHDD();
   
+  addStationView();
   
  
  
@@ -173,7 +187,7 @@ void addSWLevels() {
                       0,                               // angle
                       1    ,1                          // zoomX , zoomY
         ) < 0 ) {
-	  LOG_ERROR(\"swlevel.pnl:redraw|Error Appending swlevel for: \" + stationList[i] + \" in this panel.\");
+	  LOG_ERROR(\"swlevel.pnl:addSWLevels|Error Appending swlevel for: \" + stationList[i] + \" in this panel.\");
           }
     yPos_AddSymbol += 10;
     ref++;
@@ -202,7 +216,7 @@ void addDatastreams() {
                       0,                               // angle
                       1    ,1                          // zoomX , zoomY
         ) < 0 ) {
-	  LOG_ERROR(\"swlevel.pnl:redraw|Error datastream for : \" + stationList[i] + \" in this panel.\");
+	  LOG_ERROR(\"swlevel.pnl:addDatastreams|Error datastream for : \" + stationList[i] + \" in this panel.\");
           }
     yPos_AddSymbol += 10;
     ref++;
@@ -237,7 +251,7 @@ void addSWCtrlers() {
                       0,                               // angle
                       1    ,1                          // zoomX , zoomY
         ) < 0 ) {
-	  LOG_ERROR(\"swlevel.pnl:redraw|Error swCtrl for : \" + stationList[i] + \" in this panel.\");
+	  LOG_ERROR(\"swlevel.pnl:addSWCtrlers|Error swCtrl for : \" + stationList[i] + \" in this panel.\");
           }
     yPos_AddSymbol += 10;
     ref++;
@@ -316,7 +330,36 @@ void addMemAndHDD() {
                       0,                               // angle
                       1    ,1                          // zoomX , zoomY
         ) < 0 ) {
-	  LOG_ERROR(\"swlevel.pnl:redraw|Error memAndHDD for : \" + stationList[i] + \" in this panel.\");
+	  LOG_ERROR(\"main.pnl:addMemAndHDD|Error memAndHDD for : \" + stationList[i] + \" in this panel.\");
+          }
+    yPos_AddSymbol += 10;
+    ref++;
+  }
+}
+
+void addStationView() {
+  int xPos_AddSymbol = 665; 
+  int yPos_AddSymbol = 28; 
+  int ref = 1;
+  string addPanelName    = \"objects/Hardware/Station_mainView.pnl\";
+  //loop over list and prepare panel with all MainInfo   
+  for (int i=1; i<= dynlen(stationList); i++) {
+    //skip CCU and MCU machines
+    if (strpos(stationList[i],\"MCU\") >=0 ||strpos(stationList[i],\"CCU\") >=0) continue;
+
+    stationViewRefNames[i]=\"memAndHDD\"+(i);
+      
+    if (  addSymbol(  strModuleName,                   // Stay in this modul
+                      \"\",                              // Name of this panel
+                      addPanelName,                    // Panel to add
+                      stationViewRefNames[ref],         // Ref of the addedPanel
+                      makeDynString( \"$station:\" + stationList[i]) ,     // Define all $values
+                      xPos_AddSymbol,                  // Xpos of the AddedSymbol
+                      yPos_AddSymbol,                  // Ypos of the AddedSymbol
+                      0,                               // angle
+                      1    ,1                          // zoomX , zoomY
+        ) < 0 ) {
+	  LOG_ERROR(\"main.pnl:addStationView|Error stationView for : \" + stationList[i] + \" in this panel.\");
           }
     yPos_AddSymbol += 10;
     ref++;
@@ -697,22 +740,41 @@ LANG:1 18 CEPobservationView
 2 44
 "PRIMITIVE_TEXT16"
 ""
-1 630 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 627 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 29 0 0 0 0 0
 E E E
 0
 1
-LANG:1 0 
+LANG:1 18 DiskSpace & Memory
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 627 10 657 23
+0 2 2 "0s" 0 0 0 192 0 0  627 10 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 6 D    M
+2 45
+"PRIMITIVE_TEXT17"
+""
+1 668 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+30 0 0 0 0 0
+E E E
+0
+1
+LANG:1 22 Temperature & Humidity
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  0 E 630 10 654 23
-0 2 2 "0s" 0 0 0 192 0 0  630 10 1
+E E 0 1 1 2 1 E U  0 E 668 10 695 23
+0 2 2 "0s" 0 0 0 192 0 0  668 10 1
 1
 LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
 0 1
-LANG:1 4 D  M
+LANG:1 6 T    H
 0
 LAYER, 1 
 1
diff --git a/MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl b/MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..b972cd04ce6906791f0105e3009b341ed9748bb3
--- /dev/null
+++ b/MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl
@@ -0,0 +1,181 @@
+V 11
+1
+LANG:1 0 
+PANEL,-1 -1 255 95 N "_3DFace" 1
+"$station"
+"main()
+{
+  station = $station+\":\";
+   
+  baseDP = station+\"LOFAR_PIC\";
+
+  reload();
+}
+  
+private void reload() {
+  
+  // since 
+  // check if the required datapoint for this view are enabled and accessible
+  if (navFunct_dpReachable(baseDP)) {
+    if (dpExists(baseDP+\"_Cabinet1.temperature\") ){
+      if (dpConnect(\"updateStation\", baseDP +\"_Cabinet1.temperature:_online.._value\",
+                                      baseDP +\"_Cabinet1.tempMin:_online.._value\",
+                                      baseDP +\"_Cabinet1.tempMax:_online.._value\",
+                                      baseDP +\"_Cabinet1.tempMaxMax:_online.._value\",
+                                      baseDP +\"_Cabinet1.humidity:_online.._value\",
+                                      baseDP +\"_Cabinet1.humidityMax:_online.._value\",
+                                      baseDP +\"_Cabinet1.humidityMaxMax:_online.._value\",                                      
+                                      baseDP +\"_Cabinet1.temperature:_online.._invalid\") == -1) {
+        setValue(\"temperature\", \"backCol\", \"Lofar_dpdoesnotexist\");
+        setValue(\"humidity\", \"backCol\", \"Lofar_dpdoesnotexist\");
+      }
+    } else {
+        setValue(\"temperature\", \"backCol\", \"Lofar_dpdoesnotexist\");
+        setValue(\"humidity\", \"backCol\", \"Lofar_dpdoesnotexist\");
+    }
+  } else {
+    setValue(\"temperature\", \"backCol\", \"Lofar_dpOffline\");
+    setValue(\"humidity\", \"backCol\", \"Lofar_dpOffline\");
+
+  }	
+}
+
+updateStation(string dp1, float temp,
+              string dp2, float tempMin,
+              string dp3, float tempMax,
+              string dp4, float tempMaxMax,
+              string dp2, float hum,
+              string dp2, float humMax,
+              string dp2, float humMaxMax,
+              string dp8, bool invalid)
+{
+
+  if (invalid) {
+    setValue(\"temperature\", \"backCol\", \"Lofar_invalid\");
+    setValue(\"humidity\", \"backCol\", \"Lofar_invalid\");
+    return;
+  }
+  // temperatures
+  string tempColor=\"Lofar_test\";
+  if (temp > tempMin && temp < tempMax) {
+    tempColor = \"Lofar_operational\";
+  } else if (temp >= tempMax && temp < tempMaxMax) {
+    tempColor = \"Lofar_suspicious\";
+  } else if (temp >= tempMaxMax) {
+    tempColor = \"Lofar_broken\";
+  }
+  
+  // humidity
+  string humColor=\"Lofar_test\";
+  if (hum < humMax) {
+    humColor = \"Lofar_operational\";
+  } else if (hum >= humMax && hum < humMaxMax) {
+    humColor = \"Lofar_suspicious\";
+  } else if (hum >= humMaxMax) {
+    humColor = \"Lofar_broken\";
+  }
+  
+
+  setValue(\"temperature\",\"toolTipText\",station+\" temp \"+temp+\" C\" );
+  setValue(\"temperature\", \"backCol\", tempColor);
+  setValue(\"humidity\",\"toolTipText\",station+\" humidity \"+hum+\" Rel%\" );
+  setValue(\"humidity\", \"backCol\", humColor);
+ }" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "#uses \"navPanel.ctl\"
+string station = \"\";
+string baseDP=\"\";
+string obsDP=\"\";
+
+" 0
+ 2
+"CBRef" "1"
+"EClose" E
+""
+DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
+LAYER, 0 
+1
+LANG:1 0 
+6 0
+"temperature"
+""
+1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ "main()
+{
+  rClick();
+}" 0
+ "main()
+{
+  dblClick();
+}" 0
+
+0 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+  click();
+}" 0
+ 0 1 1 2 1 E 1 0 1 0 -10 1 E 0 10 14 19
+6 1
+"humidity"
+""
+1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ "main()
+{
+  rClick();
+}" 0
+ "main()
+{
+  dblClick();
+}" 0
+
+1 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+  click();
+}" 0
+ 0 1 1 2 1 E 1 0 1 20 -10 1 E 0 10 14 19
+0
+LAYER, 1 
+1
+LANG:1 0 
+0
+LAYER, 2 
+1
+LANG:1 0 
+0
+LAYER, 3 
+1
+LANG:1 0 
+0
+LAYER, 4 
+1
+LANG:1 0 
+0
+LAYER, 5 
+1
+LANG:1 0 
+0
+LAYER, 6 
+1
+LANG:1 0 
+0
+LAYER, 7 
+1
+LANG:1 0 
+0
+0
diff --git a/MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl b/MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..5ffb19f83e407defa6dbf2571da0fa15da89844b
--- /dev/null
+++ b/MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl
@@ -0,0 +1,79 @@
+V 11
+1
+LANG:1 0 
+PANEL,-1 -1 380 26 N "_3DFace" 1
+"$station"
+"main()
+{
+  station = $station;
+}" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "#uses \"navPanel.ctl\"
+string station = \"\";
+string baseDP=\"\";" 0
+ 2
+"CBRef" "1"
+"EClose" E
+""
+DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
+LAYER, 0 
+1
+LANG:1 0 
+2 16
+"PRIMITIVE_TEXT1"
+""
+1 70 80 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+16 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 70 80 71 93
+0 2 2 "0s" 0 0 0 192 0 0  70 80 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,50,0,0,0,0,0
+0 1
+LANG:1 0 
+1 17 1 "" 0
+0
+1 18 1 "" 1
+0
+0
+LAYER, 1 
+1
+LANG:1 0 
+0
+LAYER, 2 
+1
+LANG:1 0 
+0
+LAYER, 3 
+1
+LANG:1 0 
+0
+LAYER, 4 
+1
+LANG:1 0 
+0
+LAYER, 5 
+1
+LANG:1 0 
+0
+LAYER, 6 
+1
+LANG:1 0 
+0
+LAYER, 7 
+1
+LANG:1 0 
+0
+3 1 "PANEL_REF1" -1
+"objects\\Hardware\\Station_TempAndHumidity.pnl" 10 10 T 34 1 0 1 -10 -10
+1
+"$station""$station"
+0
diff --git a/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl b/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl
index 458f376306836a22800aaf1b9c3e8b83188bd5aa..25a6bebb11fb01a1ab0bba28ebfd3cfc2e9533b4 100644
--- a/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl
+++ b/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl
@@ -40,7 +40,7 @@ updateDiskUsage(string dp1, int total,
   
   string color = navFunct_giveFadedColor(0, total, current);
   int step = total/100;
-  setValue(\"diskUsage\",\"toolTipText\",\"Disk Used :\"+current/step+\"%\" );
+  setValue(\"diskUsage\",\"toolTipText\",station +\" Disk Used :\"+current/step+\"%\" );
   setValue(\"diskUsage\", \"backCol\", color);
  }" 0
  E E E E 1 -1 -1 0  0 0
diff --git a/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl b/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl
index 6d162045cac45f15b5afdb967e401078c3d6faf4..b450095d22b5cf477f04345ded204eb1c184be48 100644
--- a/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl
+++ b/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl
@@ -39,7 +39,7 @@ updateMemUsage(string dp1, int total,
   }
   int step = total/100;
   string color = navFunct_giveFadedColor(0, total, current);
-  setValue(\"memUsage\",\"toolTipText\",\"Memory used: \"+current/step+\"%\" );
+  setValue(\"memUsage\",\"toolTipText\",station+\" Memory used: \"+current/step+\"%\" );
   setValue(\"memUsage\", \"backCol\", color);
  }" 0
  E E E E 1 -1 -1 0  0 0
diff --git a/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl b/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl
index 73d9d6f70d7514b3ef38d49bc2c53013b7aa4c66..ec4168f0063b3c6f8e1c1581f1b0fb22716e972e 100644
--- a/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl
+++ b/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl
@@ -77,7 +77,9 @@ void navProgressCtrl_handleObservation(string selection){
   LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| stop:" +stop);
 
     
-  toolText=selection;
+  toolText=selection + 
+           "<br> start: " + sStart+
+           "<br> stop : " + sStop;
   int duration=period(stop) - period(start);
 
   LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| Duration: "+duration);
@@ -86,11 +88,16 @@ void navProgressCtrl_handleObservation(string selection){
   LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| percent: "+percent);  
 
   int finished=period(getCurrentTime())-period(start);
+  
   LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| finished: "+finished);  
   
   if (percent > 0) {
     percentDone = finished/percent;
   }
+  if (percentDone > 100) {
+    LOG_ERROR("navProgressCtrl.ctl:navProgressCtrl_handleObservation| ERROR: Observation exceeds stoptime!! " + selection);
+    percentDone = 100;
+  }
   LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| PercentDone: "+percentDone);
   // change progressBar
   dpSet(PROGRESSBARACTIONDP,"Update|"+percentDone+"|"+toolText);