/**
  * Maske um Urhzeit incl. Bedingung (<>=) zu erzeugen
  */
 private function getSensorStatusTermEditorMask()
 {
     $div = new Div("editSensorStatus");
     $statusCbo = new Checkbox("status", "", "J", $this->TERM_ROW->getNamedAttribute("status"));
     $sensorSql = "SELECT id, concat(name, ' (', IFNULL((SELECT name FROM homecontrol_etagen e WHERE e.id=s.etage),''), ' - '," . " IFNULL((SELECT name FROM homecontrol_zimmer z WHERE z.id=s.zimmer),''), ')') " . " FROM homecontrol_sensor s WHERE (SELECT status_sensor_jn FROM homecontrol_sensor_arten WHERE id = s.sensor_art)='J' ORDER BY etage, zimmer, name";
     $sensorCbo = new ComboBoxBySql($_SESSION['config']->DBCONNECT, $sensorSql, "sensor");
     $sensorCbo->setStyle("width", 200);
     $triggerChb = new Checkbox("trigger_jn", "Trigger?", "J", $this->TERM_ROW->getNamedAttribute("trigger_jn"));
     $triggerChb->setToolTip("Gibt an, ob eine &Auml;nderung des Wertes einen Schaltvorgang aktiviert oder nur als Bedingung dient.");
     $t = new Table(array("", "", "", "", "", "", ""));
     $t->setAlignments(array("", "", "", "right", "", "right", "right"));
     $r = $t->createRow();
     $r->setAttribute(0, "Status");
     $r->setAttribute(1, $sensorCbo);
     $r->setAttribute(2, "=");
     $r->setAttribute(3, $statusCbo);
     $r->setAttribute(4, " ");
     $r->setAttribute(5, $triggerChb);
     $r->setAttribute(6, new Button("saveEditSensorStatusTerm", " Speichern "));
     $t->addRow($r);
     $rH = $t->createRow();
     $rH->setSpawnAll(true);
     $rH->setAttribute(0, new Hiddenfield("editTerm", $_REQUEST['editTerm']));
     $t->addRow($rH);
     $rH2 = $t->createRow();
     $rH2->setSpawnAll(true);
     $rH2->setAttribute(0, new Hiddenfield("editSensorStatus", "ok"));
     $t->addRow($rH2);
     $div->add($t);
     return $div;
 }
