Modules/devices/homebridgeSync inc php
Материал из MajorDoMo инфо
ᐂ В корневой раздел ᐃ В директорию расположения файла
<?php // Благодарность автору https://github.com/cflurin/homebridge-mqtt // Если определено DISABLE_SIMPLE_DEVICES в файле конфигурации и равно 1, прекращаем выполнение скрипта if (defined('DISABLE_SIMPLE_DEVICES') && DISABLE_SIMPLE_DEVICES == 1) return; // Переменная для отладки синхронизации, инициализируется значением 0 $debug_sync = 0; // Инициализация переменной $qry значением "1" $qry = "1"; // Если переменная $device_id определена if ($device_id) { // Добавляем к $qry условие для выборки по ID устройства $qry .= " AND ID=" . $device_id; } // Выполняем SQL запрос для выборки устройств $devices = SQLSelect("SELECT * FROM devices WHERE $qry"); // Подсчитываем общее количество устройств $total = count($devices); // Выводим сообщение о синхронизации устройств DebMes("Syncing devices (total: $total)", 'homebridge'); // Начинаем цикл по всем устройствам for ($i = 0; $i < $total; $i++) { // Если у устройства нет связанного объекта if ($devices[$i]['LINKED_OBJECT'] == '') { // Пропускаем текущую итерацию цикла continue; } // Инициализируем массив $payload $payload = array(); // Добавляем в $payload имя связанного объекта $payload['name'] = $devices[$i]['LINKED_OBJECT']; // Если устройство является системным или архивировано if ($devices[$i]['SYSTEM_DEVICE'] || $devices[$i]['ARCHIVED']) { // Если включена отладка синхронизации if ($debug_sync) { // Выводим сообщение о удалении устройства DebMes("HomeBridge.to_remove: " . json_encode($payload), 'homebridge'); } // Отправляем команду на удаление устройства sg('HomeBridge.to_remove', json_encode($payload)); // Пропускаем текущую итерацию цикла continue; } // Если включена принудительная перезагрузка if ($force_refresh) { // Если включена отладка синхронизации if ($debug_sync) { // Выводим сообщение о удалении устройства DebMes("HomeBridge.to_remove: " . json_encode($payload), 'homebridge'); } // Отправляем команду на удаление устройства sg('HomeBridge.to_remove', json_encode($payload)); } // Добавляем в $payload имя сервиса, обрабатывая заголовок устройства $payload['service_name'] = processTitle($devices[$i]['TITLE']); // Начинаем оператор switch для определения типа устройства switch ($devices[$i]['TYPE']) { // Если тип устройства - реле case 'relay': // Получаем тип нагрузки $load_type = gg($devices[$i]['LINKED_OBJECT'] . '.loadType'); // Если тип нагрузки - свет, устанавливаем сервис "Lightbulb" if ($load_type == 'light') $payload['service'] = 'Lightbulb'; // Если тип нагрузки - вентиляция, устанавливаем сервис "Fan" elseif ($load_type == 'vent') $payload['service'] = 'Fan'; // Если тип нагрузки - переключатель, устанавливаем сервис "Switch" elseif ($load_type == 'switch') $payload['service'] = 'Switch'; // В противном случае устанавливаем сервис "Outlet" else $payload['service'] = 'Outlet'; // Отправляем команду на добавление устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "On" $payload['characteristic'] = 'On'; // Если статус устройства активен if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { // Устанавливаем значение характеристики "On" в true $payload['value'] = true; // В противном случае } else { // Устанавливаем значение характеристики "On" в false $payload['value'] = false; } // Отправляем команду на установку значения характеристики sg('HomeBridge.to_set', json_encode($payload)); // Выходим из оператора switch break; // Если тип устройства - открываемый case 'openable': // Получаем тип открытия $open_type = gg($devices[$i]['LINKED_OBJECT'] . '.openType'); // Если тип открытия - ворота if ($open_type == 'gates') { // Устанавливаем сервис "GarageDoorOpener" $payload['service'] = 'GarageDoorOpener'; // Если тип открытия - дверь } elseif ($open_type == 'door') { // Устанавливаем сервис "Door" $payload['service'] = 'Door'; // Если тип открытия - окно } elseif ($open_type == 'window') { // Устанавливаем сервис "Window" $payload['service'] = 'Window'; // Если тип открытия - шторы } elseif ($open_type == 'curtains') { // Устанавливаем сервис "WindowCovering" $payload['service'] = 'WindowCovering'; // Если тип открытия - жалюзи } elseif ($open_type == 'shutters') { // Устанавливаем сервис "WindowCovering" $payload['service'] = 'WindowCovering'; } // Если сервис установлен if ($payload['service']) { // Отправляем команду на добавление устройства sg('HomeBridge.to_add', json_encode($payload)); // Если тип открытия - ворота if ($open_type == 'gates') { // Устанавливаем характеристику "CurrentDoorState" $payload['characteristic'] = 'CurrentDoorState'; // Если статус устройства активен if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { // Устанавливаем значение характеристики "CurrentDoorState" в "1" $payload['value'] = "1"; // В противном случае } else { // Устанавливаем значение характеристики "CurrentDoorState" в "0" $payload['value'] = "0"; } // Отправляем команду на установку значения характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "TargetDoorState" $payload['characteristic'] = 'TargetDoorState'; // Устанавливаем значение характеристики "TargetDoorState" в "1" $payload['value'] = "1"; // Отправляем команду на установку значения характеристики sg('HomeBridge.to_set', json_encode($payload)); // Если тип открытия - дверь, окно, шторы или жалюзи } elseif ($open_type == 'door' || $open_type == 'window' || $open_type == 'curtains' || $open_type == 'shutters') { // Устанавливаем характеристику "CurrentPosition" $payload['characteristic'] = 'CurrentPosition'; // Если статус устройства активен if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { // Устанавливаем значение характеристики "CurrentPosition" в "0" (закрыто) $payload['value'] = "0"; // В противном случае } else { // Устанавливаем значение характеристики "CurrentPosition" в "100" (открыто) $payload['value'] = "100"; } // Отправляем команду на установку значения характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "TargetPosition" для управления позицией устройства $payload['characteristic'] = 'TargetPosition'; // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "PositionState" для отображения состояния позиции устройства $payload['characteristic'] = 'PositionState'; // Устанавливаем значение 0 - "Закрывается" 1 - "Открывается" 2 - нет отображения $payload['value'] = "2"; // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Завершаем обработку данного случая } // Завершаем обработку всех случаев } // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком температуры case 'sensor_temp': // Устанавливаем сервис "TemperatureSensor" для устройства $payload['service'] = 'TemperatureSensor'; // Устанавливаем минимальное значение температуры, которое может показать датчик $payload['CurrentTemperature']['minValue'] = -40; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "CurrentTemperature" для отображения текущей температуры $payload['characteristic'] = 'CurrentTemperature'; // Получаем текущее значение температуры устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.value'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком влажности case 'sensor_humidity': // Устанавливаем сервис "HumiditySensor" для устройства $payload['service'] = 'HumiditySensor'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "CurrentRelativeHumidity" для отображения текущей влажности $payload['characteristic'] = 'CurrentRelativeHumidity'; $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.value'); sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком углекислого газа case 'sensor_co2': // Устанавливаем сервис "CarbonDioxideSensor" для устройства $payload['service'] = 'CarbonDioxideSensor'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "CarbonDioxideLevel" для отображения уровня углекислого газа $payload['characteristic'] = 'CarbonDioxideLevel'; // Получаем текущее значение уровня углекислого газа устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.value'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "CarbonDioxideDetected" для отображения наличия углекислого газа $payload['characteristic'] = 'CarbonDioxideDetected'; // Устанавливаем значение "0", что означает отсутствие углекислого газа $payload['value'] = "0"; // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком влажности case 'sensor_moisture': // Здесь должен быть код для обработки датчика влажности, но он еще не реализован break; // Обрабатываем случай, когда устройство является датчиком радиации case 'sensor_radiation': // Здесь должен быть код для обработки датчика радиации, но он еще не реализован break; // Обрабатываем случай, когда устройство является пылесосом case 'vacuum': // Здесь должен быть код для обработки пылесоса, но он еще не реализован break; // Обрабатываем случай, когда устройство является медиа устройством case 'media': // Здесь должен быть код для обработки медиа устройства, но он еще не реализован break; // Обрабатываем случай, когда устройство является телевизором case 'tv': // Здесь должен быть код для обработки телевизора, но он еще не реализован break; // Обрабатываем случай, когда устройство является датчиком движения case 'motion': // Устанавливаем сервис "MotionSensor" для устройства $payload['service'] = 'MotionSensor'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "MotionDetected" для отображения обнаружения движения $payload['characteristic'] = 'MotionDetected'; // Получаем текущее значение статуса устройства $payload['value'] = (int)gg($devices[$i]['LINKED_OBJECT'] . '.status'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком дыма case 'smoke': // Устанавливаем сервис "SmokeSensor" для устройства $payload['service'] = 'SmokeSensor'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "SmokeDetected" для отображения обнаружения дыма $payload['characteristic'] = 'SmokeDetected'; // Получаем текущее значение статуса устройства $payload['value'] = (int)gg($devices[$i]['LINKED_OBJECT'] . '.status'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком утечки case 'leak': // Устанавливаем сервис "LeakSensor" для устройства $payload['service'] = 'LeakSensor'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "LeakDetected" для отображения обнаружения утечки $payload['characteristic'] = 'LeakDetected'; // Получаем текущее значение статуса устройства $payload['value'] = (int)gg($devices[$i]['LINKED_OBJECT'] . '.status'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является кнопкой case 'button': // Устанавливаем сервис "Switch" для устройства $payload['service'] = 'Switch'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком освещенности case 'sensor_light': // Устанавливаем сервис "LightSensor" для устройства $payload['service'] = 'LightSensor'; // Устанавливаем минимальное значение освещенности, которое может показать датчик $payload['CurrentAmbientLightLevel']['minValue'] = 0; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "CurrentAmbientLightLevel" для отображения текущей освещенности $payload['characteristic'] = 'CurrentAmbientLightLevel'; // Получаем текущее значение освещенности устройства $payload['value'] = (int)gg($devices[$i]['LINKED_OBJECT'] . '.value'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является датчиком открытия/закрытия case 'openclose': // Устанавливаем сервис "ContactSensor" для устройства $payload['service'] = 'ContactSensor'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "ContactSensorState" для отображения состояния датчика $payload['characteristic'] = 'ContactSensorState'; // Получаем текущее значение статуса устройства и корректируем его в зависимости от настроек устройства $payload['value'] = (int)gg($devices[$i]['LINKED_OBJECT'] . '.ncno') == 'nc' ? 1 - gg($devices[$i]['LINKED_OBJECT'] . '.status') : gg($devices[$i]['LINKED_OBJECT'] . '.status'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является регулятором яркости case 'dimmer': // Устанавливаем сервис "Lightbulb" для устройства $payload['service'] = 'Lightbulb'; // Устанавливаем значение яркости по умолчанию $payload['Brightness'] = 'default'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "On" для отображения состояния устройства $payload['characteristic'] = 'On'; // Проверяем статус устройства и устанавливаем соответствующее значение if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { $payload['value'] = true; } else { $payload['value'] = false; } // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "Brightness" для отображения текущей яркости $payload['characteristic'] = 'Brightness'; // Получаем текущее значение яркости устройства $payload['value'] = (int)gg($devices[$i]['LINKED_OBJECT'] . '.level'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является RGB лампой case 'rgb': // Устанавливаем сервис "Lightbulb" для устройства $payload['service'] = 'Lightbulb'; // Устанавливаем значения по умолчанию для характеристик Hue, Saturation и Brightness $payload['Hue'] = 'default'; $payload['Saturation'] = 'default'; $payload['Brightness'] = 'default'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "On" для отображения состояния устройства $payload['characteristic'] = 'On'; // Проверяем статус устройства и устанавливаем соответствующее значение if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { $payload['value'] = true; } else { $payload['value'] = false; } // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "Hue" для отображения оттенка устройства $payload['characteristic'] = 'Hue'; // Получаем текущее значение оттенка устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.hue'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "Saturation" для отображения насыщенности устройства $payload['characteristic'] = 'Saturation'; // Получаем текущее значение насыщенности устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.saturation'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "Brightness" для отображения яркости устройства $payload['characteristic'] = 'Brightness'; // Получаем текущее значение яркости устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.brightness'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является светодиодной лампой case 'ledlamp': // Устанавливаем сервис "Lightbulb" для устройства $payload['service'] = 'Lightbulb'; // Устанавливаем значение яркости по умолчанию $payload['Brightness'] = 'default'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "On" для отображения состояния устройства $payload['characteristic'] = 'On'; // Проверяем статус устройства и устанавливаем соответствующее значение if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { $payload['value'] = true; } else { $payload['value'] = false; } // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "Brightness" для отображения яркости устройства $payload['characteristic'] = 'Brightness'; // Получаем текущее значение яркости устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.brightness'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю break; // Обрабатываем случай, когда устройство является термостатом case 'thermostat': // Устанавливаем сервис "Thermostat" для устройства $payload['service'] = 'Thermostat'; // Отправляем данные на сервер HomeBridge для добавления устройства sg('HomeBridge.to_add', json_encode($payload)); // Устанавливаем характеристику "CurrentTemperature" для отображения текущей температуры $payload['characteristic'] = 'CurrentTemperature'; // Получаем текущее значение температуры устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.value'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Устанавливаем характеристику "TargetTemperature" для отображения целевой температуры $payload['characteristic'] = 'TargetTemperature'; // Получаем текущее значение целевой температуры устройства $payload['value'] = gg($devices[$i]['LINKED_OBJECT'] . '.currentTargetValue'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); /* код закомментирован на github // Устанавливаем характеристику "TemperatureDisplayUnits" для отображения единиц измерения температуры $payload['characteristic'] = 'TemperatureDisplayUnits'; // Получаем текущее значение единиц измерения температуры устройства $payload['value']=gg($devices[$i]['LINKED_OBJECT'].'.currentTargetValue'); // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set',json_encode($payload)); */ // Устанавливаем характеристику "CurrentHeatingCoolingState" для отображения текущего состояния отопления/охлаждения $payload['characteristic'] = 'CurrentHeatingCoolingState'; //off = 0, heat = 1, and cool = 2 // Проверяем, не отключен ли устройство if (!gg($devices[$i]['LINKED_OBJECT'] . '.disabled')) { // Проверяем статус устройства if (gg($devices[$i]['LINKED_OBJECT'] . '.status')) { // Устанавливаем значение "1" для характеристики "CurrentHeatingCoolingState", что означает отопление $payload['value'] = 1; } else { // Устанавливаем значение "2" для характеристики "CurrentHeatingCoolingState", что означает охлаждение $payload['value'] = 2; } } else { // Устанавливаем значение "0" для характеристики "CurrentHeatingCoolingState", что означает выключено $payload['value'] = 0; } // Отправляем данные на сервер HomeBridge для установки характеристики sg('HomeBridge.to_set', json_encode($payload)); // Переходим к следующему случаю //TargetHeatingCoolingState //CoolingThresholdTemperature //HeatingThresholdTemperature //Name break; // Обрабатываем случай, когда устройство является камерой case 'camera': /* // Здесь должен быть код для обработки камеры, но он еще не реализован /* $cameraUsername = gg($devices[$i]['LINKED_OBJECT'].'.cameraUsername'); $cameraPassword = gg($devices[$i]['LINKED_OBJECT'].'.cameraPassword'); $snapshot_url = gg($devices[$i]['LINKED_OBJECT'].'.snapshotURL'); $stream_url = gg($devices[$i]['LINKED_OBJECT'].'.streamURL'); $stream_url_hq = gg($devices[$i]['LINKED_OBJECT'].'.streamURL_HQ'); if ($snapshot_url) { $stream_url=$snapshot_url; } elseif (!$stream_url && $stream_url_hq) { $stream_url = $stream_url_hq; } $thumb_params =''; $thumb_params.= 'username="' . $cameraUsername . '" password="' . $cameraPassword . '"'; $thumb_params.= ' width="1024"'; $thumb_params.= ' url="' . $stream_url . '"'; $streamTransport = gg($devices[$i]['LINKED_OBJECT'].'.streamTransport'); if ($streamTransport!='auto' && $streamTransport!='') { $thumb_params.= ' transport="'.$streamTransport.'"'; } $body = '[#module name="thumb" '. $thumb_params. '#]'; $body = processTitle($body, $this); if (preg_match('/img src="(.+?)"/is',$body,$m)) { $snapshotPreviewURL=$m[1]; $snapshotPreviewURL = preg_replace('/&w=(\d+?)/','', $snapshotPreviewURL); $snapshotPreviewURL = preg_replace('/&h=(\d+?)/','', $snapshotPreviewURL); } else { $snapshotPreviewURL=''; } $snapshotPreviewURL='http://'.getLocalIP().$snapshotPreviewURL; $payload['service']='CameraRTPStreamManagement'; sg('HomeBridge.to_add',json_encode($payload)); $payload['characteristic'] = 'SupportedVideoStreamConfiguration'; $payload['value']=''; sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'SupportedAudioStreamConfiguration'; $payload['value']=''; sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'SupportedRTPConfiguration'; $payload['value']=''; sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'SelectedRTPStreamConfiguration'; $payload['value']=''; sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'StreamingStatus'; $payload['value']=''; sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'SetupEndpoints'; $payload['value']=''; sg('HomeBridge.to_set',json_encode($payload)); */ // Переходим к следующему случаю break; /* // Обрабатываем случай, когда устройство является датчиком батареи case 'sensor_battery': // Здесь должен быть код для обработки датчика батареи, но он еще не реализован $payload['service']='BatteryService'; sg('HomeBridge.to_add',json_encode($payload)); // Characteristic.BatteryLevel; // Characteristic.ChargingState; 0 - NOT_CHARGING, 1 - CHARGING, 2 - NOT_CHARGEABLE // Characteristic.StatusLowBattery; $payload['characteristic'] = 'BatteryLevel'; $payload['value']=gg($devices[$i]['LINKED_OBJECT'].'.value'); sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'ChargingState'; $payload['value']=2; sg('HomeBridge.to_set',json_encode($payload)); $payload['characteristic'] = 'StatusLowBattery'; $payload['value']=gg($devices[$i]['LINKED_OBJECT'].'.normalValue') ? 0 : 1; sg('HomeBridge.to_set',json_encode($payload)); break; */ default: $addon_path = dirname(__FILE__) . '/addons/' . $devices[$i]['TYPE'] . '_homebridgeSync.php'; if (file_exists($addon_path)) { require($addon_path); } } } // Отправляем команду на сервер HomeBridge для получения всех устройств sg('HomeBridge.to_get', '{"name": "*"}'); // Устанавливаем режим работы HomeBridge в "list" sg('HomeBridge.mode', 'list'); // Устанавливаем таймер для сброса режима работы HomeBridge через 5 секунд setTimeout('HomeBridgeMode', "sg('HomeBridge.mode','');", 5);