/**
  * @param FilterInterface $filterInterface
  * @return array
  */
 private function getDevices(FilterInterface $filterInterface)
 {
     $client = $this->get('fhem_connection.services.client_service');
     $filter = new Filter();
     $filter->addFilter($filterInterface);
     return $client->getContent($filter);
 }
 /**
  * @param ParameterBag $query
  * @return Filter
  */
 public function transform(ParameterBag $query)
 {
     $filter = new Filter();
     if (null === $query->get('filter')) {
         return $filter;
     }
     foreach ($query->get('filter') as $name => $value) {
         $filterClassName = '\\FhemConnectionBundle\\Filter\\' . ucfirst($name) . 'Filter';
         // TODO create factory
         $filterClass = new $filterClassName($value);
         $filter->addFilter($filterClass);
     }
     return $filter;
 }
 /**
  * @param Filter $filter
  * @return mixed
  */
 public function execute(Filter $filter = null)
 {
     $json = file_get_contents($this->endpoint . '/fhem?cmd=jsonlist2%20' . $filter->__toString() . '&XHR=1');
     // TODO: need error handling here
     return json_decode($json);
 }