/**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index()
 {
     $devices = DetectedDevice::orderBy('created_at', 'desc')->get();
     $uniqueDevices = $devices->unique('mac_address');
     //Attach the count of the number of occurrences to each record
     $uniqueDevices->each(function ($item, $key) use($devices) {
         $item['occurrences'] = $devices->where('mac_address', $item['mac_address'])->count();
     });
     //Ensure the display name is always present and doesn't get overridden by a newer blank name
     $uniqueDevices->each(function ($item, $key) use($devices) {
         $item['display_name'] = $devices->where('mac_address', $item['mac_address'])->sortByDesc('display_name')->first()->display_name;
     });
     return view('detected_devices.index', ['devices' => $uniqueDevices]);
 }
 private function logDetectedDevices($data)
 {
     //this isn't strictly a heartbeat but the updates occur at a regular interval so they will do
     $this->acsNodeRepository->logHeartbeat($data['device']);
     //See if any devices have been detected, if so log them
     foreach (array_keys($data['payload']['bluetooth_devices']) as $macAddress) {
         DetectedDevice::create(['type' => 'bluetooth', 'mac_address' => $macAddress, 'display_name' => $data['payload']['bluetooth_devices'][$macAddress]]);
     }
 }