$re = '/.*<strong>(.*)<\/strong>\n.*is the latest/';
$str = '
<!doctype html>
<html lang="en" prefix="og: http://ogp.me/ns#">
<head>
<meta charset="utf-8">
<script nonce=\'43e749cb8f58165702ac7a328020359b8d733d661b14d13fead20e33cf955d87b293249b9a88e7d32857b72f245984d505e1d4228179ae09367c9475db764fbe\' type=\'text/javascript\'>window.NREUM||(NREUM={});NREUM.info = {"agent":"","beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"ba86f45fc4","applicationID":"9556514","applicationTime":231.025229,"transactionName":"M1BXZxFZVkQFURBdVwoafVITURdwIWZLG0gFVl5SBF0XTBRTB19ZA1BI","queueTime":0,"ttGuid":"71fc9e8f8e5624","agentToken":null}; window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function r(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return r(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,n){function r(e,t){return function(){o(e,[(new Date).getTime()].concat(a(arguments)),null,t)}}var o=e("handle"),i=e(2),a=e(3);"undefined"==typeof window.newrelic&&(newrelic=NREUM);var u=["setPageViewName","addPageAction","setCustomAttribute","finished","addToTrace","inlineHit"],c=["addPageAction"],f="api-";i(u,function(e,t){newrelic[t]=r(f+t,"api")}),i(c,function(e,t){newrelic[t]=r(f+t)}),t.exports=newrelic,newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),o("err",[e,(new Date).getTime()])}},{}],2:[function(e,t,n){function r(e,t){var n=[],r="",i=0;for(r in e)o.call(e,r)&&(n[i]=t(r,e[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],3:[function(e,t,n){function r(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(0>o?0:o);++r<o;)i[r]=e[t+r];return i}t.exports=r},{}],ee:[function(e,t,n){function r(){}function o(e){function t(e){return e&&e instanceof r?e:e?u(e,a,i):i()}function n(n,r,o){e&&e(n,r,o);for(var i=t(o),a=l(n),u=a.length,c=0;u>c;c++)a[c].apply(i,r);var s=f[g[n]];return s&&s.push([m,n,r,i]),i}function p(e,t){w[e]=l(e).concat(t)}function l(e){return w[e]||[]}function d(e){return s[e]=s[e]||o(n)}function v(e,t){c(e,function(e,n){t=t||"feature",g[n]=t,t in f||(f[t]=[])})}var w={},g={},m={on:p,emit:n,get:d,listeners:l,context:t,buffer:v};return m}function i(){return new r}var a="nr@context",u=e("gos"),c=e(2),f={},s={},p=t.exports=o();p.backlog=f},{}],gos:[function(e,t,n){function r(e,t,n){if(o.call(e,t))return e[t];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[t]=r,r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],handle:[function(e,t,n){function r(e,t,n,r){o.buffer([e],r),o.emit(e,t,n)}var o=e("ee").get("handle");t.exports=r,r.ee=o},{}],id:[function(e,t,n){function r(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=r},{}],loader:[function(e,t,n){function r(){if(!w++){var e=v.info=NREUM.info,t=s.getElementsByTagName("script")[0];if(e&&e.licenseKey&&e.applicationID&&t){c(l,function(t,n){e[t]||(e[t]=n)});var n="https"===p.split(":")[0]||e.sslForHttp;v.proto=n?"https://":"http://",u("mark",["onload",a()],null,"api");var r=s.createElement("script");r.src=v.proto+e.agent,t.parentNode.insertBefore(r,t)}}}function o(){"complete"===s.readyState&&i()}function i(){u("mark",["domContent",a()],null,"api")}function a(){return(new Date).getTime()}var u=e("handle"),c=e(2),f=window,s=f.document;NREUM.o={ST:setTimeout,CT:clearTimeout,XHR:f.XMLHttpRequest,REQ:f.Request,EV:f.Event,PR:f.Promise,MO:f.MutationObserver},e(1);var p=""+location,l={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-918.min.js"},d=window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&!/CriOS/.test(navigator.userAgent),v=t.exports={offset:a(),origin:p,features:{},xhrWrappable:d};s.addEventListener?(s.addEventListener("DOMContentLoaded",i,!1),f.addEventListener("load",r,!1)):(s.attachEvent("onreadystatechange",o),f.attachEvent("onload",r)),u("mark",["firstbyte",a()],null,"api");var w=0},{}]},{},["loader"]);</script>
<title>pimatic</title>
<meta name="description" content="A home automation server and framework for the Raspberry PI running on node.js">
<meta property="og:description" content="A home automation server and framework for the Raspberry PI running on node.js">
<meta property="og:title" content="pimatic">
<meta property="og:url" content="https://www.npmjs.com/package/pimatic">
<meta property="og:site_name" content="npm">
<meta name="keywords" content="">
<meta name="twitter:card" content="summary">
<meta name="twitter:url" content="https://www.npmjs.com/package/pimatic">
<meta name="twitter:title" content="npm: pimatic">
<meta name="twitter:description" content="A home automation server and framework for the Raspberry PI running on node.js">
<meta http-equiv="cleartype" content="on" />
<meta name="apple-mobile-web-app-capable" content="no">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,initial-scale=1,user-scalable=yes">
<meta name="x-npm:ga:id" content="UA-47041310-1">
<meta name="x-npm:ga:dimensions" content="{"aboveChrome":"dimension1","belowHeader":"dimension3","packagePage":"dimension2"}">
<link rel="canonical" href="https://www.npmjs.com/package/pimatic">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="npm">
<link rel="stylesheet" media="all" href="/static/css/index.0854e9c6.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
<![endif]-->
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700">
<script src="/static/js/index.min.bc5853f2.js"></script>
<style>
.marketing {
margin: 0px;
margin-left: -10px;
margin-bottom: 40px;
padding: 0px 0px;
font-size: 15px;
font-style: normal;
fond-variant: normal;
fort-weight: normal;
background: rgba(0, 0, 0, 0.02);
border-radius: 2px;
border: 1px solid rgba(0, 0, 0, 0.2);
color: rgba(0, 0, 0, 0.4);
text-decoration: none;
letter-spacing: -0.03em;
line-height: 22.5px;
}
.marketing a {
font-weight: 400;
text-decoration: none;
color: #cb3837;
}
.marketing h3 {
display: block;
margin: 0;
padding: 20px 0 10px 0;
font-size: 20px;
font-style: normal;
font-variant: normal;
font-weight: 400;
line-height: 22px;
text-decoration: none;
color: rgba(0, 0, 0, 0.8);
}
.marketing h3 a {
color: rgba(0, 0, 0, 0.8);
}
.marketing h3 a:hover {
color: #cb3837;
}
.marketing p {
line-height: 22.5px;
margin-left: 10px;
margin-right: 10px;
}
.marketing p a {
white-space: nowrap;
}
#marketing-texthed {
margin-left: 10px;
}
</style>
<link rel="apple-touch-icon" sizes="57x57" href="/static/images/touch-icons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/static/images/touch-icons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/static/images/touch-icons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/static/images/touch-icons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/static/images/touch-icons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/static/images/touch-icons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/static/images/touch-icons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/static/images/touch-icons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/static/images/touch-icons/apple-touch-icon-180x180.png">
<link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/static/images/touch-icons/apple-touch-startup-image-1024x748.png">
<link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/static/images/touch-icons/apple-touch-startup-image-1536x2008.png">
<link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/static/images/touch-icons/apple-touch-startup-image-2048x1496.png">
<link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/static/images/touch-icons/apple-touch-startup-image-320x460.png">
<link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/static/images/touch-icons/apple-touch-startup-image-640x1096.png">
<link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/static/images/touch-icons/apple-touch-startup-image-640x920.png">
<link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/static/images/touch-icons/apple-touch-startup-image-768x1004.png">
<link rel="icon" type="image/png" href="/static/images/touch-icons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/static/images/touch-icons/favicon-230x230.png" sizes="230x230">
<link rel="icon" type="image/png" href="/static/images/touch-icons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="/static/images/touch-icons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="/static/images/touch-icons/coast-228x228.png" sizes="228x228">
<link rel="icon" type="image/png" href="/static/images/touch-icons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/static/images/touch-icons/manifest.json">
<link rel="shortcut icon" href="/static/images/touch-icons/favicon.ico">
<link rel="yandex-tableau-widget" href="/static/images/touch-icons/yandex-browser-manifest.json">
<meta property="og:image" content="https://www.npmjs.com/static/images/touch-icons/open-graph.png">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="msapplication-TileColor" content="#cb3837">
<meta name="msapplication-TileImage" content="/static/images/touch-icons/mstile-144x144.png">
<meta name="msapplication-config" content="/static/images/touch-icons/browserconfig.xml">
<meta name="theme-color" content="#cb3837">
</head>
<body itemscope itemtype="http://schema.org/WebSite" data-crumb="IEusgfXm286AAnpHaAR2NylabzdKygtWIEV57Sym6Au">
<meta itemprop="url" content="https://www.npmjs.com/">
<header class="logged-in ">
<!-- logo -->
<div class="header-item brand-container">
<div class="logo-container" id=\'npm-logo\'>
<a href="/"><img src="/static/images/npm-logo.svg" alt="npm logo" /></a>
</div>
</div>
<!-- /logo -->
<!-- search -->
<div class="header-item header-search-container">
<form class="site-search" id="npm-search" action="/search" method="get" itemprop="potentialAction" itemscope itemtype="http://schema.org/SearchAction">
<meta itemprop="target" content="https://www.npmjs.com/search?q={q}">
<div id="site-search-container">
<input name="q" value="" type="search" id="site-search" placeholder="find packages" tabindex="1" autocorrect="off" autocapitalize="off" itemprop="query-input" />
</div>
<input type="submit"/>
</form>
</div>
<!-- menu 1 -->
<div class="header-item user-info-container">
<div class="user-info">
<div class="drop-down-menu-container" role="navigation">
<a id="user-info-drop-down-menu-toggle" class="drop-down-menu-toggle" href="#user-info-menu" role="button" aria-haspopup="true" aria-owns="user-info-menu"><span class="a11y-only">Toggle User Menu</span>
<span class="user-info-salutation" data-user-name="thex" data-is-paid="">Greetings, <span id="salutation-username">thex</span></span>
<img alt="" src="https://s.gravatar.com/avatar/0b8b602c5cd59dad317311d10ef658a3?size=50&default=retro" />
</a>
<div role="menu" id="user-info-menu" class="drop-down-menu" aria-labelledby="user-info-drop-down-menu-toggle">
<div class="drop-down-menu-section">
<ul>
<li><a href="/~thex">profile</a></li>
<li><a href="/profile-edit">personal info</a></li>
<li><a href="/settings/billing">billing</a></li>
<li><a href="/settings/tokens">tokens</a></li>
<li><form method="POST" action="/logout"> <input type="hidden" name="crumb" value="IEusgfXm286AAnpHaAR2NylabzdKygtWIEV57Sym6Au"/>
<button type="submit" class="btn-link">logout</button></form></li>
</ul>
</div> <!-- .drop-down-menu-section -->
</div> <!-- .drop-down-menu -->
</div> <!-- .drop-down-menu-container -->
</div> <!-- .user-info -->
</div>
<!-- /menu 1 -->
<!-- menu 2 -->
<div class="header-item header-nav-menu-container">
<a href="#" id="npm-expansions" class="npm-expansions" data-event-trigger="click" data-event-name="npm-expansions">node package manager</a>
<div class="nav-menu-container" role="navigation">
<a class="nav-toggle drop-down-menu-toggle" href="#product-navigation"><span class="a11y-only">Toggle Navigation</span>
<img alt="mobile navigation menu" src="/static/images/mobile-menu.png" />
</a>
<div class="drop-down-menu-container" role="menu">
<nav id="product-navigation" class="product-navigation drop-down-menu">
<ul class="drop-down-menu-section products-list">
<li><a id="nav-enterprise-link" href="/npm/enterprise">npm Enterprise</a></li>
<li><a id="nav-private-link" href="/npm/private-packages" data-event-trigger="click" data-event-name="private-modules-nav-link">npm Private Packages</a></li>
<li><a id="nav-oss-link" href="/npm/open-source">npm Open Source</a></li>
<li><a id="nav-docs-link" href="https://docs.npmjs.com">documentation</a></li>
<li><a id="nav-support-link" href="/support">support</a></li>
</ul>
</nav>
</div>
</div>
</div>
<!-- /menu 2 -->
</header>
<div class="container content">
<div class="content-column">
<h1 class="package-name">
<a href="/package/pimatic">pimatic</a>
<i class="icon-public"></i>
</h1>
<p class="package-description">A home automation server and framework for the Raspberry PI running on node.js</p>
<form class="star">
<input type="hidden" name="name" value="pimatic">
<input id="star-input" type="checkbox" name="isStarred" value="true" >
<label for="star-input" class="icon-star"></label>
<input type="hidden" name="crumb" value="IEusgfXm286AAnpHaAR2NylabzdKygtWIEV57Sym6Au"/>
</form>
<div id="readme" class="markdown">
<h1 id="user-content-pimatic" class="deep-link package-name-redundant"><a href="#pimatic">pimatic</a></h1>
<p><a href="https://travis-ci.org/pimatic/pimatic"><img src="https://travis-ci.org/pimatic/pimatic.png?branch=master" class="badge"></a>
<a href="http://badge.fury.io/js/pimatic"><img src="https://badge.fury.io/js/pimatic.png" class="badge"></a>
<a href="https://waffle.io/pimatic/pimatic"><img src="https://badge.waffle.io/pimatic/pimatic.png?label=ready&title=Ready"></a></p>
<p>pimatic is a home automation framework that runs on <a href="http://nodejs.org">node.js</a>. It provides a
common extensible platform for home control and automation tasks.</p>
<p>Read more at <a href="http://pimatic.org/">pimatic.org</a> or visit the <a href="http://forum.pimatic.org">forum</a>.</p>
<p class="badge-only"><a href="https://gitter.im/pimatic/pimatic?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img src="https://badges.gitter.im/Join%20Chat.svg" class="badge"></a></p>
<h2 id="user-content-screenshots" class="deep-link"><a href="#screenshots">Screenshots</a></h2>
<p><a href="http://www.pimatic.org/screens/screen1.png"><img src="http://www.pimatic.org/screens/screen1_thumb.png?v=1"></a>
<a href="http://www.pimatic.org/screens/screen2.png"><img src="http://www.pimatic.org/screens/screen2_thumb.png?v=1"></a>
<a href="http://www.pimatic.org/screens/screen3.png"><img src="http://www.pimatic.org/screens/screen3_thumb.png?v=1"></a>
<a href="http://www.pimatic.org/screens/screen4.png"><img src="http://www.pimatic.org/screens/screen4_thumb.png?v=1"></a></p>
<h2 id="user-content-getting-started" class="deep-link"><a href="#getting-started">Getting Started</a></h2>
<p><a href="http://pimatic.org/guide/getting-started/installation/">Install instruction</a> can be found
on <a href="http://pimatic.org/">pimatic.org</a>. If you need any help, <a href="http://forum.pimatic.org">ask at the forum</a>.</p>
<h2 id="user-content-donation" class="deep-link"><a href="#donation">Donation</a></h2>
<p>Happy with pimatic and using it everyday? Consider a donation to support development and keeping the website and forum up: <a href="https://www.gittip.com/sweetpi/"><img src="http://img.shields.io/gittip/sweetpi.png" class="badge"></a>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KCVVRY4243JS6"><img src="http://img.shields.io/paypal/donate.png?color=blue" class="badge"></a></p>
<p>We promise, that pimatic will always be free to use and its code be open sourced.</p>
<h2 id="user-content-get-involved" class="deep-link"><a href="#get-involved">Get Involved</a></h2>
<p>pimatic is your opportunity to <a href="https://github.com/pimatic/pimatic/issues/223">contribute to a growing OpenSource-Project</a>.</p>
<h2 id="user-content-architecture-overview" class="deep-link"><a href="#architecture-overview">Architecture Overview</a></h2>
<pre><code>+-------------------------------------------+
| mobile- | rest- | cron | homeduino | ... | Plugins (Views, Device-/Preidcates-
| frontend | api | | | | Action-Provider, Services)
|-------------------------------------------|
| pimatic (framework) | Framework
|-------------------------------------------|
| rule | device | (core) | (core) | Model
| system | schemata | predicates | actions |
|-------------------------------------------|
| node.js (non-blocking, async IO, | Low-Level Infrastructure
| event-loop, v8) |
+-------------------------------------------+
</code></pre>
<h2 id="user-content-extensions-and-hacking" class="deep-link"><a href="#extensions-and-hacking">Extensions and Hacking</a></h2>
<p>The framework is built to be extendable by plugins. If you have devices that are currently not
supported please add a plugin for your devices.
As well, if you have a nice Ideas for plugins or need support for specials devices you are
welcome to create a issue or submit a patch.</p>
<p>For plugin development take a look at the
<a href="http://pimatic.org/guide/development/required-skills-readings/">development guide</a> and
<a href="https://github.com/pimatic/pimatic-plugin-template">plugin template</a>.</p>
<p>Feel free to ask development questions at the
<a href="https://github.com/sweetpi/pimatic-plugin-template/issues">plugin template repository</a>.</p>
<h2 id="user-content-copyright--license" class="deep-link"><a href="#copyright--license">Copyright / License</a></h2>
<pre><code>Copyright (C) 2014 Oliver Schneider <oliverschneider89+sweetpi@gmail.com>
pimatic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
pimatic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with pimatic. If not, see <http://www.gnu.org/licenses/>.
</code></pre>
</div>
</div>
<div class="sidebar">
<div class="promotion" data-promotion-id="544" data-promotion-spot="packagePage"><div class="marketing">
<h3 id="marketing-texthed"><a href="http://npm.me/b3" title="Socks for docs">You need clean socks</a></h3>
<p>And we need help with npm and its docs. A trade is in order. <a href="http://npm.me/b3" title="Socks for docs">Socks for docs »</a></p></div></div>
<div class="autoselect-wrapper npm-install icon-download">
<input type="text" value="npm install pimatic" readonly>
<p><a href="/package/pimatic/tutorial">how? learn more</a></p>
</div>
<ul class="box">
<li class="last-publisher">
<a href="/~sweetpi">
<img src="https://s.gravatar.com/avatar/b7bde30df8a5ad35cdbd0d010c9ae422?size=100&default=retro" alt="sweetpi" />
<span>sweetpi</span>
</a>
published
<span data-date="2016-04-18T05:38:28.264Z" data-date-format="relative">
2016-04-18T05:38:28.264Z
</span>
</li>
<li>
<strong>0.8.104</strong>
is the latest
of 153 releases
</li>
<li>
<a href="https://github.com/pimatic/pimatic">github.com/pimatic/pimatic</a>
</li>
<li>
<a href="http://spdx.org/licenses/GPL-2.0">GPL-2.0</a>
<img class="osi" alt="Licensed on OSI-approved terms" src="/static/images/osi.svg">®
</li>
</ul>
<h3 title="collaborators">
<a href="/package/pimatic/access">Collaborators</a>
</h3>
<ul class="humans collaborators">
<li>
<a href="/~sweetpi" rel="tipsy" title="sweetpi">
<img src="https://s.gravatar.com/avatar/b7bde30df8a5ad35cdbd0d010c9ae422?size=100&default=retro" alt="sweetpi">
</a>
</li>
<li>
<a href="/~mwittig" rel="tipsy" title="mwittig">
<img src="https://s.gravatar.com/avatar/7ece3b1061678363ed5a809e30ade01d?size=100&default=retro" alt="mwittig">
</a>
</li>
</ul>
<h3>Stats</h3>
<ul class="box">
<li>
<strong class="pretty-number daily-downloads">241</strong>
downloads in the last day
</li>
<li>
<strong class="pretty-number weekly-downloads">5239</strong>
downloads in the last week
</li>
<li>
<strong class="pretty-number monthly-downloads">10159</strong>
downloads in the last month
</li>
<li id="issues" data-ghapi="https://api.github.com/repos/pimatic/pimatic">
<span class="original">Have an issue? <a href="https://github.com/pimatic/pimatic/issues">File it.</a></span>
<span class="enhanced" style="display:none">
<a href="https://github.com/pimatic/pimatic/issues"></a> on GitHub
</span>
</li>
<li id="pull_requests" style="display:none">
<a href="https://github.com/pimatic/pimatic/pulls"></a> on GitHub
</li>
</ul>
<h3>Try it out</h3>
<ul class="box">
<li class="tonicdev"><a href="https://tonicdev.com/npm/pimatic" target="_blank">Test pimatic in your browser.</a></li>
</ul>
<h3>Keywords</h3>
<p class="list-of-links">
None
</p>
<h3>Dependencies (30)</h3>
<p class="list-of-links">
<a href="/package/cjson">cjson</a>,
<a href="/package/winston">winston</a>,
<a href="/package/string">string</a>,
<a href="/package/source-map-support">source-map-support</a>,
<a href="/package/socket.io">socket.io</a>,
<a href="/package/semver">semver</a>,
<a href="/package/request-promise">request-promise</a>,
<a href="/package/relaxed-json">relaxed-json</a>,
<a href="/package/moment">moment</a>,
<a href="/package/logrotate-stream">logrotate-stream</a>,
<a href="/package/lodash">lodash</a>,
<a href="/package/knex">knex</a>,
<a href="/package/jayschema">jayschema</a>,
<a href="/package/i18n">i18n</a>,
<a href="/package/human-format">human-format</a>,
<a href="/package/gethub">gethub</a>,
<a href="/package/fs.extra">fs.extra</a>,
<a href="/package/express">express</a>,
<a href="/package/decl-api">decl-api</a>,
<a href="/package/date-format-lite">date-format-lite</a>,
<a href="/package/daemon">daemon</a>,
<a href="/package/cross-spawn">cross-spawn</a>,
<a href="/package/convict">convict</a>,
<a href="/package/connect-timeout">connect-timeout</a>,
<a href="/package/colors">colors</a>,
<a href="/package/coffee-script">coffee-script</a>,
<a href="/package/jsonlint">jsonlint</a>,
<a href="/package/cassert">cassert</a>,
<a href="/package/byline">byline</a>,
<a href="/package/bluebird">bluebird</a>
</p>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "SoftwareApplication",
"name": "pimatic",
"description": "A home automation server and framework for the Raspberry PI running on node.js",
"url": "https://www.npmjs.com/package/pimatic",
"keywords": "",
"applicationCategory": "DeveloperApplication",
"offers": {
"@type": "Offer",
"price": "0.00"
}
}
</script>
<div class="hiring-container" data-template="sidebar"></div>
</div>
</div>
<footer class="pane bg-npm-navy-1">
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h3 class="h4 type-npm-pastel-3">You Need Help</h3>
<hr class="divider-1">
<ul class="list-unstyled h6 em-default">
<li class="pbl"><a class="type-neutral-11" href="https://docs.npmjs.com">Documentation</a></li>
<li class="pbl"><a class="type-neutral-11" href="/support">Support / Contact Us</a></li>
<li class="pbl"><a class="type-neutral-11" href="http://status.npmjs.org/">Registry Status</a></li>
<li class="pbl"><a class="type-neutral-11" href="https://github.com/npm/newww/issues">Website Issues</a></li>
<li class="pbl"><a class="type-neutral-11" href="https://github.com/npm/npm/issues">CLI Issues</a></li>
<li class="pbl"><a class="type-neutral-11" href="/policies/security">Security</a></li>
</ul>
</div>
<div class="col-md-6 col-md-offset-1">
<h3 class="h4 type-npm-pastel-3">About npm</h3>
<hr class="divider-1">
<ul class="list-unstyled h6 em-default">
<li class="pbl"><a class="type-neutral-11" href="/about">About npm, Inc</a></li>
<li class="pbl"><a class="type-neutral-11" href="/jobs">Jobs</a></li>
<li class="pbl"><a class="type-neutral-11" href="/npm-weekly">npm Weekly</a></li>
<li class="pbl"><a class="type-neutral-11" href="http://blog.npmjs.org">Blog</a></li>
<li class="pbl"><a class="type-neutral-11" href="https://twitter.com/npmjs">Twitter</a></li>
<li class="pbl"><a class="type-neutral-11" href="https://github.com/npm">GitHub</a></li>
</ul>
</div>
<div class="col-md-6 col-md-offset-1">
<h3 class="h4 type-npm-pastel-3">Legal Stuff</h3>
<hr class="divider-1">
<ul class="list-unstyled h6 em-default">
<li class="pbl"><a class="type-neutral-11" href="/policies/terms">Terms of Use</a></li>
<li class="pbl"><a class="type-neutral-11" href="/policies/conduct">Code of Conduct</a></li>
<li class="pbl"><a class="type-neutral-11" href="/policies/disputes">Package Name Disputes</a></li>
<li class="pbl"><a class="type-neutral-11" href="/policies/privacy">Privacy Policy</a></li>
<li class="pbl"><a class="type-neutral-11" href="/policies/receiving-reports">Reporting Abuse</a></li>
<li class="pbl"><a class="type-neutral-11" href="/policies/">Other policies</a></li>
</ul>
</div>
</div>
</div>
<div class="txt-c container">
<a class="npm-loves-you type-neutral-11" href="/">
npm loves you
</a>
</div>
</footer>
<script defer src="/static/js/vendor.min.a3c53b90.js"></script>
<script defer async src="https://cdn.optimizely.com/js/3318080746.js"></script>
<script defer async src=\'//img.en25.com/i/elqCfg.min.js\'></script><!-- Eloqua -->
</body>
</html>
<!-- pid=21338 63597af6aec904274e7247f6674d1697d63b3392 https://www.npmjs.com www-13-west.internal.npmjs.com -->
';
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php