Страница 2 из 3

Re: Помощь в php

Добавлено: Сб авг 01, 2020 3:25 pm
Chainik

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

if (timeBetween('08:00', '11:00')) {
sg('miioDimmerph01.saved_bright',100);
sg('miioDimmerph01.cct',100);
} else {
sg('miioDimmerph01.saved_bright',20);
sg('miioDimmerph01.cct',90);
}

Re: Помощь в php

Добавлено: Сб авг 01, 2020 4:17 pm
Logrus
лучше 10 раз прочитать, чем один раз записать
проверки добавить выше, не надо на каждый чих дд заново одно и то же

существенно!!!
https://github.com/Alexandr-logrus/majo ... pdated.php
на cct можно без проверки и при каждом его изменении лампа включится без вызова турн он

Re: Помощь в php

Добавлено: Сб авг 01, 2020 5:05 pm
Chainik
Logrus писал(а):
Сб авг 01, 2020 4:17 pm
лучше 10 раз прочитать, чем один раз записать
проверки добавить выше, не надо на каждый чих дд заново одно и то же
Ну тогда можно в "OnNewMinute" записать:

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

if (timeis('08:00')) {
sg('miioDimmerph01.saved_bright',100);
sg('miioDimmerph01.cct',100);
} elseif (timeis('11:00')) {
sg('miioDimmerph01.saved_bright',20);
sg('miioDimmerph01.cct',90);
}
И еще в StartUp:

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

if (timeBetween('08:00', '11:00')) {
sg('miioDimmerph01.saved_bright',100);
sg('miioDimmerph01.cct',100);
} else {
sg('miioDimmerph01.saved_bright',20);
sg('miioDimmerph01.cct',90);
}

Re: Помощь в php

Добавлено: Сб авг 01, 2020 5:08 pm
Logrus
такой подход еще хуже
в первом варианте при записи значения в савед добавить проверку если савед не равно нужному, запишем нужное

это из за бд мдм и реализации функций сет и гет проперти, так оптимальнее

Re: Помощь в php

Добавлено: Вс авг 02, 2020 8:20 am
pru469
Благодарю за помощь. Если правильно понял, то проверку делать, так?

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

if ((timeBetween('08:00', '11:00')) && (gg("miioDimmerph01.saved_bright")!=100)) {
sg('miioDimmerph01.saved_bright',100);
sg('miioDimmerph01.cct',100);
} else
if (gg("miioDimmerph01.saved_bright")!=20) {
sg('miioDimmerph01.saved_bright',20);
sg('miioDimmerph01.cct',90);
}
И в какой метод miioDimmerph01, записать этот код?

Re: Помощь в php

Добавлено: Вс авг 02, 2020 11:06 am
Chainik
pru469 писал(а):
Вс авг 02, 2020 8:20 am
... Если правильно понял, то проверку делать, так?
Единственное, с точки зрения правильности синтаксиса не "!=", а "!==".
А вот в какой метод записывать код не подскажу, т.к. ПУ не пользуюсь.

Re: Помощь в php

Добавлено: Вс авг 02, 2020 11:23 am
Logrus
в метод класса румс онактивити нужной комнаты на уровне об!екта

if (timeBetween('08:00', '11:00')) {
if (gg('miioDimmerph01.saved_bright) != 100) {
sg('miioDimmerph01.saved_bright', 100);
}
sg('miioDimmerph01.cct',100);
} else {
if (gg('miioDimmerph01.saved_bright) != 20) {
sg('miioDimmerph01.saved_bright', 20);
}
sg('miioDimmerph01.cct',90);
}

а вот про отключение ничего не говорили, можно добавить таймер с продлением

Re: Помощь в php

Добавлено: Вс авг 02, 2020 12:14 pm
pru469
Да. при таком сценарии значения присваиваются верно, но как было правильно замечено ранее bright устанавливается в 100 и свет постоянно горит. У меня свет включается по коду:

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

if (gg('XiMotion07.status')==1 && (gg('Sensor_light04.minValue') > gg('Sensor_light04.value'))) {
//включим свет
cm('miioDimmerph01.turnOn');
//запустим таймер (3 мин), по истечении которого свет будет выключен
clearTimeOut("lightOffTimerAuto");
SetTimeOut("lightOffTimerAuto","callMethod('miioDimmerph01.turnOff');",60*3);
}
в методе motionDetected
сейчас в метод onActivity добавил такой код:

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

if ((timeBetween('08:00', '22:00')) && (gg("miioDimmerph01.saved_bright")!==100) && (gg('miioDimmerph01.status')==1)) {
sg('miioDimmerph01.saved_bright',100);
sg('miioDimmerph01.cct',100);
} else
if ((gg("miioDimmerph01.saved_bright")!==20) && (gg('miioDimmerph01.status')==1)) {
sg('miioDimmerph01.saved_bright',20);
sg('miioDimmerph01.cct',90);
}
т.е с проверкой статуса, не знаю на сколько это правильно, но вроде работает.

Re: Помощь в php

Добавлено: Вс авг 02, 2020 12:53 pm
Logrus
в методе дд не совсем удобно если несколько дд в комнате
разбрасывая код по разным методам приводит к путанице и усложнению

то что у вас выше об!единить и почистить от лишнего и в онактивити комнаты
пишу с телефона т.ч. словами, если осенью зимой напомните кину примеров

Re: Помощь в php

Добавлено: Вс авг 02, 2020 1:23 pm
pru469
Спасибо, обязательно дождусь осени.