Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
* Scenes: new element type -- device
* Simple Devices: Counter and Power Sensors fixes
* Minor fixes
  • Loading branch information
sergejey committed Jun 20, 2018
1 parent 46ae174 commit bbb0f38
Show file tree
Hide file tree
Showing 10 changed files with 98 additions and 49 deletions.
18 changes: 18 additions & 0 deletions lib/general.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -563,6 +563,24 @@ function DebMes($errorMessage, $logLevel = "debug")
}
}

function dprint($data = 0, $stop = 1) {
echo "<pre>";
if ($data!==0) {
if (is_array($data)) {
print_r($data);
} else {
echo $data;
}
} else {
echo date('Y-m-d H:i:s');
}
echo "</pre>";

if ($stop) {
exit;
}
}

/**
* Method returns logger with meaningful name. In this case much easy to enable\disable
* logs depending on requirements
Expand Down
2 changes: 2 additions & 0 deletions modules/devices/SCounters_valueUpdated.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
$new_value=(float)$params['NEW_VALUE'];
}



$history_values=array(
'valueHour'=>date('Y-m-d H:00:00'),
'valueDay'=>date('Y-m-d 00:00:00')
Expand Down
4 changes: 3 additions & 1 deletion modules/devices/SPowerSensors_valueUpdated.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,6 @@
setTimeout($timerOff, 'setGlobal("' . $ot . '.status",0);callMethod("' . $ot . '.loadStatusChanged",array("status"=>0));', $offTimeout);
}
}
}
}

$this->callMethod('statusUpdated');
7 changes: 5 additions & 2 deletions modules/devices/devices.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ function admin(&$out) {

if ($this->view_mode=='delete_devices') {
$this->delete_devices($this->id);
$this->redirect("?");
$this->redirect("?type=".gr('type').'&location_id='.gr('location_id').'&group_name='.gr('group_name'));
}
}
}
Expand Down Expand Up @@ -900,6 +900,9 @@ function addDeviceToScene($device_id,$add_scene_id=0) {
$element_rec['EASY_CONFIG']=1;
$linked_property_unit='';

$element_rec['TYPE']='device';
$element_rec['DEVICE_ID']=$rec['ID'];
/*
if ($rec['TYPE']=='relay' || $rec['TYPE']=='dimmer' || $rec['TYPE']=='switch') {
$element_rec['TYPE'] = 'switch';
$element_rec['LINKED_PROPERTY'] = 'status';
Expand All @@ -918,7 +921,6 @@ function addDeviceToScene($device_id,$add_scene_id=0) {
} else {
$element_rec['TYPE']='object';
}

if ($rec['TYPE']=='sensor_temp' || $rec['TYPE']=='sensor_humidity') {
$element_rec['TYPE'] = 'informer';
$element_rec['LINKED_PROPERTY'] = 'value';
Expand All @@ -928,6 +930,7 @@ function addDeviceToScene($device_id,$add_scene_id=0) {
$wizard_data['STATE_LOW_VALUE']='%'.$element_rec['LINKED_OBJECT'].'.maxValue%';
$wizard_data['UNIT']=$linked_property_unit;
}
*/

$element_rec['WIZARD_DATA']=json_encode($wizard_data);

Expand Down
2 changes: 2 additions & 0 deletions modules/devices/devices_links.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@
$out['LINK_ID']=$link_rec['ID'];
$out['COMMENT']=$link_rec['COMMENT'];
$settings=unserialize($link_rec['LINK_SETTINGS']);
if (is_array($link_details['PARAMS'])) {
foreach($link_details['PARAMS'] as &$p) {
if (isset($settings[$p['PARAM_NAME']])) {
$p['VALUE']=$settings[$p['PARAM_NAME']];
}
}
}
}

