Esempio n. 1
1
    $host = 'localhost';
}
if ($mqtt->config['MQTT_PORT']) {
    $port = $mqtt->config['MQTT_PORT'];
} else {
    $port = 1883;
}
if ($mqtt->config['MQTT_QUERY']) {
    $query = $mqtt->config['MQTT_QUERY'];
} else {
    $query = '/var/now/#';
}
$mqtt_client = new phpMQTT($host, $port, "MajorDoMo MQTT Client");
if (!$mqtt_client->connect()) {
    exit(1);
}
//$topics['/dev/Node1/Ai6'] = array("qos"=>0, "function"=>"procmsg");
//$topics['/dev/#'] = array("qos"=>0, "function"=>"procmsg");
$topics[$query] = array("qos" => 0, "function" => "procmsg");
$mqtt_client->subscribe($topics, 0);
while ($mqtt_client->proc()) {
}
$mqtt_client->close();
function procmsg($topic, $msg)
{
    global $mqtt;
    $mqtt->processMessage($topic, $msg);
    echo date("Y-m-d H:i:s") . " Topic:{$topic} {$msg}\n";
}
$db->Disconnect();
// closing database connection
<?php

require "Lib/phpMQTT.php";
$mqtt = new phpMQTT("127.0.0.1", 1883, "Emoncms feed subscriber");
if (!$mqtt->connect()) {
    exit(1);
}
$topics["emoncms/#"] = array("qos" => 0, "function" => "procmsg");
$mqtt->subscribe($topics, 0);
while ($mqtt->proc()) {
}
$mqtt->close();
function procmsg($topic, $value)
{
    $time = time();
    print $topic . " " . $value . "\n";
}
Esempio n. 3
0
<?php

include "resources/phpMQTT.php";
error_reporting(0);
$results = [];
$topics = "WEATHER/a,AHMS/pir,AHMS/move,AHMS/door";
if (isset($_GET["topic"])) {
    $topics = $_GET["topic"];
}
$mqtt = new phpMQTT("192.168.1.20", 1883, "PHP MQTT Client", "ahmsclient", "ahms2013");
if ($mqtt->connect()) {
    foreach (explode(",", $topics) as $topic) {
        $myTopics = [];
        $myTopics[$topic] = array("qos" => 0, "function" => "procmsg");
        $mqtt->subscribe($myTopics);
        if ($mqtt->proc() == 0) {
            array_push($results, array("status" => "no message", "topic" => $topic, "message" => ""));
        }
    }
    $mqtt->close();
} else {
    array_push($results, array("status" => "ok", "no connection" => $topic, "message" => ""));
}
echo json_encode($results);
function procmsg($topic, $message)
{
    global $results;
    array_push($results, array("status" => "ok", "topic" => $topic, "message" => $message));
}
// set configuration values
$config = array('org_id' => 'IOTF-ORG-ID', 'port' => '1883', 'app_id' => 'phpmqtt', 'iotf_api_key' => 'IOTF-API-KEY', 'iotf_api_secret' => 'IOTF-API-TOKEN', 'maps_api_key' => 'GOOGLE-API-KEY', 'device_id' => 'DEVICE-ID', 'qos' => 1);
$config['server'] = $config['org_id'] . '.messaging.internetofthings.ibmcloud.com';
$config['client_id'] = 'a:' . $config['org_id'] . ':' . $config['app_id'];
$location = array();
// initialize client
$mqtt = new phpMQTT($config['server'], $config['port'], $config['client_id']);
$mqtt->debug = false;
// connect to broker
if (!$mqtt->connect(true, null, $config['iotf_api_key'], $config['iotf_api_secret'])) {
    echo 'ERROR: Could not connect to IoT cloud';
    exit;
}
// subscribe to topics
$topics['iot-2/type/+/id/' . $config['device_id'] . '/evt/accel/fmt/json'] = array('qos' => $config['qos'], 'function' => 'getLocation');
$mqtt->subscribe($topics, $config['qos']);
// process messages
$elapsedSeconds = 0;
while ($mqtt->proc(true)) {
    if (count($location) == 2) {
        $latitude = $location[0];
        $longitude = $location[1];
        $mapsApiUrl = 'https://maps.googleapis.com/maps/api/staticmap?key=' . $config['maps_api_key'] . '&size=640x480&maptype=roadmap&scale=2&markers=color:green|' . sprintf('%f,%f', $latitude, $longitude);
        break;
    }
    if ($elapsedSeconds == 5) {
        break;
    }
    sleep(1);
    $elapsedSeconds++;
}
Esempio n. 5
0
/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
require_once dirname(__FILE__) . '/phpMQTT/phpMQTT.php';
require_once dirname(__FILE__) . '/Database.php';
require_once dirname(__FILE__) . '/Rosenberg.php';
require_once dirname(__FILE__) . '/Config.php';
$oDB = new Database(Config::$sInfluxDBHost);
$mqtt = new phpMQTT(Config::$sMQTTHost, Config::$iMQTTPort, "iws daemon");
if (!$mqtt->connect()) {
    exit(1);
}
$topics['/iws/+/soil_moisture'] = array("qos" => 0, "function" => "processMoisture");
$mqtt->subscribe($topics, 0);
$oRosenberg = new Rosenberg($oDB);
$mqtt->subscribe($oRosenberg->getTopics());
while ($mqtt->proc()) {
}
$mqtt->close();
function processMoisture($topic, $msg)
{
    print "processing {$topic}:{$msg}\n";
    global $oDB;
    $pTopic = "/\\/iws\\/(?P<sensor_id>MOIST_[0-9A-F]{8})\\/soil_moisture/";
    if (!preg_match($pTopic, $topic, $aMatches)) {
        die("Couldn't match topic in {$topic}\n");
    }
    $data = array(array('tags' => array('sensor_id' => $aMatches['sensor_id']), 'fields' => array('millivolts' => (int) $msg), 'time' => date("c")));
    print "Inserting moisture {$topic} -> {$msg}\n";