<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linuxmce.org/index.php?action=history&amp;feed=atom&amp;title=User%3AChrisbirkinshaw</id>
	<title>User:Chrisbirkinshaw - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linuxmce.org/index.php?action=history&amp;feed=atom&amp;title=User%3AChrisbirkinshaw"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;action=history"/>
	<updated>2026-10-28T00:36:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17705&amp;oldid=prev</id>
		<title>Chrisbirkinshaw: /* The Ruby Code */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17705&amp;oldid=prev"/>
		<updated>2009-02-20T17:22:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;The Ruby Code&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:22, 20 February 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot;&gt;Line 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 61:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Doesn&amp;#039;t cope with messages like this: 0 162 9 0 &amp;quot;&amp;amp;&amp;quot; 173 175,176,177, 1 192 97 &amp;quot;&amp;quot; 98 &amp;quot;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Doesn&amp;#039;t cope with messages like this: 0 162 9 0 &amp;quot;&amp;amp;&amp;quot; 173 175,176,177, 1 192 97 &amp;quot;&amp;quot; 98 &amp;quot;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# i.e. where a message is to multiple destinations  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# i.e. where a message is to multiple destinations  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Should ignore the source of a message when correlating (triggers etc should be setup as classes not just strings to allow&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# more flexibility)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Disclaimer: This code is seriously messy and VERY limited! It&amp;#039;s just a quick hack to get things working until  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Disclaimer: This code is seriously messy and VERY limited! It&amp;#039;s just a quick hack to get things working until  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l76&quot;&gt;Line 76:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;device_id=162&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;device_id=162&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# note that a trigger is in a different format to an enable/disable message, as for the enable/disable message we ignore the source id&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ruleconfig = [&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ruleconfig = [&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;164 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 103 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 103 1 193&amp;quot;, :name =&amp;gt; &amp;quot;entrance&amp;quot;, :zoneid =&amp;gt; 1, :roomid =&amp;gt; 3,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;164 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 103 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 103 1 193&amp;quot;, :name =&amp;gt; &amp;quot;entrance&amp;quot;, :zoneid =&amp;gt; 1, :roomid =&amp;gt; 3,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;145 &lt;/del&gt;175 1 192&#039;, :disable =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;145 &lt;/del&gt;175 1 193&#039; },&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &#039;175 1 192&#039;, :disable =&amp;gt; &#039;175 1 193&#039; },&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;166 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 104 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 104 1 193&amp;quot;, :name =&amp;gt; &amp;quot;kitchen&amp;quot;, :zoneid =&amp;gt; 2, :roomid =&amp;gt; 5,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;166 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 104 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 104 1 193&amp;quot;, :name =&amp;gt; &amp;quot;kitchen&amp;quot;, :zoneid =&amp;gt; 2, :roomid =&amp;gt; 5,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;145 &lt;/del&gt;176 1 192&#039;, :disable =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;145 &lt;/del&gt;176 1 193&#039; },&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &#039;176 1 192&#039;, :disable =&amp;gt; &#039;176 1 193&#039; },&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;165 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 105 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 105 1 193&amp;quot;, :name =&amp;gt; &amp;quot;landing&amp;quot;, :zoneid =&amp;gt; 3, :roomid =&amp;gt; 4,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;165 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 105 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 105 1 193&amp;quot;, :name =&amp;gt; &amp;quot;landing&amp;quot;, :zoneid =&amp;gt; 3, :roomid =&amp;gt; 4,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;145 &lt;/del&gt;177 1 192&#039;, :disable =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;145 &lt;/del&gt;177 1 193&#039; },&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &#039;177 1 192&#039;, :disable =&amp;gt; &#039;177 1 193&#039; },&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;78 &lt;/del&gt;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;sw 1 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;82 9 1 694 2 5 9 48&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;bedroom orbiter registered&quot;},&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;78 &lt;/del&gt;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 102 1 193&quot;, :name =&amp;gt; &quot;sw 1 off&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{ :trigger =&amp;gt; &#039;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;bedroom md shutdown&quot;},&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;82 &lt;/del&gt;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;sw 2 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{ :trigger =&amp;gt; &#039;&lt;/ins&gt;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;sw 1 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;82 &lt;/del&gt;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 102 1 193&quot;, :name =&amp;gt; &quot;sw 2 off&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 102 1 193&quot;, :name =&amp;gt; &quot;sw 1 off&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;83 &lt;/del&gt;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 154 1 192&quot;, :name =&amp;gt; &quot;sw 3 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;sw 2 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;83 &lt;/del&gt;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 154 1 193&quot;, :name =&amp;gt; &quot;sw 3 off&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 102 1 193&quot;, :name =&amp;gt; &quot;sw 2 off&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;83 &lt;/del&gt;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 99 1 192&quot;, :name =&amp;gt; &quot;sw 3 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 154 1 192&quot;, :name =&amp;gt; &quot;sw 3 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;83 &lt;/del&gt;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 99 1 193&quot;, :name =&amp;gt; &quot;sw 3 off&quot;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 154 1 193&quot;, :name =&amp;gt; &quot;sw 3 off&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &#039;162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 99 1 192&quot;, :name =&amp;gt; &quot;sw 3 on&quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &quot;162 2 9 25 0&quot;, :response =&amp;gt; &quot;162 99 1 193&quot;, :name =&amp;gt; &quot;sw 3 off&quot;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l175&quot;&gt;Line 175:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 176:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;def correlate_msg(msg)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;def correlate_msg(msg)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;puts &amp;quot;Correlating message: (#{msg})&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;puts &amp;quot;Correlating message: (#{msg})&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;msg_without_from_address = msg.gsub(/^[0-9]*\s/, &#039;&#039;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@rules.each do |rule|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@rules.each do |rule|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if msg == rule[:trigger]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if msg == rule[:trigger]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l202&quot;&gt;Line 202:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 204:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  end	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  end	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;msg &lt;/del&gt;== zone[:enable]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;msg_without_from_address &lt;/ins&gt;== zone[:enable]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   puts &amp;quot;Enabling auto lights for #{zone[:name]}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   puts &amp;quot;Enabling auto lights for #{zone[:name]}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   zone[:auto] = 1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   zone[:auto] = 1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;msg &lt;/del&gt;== zone[:disable]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;if &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;msg_without_from_address &lt;/ins&gt;== zone[:disable]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   puts &amp;quot;Disabling auto lights for #{zone[:name]}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   puts &amp;quot;Disabling auto lights for #{zone[:name]}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   zone[:auto] = 0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   zone[:auto] = 0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l239&quot;&gt;Line 239:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 241:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chrisbirkinshaw</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17485&amp;oldid=prev</id>
		<title>Chrisbirkinshaw: /* Requirements */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17485&amp;oldid=prev"/>
		<updated>2009-01-30T17:49:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Requirements&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:49, 30 January 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l244&quot;&gt;Line 244:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 244:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Requirements ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Requirements ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;SSH access to the core from your Mac without using passwords (Google will help)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1. &lt;/del&gt;SSH access to the core from your Mac without using passwords (Google will help)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;A lamp at your desk, controlled by LMCE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2. &lt;/del&gt;A lamp at your desk, controlled by LMCE&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== The Script ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== The Script ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chrisbirkinshaw</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17484&amp;oldid=prev</id>
		<title>Chrisbirkinshaw: /* Requirements */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17484&amp;oldid=prev"/>
		<updated>2009-01-30T17:49:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Requirements&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:49, 30 January 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this example we imagine a room called &amp;quot;hall&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this example we imagine a room called &amp;quot;hall&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1. &lt;/del&gt;Security sensor in the hall&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Security sensor in the hall&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2. &lt;/del&gt;A light in the hall controlled by LMCE&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;A light in the hall controlled by LMCE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3. &lt;/del&gt;Dummy On/Off Light Switch &quot;Night/Day&quot; (place on floorplan inside a box with a label drawn on)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Dummy On/Off Light Switch &quot;Night/Day&quot; (place on floorplan inside a box with a label drawn on)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4. &lt;/del&gt;Dummy On/Off Light Switch &quot;Hall Auto&quot; (place on floorplan inside a box with a label drawn on)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Dummy On/Off Light Switch &quot;Hall Auto&quot; (place on floorplan inside a box with a label drawn on)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5. &lt;/del&gt;Event responder configured to switch &quot;Night/Day&quot; on and &quot;Hall Auto&quot; off at sunrise&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Event responder configured to switch &quot;Night/Day&quot; on and &quot;Hall Auto&quot; off at sunrise&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6. &lt;/del&gt;Event responder configured to switch &quot;Night/Day&quot; off and &quot;Hall Auto&quot; on at sunset&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Event responder configured to switch &quot;Night/Day&quot; off and &quot;Hall Auto&quot; on at sunset&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;7. &lt;/del&gt;Lighting scenario &quot;Lights Auto&quot; to switch &quot;Hall Auto&quot; on from the home screen&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Lighting scenario &quot;Lights Auto&quot; to switch &quot;Hall Auto&quot; on from the home screen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8. &lt;/del&gt;Lighting scenario &quot;Lights Manual&quot; to switch &quot;Hall Auto&quot; off from the home screen  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Lighting scenario &quot;Lights Manual&quot; to switch &quot;Hall Auto&quot; off from the home screen  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;9. &lt;/del&gt;Code below saved as interceptor.rb or similar (name is not important)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Code below saved as interceptor.rb or similar (name is not important)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;10. &lt;/del&gt;Device configured for the interceptor (see [[Plain Text DCE Messages]]) and the id inserted into the code below at the top&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Device configured for the interceptor (see [[Plain Text DCE Messages]]) and the id inserted into the code below at the top&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Procedure ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Procedure ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chrisbirkinshaw</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17483&amp;oldid=prev</id>
		<title>Chrisbirkinshaw: /* The Ruby Code */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17483&amp;oldid=prev"/>
		<updated>2009-01-30T17:48:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;The Ruby Code&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:48, 30 January 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== My System ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== My System ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l85&quot;&gt;Line 85:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 84:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;165 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 105 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 105 1 193&amp;quot;, :name =&amp;gt; &amp;quot;landing&amp;quot;, :zoneid =&amp;gt; 3, :roomid =&amp;gt; 4,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;165 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 105 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 105 1 193&amp;quot;, :name =&amp;gt; &amp;quot;landing&amp;quot;, :zoneid =&amp;gt; 3, :roomid =&amp;gt; 4,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &amp;#039;145 177 1 192&amp;#039;, :disable =&amp;gt; &amp;#039;145 177 1 193&amp;#039; },&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         :timeout =&amp;gt; 90, :enable =&amp;gt; &amp;#039;145 177 1 192&amp;#039;, :disable =&amp;gt; &amp;#039;145 177 1 193&amp;#039; },&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{ :trigger =&amp;gt; &#039;48 9 1 694 2 5 9 48&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;bedroom orbiter registered&quot;},&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{ :trigger =&amp;gt; &#039;78 162 2 9 25 1&#039;, :response =&amp;gt; &quot;162 102 1 192&quot;, :name =&amp;gt; &quot;bedroom md shutdown&quot;},&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;78 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 102 1 192&amp;quot;, :name =&amp;gt; &amp;quot;sw 1 on&amp;quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;#039;78 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 102 1 192&amp;quot;, :name =&amp;gt; &amp;quot;sw 1 on&amp;quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;quot;78 162 2 9 25 0&amp;quot;, :response =&amp;gt; &amp;quot;162 102 1 193&amp;quot;, :name =&amp;gt; &amp;quot;sw 1 off&amp;quot;},&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{ :trigger =&amp;gt; &amp;quot;78 162 2 9 25 0&amp;quot;, :response =&amp;gt; &amp;quot;162 102 1 193&amp;quot;, :name =&amp;gt; &amp;quot;sw 1 off&amp;quot;},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Chrisbirkinshaw</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17482&amp;oldid=prev</id>
		<title>Chrisbirkinshaw: New page:  == My System ==  Things which might be interesting:  === Motion controlled lighting ===  Turn on lights when presence is detected in a room, taking into account day/night and also having ...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Chrisbirkinshaw&amp;diff=17482&amp;oldid=prev"/>
		<updated>2009-01-30T17:47:12Z</updated>

		<summary type="html">&lt;p&gt;New page:  == My System ==  Things which might be interesting:  === Motion controlled lighting ===  Turn on lights when presence is detected in a room, taking into account day/night and also having ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== My System ==&lt;br /&gt;