$form->show();
// -------------------------------------------
//                 BEDINGUNGEN
// -------------------------------------------
$table = new Table(array("", ""));
$table->addSpacer(0, 15);
$table->setColSizes(array(130));
$ttlBedingung = new Title("Ausloesende Bedingungen");
$ttlBedingung->setAlign("left");
$r2Title = $table->createRow();
$r2Title->setSpawnAll(true);
$r2Title->setAttribute(0, $ttlBedingung);
$table->addRow($r2Title);
$table->addSpacer(0, 15);
$sqlRegelItems = "SELECT id, name FROM homecontrol_regeln";
$cobSelectItems = new ComboBoxBySql($_SESSION['config']->DBCONNECT, $sqlRegelItems, "SelectedRegelToEdit", isset($_SESSION['SelectedRegelToEdit']) ? $_SESSION['SelectedRegelToEdit'] : "", 0, 1, " ");
$cobSelectItems->setDirectSelect(true);
$r2Auswahl = $table->createRow();
$r2Auswahl->setAttribute(0, new Text("Regel auswaehlen: "));
$r2Auswahl->setAttribute(1, $cobSelectItems);
$table->addRow($r2Auswahl);
$table->addSpacer(0, 10);
if (isset($_SESSION['SelectedRegelToEdit']) && strlen($_SESSION['SelectedRegelToEdit']) > 0) {
    $where = "trigger_id=" . $_SESSION['SelectedRegelToEdit'] . " AND trigger_type=1 ";
    $termDbTable = new DbTable($_SESSION['config']->DBCONNECT, 'homecontrol_term', array("id", "trigger_id", "trigger_type", "config_id", "term_type", "sensor_id", "min", "std", "value", "termcondition", "status", "montag", "dienstag", "mittwoch", "donnerstag", "freitag", "samstag", "sonntag", "order_nr", "and_or", "lastSensorintervall", "trigger_jn"), "", "", "term_type,order_nr", $where);
    $termDbTable->setReadOnlyCols(array("id"));
    $termDbTable->setNoInsertCols(array("id"));
    $termDbTable->setDeleteInUpdate(true);
    $termDbTable->setHeaderEnabled(true);
    $termDbTable->setWidth("100%");
    $table->addSpacer(0, 10);
 // --------------------------------------------------
 //  Zuordnungen
 // --------------------------------------------------
 if (isset($_REQUEST['SelectedCronToEdit'])) {
     $_SESSION['SelectedCronToEdit'] = $_REQUEST['SelectedCronToEdit'];
 }
 $table = new Table(array("", ""));
 $table->setWidth("100%");
 $ttlZuord = new Title("Zuordnungen bearbeiten");
 $ttlZuord->setAlign("left");
 $rTitle = $table->createRow();
 $rTitle->setAttribute(0, $ttlZuord);
 $rTitle->setSpawnAll(true);
 $table->addRow($rTitle);
 $table->addSpacer(0, 10);
 $cobSelect = new ComboBoxBySql($_SESSION['config']->DBCONNECT, "SELECT id, name FROM homecontrol_cron ORDER BY name", "SelectedCronToEdit", isset($_SESSION['SelectedCronToEdit']) ? $_SESSION['SelectedCronToEdit'] : "", "id", "name", " ");
 $cobSelect->setDirectSelect(true);
 $rAuswahl = $table->createRow();
 $rAuswahl->setColSizes(array(120));
 $rAuswahl->setAttribute(0, new Text("Job auswaehlen: "));
 $rAuswahl->setAttribute(1, $cobSelect);
 $table->addRow($rAuswahl);
 $table->addSpacer(0, 20);
 $form = new Form();
 // Zuordnung ausgewählt
 if (isset($_SESSION['SelectedCronToEdit']) && strlen($_SESSION['SelectedCronToEdit']) > 0) {
     $scItemsDbTable = new DbTable($_SESSION['config']->DBCONNECT, 'homecontrol_cron_items', array("config_id", "art_id", "zimmer_id", "etagen_id", "on_off", "cron_id"), "Objekt, Objekt-Art, Zimmer, Etage, An/Aus, Job", "cron_id=" . $_SESSION['SelectedCronToEdit'], "config_id DESC, zimmer_id DESC, etagen_id DESC", "cron_id=" . $_SESSION['SelectedCronToEdit']);
     $scItemsDbTable->setReadOnlyCols(array("id"));
     $scItemsDbTable->setNoInsertCols(array("id"));
     $scItemsDbTable->setNoUpdateCols(array("cron_id"));
     $scItemsDbTable->setDeleteInUpdate(true);
<?php

$ttl = new Title("Sensor Logs");
$cboSensorSelect = new ComboBoxBySql($_SESSION['config']->DBCONNECT, "SELECT id, concat(name ,' (', id  ,')') descr FROM homecontrol_sensor", "sensorSelectCob", $_REQUEST['sensorSelectCob']);
$cboSensorSelect->setDirectSelect(true);
$cboSensorSelect->setNullValue(" ");
$cobStartTime = new ComboBoxBySql($_SESSION['config']->DBCONNECT, "SELECT distinct from_unixtime(update_time, '%d.%m.%Y') as zeit, from_unixtime(update_time, '%d.%m.%Y') as zeit2 FROM homecontrol_sensor_log", "startTimeCob", $_REQUEST['startTimeCob']);
$cobStartTime->setDirectSelect(true);
$cobStartTime->setNullValue(" ");
$sqlEndCob = "SELECT distinct from_unixtime(update_time, '%d.%m.%Y') as zeit, from_unixtime(update_time, '%d.%m.%Y') as zeit2 FROM homecontrol_sensor_log";
if (isset($_REQUEST['startTimeCob']) && strlen($_REQUEST['startTimeCob']) > 0) {
    $sqlEndCob .= " WHERE update_time >= " . strtotime(substr($_REQUEST['startTimeCob'], 8, 2) . "-" . substr($_REQUEST['startTimeCob'], 3, 2) . "-" . substr($_REQUEST['startTimeCob'], 0, 2));
}
$cobEndTime = new ComboBoxBySql($_SESSION['config']->DBCONNECT, $sqlEndCob, "endTimeCob", $_REQUEST['endTimeCob']);
$cobEndTime->setDirectSelect(true);
$cobEndTime->setNullValue(" ");
$txtSelect = new Text("Sensor Auswahl:");
$frmSelect = new Form();
$timeSelect = new Table(array("", "", "", ""));
$rT = $timeSelect->createRow();
$rT->setColSizes(array(130, 100, 63));
$rT->setAlignments(array("left", "left", "center"));
$rT->setAttribute(0, new Text("Zeitraum von: "));
$rT->setAttribute(1, $cobStartTime);
$rT->setAttribute(2, new Text("bis: "));
$rT->setAttribute(3, $cobEndTime);
$timeSelect->addRow($rT);
// -------------------------
// Show
// -------------------------
$tbl = new Table(array("", ""));
    $banner->setGenerated(false);
    $contentLayoutRow1 = $layoutTable->createRow();
    $contentLayoutRow1->setAlign("left");
    $contentLayoutRow1->setAttribute(0, $banner);
    $contentLayoutRow1->setStyle("padding", "10px");
    $layoutTable->addRow($contentLayoutRow1);
} else {
    $_SESSION['additionalLayoutHeight'] = 15;
    $bannerHeight = $_SESSION['additionalLayoutHeight'];
}
$modeSwitchComboTbl = new Table(array(""));
$modeSwitchComboTbl->setWidth(100);
$modeSwitchComboTbl->setAlign("center");
$modeSwitchComboTbl->setVAlign("middle");
$modeSwitchComboTbl->setHeight(25);
$cobMode = new ComboBoxBySql($_SESSION['config']->DBCONNECT, "SELECT id, name FROM homecontrol_modes WHERE selectable = 'J'", "changeMode", $_SESSION['config']->PUBLICVARS['currentMode']);
$cobMode->setDirectSelect(true);
$rMode = $modeSwitchComboTbl->createRow();
$rMode->setAttribute(0, $cobMode);
$modeSwitchComboTbl->addRow($rMode);
$fMode = new Form();
$fMode->add($modeSwitchComboTbl);
/* ------------------------------------
HAUPT-MENU
------------------------------------ */
$menuDiv = new Div();
$menuDiv->setWidth($bannerWidth - 80);
$menuDiv->setBorder(0);
$menuDiv->setOverflow("hidden");
$menuDiv->setAlign("left");
$menuDiv->setStyle("padding-left", "2px");
 function getMobileView()
 {
     $columnCount = 1;
     $this->handleEtage();
     $layoutTable = new Table(array(""));
     $etagenSql = "SELECT id, name FROM homecontrol_etagen";
     $cobChooser = new ComboBoxBySql($_SESSION['config']->DBCONNECT, $etagenSql, "aktEtage", strlen($_SESSION['aktEtage']) > 0 ? $_SESSION['aktEtage'] : "");
     $cobChooser->setDirectSelect(true);
     $cobChooser->setStyle("font-size", "40px");
     $frmChooser = new Form();
     $frmChooser->add($cobChooser);
     $layoutTable->addSpacer(0, 30);
     $rChooser = $layoutTable->createRow();
     $rChooser->setSpawnAll(true);
     $rChooser->setAttribute(0, $frmChooser);
     $layoutTable->addRow($rChooser);
     $layoutTable->addSpacer(0, 15);
     $layoutRow = $layoutTable->createRow();
     $layoutTable->addRow($layoutRow);
     if (isset($_SESSION['aktEtage']) && strlen($_SESSION['aktEtage']) > 0) {
         $dbTable = new DbTable($_SESSION['config']->DBCONNECT, 'homecontrol_config', array("id", "name", "funk_id", "funk_id2", "beschreibung", "control_art", "etage", "zimmer", "x", "y", "dimmer", "sender_id"), "", "", "zimmer", "etage=" . $_SESSION['aktEtage']);
         $currCol = 0;
         $zimmer = null;
         foreach ($dbTable->ROWS as $row) {
             if ($currCol >= $columnCount) {
                 $currCol = 0;
                 $layoutTable->addSpacer(0, 7);
                 $layoutTable->addSpacer(1, 2);
                 $layoutTable->addSpacer(0, 7);
                 $layoutRow = $layoutTable->createRow();
                 $layoutTable->addRow($layoutRow);
             }
             if ($zimmer != $row->getNamedAttribute("zimmer")) {
                 //zimmer
                 $zimmer = $row->getNamedAttribute("zimmer");
                 $currCol = 0;
                 $layoutTable->addSpacer(0, 25);
                 $layoutRow = $layoutTable->createRow();
                 $layoutTable->addRow($layoutRow);
                 $iT = new Text($this->getZimmerName($zimmer), "7", true);
                 $iTFt = $iT->getFonttype();
                 $iTFt->setColor("#7babdb");
                 $iT->setFonttype($iTFt);
                 $layoutRow->setAttribute(0, $iT);
                 $layoutTable->addSpacer(0, 15);
                 $layoutTable->addSpacer(1, 2);
                 $layoutTable->addSpacer(0, 15);
                 $layoutRow = $layoutTable->createRow();
                 $layoutTable->addRow($layoutRow);
             }
             $hcItem = new HomeControlItem($row, false);
             $switchComp = $hcItem->getMobileSwitch();
             $layoutRow->setAttribute($currCol, $switchComp);
             $currCol++;
         }
     }
     return $layoutTable;
 }