示例#1
0
// 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";
if (!$mqtt_enabled) {
    echo "Error: setting must be true: mqtt_enabled\n";
    die;
}
$log = new EmonLogger(__FILE__);
$log->info("Starting MQTT Input script");
$mysqli = @new mysqli($server, $username, $password, $database);
if ($mysqli->connect_error) {
    $log->error("Can't connect to 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("Could not connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');
    }
    if (!empty($redis_server['prefix'])) {
        $redis->setOption(Redis::OPT_PREFIX, $redis_server['prefix']);
    }
    if (!empty($redis_server['auth'])) {
示例#2
0
// export interval in seconds
$time = time();
// generate export for last month of this time
$exportpath = './exports';
// where to save export backup file (relative to base emoncms path)
// Dont change bellow this
$fp = fopen("/var/lock/export_daily.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->info("Starting export task script");
$mysqli = @new mysqli($server, $username, $password, $database);
if ($mysqli->connect_error) {
    $log->error("Can't connect to 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("Could not connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');
    }
    if (!empty($redis_server['prefix'])) {
        $redis->setOption(Redis::OPT_PREFIX, $redis_server['prefix']);
    }
    if (!empty($redis_server['auth'])) {
示例#3
0
文件: feedwriter.php 项目: roy13/EMON
// This code is released under the GNU Affero General Public License.
// OpenEnergyMonitor project:
// http://openenergymonitor.org
define('EMONCMS_EXEC', 1);
$fp = fopen("/home/pi/data/feedrunlock", "w");
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"));
*/
define('EMONCMS_EXEC', 1);
$fp = fopen("/var/lock/input_queue_processor.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";
if (!$redis_enabled) {
    echo "Error: setting must be true: redis_enabled\n";
    die;
}
$log = new EmonLogger(__FILE__);
$log->info("Starting REDIS Input Queue Processor script");
$mysqli = @new mysqli($server, $username, $password, $database, $port);
if ($mysqli->connect_error) {
    $log->error("Can't connect to 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("Could not connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');
    }
    if (!empty($redis_server['prefix'])) {
        $redis->setOption(Redis::OPT_PREFIX, $redis_server['prefix']);
    }
    if (!empty($redis_server['auth'])) {
示例#5
0
$emoncms_config_file = "/home/pi/data/emoncms.conf";
$emonhub_config_file = "/home/pi/data/emonhub.conf";
$topic = "emonhub/rx/#";
define('EMONCMS_EXEC', 1);
$fp = fopen("/home/pi/data/nodes_mqtt_process_lock", "w");
if (!flock($fp, LOCK_EX | LOCK_NB)) {
    echo "Already running\n";
    die;
}
chdir("/var/www/emoncms");
// Emoncms logger
require "Modules/log/EmonLogger.php";
$log = new EmonLogger(__FILE__);
$log->set_logfile("/var/log/emoncms.log");
$log->set_topic("MQTT");
$log->info("Starting emoncms mqtt nodes process");
require "Modules/nodes/ConfObj.php";
require "process_settings.php";
// Connect to mysql
$mysqli = @new mysqli($server, $username, $password, $database);
while ($mysqli->connect_error) {
    sleep(1);
    $log->warn("Could not connect to mysql, retrying");
    $mysqli = @new mysqli($server, $username, $password, $database);
}
// Connect to redis
$redis = new Redis();
while (!$redis->connect("127.0.0.1")) {
    sleep(1);
    $log->warn("Could not connect to redis, retrying");
}
示例#6
0
require "Lib/EmonLogger.php";
require "process_settings.php";
if (!$redis_enabled) {
    echo "Error: setting must be true: redis_enabled\n";
    die;
}
if (!$feed_settings['redisbuffer']['enabled']) {
    echo "Error: setting must be true: feed_settings['redisbuffer']['enabled']\n";
    die;
}
if (!$feed_settings['redisbuffer']['sleep'] || (int) $feed_settings['redisbuffer']['sleep'] < 1) {
    echo "Error: setting must be > 0 : feed_settings['redisbuffer']['sleep']\n";
    die;
}
$log = new EmonLogger(__FILE__);
$log->info("Starting feedwriter script");
$mysqli = @new mysqli($server, $username, $password, $database);
if ($mysqli->connect_error) {
    $log->error("Can't connect to 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("Could not connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');
    }
    if (!empty($redis_server['prefix'])) {
        $redis->setOption(Redis::OPT_PREFIX, $redis_server['prefix']);
    }
    if (!empty($redis_server['auth'])) {
function db_schema_setup($mysqli, $schema, $apply)
{
    $log = new EmonLogger(__FILE__);
    $operations = array();
    while ($table = key($schema)) {
        $log->info($table);
        error_log($table);
        // if table exists:
        $result = $mysqli->query("SHOW TABLES LIKE '" . $table . "'");
        if ($result != null && $result->num_rows == 1) {
            // $out[] = array('Table',$table,"ok");
            //-----------------------------------------------------
            // Check table fields from schema
            //-----------------------------------------------------
            while ($field = key($schema[$table])) {
                $type = $schema[$table][$field]['type'];
                if (isset($schema[$table][$field]['Null'])) {
                    $null = $schema[$table][$field]['Null'];
                } else {
                    $null = "YES";
                }
                if (isset($schema[$table][$field]['Key'])) {
                    $key = $schema[$table][$field]['Key'];
                } else {
                    $key = null;
                }
                if (isset($schema[$table][$field]['default'])) {
                    $default = $schema[$table][$field]['default'];
                } else {
                    unset($default);
                }
                if (isset($schema[$table][$field]['Extra'])) {
                    $extra = $schema[$table][$field]['Extra'];
                } else {
                    $extra = null;
                }
                // if field exists:
                $result = $mysqli->query("SHOW COLUMNS FROM `{$table}` LIKE '{$field}'");
                if ($result->num_rows == 0) {
                    $query = "ALTER TABLE `{$table}` ADD `{$field}` {$type}";
                    if ($null) {
                        $query .= " NOT NULL";
                    }
                    if (isset($default)) {
                        $query .= " DEFAULT '{$default}'";
                    }
                    $operations[] = $query;
                    if ($apply) {
                        $mysqli->query($query);
                    }
                } else {
                    $result = $mysqli->query("DESCRIBE {$table} `{$field}`");
                    $array = $result->fetch_array();
                    $query = "";
                    if ($array['Type'] != $type) {
                        $query .= ";";
                    }
                    if (isset($default) && $array['Default'] != $default) {
                        $query .= " Default '{$default}'";
                    }
                    if ($array['Null'] != $null && $null == "NO") {
                        $query .= " not null";
                    }
                    if ($array['Extra'] != $extra && $extra == "auto_increment") {
                        $query .= " auto_increment";
                    }
                    if ($array['Key'] != $key && $key == "PRI") {
                        $query .= " primary key";
                    }
                    if ($query) {
                        $query = "ALTER TABLE {$table} MODIFY `{$field}` {$type}" . $query;
                    }
                    if ($query) {
                        $operations[] = $query;
                    }
                    if ($query && $apply) {
                        $mysqli->query($query);
                    }
                }
                next($schema[$table]);
            }
        } else {
            //-----------------------------------------------------
            // Create table from schema
            //-----------------------------------------------------
            $query = "CREATE TABLE " . $table . " (";
            while ($field = key($schema[$table])) {
                $type = $schema[$table][$field]['type'];
                if (isset($schema[$table][$field]['Null'])) {
                    $null = $schema[$table][$field]['Null'];
                } else {
                    $null = "YES";
                }
                if (isset($schema[$table][$field]['Key'])) {
                    $key = $schema[$table][$field]['Key'];
                } else {
                    $key = null;
                }
                if (isset($schema[$table][$field]['default'])) {
                    $default = $schema[$table][$field]['default'];
                } else {
                    $default = null;
                }
                if (isset($schema[$table][$field]['Extra'])) {
                    $extra = $schema[$table][$field]['Extra'];
                } else {
                    $extra = null;
                }
                $query .= '`' . $field . '`';
                $query .= " {$type}";
                if ($default) {
                    $query .= " Default '{$default}'";
                }
                if ($null == "NO") {
                    $query .= " not null";
                }
                if ($extra) {
                    $query .= " auto_increment";
                }
                if ($key) {
                    $query .= " primary key";
                }
                next($schema[$table]);
                if (key($schema[$table])) {
                    $query .= ", ";
                }
            }
            $query .= ")";
            $query .= " ENGINE=MYISAM";
            if ($query) {
                $operations[] = $query;
            }
            if ($query && $apply) {
                $mysqli->query($query);
            }
        }
        next($schema);
    }
    return $operations;
}
示例#8
0
*/
define('EMONCMS_EXEC', 1);
$fp = fopen("/var/lock/input_queue_processor.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";
if (!$redis_enabled) {
    echo "Error: setting must be true: redis_enabled\n";
    die;
}
$log = new EmonLogger(__FILE__);
$log->info("Starting MQTT Input Queue Processor script");
$mysqli = @new mysqli($server, $username, $password, $database);
if ($mysqli->connect_error) {
    $log->error("Can't connect to 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("Could not connect to redis at " . $redis_server['host'] . ":" . $redis_server['port']);
        die('Check log\\n');
    }
    if (!empty($redis_server['prefix'])) {
        $redis->setOption(Redis::OPT_PREFIX, $redis_server['prefix']);
    }
    if (!empty($redis_server['auth'])) {