&lt;br /&gt;
Things which might be interesting:&lt;br /&gt;
&lt;br /&gt;
=== Motion controlled lighting ===&lt;br /&gt;
&lt;br /&gt;
Turn on lights when presence is detected in a room, taking into account day/night and also having a way of overriding (for those dark English afternoons!)&lt;br /&gt;
&lt;br /&gt;
=== Automatic Computer Desk Lamp ===&lt;br /&gt;
&lt;br /&gt;
Turn on desk lamp when I&amp;#039;m using my Mac and turn it off after XX idle mins (i.e. no mouse or keyboard input)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Motion Controlled Lighting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reasons this can&amp;#039;t be done in LMCE natively at the moment ===&lt;br /&gt;
&lt;br /&gt;
1. It is not possible to set a timer and then reset that timer. This means your lights will be constantly going on and off, as the old timers expire and then movement is picked up again.&lt;br /&gt;
&lt;br /&gt;
2. It is not possible to say &amp;quot;Turn on X if motion detected in R and Y is on&amp;quot;, so you cannot have override buttons for your auto lights (Y, in this example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
In this example we imagine a room called &amp;quot;hall&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. Security sensor in the hall&lt;br /&gt;
2. A light in the hall controlled by LMCE&lt;br /&gt;
3. Dummy On/Off Light Switch &amp;quot;Night/Day&amp;quot; (place on floorplan inside a box with a label drawn on)&lt;br /&gt;
4. Dummy On/Off Light Switch &amp;quot;Hall Auto&amp;quot; (place on floorplan inside a box with a label drawn on)&lt;br /&gt;
5. Event responder configured to switch &amp;quot;Night/Day&amp;quot; on and &amp;quot;Hall Auto&amp;quot; off at sunrise&lt;br /&gt;
6. Event responder configured to switch &amp;quot;Night/Day&amp;quot; off and &amp;quot;Hall Auto&amp;quot; on at sunset&lt;br /&gt;
7. Lighting scenario &amp;quot;Lights Auto&amp;quot; to switch &amp;quot;Hall Auto&amp;quot; on from the home screen&lt;br /&gt;
8. Lighting scenario &amp;quot;Lights Manual&amp;quot; to switch &amp;quot;Hall Auto&amp;quot; off from the home screen &lt;br /&gt;
9. Code below saved as interceptor.rb or similar (name is not important)&lt;br /&gt;
10. Device configured for the interceptor (see [[Plain Text DCE Messages]]) and the id inserted into the code below at the top&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Procedure ===&lt;br /&gt;
&lt;br /&gt;
Run the code below in a loop:&lt;br /&gt;
&lt;br /&gt;
while true ; do ruby interceptor.rb ; done&lt;br /&gt;
&lt;br /&gt;
You should see it connect and register intercepts for Lighting and Security messages. You can now configure the interceptor by triggering events, looking at the output of the interceptor for where it says for example:&lt;br /&gt;
&lt;br /&gt;
Correlating message: (165 -108 2 9 25 &amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
You can take the part from within the brackets and use it in the rules.&lt;br /&gt;
&lt;br /&gt;
You can see a few rules defined in my example, and will notice that you can have rules for automatic lighting zones, and also straightforward rules for triggering events. The latter scenario is not really very useful as LMCE is pretty good at doing this anyway. I mostly used that stuff for testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;I am not a programmer, so this code was written as I scoured the net for Ruby examples and tried to make sense of it. I know it is messy and very there is a lot of garbage in there, but I did not think it was worth spending the time on. Once LMCE has developed a little more this code is useless, so it should remain a simple hack to get along in the meantime.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== The Ruby Code ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Known issues:&lt;br /&gt;
#&lt;br /&gt;
# Doesn&amp;#039;t cope with messages like this: 0 162 9 0 &amp;quot;&amp;amp;&amp;quot; 173 175,176,177, 1 192 97 &amp;quot;&amp;quot; 98 &amp;quot;&amp;quot;&lt;br /&gt;
# i.e. where a message is to multiple destinations &lt;br /&gt;
#&lt;br /&gt;
# Should ignore the source of a message when correlating (triggers etc should be setup as classes not just strings to allow&lt;br /&gt;
# more flexibility)&lt;br /&gt;
#&lt;br /&gt;
# Disclaimer: This code is seriously messy and VERY limited! It&amp;#039;s just a quick hack to get things working until &lt;br /&gt;
# Linux MCE can support resettable timers and device state can be used as a condition for advanced event responders&lt;br /&gt;
#  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
require &amp;#039;socket&amp;#039;&lt;br /&gt;
include Socket::Constants  &lt;br /&gt;
&lt;br /&gt;
device_id=162&lt;br /&gt;
&lt;br /&gt;
ruleconfig = [&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;164 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 103 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 103 1 193&amp;quot;, :name =&amp;gt; &amp;quot;entrance&amp;quot;, :zoneid =&amp;gt; 1, :roomid =&amp;gt; 3, &lt;br /&gt;
        :timeout =&amp;gt; 90, :enable =&amp;gt; &amp;#039;145 175 1 192&amp;#039;, :disable =&amp;gt; &amp;#039;145 175 1 193&amp;#039; },&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;166 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 104 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 104 1 193&amp;quot;, :name =&amp;gt; &amp;quot;kitchen&amp;quot;, :zoneid =&amp;gt; 2, :roomid =&amp;gt; 5, &lt;br /&gt;
        :timeout =&amp;gt; 90, :enable =&amp;gt; &amp;#039;145 176 1 192&amp;#039;, :disable =&amp;gt; &amp;#039;145 176 1 193&amp;#039; },&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;165 -108 2 9 25 &amp;quot;1&amp;quot;&amp;#039;, :on =&amp;gt; &amp;quot;162 105 1 192&amp;quot;, :off =&amp;gt; &amp;quot;162 105 1 193&amp;quot;, :name =&amp;gt; &amp;quot;landing&amp;quot;, :zoneid =&amp;gt; 3, :roomid =&amp;gt; 4, &lt;br /&gt;
        :timeout =&amp;gt; 90, :enable =&amp;gt; &amp;#039;145 177 1 192&amp;#039;, :disable =&amp;gt; &amp;#039;145 177 1 193&amp;#039; },&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;48 9 1 694 2 5 9 48&amp;#039;, :response =&amp;gt; &amp;quot;162 102 1 192&amp;quot;, :name =&amp;gt; &amp;quot;bedroom orbiter registered&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;78 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 102 1 192&amp;quot;, :name =&amp;gt; &amp;quot;bedroom md shutdown&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;78 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 102 1 192&amp;quot;, :name =&amp;gt; &amp;quot;sw 1 on&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;quot;78 162 2 9 25 0&amp;quot;, :response =&amp;gt; &amp;quot;162 102 1 193&amp;quot;, :name =&amp;gt; &amp;quot;sw 1 off&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;82 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 102 1 192&amp;quot;, :name =&amp;gt; &amp;quot;sw 2 on&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;quot;82 162 2 9 25 0&amp;quot;, :response =&amp;gt; &amp;quot;162 102 1 193&amp;quot;, :name =&amp;gt; &amp;quot;sw 2 off&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;83 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 154 1 192&amp;quot;, :name =&amp;gt; &amp;quot;sw 3 on&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;quot;83 162 2 9 25 0&amp;quot;, :response =&amp;gt; &amp;quot;162 154 1 193&amp;quot;, :name =&amp;gt; &amp;quot;sw 3 off&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;#039;83 162 2 9 25 1&amp;#039;, :response =&amp;gt; &amp;quot;162 99 1 192&amp;quot;, :name =&amp;gt; &amp;quot;sw 3 on&amp;quot;},&lt;br /&gt;
{ :trigger =&amp;gt; &amp;quot;83 162 2 9 25 0&amp;quot;, :response =&amp;gt; &amp;quot;162 99 1 193&amp;quot;, :name =&amp;gt; &amp;quot;sw 3 off&amp;quot;}&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
def configure(ruleconfig)&lt;br /&gt;
  @rules = []&lt;br /&gt;
  @zones = [] &lt;br /&gt;
  ruleconfig.each do |rc|&lt;br /&gt;
    if rc[:zoneid]&lt;br /&gt;
    	zone = {:id =&amp;gt; rc[:zoneid], :roomid =&amp;gt; rc[:roomid], :trigger =&amp;gt; rc[:trigger], :name =&amp;gt; rc[:name], :on =&amp;gt; rc[:on], :off =&amp;gt; rc[:off], &lt;br /&gt;
			:timeout =&amp;gt; rc[:timeout], :watching_media =&amp;gt; 0, :listening_media =&amp;gt; 0, :auto =&amp;gt; 1, :enable =&amp;gt; rc[:enable], :disable =&amp;gt; rc[:disable] }&lt;br /&gt;
p zone&lt;br /&gt;
@zones &amp;lt;&amp;lt; zone&lt;br /&gt;
    else&lt;br /&gt;
        @rules &amp;lt;&amp;lt; rc&lt;br /&gt;
	p rc&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
    puts &amp;quot;Configured #{@zones.size} zones and #{@rules.size} rules&amp;quot;&lt;br /&gt;
end   &lt;br /&gt;
  &lt;br /&gt;
def connect_lmce(device_id)&lt;br /&gt;
  @in_socket = Socket.new( AF_INET, SOCK_STREAM, 0 )&lt;br /&gt;
  in_sockaddr = Socket.pack_sockaddr_in( 3450, &amp;#039;localhost&amp;#039; )&lt;br /&gt;
  @in_socket.connect( in_sockaddr )&lt;br /&gt;
&lt;br /&gt;
  @out_socket = Socket.new( AF_INET, SOCK_STREAM, 0 )&lt;br /&gt;
  out_sockaddr = Socket.pack_sockaddr_in( 3450, &amp;#039;localhost&amp;#039; )&lt;br /&gt;
  @out_socket.connect( out_sockaddr )&lt;br /&gt;
&lt;br /&gt;
  puts &amp;quot;Setting receiving connection&amp;quot;&lt;br /&gt;
  @in_socket.send(&amp;quot;COMMAND #{device_id}\n&amp;quot;,0)&lt;br /&gt;
  puts @in_socket.recv( 100 )&lt;br /&gt;
    &lt;br /&gt;
  puts &amp;quot;Setting up sending connection&amp;quot;&lt;br /&gt;
  @out_socket.send(&amp;quot;EVENT #{device_id}\n&amp;quot;,0)&lt;br /&gt;
  puts @out_socket.recv( 100 )&lt;br /&gt;
     &lt;br /&gt;
  sleep 1&lt;br /&gt;
&lt;br /&gt;
  puts &amp;quot;Registering for plain text messages&amp;quot;&lt;br /&gt;
  @out_socket.send(&amp;quot;PLAIN_TEXT\n&amp;quot;,0)&lt;br /&gt;
  puts @out_socket.recv( 100 )&lt;br /&gt;
  &lt;br /&gt;
  puts &amp;quot;Finished initialising&amp;quot;&lt;br /&gt;
  return @in_socket, @out_socket&lt;br /&gt;
end&lt;br /&gt;
  &lt;br /&gt;
def register_messages(device_id)&lt;br /&gt;
  puts &amp;quot;Registering for message intercepts (lighting devices)&amp;quot;&lt;br /&gt;
  @out_socket.send(&amp;quot;MESSAGET 24 \n #{device_id} -1000 8 0 5 2 4 84\n&amp;quot;,0)&lt;br /&gt;
  puts @out_socket.recv(100)&lt;br /&gt;
   &lt;br /&gt;
  puts &amp;quot;Registering for message intercepts (security devices)&amp;quot;&lt;br /&gt;
  @out_socket.send(&amp;quot;MESSAGET 24 \n #{device_id} -1000 8 0 5 1 4 73 \n&amp;quot;,0)&lt;br /&gt;
  puts @out_socket.recv(100)&lt;br /&gt;
   &lt;br /&gt;
  puts &amp;quot;Finished registration&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def process_msg(msg)&lt;br /&gt;
  puts &amp;quot;Received message #{msg}&amp;quot;&lt;br /&gt;
  msg_type_1 = /(\w*)\s(-?\w*),?\s(\w*)\s(\w*)\s(\w*)\s(\&amp;quot;\w*\&amp;quot;)\s(\w*)\s(\&amp;quot;\w*\&amp;quot;)/ # 2 param&lt;br /&gt;
  msg_type_2 = /(\w*)\s(-?\w*),?\s(\w*)\s(\w*)\s(\w*)\s(\&amp;quot;\w*\&amp;quot;)/ # 1 param&lt;br /&gt;
  msg_type_3 = /(\w*)\s(-?\w*),?\s(\w*)\s(\w*)/ # no params&lt;br /&gt;
  msg = msg.gsub(/.*\&amp;amp;\&amp;quot;\s/, &amp;quot;&amp;quot;).gsub(&amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;) &lt;br /&gt;
  puts &amp;quot;Processing message #{msg}&amp;quot;&lt;br /&gt;
  case msg&lt;br /&gt;
	when msg_type_1&lt;br /&gt;
	  msg_type_1.match(msg)&lt;br /&gt;
 	  puts &amp;quot;Type 1: From=#{$1} To=#{$2} Type=#{$3} MsgId=#{$4} P1Id=#{$5} P1Val=#{$6} P2Id=#{$7} P2Val=#{$8}&amp;quot; &lt;br /&gt;
   	  correlate_msg(&amp;quot;#{$1} #{$2} #{$3} #{$4} #{$5} #{$6} #{$7} #{$8}&amp;quot;)&lt;br /&gt;
	when msg_type_2&lt;br /&gt;
          msg_type_2.match(msg)&lt;br /&gt;
          puts &amp;quot;Type 2: From=#{$1} To=#{$2} Type=#{$3} MsgId=#{$4} P1Id=#{$5} P1Val=#{$6}&amp;quot;&lt;br /&gt;
          correlate_msg(&amp;quot;#{$1} #{$2} #{$3} #{$4} #{$5} #{$6}&amp;quot;)&lt;br /&gt;
	when msg_type_3&lt;br /&gt;
          msg_type_3.match(msg)&lt;br /&gt;
          puts &amp;quot;Type 3: From=#{$1} To=#{$2} Type=#{$3} MsgId=#{$4}&amp;quot;&lt;br /&gt;
          correlate_msg(&amp;quot;#{$1} #{$2} #{$3} #{$4}&amp;quot;)&lt;br /&gt;
	else puts &amp;quot;Unknown message &amp;#039;#{msg}&amp;#039;&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
     &lt;br /&gt;
def correlate_msg(msg)&lt;br /&gt;
puts &amp;quot;Correlating message: (#{msg})&amp;quot;&lt;br /&gt;
@rules.each do |rule|&lt;br /&gt;
if msg == rule[:trigger]&lt;br /&gt;
 puts &amp;quot;Rule #{rule[:name]} Matched&amp;quot;&lt;br /&gt;
 puts &amp;quot;Sending Message #{rule[:response]}, length #{rule[:response].length}&amp;quot;&lt;br /&gt;
 @out_socket.send(&amp;quot;MESSAGET #{rule[:response].length + 1} \n #{rule[:response]} \n&amp;quot;, 0)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
@zones.each do |zone|&lt;br /&gt;
if msg == zone[:trigger] &amp;amp;&amp;amp; zone[:auto] == 1&lt;br /&gt;
 puts &amp;quot;Zone #{zone[:name]} matched - setting timer for #{zone[:timeout]} secs&amp;quot;&lt;br /&gt;
 if zone[:timer] and zone[:timer].alive?&lt;br /&gt;
   zone[:timer].kill&lt;br /&gt;
 else&lt;br /&gt;
   puts &amp;quot;Switching on light!&amp;quot;&lt;br /&gt;
   @out_socket.send(&amp;quot;MESSAGET #{zone[:on].length + 1} \n #{zone[:on]} \n&amp;quot;, 0)&lt;br /&gt;
 end&lt;br /&gt;
 zone[:timer] = Thread.new do &lt;br /&gt;
   puts &amp;quot;starting new thread&amp;quot;&lt;br /&gt;
   counter = 0&lt;br /&gt;
   while counter &amp;lt; zone[:timeout]&lt;br /&gt;
	counter += 1&lt;br /&gt;
	sleep 1&lt;br /&gt;
   end&lt;br /&gt;
   puts &amp;quot;Switching off light!&amp;quot;&lt;br /&gt;
   @out_socket.send(&amp;quot;MESSAGET #{zone[:off].length + 1} \n #{zone[:off]} \n&amp;quot;, 0)&lt;br /&gt;
 end	&lt;br /&gt;
end&lt;br /&gt;
if msg == zone[:enable]&lt;br /&gt;
  puts &amp;quot;Enabling auto lights for #{zone[:name]}&amp;quot;&lt;br /&gt;
  zone[:auto] = 1&lt;br /&gt;
end&lt;br /&gt;
if msg == zone[:disable]&lt;br /&gt;
  puts &amp;quot;Disabling auto lights for #{zone[:name]}&amp;quot;&lt;br /&gt;
  zone[:auto] = 0&lt;br /&gt;
end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
configure(ruleconfig) &lt;br /&gt;
@in_socket, @out_socket = connect_lmce(device_id)&lt;br /&gt;
register_messages(device_id)&lt;br /&gt;
&lt;br /&gt;
loop {&lt;br /&gt;
    #puts &amp;quot;Start Loop&amp;quot;&lt;br /&gt;
    if data = @in_socket.read( 11 )&lt;br /&gt;
    #puts &amp;quot;Received data: #{ data }&amp;quot;&lt;br /&gt;
    if (/MESSAGET\ (..)/.match(data))&lt;br /&gt;
      #puts &amp;quot;Message size: #{$1}&amp;quot;&lt;br /&gt;
      len = $1.to_i + 2&lt;br /&gt;
      msg = @in_socket.read( len )&lt;br /&gt;
      @in_socket.send(&amp;quot;OK \n&amp;quot;, 0)&lt;br /&gt;
      process_msg(msg)&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
      @in_socket.close&lt;br /&gt;
      @out_socket.close&lt;br /&gt;
      sleep 3&lt;br /&gt;
      @in_socket, @out_socket = connect_lmce(device_id)&lt;br /&gt;
      register_messages(device_id)&lt;br /&gt;
    end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Automatic Computer Desk Lamp ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
1. SSH access to the core from your Mac without using passwords (Google will help)&lt;br /&gt;
2. A lamp at your desk, controlled by LMCE&lt;br /&gt;
&lt;br /&gt;
=== The Script ===&lt;br /&gt;
&lt;br /&gt;
Save this as CheckIdle.command or similar and run by double clicking.&lt;br /&gt;
&lt;br /&gt;
You might want to change &amp;quot;root@$dcerouter&amp;quot; to something more secure in the code below!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
dcerouter=&amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
lamp=&amp;quot;108&amp;quot;&lt;br /&gt;
timeout=&amp;quot;300&amp;quot;&lt;br /&gt;
&lt;br /&gt;
## Do not change anything below here ##&lt;br /&gt;
&lt;br /&gt;
status=0 &lt;br /&gt;
while true ; do &lt;br /&gt;
&lt;br /&gt;
idle=`ioreg -c IOHIDSystem | perl -ane &amp;#039;if (/Idle/) {$idle=(pop @F)/1000000000; print $idle;last}&amp;#039; | sed &amp;#039;s/\..*//&amp;#039;` &lt;br /&gt;
if [ $idle -gt $timeout ] ; then&lt;br /&gt;
 if [ $status -eq 1 ] ; then&lt;br /&gt;
  ssh root@$dcerouter &amp;quot;/usr/pluto/bin/MessageSend localhost $lamp $lamp 1 193&amp;quot; &amp;amp;&amp;amp; status=0 &amp;amp;&amp;amp; echo &amp;quot;Lamp turned off&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
else&lt;br /&gt;
  if [ $status -eq 0 ] ; then&lt;br /&gt;
    ssh root@$dcerouter &amp;quot;/usr/pluto/bin/MessageSend localhost $lamp $lamp 1 192&amp;quot; &amp;amp;&amp;amp; status=1 &amp;amp;&amp;amp; echo &amp;quot;Lamp turned on&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
  &lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisbirkinshaw</name></author>
	</entry>
</feed>