示例#1
0
    if sent to the HTTP Api.
*/
// This code is released under the GNU Affero General Public License.
// OpenEnergyMonitor project:
// http://openenergymonitor.org
define('EMONCMS_EXEC', 1);
$fp = fopen("/var/lock/phpmqtt_input.lock", "w");
if (!flock($fp, LOCK_EX | LOCK_NB)) {
    echo "Already running\n";
    die;
}
chdir(dirname(__FILE__) . "/../");
require "Lib/EmonLogger.php";
require "process_settings.php";
$log = new EmonLogger(__FILE__);
$log->warn("Starting MQTT Input script");
if (!$mqtt_enabled) {
    echo "Error MQTT input script: MQTT must be enabled in settings.php\n";
    $log->error("MQTT must be enabled in settings.php");
    die;
}
$mysqli = @new mysqli($server, $username, $password, $database);
if ($mysqli->connect_error) {
    $log->error("Cannot connect to MYSQL database:" . $mysqli->connect_error);
    die('Check log\\n');
}
if ($redis_enabled) {
    $redis = new Redis();
    if (!$redis->connect($redis_server['host'], $redis_server['port'])) {
        $log->error("Cannot connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');
示例#2
0
文件: feedwriter.php 项目: roy13/EMON
if (!flock($fp, LOCK_EX | LOCK_NB)) {
    echo "Already running\n";
    die;
}
chdir("/var/www/emoncms");
require "Modules/log/EmonLogger.php";
require "process_settings.php";
$log = new EmonLogger(__FILE__);
$log->set_logfile("/var/log/emoncms.log");
$log->set_topic("FEEDWRITER");
$log->info("Starting feedwriter process");
// Connect to redis
$redis = new Redis();
while (!$redis->connect("127.0.0.1")) {
    sleep(1);
    $log->warn("Could not connect to redis, retrying");
}
require "Modules/feed/engine/PHPTimeSeries.php";
require "Modules/feed/engine/PHPFina.php";
$engine = array();
$engine[Engine::PHPTIMESERIES] = new PHPTimeSeries($feed_settings['phptimeseries']);
$engine[Engine::PHPFINA] = new PHPFina($feed_settings['phpfina']);
while (true) {
    $len = $redis->llen("feedbuffer");
    for ($i = 0; $i < $len; $i++) {
        $f = explode(",", $redis->lpop("feedbuffer"));
        $feedid = $f[0];
        $timestamp = $f[1];
        $value = $f[2];
        $padding_mode = (int) $f[3];
        $e = $redis->hget("feed:{$feedid}", 'engine');
示例#3
0
    if sent to the HTTP Api.
*/
// This code is released under the GNU Affero General Public License.
// OpenEnergyMonitor project:
// http://openenergymonitor.org
define('EMONCMS_EXEC', 1);
$fp = fopen("/var/lock/phpmqtt_input.lock", "w");
if (!flock($fp, LOCK_EX | LOCK_NB)) {
    echo "Already running\n";
    die;
}
chdir(dirname(__FILE__) . "/../");
require "Lib/EmonLogger.php";
require "process_settings.php";
$log = new EmonLogger(__FILE__);
$log->warn("Starting MQTT Input script");
if (!$mqtt_enabled) {
    echo "Error MQTT input script: MQTT must be enabled in settings.php\n";
    $log->error("MQTT must be enabled in settings.php");
    die;
}
$mysqli = @new mysqli($server, $username, $password, $database, $port);
if ($mysqli->connect_error) {
    $log->error("Cannot connect to MYSQL database:" . $mysqli->connect_error);
    die('Check log\\n');
}
if ($redis_enabled) {
    $redis = new Redis();
    if (!$redis->connect($redis_server['host'], $redis_server['port'])) {
        $log->error("Cannot connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');