Table of Contents

mqtt_subscribe

WMPRO, WMMINI FW >= 1.1074 WMMEGA FW >= 2.1078

Subscribe to an MQTT channel

Description

mqtt_subscribe ( string $channel, string $callback )

Parameters

$channel: Channel to subscribe to. See MQTT Configuration

$callback: Callback script to execute upon receipt of a message

Return Values

1 if successful and 0 on failure

Example

<? 
// Use the # as a wildcard so any messages to /cluster/1/ or its sub channels will be received
 
mqtt_subscribe("/cluster/1/#","/scripts/tests/mqttsub.cgi");
?>

Example Callback

Callbacks can use the stdin file to read input. Use fgets() to get the first line, which will be the full channel. The following lines will be the data received.

<? 
$f=fopen("php://stdin","r");
$st=fgets($f);
$msg=fgets($f);
$response="";
if (substr($msg,0,3)=='get') {
	$variable=substr($msg,4,strlen($msg)-3);
	$response=$variable.":".$_GLOBALS[$variable];
}
if (strpos($st,getmac()) || strpos($st,'/all')) {
	if (strpos($st,"get")) {
        mqtt_publish("/cluster/1/ret/".getmac(),$response);
	} else {
		if (strpos($st,"ret")) {    
			print("Notification was properly posted");
		}
	}
}
?>

Note

On WattmonPRO & MINI the maximum packet size is 128 bytes. On WattmonMega, M2 & Mini2 the maximum packet size is 2048 bytes.

See Also

mqtt_publish() - Publish to an MQTT channel