Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions event_controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ function event_controller()
$eventfeed = intval(get('eventfeed'));
$eventtype = intval(get('eventtype'));
$eventvalue = floatval(get('eventvalue'));
$triggerdelay = intval(get('triggerdelay'));
$action = intval(get('action'));
$setfeed = intval(get('setfeed'));
$setemail = get('setemail');
Expand All @@ -38,7 +39,7 @@ function event_controller()
$priority = get('priority');
$message = get('message');

$event->add($userid,$eventfeed,$eventtype,$eventvalue,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority);
$event->add($userid,$eventfeed,$eventtype,$eventvalue,$triggerdelay,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority);
$result = "Event added";
}
if ($route->action == 'edit' && $session['write'])
Expand All @@ -47,6 +48,7 @@ function event_controller()
$eventfeed = intval(get('eventfeed'));
$eventtype = intval(get('eventtype'));
$eventvalue = floatval(get('eventvalue'));
$triggerdelay = intval(get('triggerdelay'));
$action = intval(get('action'));
$setfeed = intval(get('setfeed'));
$setemail = get('setemail');
Expand All @@ -56,7 +58,7 @@ function event_controller()
$priority = get('priority');
$message = get('message');

$event->update($userid,$eventid,$eventfeed,$eventtype,$eventvalue,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority);
$event->update($userid,$eventid,$eventfeed,$eventtype,$eventvalue,$triggerdelay,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority);
$result = "Event updated";
}

Expand Down
28 changes: 26 additions & 2 deletions event_list.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
if ($item['eventtype']==7) echo "manual update";
?></td>
<td><?php echo $item['eventvalue']; ?></td>
<td><?php echo $item['triggerdelay']; ?> secs</td>
<td>
<?php
$state = false;
Expand Down Expand Up @@ -89,10 +90,12 @@
<td><?php if ($item['action']==2) echo $item['callcurl']; ?></td>
<td><?php echo $item['message']; ?> </td>
<td><?php echo $item['mutetime']; ?> secs</td>
<td><div class="editevent btn"

<td><div class="editevent btn"
eventid="<?php echo $item['id']; ?>"
eventtype="<?php echo $item['eventtype']; ?>"
eventvalue="<?php echo $item['eventvalue']; ?>"
triggerdelay="<?php echo $item['triggerdelay']; ?>"
action="<?php echo $item['action']; ?>"
setvalue="<?php echo $item['setvalue']; ?>"
setemail="<?php echo $item['setemail']; ?>"
Expand All @@ -101,6 +104,7 @@
callcurl="<?php echo $item['callcurl']; ?>"
message="<?php echo $item['message']; ?>"
mutetime="<?php echo $item['mutetime']; ?>"
priority="<?php echo $item['priority']; ?>"

>Edit</div></td>

Expand Down Expand Up @@ -149,6 +153,24 @@
<input id="eventvalue" name="eventvalue" type="text" style="width:60px; margin:0px;" />
</span>

<span style="font-weight:bold;" >for</span>

<select id="triggerdelay" name="triggerdelay" style="width:100px; margin:0px;">
<option value="0">0 secs</option>
<option value="5">5 secs</option>
<option value="15">15 secs</option>
<option value="30">30 secs</option>
<option value="60">1 min</option>
<option value="300">5 min</option>
<option value="600">10 min</option>
<option value="1800">30 min</option>
<option value="3600">1 hour</option>
<option value="14400">3 hour</option>
<option value="28800">6 hour</option>
<option value="57600">12 hour</option>
<option value="86400">24 hour</option>
</select>

<span style="font-weight:bold;" >: </span>

<select id="action" name="action" style="width:100px; margin:0px;">
Expand Down Expand Up @@ -180,7 +202,7 @@
<input id="message" name="message" type="text" style="width:180px; margin:0px;" value="Feed is {value}"/>
</span>

<span id="not-priority" style="font-weight:bold;" > priority
<span id="priority" style="font-weight:bold;" > priority
<select id="action-priority" name="priority" style="width:100px; margin:0px;">
<option value="-2">Very Low</option>
<option value="-1">Moderate</option>
Expand Down Expand Up @@ -270,9 +292,11 @@
$("#setvalue").val($(this).attr("setvalue"));
$("#setemail").val($(this).attr("setemail"));
$("#callcurl").val($(this).attr("callcurl"));
$("#triggerdelay").val($(this).attr("triggerdelay"));
$("#action").val($(this).attr("action"));
$("#message").val($(this).attr("message"));
$("#mutetime").val($(this).attr("mutetime"));
$("#priority").val($(this).attr("priority"));
$("#eventtype").change();
$("#action").change();
return false;
Expand Down
42 changes: 26 additions & 16 deletions event_model.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,19 @@ public function set_lasttime($userid,$id,$time)
$this->mysqli->query("UPDATE event SET `lasttime` = '$time' WHERE `userid` = '$userid' AND `id` = '$id' ");
}

public function update($userid,$id,$eventfeed,$eventtype,$eventvalue,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority)
public function update($userid,$id,$eventfeed,$eventtype,$eventvalue,$triggerdelay,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority)
{
$sql = "UPDATE emoncms.event SET eventfeed = $eventfeed, eventtype = $eventtype, eventvalue = $eventvalue, action = $action, setfeed = $setfeed, setemail = '$setemail', setvalue = $setvalue, callcurl = '$callcurl', mutetime = $mutetime, priority = $priority, message = '$message' WHERE `userid` = '$userid' AND `id` = '$id' ";
$sql = "UPDATE emoncms.event SET eventfeed = $eventfeed, eventtype = $eventtype, eventvalue = $eventvalue, triggerdelay = $triggerdelay, action = $action, setfeed = $setfeed, setemail = '$setemail', setvalue = $setvalue, callcurl = '$callcurl', mutetime = $mutetime, priority = $priority, message = '$message' WHERE `userid` = '$userid' AND `id` = '$id' ";
error_log('Mysql Query: ' + $sql);
$result = $this->mysqli->query($sql);
if (!$result){
error_log('Event Update: Mysql Error: ' + $this->mysqli->error);
}
}