if ($this->mode=='update') {
Expand Down
58 changes: 24 additions & 34 deletions modules/scenes/scenes.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -273,29 +273,10 @@ function admin(&$out) {
$filename=urlencode('Elements'.date('H-i-s'));

$ext = "elements"; // file extension
$mime_type = (PMA_USR_BROWSER_AGENT == 'IE' || PMA_USR_BROWSER_AGENT == 'OPERA')
? 'application/octetstream'
: 'application/octet-stream';
header('Content-Type: ' . $mime_type);
if (PMA_USR_BROWSER_AGENT == 'IE')
{
header('Content-Disposition: inline; filename="' . $filename . '.' . $ext . '"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
print $data;
} else {
header('Content-Disposition: attachment; filename="' . $filename . '.' . $ext . '"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
print $data;
}

exit;


header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.($filename . '.' . $ext).'"');
echo ($data);
exit;
} else {
$this->view_mode='edit_scenes';
Expand Down Expand Up @@ -1119,18 +1100,26 @@ function getDynamicElements($qry='1') {
for($ie=0;$ie<$totale;$ie++) {

if ($elements[$ie]['TYPE']=='object') {
$state=array();

$state['ID']='element_'.($elements[$ie]['ID']);
$state['ELEMENT_ID']=$elements[$ie]['ID'];
$state['HTML']=getObjectClassTemplate($elements[$ie]['LINKED_OBJECT']);
$state['TYPE']=$elements[$ie]['TYPE'];
$state['MENU_ITEM_ID']=0;
$state['HOMEPAGE_ID']=0;
$state['OPEN_SCENE_ID']=0;
$states=array($state);


$state = array();
$state['ID'] = 'element_' . ($elements[$ie]['ID']);
$state['ELEMENT_ID'] = $elements[$ie]['ID'];
$state['HTML'] = getObjectClassTemplate($elements[$ie]['LINKED_OBJECT']);
$state['TYPE'] = $elements[$ie]['TYPE'];
$state['MENU_ITEM_ID'] = 0;
$state['HOMEPAGE_ID'] = 0;
$state['OPEN_SCENE_ID'] = 0;
$states = array($state);
} elseif ($elements[$ie]['TYPE']=='device') {
$device_rec=SQLSelectOne("SELECT * FROM devices WHERE ID=".(int)$elements[$ie]['DEVICE_ID']);
$state = array();
$state['ID'] = 'element_' . ($elements[$ie]['ID']);
$state['ELEMENT_ID'] = $elements[$ie]['ID'];
$state['HTML'] = '<div style="width:250px">'.getObjectClassTemplate($device_rec['LINKED_OBJECT']).'</div>';
$state['TYPE'] = $elements[$ie]['TYPE'];
$state['MENU_ITEM_ID'] = 0;
$state['HOMEPAGE_ID'] = 0;
$state['OPEN_SCENE_ID'] = 0;
$states = array($state);
} else {
$states=SQLSelect("SELECT elm_states.*,elements.TYPE FROM elm_states, elements WHERE elm_states.ELEMENT_ID=elements.ID AND ELEMENT_ID='".$elements[$ie]['ID']."' ORDER BY elm_states.PRIORITY DESC, elm_states.TITLE");
}
Expand Down Expand Up @@ -1624,6 +1613,7 @@ function dbInstall($data) {
elements: SYSTEM varchar(255) NOT NULL DEFAULT ''
elements: TYPE varchar(255) NOT NULL DEFAULT ''
elements: CSS_STYLE varchar(255) NOT NULL DEFAULT ''
elements: DEVICE_ID int(10) NOT NULL DEFAULT '0'
elements: LINKED_OBJECT varchar(255) NOT NULL DEFAULT ''
elements: LINKED_PROPERTY varchar(255) NOT NULL DEFAULT ''
elements: LINKED_METHOD varchar(255) NOT NULL DEFAULT ''
Expand Down
10 changes: 10 additions & 0 deletions modules/scenes/scenes_edit.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,12 @@
$element['EASY_CONFIG']=0;
}

if ($element['TYPE']=='device') {
$element['EASY_CONFIG']=1;
}

$element['DEVICE_ID']=gr('device_id','int');

global $linked_object;
$element['LINKED_OBJECT']=$linked_object.'';

Expand Down Expand Up @@ -593,6 +599,9 @@
$state_id=$state_rec['ID'];


} elseif (($element['TYPE']=='device') && (!$state_rec['ID'] || $element['EASY_CONFIG'])) {

SQLExec("DELETE FROM elm_states WHERE ELEMENT_ID=".(int)$element['ID']);

} elseif (($element['TYPE']=='object') && (!$state_rec['ID'] || $element['EASY_CONFIG'])) {

Expand Down Expand Up @@ -829,5 +838,6 @@ function processObjectsTree($objects, &$result) {
$out['CONTAINERS']=$containers;

$out['SCENES']=SQLSelect("SELECT * FROM scenes ORDER BY TITLE");
$out['DEVICES']=SQLSelect("SELECT ID, TITLE FROM devices ORDER BY TITLE");


2 changes: 1 addition & 1 deletion templates/devices/devices_search_admin.html
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ <h3>[#LOCATION_TITLE#]</h3>
<a href="?view_mode=edit_devices&id=[#ID#]&tab=settings" class="btn btn-default" title="Edit"><i class="glyphicon glyphicon-wrench"></i></a>
<a href="?view_mode=edit_devices&id=[#ID#]&tab=links" class="btn btn-default" title="Edit"><i class="glyphicon glyphicon-link"></i>[#if LINKED!=""#] ([#LINKED#])[#endif#]</a>
<a href="?view_mode=edit_devices&id=[#ID#]&tab=logic" class="btn btn-default" title="Edit"><i class="glyphicon glyphicon-flash"></i></a>
<a href="?view_mode=delete_devices&id=[#ID#]" onClick="return confirm('Are you sure? Please confirm.')" class="btn btn-default" title="Delete"><i class="glyphicon glyphicon-remove"></i></a>
<a href="?view_mode=delete_devices&id=[#ID#]&location_id=<#LOCATION_ID#>&type=<#TYPE#>&group_name=<#GROUP_NAME#>" onClick="return confirm('Are you sure? Please confirm.')" class="btn btn-default" title="Delete"><i class="glyphicon glyphicon-remove"></i></a>
[#endif ACTION#]
</div>
</div>
Expand Down
42 changes: 32 additions & 10 deletions templates/scenes/elements_edit.html
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ <h4>

var easy_config=$('input:radio[name=easy_config]:checked').val();

if (new_type=='switch' || new_type=='informer' || new_type=='warning' || new_type=='menuitem' || new_type=='object') {
if (new_type=='switch' || new_type=='informer' || new_type=='warning' || new_type=='menuitem' || new_type=='object' || new_type=='device') {
$('#advanced_config_block').show();
if (easy_config==1) {
$('.advanced_options').hide();
Expand All @@ -85,6 +85,12 @@ <h4>
$('#linked_object_field').hide();
}

if (easy_config==1 && (new_type=='device')) {
$('#device_field').show();
} else {
$('#device_field').hide();
}

if (easy_config==1 && (new_type=='informer' || new_type=='warning')) {
$('#linked_property_field').show();
} else {
Expand Down Expand Up @@ -120,6 +126,7 @@ <h4>
[#if ELEMENT_ID=""#]
<select class="form-control" name="type" required onChange="element_type_switched();">
<option value="" disabled selected>select
<option value="device"[#if ELEMENT_TYPE=="device"#] selected[#endif#]><#LANG_DEVICE#>
<option value="switch"[#if ELEMENT_TYPE=="switch"#] selected[#endif#]><#LANG_ON_OFF_SWITCH#>
<option value="informer"[#if ELEMENT_TYPE=="informer"#] selected[#endif#]><#LANG_INFORMER#>
<option value="warning"[#if ELEMENT_TYPE=="warning"#] selected[#endif#]><#LANG_WARNING#>
Expand All @@ -135,6 +142,7 @@ <h4>
<option value="object"[#if ELEMENT_TYPE=="object"#] selected[#endif#]><#LANG_OBJECT#>
</select>
[#else ELEMENT_ID#]
[#if ELEMENT_TYPE=="device"#]<#LANG_DEVICE#>[#endif#]
[#if ELEMENT_TYPE=="img"#]<#LANG_IMAGE#>[#endif#]
[#if ELEMENT_TYPE=="html"#]HTML[#endif#]
[#if ELEMENT_TYPE=="container"#]<#LANG_CONTAINER#>[#endif#]
Expand Down Expand Up @@ -165,6 +173,18 @@ <h4>


[#if ELEMENT_ID="" || ELEMENT_EASY_CONFIG="1"#]
<div class="form-group" id="device_field" style="display:none">
<label class="col-lg-4 control-label"><#LANG_DEVICE#></label>
<div class="controls">
<select name="device_id" class="form-control">
<option value="0"></option>
[#begin DEVICES#]
<option value="[#ID#]"[#if ID="<#ELEMENT_DEVICE_ID#>"#] selected[#endif#]>[#TITLE#]</option>
[#end DEVICES#]
</select>
</div>
</div>

<div class="form-group" id="linked_object_field" style="display:none">
<label class="col-lg-4 control-label"><#LANG_LINKED_OBJECT#><#LANG_HCB#>linked_object<#LANG_HCE#></label>
<div class="controls">
Expand Down Expand Up @@ -224,6 +244,7 @@ <h4>
<!--#
[#if (ELEMENT_TYPE=="informer" || ELEMENT_TYPE=="switch" || ELEMENT_TYPE=="button" || ELEMENT_TYPE=="navgo" || ELEMENT_TYPE=="nav" || ELEMENT_TYPE=="warning")#]
#-->
[#if ELEMENT_TYPE!="device"#]
[#if STYLES || COMMON_STYLES#]
<div class="form-group">
<label class="col-lg-4 control-label"><#LANG_STYLE#><#LANG_HCB#>elemen_style<#LANG_HCE#></label>
Expand Down Expand Up @@ -254,6 +275,9 @@ <h4>
[#else STYLES#]
<input type="hidden" name="css_style" value='default'>
[#endif STYLES#]
[#else ELEMET_TYPE#]
<input type="hidden" name="css_style" value='default'>
[#endif ELEMENT_TYPE#]

<div class="form-group">
<label class="col-lg-4 control-label"><#LANG_APPEAR_ANIMATION#><#LANG_HCB#>appear_animation<#LANG_HCE#></label>
Expand Down Expand Up @@ -409,7 +433,7 @@ <h4>
</div>
[#endif ELEMENT_TYPE#]

[#if (ELEMENT_TYPE!="container") && (ELEMENT_TYPE!="s3d")#]
[#if (ELEMENT_TYPE!="container") && (ELEMENT_TYPE!="s3d") && (ELEMENT_TYPE!="device")#]
<div class="form-group">
<label class="col-lg-4 control-label"><#LANG_SMART_REPEAT#><#LANG_HCB#>element_smartrepeat<#LANG_HCE#></label>
<div class="controls">
Expand All @@ -434,7 +458,7 @@ <h4>

[#if ELEMENT_ID!=""#]

[#if ELEMENT_TYPE!="container"#]
[#if ELEMENT_TYPE!="container" && ELEMENT_TYPE!="device"#]
<h3><#LANG_STATES#></h3><#LANG_HCB#>element_states<#LANG_HCE#>
<ul>
[#begin STATES#]
Expand Down Expand Up @@ -465,11 +489,11 @@ <h4><#LANG_ADD_NEW_STATE#></h4>
<label class="checkbox"><input type="checkbox" name="state_delete" value="1"> <#LANG_DELETE#></label>
</div>
</div>
[#endif#]
[#endif STATE_ID#]
[#endif ELEMENT_TYPE#]


[#if "<#ELEMENT_TYPE#>"!="img" && "<#ELEMENT_TYPE#>"!="container" && "<#ELEMENT_TYPE#>"!="s3d"#]
[#if "<#ELEMENT_TYPE#>"!="img" && "<#ELEMENT_TYPE#>"!="container" && "<#ELEMENT_TYPE#>"!="s3d" && "<#ELEMENT_TYPE#>"!="device"#]
<div class="form-group">
<label class="col-lg-4 control-label"><#LANG_CODE#><#LANG_HCB#>element_code<#LANG_HCE#></label>
<div class="controls">
Expand All @@ -478,7 +502,7 @@ <h4><#LANG_ADD_NEW_STATE#></h4>
<br>(CSS class: <i>type_<#ELEMENT_TYPE#> style_<#ELEMENT_CSS_STYLE#> state_[#STATE_TITLE#] element_<#ELEMENT_ID#></i>, CSS id: <i>state_[#STATE_ID#]</i>)
</div>
</div>
[#endif#]
[#endif ELEMENT_TYPE#]

[#if "<#ELEMENT_TYPE#>"=="img"#]
<div class="form-group">
Expand All @@ -498,9 +522,9 @@ <h4><#LANG_ADD_NEW_STATE#></h4>
window.open(fileBrowserlink,'pdwfilebrowser', 'width=1000,height=650,scrollbars=no,toolbar=no,location=no');
}
</script>
[#endif#]
[#endif ELEMENT_TYPE#]

[#if ELEMENT_TYPE!="container"#]
[#if ELEMENT_TYPE!="container" && ELEMENT_TYPE!="device"#]
<script language="javascript">
function do_on_click_change(val) {
$('.click_fields').hide();
Expand Down Expand Up @@ -740,8 +764,6 @@ <h4><#LANG_ADD_NEW_STATE#></h4>
[#module name="linkedobject" object_field="linked_object_new" property_field="linked_property_new"#]
[#endif ID#]



<div class="form-actions">
[#if ID!=""#]
<button class="btn btn-default btn-primary" type="submit" name="subm"><#LANG_SUBMIT#></button>
Expand Down
2 changes: 1 addition & 1 deletion templates/scenes/scenes.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -730,7 +730,7 @@ function onDocumentMouseDown( event ) {
class="element_{$ELEMENT.ID} type_{$ELEMENT.TYPE}{if $ELEMENT.CSS_STYLE!=""} style_{$ELEMENT.CSS_STYLE}{/if} state_{$STATE.TITLE}{if $ELEMENT.BACKGROUND=="1"} html_background{/if}{if $ELEMENT.POSITION_TYPE=="1"} inlineblock{/if}{if $DRAGGABLE=="1" && $ELEMENT.POSITION_TYPE=="0"} draggable{/if}"
id="state_{$STATE.ID}"
{if $STATE.SCRIPT_ID!="0" || $STATE.HOMEPAGE_ID!="0" || $STATE.OPEN_SCENE_ID!="0" || $STATE.EXT_URL!="" || $STATE.MENU_ITEM_ID!="0" || $STATE.ACTION_METHOD!="" || $STATE.CODE!=""}
{if $DRAGGABLE!="1"}
{if $DRAGGABLE!="1" && $ELEMENT.TYPE!="device"}
onClick="stateClicked('{$STATE.ID}');"
{/if}
{/if}
Expand Down

0 comments on commit bbb0f38

Please sign in to comment.