{"id":4554,"date":"2020-06-04T10:09:38","date_gmt":"2020-06-04T10:09:38","guid":{"rendered":"https:\/\/grodansparadis.com\/wordpress\/?p=4554"},"modified":"2020-06-04T10:09:54","modified_gmt":"2020-06-04T10:09:54","slug":"node-red-vscp-pir-door-sensors-howto","status":"publish","type":"post","link":"https:\/\/grodansparadis.com\/wordpress\/?p=4554","title":{"rendered":"#node-red + #VSCP + PIR + door sensors howto"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1215\" height=\"903\" data-attachment-id=\"4588\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4588\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?fit=1215%2C903&amp;ssl=1\" data-orig-size=\"1215,903\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-12-01-23\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?fit=580%2C431&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?fit=580%2C431&amp;ssl=1\" alt=\"\" class=\"wp-image-4588\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?w=1215&amp;ssl=1 1215w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?resize=300%2C223&amp;ssl=1 300w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?resize=1024%2C761&amp;ssl=1 1024w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?resize=768%2C571&amp;ssl=1 768w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-12-01-23.png?resize=1200%2C892&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In a previous howto (<a href=\"https:\/\/grodansparadis.com\/wordpress\/?p=4517\">Getting started with node-red-contrib-vscp<\/a>) we were looking at how to display temperature data from VSCP modules in node-red. In this howto we will look at the same hardware setup but concentrate on output from one module in the setup, the <a href=\"https:\/\/www.grodansparadis.com\/beijing\/beijing.html\">CAN4VSCP Beijing<\/a> module.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beijing is a general I\/O module which in this setup is used to detect input from three PIR sensors and three magnetic door sensors. The inputs are currently used like this<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>0<\/strong><\/td><td>Magnetic door sensor office door.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>1<\/strong><\/td><td>Magnetic door sensor cellar door.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>2<\/strong><\/td><td>Magnetic door sensor main entrance door.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>3<\/strong><\/td><td>Unused.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>4<\/strong><\/td><td>PIR sensor cellar.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>5<\/strong><\/td><td>PIR sensor main entrance.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>6<\/strong><\/td><td>Unused.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>7<\/strong><\/td><td>PIR sensor inside of office door.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The Beijing module will send a <a href=\"https:\/\/docs.vscp.org\/spec\/latest\/#\/.\/class1.information?id=type3\">CLASS1.INFORMATION, Type=ON<\/a>\/<a href=\"https:\/\/docs.vscp.org\/spec\/latest\/#\/.\/class1.information?id=type4\">OFF<\/a> event when any of the sensors are activated. The data for the events are defined as follows<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">Data byte<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><td>index. Often used as an index for channels within a module.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td>Zone for which event applies to (0-255). 255 is all zones.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><td>Sub-zone for which event applies to (0-255). 255 is all sub-zones.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The index byte ( byte 0) will this contain the index for the PIR or switch as of above. Zone and subzone is used to indicate the sensors position and here I use bits 7,6,5 of the zone to indicate the floor (1 in this case) and the rest of the bits are set to the room number on that floor (2 in this case). Zone is therefore set to 0b00100010 = 0x22 = 34. Subzones are set to the same as the sensor index. Any schema of your own preference can be used for this. It is entirely up to the user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Beijing module is set to nickname id = 1. This is important as we need to filter on this nickname in case more PIR&#8217;s\/switches are added in the future.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So as an example. If the main door is opened a <a href=\"https:\/\/docs.vscp.org\/spec\/latest\/#\/.\/class1.information?id=type3\">CLASS1.INFORMATION, Type=ON (3)<\/a> event will be sent and when it is closed again a <a href=\"https:\/\/docs.vscp.org\/spec\/latest\/#\/.\/class1.information?id=type4\">CLASS1.INFORMATION, Type=OFF (4)<\/a> event will be sent. The data will in both cases be<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Byte 0 =  2 for main entrance door.<\/li><li>Byte 1 =  34, the set zone.<\/li><li>Byte 2 = 2, subzone for main entrance door.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In our node-red flow we start as in the previous howto with a connection to pi11 the Raspberry Pi that is connected to the Beijing module.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"157\" height=\"152\" data-attachment-id=\"4556\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4556\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-01-22-48-33.png?fit=157%2C152&amp;ssl=1\" data-orig-size=\"157,152\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-01-22-48-33\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-01-22-48-33.png?fit=157%2C152&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-01-22-48-33.png?resize=157%2C152&#038;ssl=1\" alt=\"\" class=\"wp-image-4556\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is a <strong><a href=\"https:\/\/flows.nodered.org\/node\/node-red-contrib-vscp-tcp\">vscp-tcp-in<\/a><\/strong> node and it is configured like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"442\" data-attachment-id=\"4571\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4571\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-03-16-05-35.png?fit=458%2C442&amp;ssl=1\" data-orig-size=\"458,442\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-03-16-05-35\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-03-16-05-35.png?fit=458%2C442&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-03-16-05-35.png?resize=458%2C442&#038;ssl=1\" alt=\"\" class=\"wp-image-4571\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-03-16-05-35.png?w=458&amp;ssl=1 458w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-03-16-05-35.png?resize=300%2C290&amp;ssl=1 300w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing fancy or strange here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Without filtering we will get all events on the bus. But we are only interested in the events coming from the Beijing module with nickname = 1. So in the filter above we have decided to set a filter that only let events through from that specific module. This filter is set to the GUID for the interface the Beijing module is located on with the LSB set to the nickname of the Beijing module. Here <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a href=\"FF:FF:FF:FF:FF:FF:FF:FD:C0:A8:01:2C:11:22:00:01\" data-type=\"FF:FF:FF:FF:FF:FF:FF:FD:C0:A8:01:2C:11:22:00:01\">FF:FF:FF:FF:FF:FF:FF:FD:C0:A8:01:2C:00:00:00:0<\/a>1<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Filter setting is therefore<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"492\" data-attachment-id=\"4572\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4572\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-09-59-02.png?fit=623%2C528&amp;ssl=1\" data-orig-size=\"623,528\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-09-59-02\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-09-59-02.png?fit=580%2C492&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-09-59-02.png?resize=580%2C492&#038;ssl=1\" alt=\"\" class=\"wp-image-4572\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-09-59-02.png?w=623&amp;ssl=1 623w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-09-59-02.png?resize=300%2C254&amp;ssl=1 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">As a side note the vscpl1drv-can4vscp driver is used (CAN interface is the Frankfurt RS-232 module) and settings for it is<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"170\" data-attachment-id=\"4573\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4573\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-10-59-42.png?fit=727%2C213&amp;ssl=1\" data-orig-size=\"727,213\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-10-59-42\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-10-59-42.png?fit=580%2C170&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-10-59-42.png?resize=580%2C170&#038;ssl=1\" alt=\"\" class=\"wp-image-4573\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-10-59-42.png?w=727&amp;ssl=1 727w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-10-59-42.png?resize=300%2C88&amp;ssl=1 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So now we will only get events from the Beijing module.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The next step is to create a flow for  CLASS1.INFORMATION, Type=ON and CLASS1.INFORMATION, Type=OFF events like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"252\" data-attachment-id=\"4575\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4575\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-03-43.png?fit=292%2C252&amp;ssl=1\" data-orig-size=\"292,252\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-03-43\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-03-43.png?fit=292%2C252&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-03-43.png?resize=292%2C252&#038;ssl=1\" alt=\"\" class=\"wp-image-4575\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Both are VSCP filter nodes set up like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"404\" height=\"315\" data-attachment-id=\"4576\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4576\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-31.png?fit=404%2C315&amp;ssl=1\" data-orig-size=\"404,315\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-04-31\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-31.png?fit=404%2C315&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-31.png?resize=404%2C315&#038;ssl=1\" alt=\"\" class=\"wp-image-4576\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-31.png?w=404&amp;ssl=1 404w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-31.png?resize=300%2C234&amp;ssl=1 300w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">and this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"406\" height=\"311\" data-attachment-id=\"4577\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4577\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-44.png?fit=406%2C311&amp;ssl=1\" data-orig-size=\"406,311\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-04-44\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-44.png?fit=406%2C311&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-44.png?resize=406%2C311&#038;ssl=1\" alt=\"\" class=\"wp-image-4577\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-44.png?w=406&amp;ssl=1 406w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-04-44.png?resize=300%2C230&amp;ssl=1 300w\" sizes=\"auto, (max-width: 406px) 100vw, 406px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Just letting through the wanted events (it&#8217;s a filter &#8211; right).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We feed the output from each of these filters to a switch node<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"551\" data-attachment-id=\"4578\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4578\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-06-53.png?fit=461%2C551&amp;ssl=1\" data-orig-size=\"461,551\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-06-53\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-06-53.png?fit=461%2C551&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-06-53.png?resize=461%2C551&#038;ssl=1\" alt=\"\" class=\"wp-image-4578\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-06-53.png?w=461&amp;ssl=1 461w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-06-53.png?resize=251%2C300&amp;ssl=1 251w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The filter nodes send the sensor index as msg.payload on there outputs. Both switch nodes is configured like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"423\" height=\"551\" data-attachment-id=\"4580\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4580\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-09-21.png?fit=423%2C551&amp;ssl=1\" data-orig-size=\"423,551\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-09-21\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-09-21.png?fit=423%2C551&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-09-21.png?resize=423%2C551&#038;ssl=1\" alt=\"\" class=\"wp-image-4580\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-09-21.png?w=423&amp;ssl=1 423w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-09-21.png?resize=230%2C300&amp;ssl=1 230w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We could have used a simple function node to handle this also of course. The main thing is that we now get a node-red message on the correct flow channel when a sensor is activated\/deactivated. The content of the message is of no importance. We set this in the next step with a change node. We use the <a href=\"https:\/\/flows.nodered.org\/node\/node-red-contrib-ui-state-trail\">node-red-contrib-ui-state-trail<\/a> to visualize the sensor states in the node-red UI.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"338\" data-attachment-id=\"4581\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4581\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-19-48.png?fit=996%2C580&amp;ssl=1\" data-orig-size=\"996,580\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-19-48\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-19-48.png?fit=580%2C338&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-19-48.png?resize=580%2C338&#038;ssl=1\" alt=\"\" class=\"wp-image-4581\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-19-48.png?w=996&amp;ssl=1 996w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-19-48.png?resize=300%2C175&amp;ssl=1 300w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-19-48.png?resize=768%2C447&amp;ssl=1 768w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Each of the change nodes just set the <strong><em>msg.payload<\/em><\/strong> to <strong><em>true<\/em><\/strong> or <strong><em>false<\/em><\/strong> to suite the UI <a href=\"https:\/\/flows.nodered.org\/node\/node-red-contrib-ui-state-trail\">node-red-contrib-ui-state-trail<\/a> expected input. Like this (in the set to true case)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"414\" height=\"269\" data-attachment-id=\"4582\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4582\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-21-14.png?fit=414%2C269&amp;ssl=1\" data-orig-size=\"414,269\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-21-14\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-21-14.png?fit=414%2C269&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-21-14.png?resize=414%2C269&#038;ssl=1\" alt=\"\" class=\"wp-image-4582\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-21-14.png?w=414&amp;ssl=1 414w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-21-14.png?resize=300%2C195&amp;ssl=1 300w\" sizes=\"auto, (max-width: 414px) 100vw, 414px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For the ui-state-trail nodes they are more or less configured the same, something like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"516\" height=\"681\" data-attachment-id=\"4583\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4583\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-23-57.png?fit=516%2C681&amp;ssl=1\" data-orig-size=\"516,681\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-23-57\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-23-57.png?fit=516%2C681&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-23-57.png?resize=516%2C681&#038;ssl=1\" alt=\"\" class=\"wp-image-4583\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-23-57.png?w=516&amp;ssl=1 516w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-23-57.png?resize=227%2C300&amp;ssl=1 227w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">There are other possibilities here of course. But with settings like this the end result looks like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"532\" height=\"587\" data-attachment-id=\"4584\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4584\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-22-37.png?fit=532%2C587&amp;ssl=1\" data-orig-size=\"532,587\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-22-37\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-22-37.png?fit=532%2C587&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-22-37.png?resize=532%2C587&#038;ssl=1\" alt=\"\" class=\"wp-image-4584\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-22-37.png?w=532&amp;ssl=1 532w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-22-37.png?resize=272%2C300&amp;ssl=1 272w\" sizes=\"auto, (max-width: 532px) 100vw, 532px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You see current state of a sensor and get a 24 hour state trail. The front door is open here today as it is summer outside even here in the middle of Sweden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is one problem with this, and that is that we don&#8217;t have a state for a sensor before something actually happens at the sensor, that is if it detects movement or a door is opened\/closed. This may be important or not for a specific setup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Luckily the Beijing module also can be configured to send out i\/o states with a preset interval. This ability solves this problem. The event used by Beijing for this is <a href=\"https:\/\/docs.vscp.org\/spec\/latest\/#\/.\/class1.data?id=type1\">CLASS1.DATA Type=1 I\/O<\/a> which has it&#8217;s data content specified as<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>0<\/td><td>Data coding.<\/td><\/tr><tr><td>1-7<\/td><td>Data with format defined by byte 0.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For the Beijing module this is three bytes. The first byte, the <a href=\"https:\/\/docs.vscp.org\/spec\/latest\/#\/.\/vscp_measurements?id=vscp-data-coding\">VSCP data coding byte is set to zero. <\/a> This says that the two bytes that follows is defined as bits and unit=0, sensorindex=0. The first of the two bytes holds output states and the second hold input states. This flow looks like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"138\" data-attachment-id=\"4585\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4585\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-36-19.png?fit=759%2C180&amp;ssl=1\" data-orig-size=\"759,180\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-36-19\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-36-19.png?fit=580%2C138&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-36-19.png?resize=580%2C138&#038;ssl=1\" alt=\"\" class=\"wp-image-4585\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-36-19.png?w=759&amp;ssl=1 759w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-36-19.png?resize=300%2C71&amp;ssl=1 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">First we filter out the CLASS1.DATA, Type=1 I\/O events. Then we check which inputs are set and send true\/false to the correct ui-state-trail node. The function node is simple and coded like this<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n\/\/ CLASS1.DATA, Type=1, I\/O\n\/\/ vscpData&#x5B;0] - Datacoding\n\/\/ vscpData&#x5B;1] - Output states\n\/\/ vscpData&#x5B;2] - Input states\n\nvar msgarray = &#x5B;\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false },\n    { &quot;payload&quot;: false }\n];\n\nfor ( i=0;i&lt;8;i++) {\n    if ( msg.payload.vscpData&#x5B;2] &amp; (Math.pow(2,i)) ) {\n        msgarray&#x5B;i].payload = true;\n    }\n}\nreturn msgarray;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The function node has eight outputs. Each is feed to the correct ui-state-trail node. Thats it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With this in place we can now add alarms and control of automatic lights without much extra effort. You should also notice that even if we here use the CAN4VSCP module Beijing we could have used a mix of other techniques to receive the same result and functionality. If we at some point want to replace one of the PIR sensors with a Bluetooth or Zigbee solution we just need to code that sensor output as a VSCP event and everything will work as expected. <strong>The VSCP protocol is the abstraction that unite them all. Protocols and transfer techniques.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For reference is the node red flow and the Beijing module configuration listed below. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Have fun! <\/em><br>\/Ake<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Node-red flow for howto<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n&#x5B;{&quot;id&quot;:&quot;82af1478.db09a8&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;Office door state&quot;,&quot;label&quot;:&quot;Office door state&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Open&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Closed&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1120,&quot;y&quot;:860,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;433ab88d.14a528&quot;,&quot;type&quot;:&quot;vscpfilter&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;vscppriority&quot;:&quot;&quot;,&quot;vscpclass&quot;:&quot;20&quot;,&quot;vscptype&quot;:&quot;3&quot;,&quot;vscpguid&quot;:&quot;&quot;,&quot;name&quot;:&quot;CLASS1.INFORMATION, ON&quot;,&quot;x&quot;:200,&quot;y&quot;:1000,&quot;wires&quot;:&#x5B;&#x5B;&quot;e7c014db.d982f8&quot;]]},{&quot;id&quot;:&quot;dba27e7e.901248&quot;,&quot;type&quot;:&quot;vscpfilter&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;vscppriority&quot;:&quot;&quot;,&quot;vscpclass&quot;:&quot;20&quot;,&quot;vscptype&quot;:&quot;4&quot;,&quot;vscpguid&quot;:&quot;&quot;,&quot;name&quot;:&quot;CLASS1.INFORMATION, OFF&quot;,&quot;x&quot;:210,&quot;y&quot;:1100,&quot;wires&quot;:&#x5B;&#x5B;&quot;62cdb0fe.3fad38&quot;]]},{&quot;id&quot;:&quot;e7c014db.d982f8&quot;,&quot;type&quot;:&quot;switch&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;property&quot;:&quot;payload.vscpData&#x5B;0]&quot;,&quot;propertyType&quot;:&quot;msg&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;0&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;1&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;2&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;3&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;4&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;5&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;6&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;7&quot;,&quot;vt&quot;:&quot;num&quot;}],&quot;checkall&quot;:&quot;true&quot;,&quot;repair&quot;:false,&quot;outputs&quot;:8,&quot;x&quot;:430,&quot;y&quot;:1000,&quot;wires&quot;:&#x5B;&#x5B;&quot;6a7f782a.68e4f&quot;],&#x5B;&quot;8354a8b7.540938&quot;],&#x5B;&quot;59434168.7bf8f&quot;],&#x5B;&quot;8f7c7c69.bf4ee&quot;],&#x5B;&quot;1ba6d376.51f02d&quot;],&#x5B;&quot;3d18e2c3.e0faee&quot;],&#x5B;&quot;23a97f1c.51cf&quot;],&#x5B;&quot;32f01e41.9a4f92&quot;]]},{&quot;id&quot;:&quot;6a7f782a.68e4f&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;office=true&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:670,&quot;y&quot;:860,&quot;wires&quot;:&#x5B;&#x5B;&quot;82af1478.db09a8&quot;]]},{&quot;id&quot;:&quot;95de756f.fc4cf&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;Cellar Door State&quot;,&quot;label&quot;:&quot;Cellar Door State&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Open&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Closed&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1130,&quot;y&quot;:900,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;8354a8b7.540938&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;Cellar=true&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:670,&quot;y&quot;:900,&quot;wires&quot;:&#x5B;&#x5B;&quot;95de756f.fc4cf&quot;]]},{&quot;id&quot;:&quot;f7dc6e17.85bd28&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;Front door state&quot;,&quot;label&quot;:&quot;Front Door state&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Open&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Closed&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1120,&quot;y&quot;:940,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;59434168.7bf8f&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;front=true&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:660,&quot;y&quot;:940,&quot;wires&quot;:&#x5B;&#x5B;&quot;f7dc6e17.85bd28&quot;]]},{&quot;id&quot;:&quot;1dadefe2.73b87&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;d&quot;:true,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;Unuse&quot;,&quot;label&quot;:&quot;Unused&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:false,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1090,&quot;y&quot;:980,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;8f7c7c69.bf4ee&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:980,&quot;wires&quot;:&#x5B;&#x5B;&quot;1dadefe2.73b87&quot;]]},{&quot;id&quot;:&quot;6162e7b8.cc655&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;PIR Cellar&quot;,&quot;label&quot;:&quot;PIR Cellar&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Detect&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Rest&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1110,&quot;y&quot;:1020,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;1ba6d376.51f02d&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1020,&quot;wires&quot;:&#x5B;&#x5B;&quot;6162e7b8.cc655&quot;]]},{&quot;id&quot;:&quot;159222d2.262acd&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;PIR Main entrance&quot;,&quot;label&quot;:&quot;PIR Main entrance&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Detetc&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Rest&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1130,&quot;y&quot;:1060,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;3d18e2c3.e0faee&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1060,&quot;wires&quot;:&#x5B;&#x5B;&quot;159222d2.262acd&quot;]]},{&quot;id&quot;:&quot;bfc9343a.c2fde8&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;d&quot;:true,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;Unused&quot;,&quot;label&quot;:&quot;Unused&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#009933&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1100,&quot;y&quot;:1100,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;23a97f1c.51cf&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1100,&quot;wires&quot;:&#x5B;&#x5B;&quot;bfc9343a.c2fde8&quot;]]},{&quot;id&quot;:&quot;f2f76475.1e32a&quot;,&quot;type&quot;:&quot;ui_statetrail&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;group&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;order&quot;:6,&quot;width&quot;:&quot;12&quot;,&quot;height&quot;:&quot;2&quot;,&quot;name&quot;:&quot;PIR Office Door&quot;,&quot;label&quot;:&quot;PIR Office Door&quot;,&quot;states&quot;:&#x5B;{&quot;state&quot;:true,&quot;col&quot;:&quot;#fe0000&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Open&quot;},{&quot;state&quot;:false,&quot;col&quot;:&quot;#999999&quot;,&quot;t&quot;:&quot;bool&quot;,&quot;label&quot;:&quot;Closed&quot;}],&quot;periodLimit&quot;:&quot;24&quot;,&quot;periodLimitUnit&quot;:&quot;3600&quot;,&quot;timeformat&quot;:&quot;HH:mm&quot;,&quot;tickmarks&quot;:4,&quot;persist&quot;:false,&quot;legend&quot;:&quot;3&quot;,&quot;combine&quot;:true,&quot;blanklabel&quot;:&quot;&quot;,&quot;x&quot;:1120,&quot;y&quot;:1140,&quot;wires&quot;:&#x5B;&#x5B;]]},{&quot;id&quot;:&quot;32f01e41.9a4f92&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;PIR Office = true&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;true&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:690,&quot;y&quot;:1140,&quot;wires&quot;:&#x5B;&#x5B;&quot;f2f76475.1e32a&quot;]]},{&quot;id&quot;:&quot;62cdb0fe.3fad38&quot;,&quot;type&quot;:&quot;switch&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;property&quot;:&quot;payload.vscpData&#x5B;0]&quot;,&quot;propertyType&quot;:&quot;msg&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;0&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;1&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;2&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;3&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;4&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;5&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;6&quot;,&quot;vt&quot;:&quot;num&quot;},{&quot;t&quot;:&quot;eq&quot;,&quot;v&quot;:&quot;7&quot;,&quot;vt&quot;:&quot;num&quot;}],&quot;checkall&quot;:&quot;true&quot;,&quot;repair&quot;:false,&quot;outputs&quot;:8,&quot;x&quot;:430,&quot;y&quot;:1360,&quot;wires&quot;:&#x5B;&#x5B;&quot;c625622d.26fd08&quot;],&#x5B;&quot;e3c1ac7f.8d3a1&quot;],&#x5B;&quot;4648539f.147a04&quot;],&#x5B;&quot;a363d163.6b4ec8&quot;],&#x5B;&quot;8c44a2c4.ed5de8&quot;],&#x5B;&quot;99117390.c4adb8&quot;],&#x5B;&quot;ee2b8418.ba485&quot;],&#x5B;&quot;2a250160.c423b6&quot;]]},{&quot;id&quot;:&quot;c625622d.26fd08&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;office=false&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:670,&quot;y&quot;:1220,&quot;wires&quot;:&#x5B;&#x5B;&quot;82af1478.db09a8&quot;]]},{&quot;id&quot;:&quot;e3c1ac7f.8d3a1&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;Cellar=false&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:670,&quot;y&quot;:1260,&quot;wires&quot;:&#x5B;&#x5B;&quot;95de756f.fc4cf&quot;]]},{&quot;id&quot;:&quot;4648539f.147a04&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;front=false&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:670,&quot;y&quot;:1300,&quot;wires&quot;:&#x5B;&#x5B;&quot;f7dc6e17.85bd28&quot;]]},{&quot;id&quot;:&quot;a363d163.6b4ec8&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1340,&quot;wires&quot;:&#x5B;&#x5B;&quot;1dadefe2.73b87&quot;]]},{&quot;id&quot;:&quot;8c44a2c4.ed5de8&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1380,&quot;wires&quot;:&#x5B;&#x5B;&quot;6162e7b8.cc655&quot;]]},{&quot;id&quot;:&quot;99117390.c4adb8&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1420,&quot;wires&quot;:&#x5B;&#x5B;&quot;159222d2.262acd&quot;]]},{&quot;id&quot;:&quot;ee2b8418.ba485&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:680,&quot;y&quot;:1460,&quot;wires&quot;:&#x5B;&#x5B;&quot;bfc9343a.c2fde8&quot;]]},{&quot;id&quot;:&quot;2a250160.c423b6&quot;,&quot;type&quot;:&quot;change&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;PIR Office = false&quot;,&quot;rules&quot;:&#x5B;{&quot;t&quot;:&quot;set&quot;,&quot;p&quot;:&quot;payload&quot;,&quot;pt&quot;:&quot;msg&quot;,&quot;to&quot;:&quot;false&quot;,&quot;tot&quot;:&quot;bool&quot;}],&quot;action&quot;:&quot;&quot;,&quot;property&quot;:&quot;&quot;,&quot;from&quot;:&quot;&quot;,&quot;to&quot;:&quot;&quot;,&quot;reg&quot;:false,&quot;x&quot;:690,&quot;y&quot;:1500,&quot;wires&quot;:&#x5B;&#x5B;&quot;f2f76475.1e32a&quot;]]},{&quot;id&quot;:&quot;8d3f89ae.3e49d8&quot;,&quot;type&quot;:&quot;vscp-tcp-in&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;pi11&quot;,&quot;host&quot;:&quot;e596ab59.2b98c8&quot;,&quot;username&quot;:&quot;admin&quot;,&quot;password&quot;:&quot;__PWRD__&quot;,&quot;filter&quot;:&quot;3f11c8c2.e2dcd&quot;,&quot;keyctx&quot;:&quot;pi11a&quot;,&quot;x&quot;:70,&quot;y&quot;:860,&quot;wires&quot;:&#x5B;&#x5B;&quot;433ab88d.14a528&quot;,&quot;dba27e7e.901248&quot;,&quot;14d7cd7f.7e456b&quot;]]},{&quot;id&quot;:&quot;14d7cd7f.7e456b&quot;,&quot;type&quot;:&quot;vscpfilter&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;vscppriority&quot;:&quot;&quot;,&quot;vscpclass&quot;:&quot;15&quot;,&quot;vscptype&quot;:&quot;1&quot;,&quot;vscpguid&quot;:&quot;&quot;,&quot;name&quot;:&quot;CLASS1.DATA, I\/O&quot;,&quot;x&quot;:170,&quot;y&quot;:1740,&quot;wires&quot;:&#x5B;&#x5B;&quot;e712b13e.7d21a8&quot;]]},{&quot;id&quot;:&quot;e712b13e.7d21a8&quot;,&quot;type&quot;:&quot;function&quot;,&quot;z&quot;:&quot;d55b6e63.6443a8&quot;,&quot;name&quot;:&quot;Check input states&quot;,&quot;func&quot;:&quot;\\n\/\/ CLASS1.DATA, Type=1, I\/O\\n\/\/ vscpData&#x5B;0] - Datacoding\\n\/\/ vscpData&#x5B;1] - Output states\\n\/\/ vscpData&#x5B;2] - Input states\\n\\nvar msgarray = &#x5B;\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false },\\n    { \\&quot;payload\\&quot;: false }\\n];\\n\\nfor ( i=0;i&lt;8;i++) {\\n    if ( msg.payload.vscpData&#x5B;2] &amp; (Math.pow(2,i)) ) {\\n        msgarray&#x5B;i].payload = true;\\n    }\\n}\\nreturn msgarray;&quot;,&quot;outputs&quot;:8,&quot;noerr&quot;:0,&quot;x&quot;:690,&quot;y&quot;:1740,&quot;wires&quot;:&#x5B;&#x5B;&quot;82af1478.db09a8&quot;],&#x5B;&quot;95de756f.fc4cf&quot;],&#x5B;&quot;f7dc6e17.85bd28&quot;],&#x5B;&quot;1dadefe2.73b87&quot;],&#x5B;&quot;6162e7b8.cc655&quot;],&#x5B;&quot;159222d2.262acd&quot;],&#x5B;&quot;bfc9343a.c2fde8&quot;],&#x5B;&quot;f2f76475.1e32a&quot;]]},{&quot;id&quot;:&quot;86ca358f.1ef4f8&quot;,&quot;type&quot;:&quot;ui_group&quot;,&quot;z&quot;:&quot;&quot;,&quot;name&quot;:&quot;States&quot;,&quot;tab&quot;:&quot;7cdacae9.143d2c&quot;,&quot;order&quot;:3,&quot;disp&quot;:true,&quot;width&quot;:&quot;12&quot;,&quot;collapse&quot;:false},{&quot;id&quot;:&quot;e596ab59.2b98c8&quot;,&quot;type&quot;:&quot;vscp-tcp-config-host&quot;,&quot;z&quot;:&quot;&quot;,&quot;name&quot;:&quot;pi11&quot;,&quot;host&quot;:&quot;192.168.1.44&quot;,&quot;port&quot;:&quot;9598&quot;,&quot;timeout&quot;:&quot;10000&quot;,&quot;interface&quot;:&quot;&quot;,&quot;keepalive&quot;:&quot;10000&quot;},{&quot;id&quot;:&quot;3f11c8c2.e2dcd&quot;,&quot;type&quot;:&quot;vscp-tcp-config-filter&quot;,&quot;z&quot;:&quot;&quot;,&quot;name&quot;:&quot;Only events from Beijing&quot;,&quot;filterPriority&quot;:&quot;0&quot;,&quot;maskPriority&quot;:&quot;0&quot;,&quot;filterClass&quot;:&quot;0&quot;,&quot;maskClass&quot;:&quot;0&quot;,&quot;filterType&quot;:&quot;0&quot;,&quot;maskType&quot;:&quot;0&quot;,&quot;filterGuid&quot;:&quot;FF:FF:FF:FF:FF:FF:FF:FD:C0:A8:01:2C:11:22:00:01&quot;,&quot;maskGuid&quot;:&quot;FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF&quot;},{&quot;id&quot;:&quot;7cdacae9.143d2c&quot;,&quot;type&quot;:&quot;ui_tab&quot;,&quot;z&quot;:&quot;&quot;,&quot;name&quot;:&quot;Home&quot;,&quot;icon&quot;:&quot;dashboard&quot;,&quot;disabled&quot;:false,&quot;hidden&quot;:false}]\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Beijing module configuration<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can be loaded with VSCP works.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1137\" height=\"767\" data-attachment-id=\"4586\" data-permalink=\"https:\/\/grodansparadis.com\/wordpress\/?attachment_id=4586\" data-orig-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?fit=1137%2C767&amp;ssl=1\" data-orig-size=\"1137,767\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-from-2020-06-04-11-52-52\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?fit=580%2C391&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?fit=580%2C391&amp;ssl=1\" alt=\"\" class=\"wp-image-4586\" srcset=\"https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?w=1137&amp;ssl=1 1137w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?resize=300%2C202&amp;ssl=1 300w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?resize=1024%2C691&amp;ssl=1 1024w, https:\/\/i0.wp.com\/grodansparadis.com\/wordpress\/wp-content\/uploads\/2020\/06\/Screenshot-from-2020-06-04-11-52-52.png?resize=768%2C518&amp;ssl=1 768w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;?xml version = &quot;1.0&quot; encoding = &quot;UTF-8&quot; ?&gt;\n&lt;registerset&gt;\n&lt;register offset=&#039;0&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Zone\nZone this module belongs to&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;1&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Sub zone\nSub zone this module belongs to&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;2&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 0\nSub zone for I\/O channel 0&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;3&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 1\nSub zone for I\/O channel 1&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;4&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x02&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 2\nSub zone for I\/O channel 2&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;5&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x03&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 3\nSub zone for I\/O channel 3&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;6&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x04&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 4\nSub zone for I\/O channel 4&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;7&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x05&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 5\nSub zone for I\/O channel 5&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;8&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x06&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 6\nSub zone for I\/O channel 6&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;9&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x07&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 7\nSub zone for I\/O channel 7&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;10&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x08&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 8\nSub zone for I\/O channel 8&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;11&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x09&lt;\/value&gt;\n&lt;description&gt;Sub zone I\/O 9\nSub zone for I\/O channel 9&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;12&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O direction MSB\nMost significant part of I\/O directions register. Set bit to zero for output and\none for input.\n\nBit 7 - Reserved.\nBit 6 - Reserved.\nBit 5 - Reserved.\nBit 4 - Reserved.\nBit 3 - Reserved.\nBit 2 - Reserved.\nBit 1 - Direction for I\/O channel 9 - (RA0). 0=output. 1=input.\nBit 0 - Direction for I\/O channel 8 - (RA1). 0=output. 1=input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;13&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O direction LSB\nLeast significant part of I\/O directions register.Set bit to zero for output and\none for input.\n\nBit 7 - Direction for I\/O channel 7 - (RA2). 0=output. 1=input.\nBit 6 - Direction for I\/O channel 6 - (RC7). 0=output. 1=input.\nBit 5 - Direction for I\/O channel 5 - (RC6). 0=output. 1=input.\nBit 4 - Direction for I\/O channel 4 - (RC5). 0=output. 1=input.\nBit 3 - Direction for I\/O channel 3 - (RC4). 0=output. 1=input.\nBit 2 - Direction for I\/O channel 2 - (RC3). 0=output. 1=input.\nBit 1 - Direction for I\/O channel 1 - (RB1). 0=output. 1=input.\nBit 0 - Direction for I\/O channel 0 - (RB0). 0=output. 1=input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;14&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 0 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;15&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 1 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;16&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 2 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;17&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 3 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;18&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 4 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;19&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 5 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;20&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 6 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;21&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 7 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;22&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 8 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;23&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;I\/O channel 9 status register\nRead or write the state of I\/O channel 0 in this register.\n0 - is returned for an inactive input or a low output. A written zero will set an\noutput channel low.\n1 - is returned for an active input or a high output. A written one will set an\noutput channel high.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;24&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 0 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;25&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 1 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;26&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 2 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;27&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 3 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;28&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 4 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;29&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 5 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;30&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 6 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;31&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 7 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;32&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 8 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;33&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x98&lt;\/value&gt;\n&lt;description&gt;Output 9 control register\nThe output control bits enable\/disable intelligent functionality for a channel set\nas output.\nBit 0 - Enable pulse.\nBit 1 - If set: Alarm sent when protection timer triggers.\nBit 2 - Protection timer enable.\nBit 3 - Send On event when output goes to active state.\nBit 4 - Send Off event when output goes to inactive state.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable output.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;34&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 0 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;35&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 1 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;36&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 2 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;37&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 3 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;38&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 4 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;39&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 5 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;40&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 6 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;41&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 7 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;42&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 8 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;43&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x83&lt;\/value&gt;\n&lt;description&gt;Input 9 control register\nThe input control bits enable\/disable intelligent functionality for a channel set\nas input.\nBit 0 - Send On\/TurnOn event when input goes to active state.\nBit 1 - Send Off\/TurnOff event when input goes to inactive state.\nBit 2 - 0 = Send On\/off events. 1=Send turnon\/turnoff events (if activated).\n Different meaning in button input mode where 0 = TurnOn and 1 = TurnOff.\nBit 3 - Alarm event sent if input goes low.\nBit 4 - Alarm event sent if input goes high.\nBit 5 - Continuous alarm.\nBit 6 - Activate Button imput mode. Only TurnOff or TurnOn is sent when an input\ngoes low and button input mode is activated.\nBit 7 - Enable input.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;44&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Module Control register\nIt is possible to control general module behaviour in this register.\nBit 0 - Turn of input event repeat.\nBit 1 - Reserved.\nBit 2 - Reserved.\nBit 3 - Reserved.\nBit 4 - Reserved.\nBit 5 - Reserved.\nBit 6 - Reserved.\nBit 7 - Enable weak pullups.\n &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;45&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Input stream sample time\nThis is the time in seconds between input stream samples. Set to zero to disable.\nCLASS1.DATA is sent with data coding=0(bits), unit=0, sensor=0 for the inputs\/outputs\nas set here. First byte is outputs, second byte is inputs. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;46&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x03&lt;\/value&gt;\n&lt;description&gt;Debounce count\nThis is the number of counts a button input signal should be low to be regarded as\nactice. Each count represents 10 ms. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;47&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x02&lt;\/value&gt;\n&lt;description&gt;Short pulse duration\nThis is the duration for the short pulse action. Each count represents 10 ms.  A\nzero vaue gives a pulse that is the shortest possible. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;0&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 0 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;1&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 0 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;2&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 1 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;3&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 1 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;4&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 2 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;5&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 2 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;6&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 3 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;7&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 3 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;8&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 4 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;9&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 4 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;10&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 5 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;11&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 5 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;12&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 6 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;13&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 6 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;14&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 7 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;15&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 7 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;16&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 8 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;17&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 8 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;18&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 9 MSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;19&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output pulse time register for output 9 LSB\nThis is the pulse time for the each output expressed in seconds. This can be used\nto make an output turn on and off with a certain preset interval. The min pulse time\nis 1 second and the max time is 65535 seconds which is about 18 hours. Set to zero\n(default) for no pulse time i.e. the output will be steady on\/off.\nTo start a pulse sequence first write the pulse time to this register and then set\nthe corresponding bit in the output status register to start the output. The pulse\ntrain is terminated by writing on or off (1 or 0) to the output status register.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;20&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 0 MSB\nThis is the output protection time. An output will be inactivated if not written\nto before this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;21&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 0 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;22&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 1 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;23&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 1 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;24&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 2 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;25&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 2 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;26&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 3 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;27&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 3 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;28&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 4 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;29&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 4 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;30&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 5 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;31&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 5 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;32&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 6 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;33&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 6 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;34&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 7 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;35&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 7 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;36&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 8 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;37&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 8 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;38&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 9 MSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;39&#039; page=&#039;1&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Output protection time register for output 9 LSB\nThis is the output protection time. A output will be inactivated if not written to\nbefore this time has elapsed.\nSet to zero to disable (default). The max time is 65535 seconds which is about 18\nhours.\nThe registers can be as an example be used as a security feature to ensure that\nan output is deactivated after a preset time even if the controlling device failed\nto deactivate the output. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;0&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will not be checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;1&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/sub zone of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;2&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;3&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of thsi decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;4&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;5&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;6&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;7&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 0: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;8&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will not be checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;9&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/subzone\ninformation of an event. That is the zone\/sub zone of the machine must match the\none of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;10&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;11&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;12&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;13&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;14&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;15&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 1: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;16&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will not be checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;17&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/sub zone of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;18&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;19&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;20&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;21&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;22&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;23&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 2: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;24&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will not be checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;25&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/sub zone of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;26&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;27&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;28&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;29&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;30&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;31&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 3: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;32&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will notbe checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;33&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/sub zone of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;34&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;35&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;36&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;37&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;38&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;39&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 4: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;40&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Oaddr \nOriginating address. Set to nickname for node that should trigger  action. Oaddr\nis the originating address. We are only interested in messages from the node given\nhere. 0x00 is segment controller and 0xff is a node without a nickname. If bit 6\nof flags is set oaddr will not be checked and events from all nodes will be accepted.\n&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;41&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/sub zone of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;42&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;43&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;44&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;45&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;46&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;47&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 5: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;48&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will not be checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;49&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/subzone one of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;50&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;51&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;52&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;53&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;54&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;55&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 6: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;56&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Oaddr \nOriginating address. Set to nickname for node that should trigger action. Oaddr is\nthe originating address. We are only interested in messages from the node given here.\n0x00 is segment controller and 0xff is a node without a nickname. If bit 6 of flags\nis set oaddr will not be checked and events from all nodes will be accepted. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;57&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: flags \nFlags. Set selection behaviour.\nThe enable bit can be used to disable a decision matrix row while it is edited.\nThe zone and use sub zone bits can be activated to have a check on the zone\/sub\nzone information of an event. That is the zone\/subzone one of the machine must match\nthe one of the event to trigger the DM row. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;58&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Class mask (low eight bits) \nThe lowest eight bits of the class mask that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class mask is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;59&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Class filter (low eight bits) \nThe lowest eight bits of the class filter that defines the events that should trigger\nthe action of this decision matrix row.\nBit 8 of the class filter is stored in bit 1 of the flag byte. &lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;60&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Type mask\nType mask that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;61&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Type filter\nType filter that defines the events that should trigger the action of this decision\nmatrix row.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;62&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Action\nThis is the action or operation that should be performed if the filtering is satisfied.\nOnly action code 0x00 is predefined and means No-Operation. All other codes are application\nspecific and typical application defined codes could do measurement, send predefined\nevent etc.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;63&#039; page=&#039;2&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Decision matrix row 7: Action parameter\nA numeric action parameter can be set and its meaning is application specific.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;128&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Alarm Status Register&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;129&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;VSCP Major version number&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;130&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x06&lt;\/value&gt;\n&lt;description&gt;VSCP Minor version number&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;131&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Node Control Flags\n test&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;132&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;User ID 0&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;133&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;User ID 1&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;134&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;User ID 2&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;135&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0xFF&lt;\/value&gt;\n&lt;description&gt;User ID 3&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;136&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0xFF&lt;\/value&gt;\n&lt;description&gt;User ID 4&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;137&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Manufacturer device id 0&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;138&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x0F&lt;\/value&gt;\n&lt;description&gt;Manufacturer device id 1&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;139&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x0B&lt;\/value&gt;\n&lt;description&gt;Manufacturer device id 2&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;140&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x16&lt;\/value&gt;\n&lt;description&gt;Manufacturer device id 3&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;141&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;Manufacturer sub device id 0&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;142&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Manufacturer sub device id 1&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;143&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Manufacturer sub device id 2&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;144&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Manufacturer sub device id 3&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;145&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;Nickname id&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;146&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Page select register MSB&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;147&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Page select register LSB&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;148&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;Firmware major version number&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;149&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;Firmware minor version number&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;150&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x06&lt;\/value&gt;\n&lt;description&gt;Firmware sub minor version number&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;151&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;Boot loader algorithm&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;152&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x08&lt;\/value&gt;\n&lt;description&gt;Buffer Size&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;153&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x03&lt;\/value&gt;\n&lt;description&gt;Number of register pages used.&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;208&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x01&lt;\/value&gt;\n&lt;description&gt;GUID Byte 15, MSB\nGUID=01:00:00:00:00:00:00:00:00:00:00:00:06:00:00:0F&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;209&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 14&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;210&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 13&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;211&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 12&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;212&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 11&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;213&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 10&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;214&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 9&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;215&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 8&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;216&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 7&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;217&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 6&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;218&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 5&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;219&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 4&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;220&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x06&lt;\/value&gt;\n&lt;description&gt;GUID Byte 3&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;221&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 2&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;222&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;GUID Byte 1&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;223&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x0F&lt;\/value&gt;\n&lt;description&gt;GUID Byte 0, LSB&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;224&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x77&lt;\/value&gt;\n&lt;description&gt;Module Description File URL, MSB\nhttp:\/\/www.eurosource.se\/beijing_2.xml&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;225&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x77&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;226&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x77&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;227&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x2E&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;228&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x65&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;229&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x75&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;230&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x72&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;231&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x6F&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;232&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x73&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;233&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x6F&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;234&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x75&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;235&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x72&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;236&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x63&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;237&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x65&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;238&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x2E&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;239&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x73&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;240&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x65&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;241&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x2F&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;242&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x62&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;243&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x65&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;244&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x69&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;245&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x6A&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;246&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x69&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;247&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x6E&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;248&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x67&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;249&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x5F&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;250&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x32&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;251&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x2E&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;252&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x78&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;253&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x6D&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;254&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x6C&lt;\/value&gt;\n&lt;description&gt;Module Description File URL&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;register offset=&#039;255&#039; page=&#039;0&#039;&gt;\n&lt;value&gt;0x00&lt;\/value&gt;\n&lt;description&gt;Module Description File URL, LSB&lt;\/description&gt;\n&lt;\/register&gt;\n&lt;\/registerset&gt;\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>In a previous howto (Getting started with node-red-contrib-vscp) we were looking at how to display temperature data from VSCP modules in node-red. In this howto we will look at the same hardware setup but concentrate on output from one module in the setup, the CAN4VSCP Beijing module. Beijing is a general I\/O module which in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[12,53,83,13],"tags":[],"class_list":["post-4554","post","type-post","status-publish","format-standard","hentry","category-general","category-howtos","category-node-red","category-vscp"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4raCZ-1bs","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4554"}],"version-history":[{"count":3,"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4554\/revisions"}],"predecessor-version":[{"id":4590,"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4554\/revisions\/4590"}],"wp:attachment":[{"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grodansparadis.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}