public function add($userid,$eventfeed,$eventtype,$eventvalue,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority)
public function add($userid,$eventfeed,$eventtype,$eventvalue,$triggerdelay,$action,$setfeed,$setemail,$setvalue,$callcurl,$message,$mutetime,$priority)
{
$sql = "INSERT INTO event (`userid`,`eventfeed`, `eventtype`, `eventvalue`, `action`, `setfeed`, `setemail`, `setvalue`, `lasttime`, `callcurl`, `mutetime`, `priority`, `message`, `disabled`) VALUES ('$userid','$eventfeed','$eventtype','$eventvalue','$action','$setfeed','$setemail','$setvalue','0','$callcurl','$mutetime','$priority','$message','0')";
$sql = "INSERT INTO event (`userid`,`eventfeed`, `eventtype`, `eventvalue`, `triggerdelay`, `action`, `setfeed`, `setemail`, `setvalue`, `lasttime`, `callcurl`, `mutetime`, `priority`, `message`, `disabled`) VALUES ('$userid','$eventfeed','$eventtype','$eventvalue','$triggerdelay','$action','$setfeed','$setemail','$setvalue','0','$callcurl','$mutetime','$priority','$message','0')";
error_log('Mysql Query: ' + $sql);
$result = $this->mysqli->query($sql);
if (!$result){
Expand Down Expand Up @@ -154,28 +154,30 @@ public function check_feed_event($feedid,$updatetime,$feedtime,$value,$row=NULL,
if ($row['lasttime']+$row['mutetime'] > time() && !$test) {
continue;
}

if ($test){
$sendAlert = 1;
}else{
$sendAlert = 0;
$conditionTrue = 0;

switch($row['eventtype']) {
case 0:
// more than
if ($value > $row['eventvalue']) {
$sendAlert = 1;
$conditionTrue = 1;
}
break;
case 1:
// less than
if ($value < $row['eventvalue']) {
$sendAlert = 1;
$conditionTrue = 1;
}
break;
case 2:
// equal to
if ($value == $row['eventvalue']) {
$sendAlert = 1;
$conditionTrue = 1;
}
break;
case 3:
Expand All @@ -187,12 +189,12 @@ public function check_feed_event($feedid,$updatetime,$feedtime,$value,$row=NULL,
$t = time()- strtotime($feedData->time);
//error_log("t: " .$t);
if ($t > $row['eventvalue']){
$sendAlert = 1;
$conditionTrue = 1;
}
break;
case 4:
// updated
$sendAlert = 1;
$conditionTrue = 1;
break;
case 5:
// increased by
Expand All @@ -201,7 +203,7 @@ public function check_feed_event($feedid,$updatetime,$feedtime,$value,$row=NULL,
$rowprev = $resultprev->fetch_array();
//echo "INC == ".$value." > ".$rowprev['data']."+".$row['eventvalue'];
if ($value > ($rowprev['data']+$row['eventvalue'])) {
$sendAlert = 1;
$conditionTrue = 1;
}
break;
case 6:
Expand All @@ -213,20 +215,29 @@ public function check_feed_event($feedid,$updatetime,$feedtime,$value,$row=NULL,

//echo "DEC == ".$value."<". $rowprev['data']."-".$row['eventvalue'];
if ($value < ($rowprev['data']-$row['eventvalue'])) {
$sendAlert = 1;
$conditionTrue = 1;
}
break;
case 7:
// manual update
// Check if event.lasttime is less than feed.time
$feedData = $feed->get($feedid);
if ($feedData->time > $row['lasttime']){
$sendAlert = 1;
$conditionTrue = 1;
}
}
} //switch end

// calculate trigger delay
if ($conditionTrue && (time()-$row['lastuntriggeredtime'] > $row['triggerdelay']) ) {
// condition has been triggered for longer than triggerdelay
$sendAlert = 1;
}
if (!$conditionTrue) {
// store the last time stamp where condition was false
$this->mysqli->query("UPDATE event SET `lastuntriggeredtime` = '".time()."' WHERE `userid` = '".$row['userid']."' AND `id` = '".$row['id']."'");
}
}

$feedData = $feed->get($row['eventfeed']);
$message = $row['message'];
$message = str_replace('{feed}', $feedData->name, $message);
Expand All @@ -239,7 +250,7 @@ public function check_feed_event($feedid,$updatetime,$feedtime,$value,$row=NULL,
}

// event type
if ($sendAlert == 1) {
if ($sendAlert) {
switch($row['action']) {
case 0:
// email
Expand Down Expand Up @@ -267,7 +278,6 @@ public function check_feed_event($feedid,$updatetime,$feedtime,$value,$row=NULL,

//$mail->AddReplyTo("user2@gmail.com', 'First Last");


$mail->Subject = $message;
//$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

Expand Down
2 changes: 2 additions & 0 deletions event_schema.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
'userid' => array('type' => 'int(11)'),
'eventfeed' => array('type' => 'int(11)'),
'eventtype' => array('type' => 'int(11)'),
'triggerdelay' => array('type' => 'int(11)'),
'lastuntriggeredtime' => array('type' => 'int(11)'),
'eventvalue' => array('type' => 'float'),
'action' => array('type' => 'int(11)'),
'setfeed' => array('type' => 'int(11)'),
Expand Down