<?php
class Message
{
	public $id;
	public $state = false;
	public $msg;
}

class topic {
	public $mid;
	public $status;
	public $info;
	public $devices;
	public $groups;
	public $extensions;
	public $config;
}

class device
{
	public $method;    //auto or manual
	public $topic;
	public $device;
	public $ieeeAddress;
	public $groupID;
	public $friendlyName;
	public $powerSource;
	public $description;
	public $functions;
	public $payload;
	public $availability = array();

	public function set($event)
	{
		publish($this->topic . "/" . $this->friendlyName, $this->payload, "set", $event);
	}

	public function get()
	{
		publish($this->topic . "/" . $this->friendlyNames, $this->payload, "get", $event);
	}
}

class ranges
{
	public $start;			//datetime
	public $end;			//datetime
}

class event
{
	public $ieeeAddress;
	public $topic;
	public $param;
	public $value;
	public $device;
	public $published;
	public $dateTimeEvent;			// datetime : next occurence for recurrent event
	public $startDatetime;
	public $stopDatetime;
	public $recurrenceInterval;		// interval : for recurrent event
	public $exceptionInterval;		// array of object ranges
}

class interval
{
	public $startDate;
	public $endDate;
}

?>