-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathActivity_log.hgx
50 lines (41 loc) · 1.8 KB
/
Activity_log.hgx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-16"?>
<ProgramBlock xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ConditionType>OnTrue</ConditionType>
<Conditions />
<Commands />
<ScriptCondition>Program.Setup(()=>{
Program.AddInputField("ActivityLog.Path", @"/usr/local/bin/homegenie/log/Activity.log", "Path to log file");
Program.AddInputField("ActivityLog.ProgramStatus", "FALSE", "Output Program.Status events to log");
});
return true;
</ScriptCondition>
<ScriptSource>string ActivityLogPath = Program.InputField("ActivityLog.Path").Value;
string PROGRAM_STATUS = Program.InputField("ActivityLog.ProgramStatus").Value;
Action<string>
Log = (string logtext) => {
string text = DateTime.Now.ToLocalTime().ToString("yyyyMMdd HH:mm:ss.fffffff") + " ; " + logtext + "\n";
System.IO.File.AppendAllText(ActivityLogPath, text);
};
When.ModuleParameterIsChanging((module, parameter) =>
{
string logtext = module.Instance.Address + " ; " + module.Instance.Name + " ; " + parameter.Name + " ; " + parameter.Value;
// Decide if output is needed
if ( !((parameter.Name == "Program.Status") && (module.Instance.Name == "Energy Monitor") && (PROGRAM_STATUS == "FALSE")) )
{
Log(logtext);
}
return true;
});
Program.GoBackground();</ScriptSource>
<ScriptErrors>Program update is required.</ScriptErrors>
<Domain>HomeAutomation.HomeGenie.Automation</Domain>
<Address>1002</Address>
<Name>Activity log</Name>
<Description>Generate a log of HG activity</Description>
<Group>NEW</Group>
<Features />
<ActivationTime xsi:nil="true" />
<TriggerTime>2016-12-29T01:39:20.512243Z</TriggerTime>
<Type>CSharp</Type>
<IsEnabled>true</IsEnabled>
</ProgramBlock>