Страница 11 из 11

Re: Простые устройства / Simple Devices описание методов

Добавлено: Сб янв 30, 2021 3:27 pm
AndrewS
Понимаю, что реклама, но сделать ничего не могу. Перешел на Home Assistant, МЖД стоит как резервная...

Re: Простые устройства / Simple Devices описание методов

Добавлено: Пн мар 15, 2021 2:01 am
~220v
Подскажите пожалуйста, в объектах есть класс / SDevices / SOpenClose потом метод statusUpdated в этом методе мне непонятны строки кода:

Код: Выделить всё

startMeasure('statusUpdatedLinkedDevices');
include_once(dirname(__FILE__) . '/devices.class.php');
$dv = new devices();		                          # после этого не работает setGlobal; и не запускается метод объекта
$dv->checkLinkedDevicesAction($ot, $params['NEW_VALUE']); # после этой строки не запускается метод объекта
endMeasure('statusUpdatedLinkedDevices');
endMeasure('statusUpdated');
Что это за измерения? Особенно меня волнуют строки:

$dv = new devices();
$dv->checkLinkedDevicesAction($ot, $params['NEW_VALUE']);


после которых НЕ запускаются методы объекта если выполнять сначала родительский код.
Что это и зачем оно? и почему игнорится код объекта? если закоментить всё ок...

Re: Простые устройства / Simple Devices описание методов

Добавлено: Пн мар 15, 2021 1:50 pm
tarasfrompir
~220v писал(а):
Пн мар 15, 2021 2:01 am
Подскажите пожалуйста, в объектах есть класс / SDevices / SOpenClose потом метод statusUpdated в этом методе мне непонятны строки кода:

Код: Выделить всё

startMeasure('statusUpdatedLinkedDevices');
include_once(dirname(__FILE__) . '/devices.class.php');
$dv = new devices();		                          # после этого не работает setGlobal; и не запускается метод объекта
$dv->checkLinkedDevicesAction($ot, $params['NEW_VALUE']); # после этой строки не запускается метод объекта
endMeasure('statusUpdatedLinkedDevices');
endMeasure('statusUpdated');
Что это за измерения? Особенно меня волнуют строки:

$dv = new devices();
$dv->checkLinkedDevicesAction($ot, $params['NEW_VALUE']);


после которых НЕ запускаются методы объекта если выполнять сначала родительский код.
Что это и зачем оно? и почему игнорится код объекта? если закоментить всё ок...
Подключаем класс устройств

Код: Выделить всё

include_once(dirname(__FILE__) . '/devices.class.php');
$dv = new devices();	
Запускаем метод checkLinkedDevicesAction - для проверки связанных устройств

Код: Выделить всё

$dv->checkLinkedDevicesAction($ot, $params['NEW_VALUE']); # после этой строки не запускается метод объекта
Измеряет время выполнения операций внутри

Код: Выделить всё

startMeasure('statusUpdatedLinkedDevices');
.....
endMeasure('statusUpdatedLinkedDevices');

Re: Простые устройства / Simple Devices описание методов

Добавлено: Вт мар 16, 2021 12:01 am
~220v
Большое спасибо за ответ.
Теперь становится более понятно. Переменная dirname(__FILE__) это в моём случае C:\_Majordomo\htdocs\modules\scripts и это не правильно - нет ни папки \scripts ни файла devices.class.php
правильно только так: C:\_majordomo\htdocs\modules\devices\devices.class.php

странно, нафиг оно надо если и так всё работает :lol:

Код: Выделить всё

include_once(dirname(__FILE__) . '/devices.class.php');
UPD

Разобрался.
Это мне понадобилось немного модифицировать код в
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/*.php');
/* end injection of {SDevices} */

Его содержимое просто скопировал, как раньше в код. А injection отключил.
И раньше в кодах ставили include_once(DIR_MODULES . 'devices/devices.class.php'); а после какого-то обновления стало include_once(dirname(__FILE__) . '/devices.class.php'); я не задумываясь над этой строкой оставил как есть :lol: пришлось немного задуматься и разобраться :D Заменил как было раньше с DIR_MODULES и всё ок.

Ещё раз спасибо.

Re: Простые устройства / Simple Devices описание методов

Добавлено: Вт мар 16, 2021 10:23 am
tarasfrompir
~220v писал(а):
Вт мар 16, 2021 12:01 am
UPD

Разобрался.
Это мне понадобилось немного модифицировать код в
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/*.php');
/* end injection of {SDevices} */

Его содержимое просто скопировал, как раньше в код. А injection отключил.
И раньше в кодах ставили include_once(DIR_MODULES . 'devices/devices.class.php'); а после какого-то обновления стало include_once(dirname(__FILE__) . '/devices.class.php'); я не задумываясь над этой строкой оставил как есть :lol: пришлось немного задуматься и разобраться :D Заменил как было раньше с DIR_MODULES и всё ок.

Ещё раз спасибо.
Сделал реквест - по вашему коду - не проверял - так что ждите прихода - виноваты будете вы - если не правильно :lol: :lol: :D :D :D

Re: Простые устройства / Simple Devices описание методов

Добавлено: Пн мар 22, 2021 9:22 am
tarasfrompir
Короче стори такая - реквест никто не принял (я его закрыл по ненадобности) - ждемс дальше - может таки еще кто подтянется... и поплачется...