<?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; } ?>