Помощь в php

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Помощь в php

Сообщение Chainik » Сб авг 01, 2020 3:25 pm

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

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);
}
За это сообщение автора Chainik поблагодарил:
pru469 (Вс авг 02, 2020 7:50 am)
Рейтинг: 1.16%
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Помощь в php

Сообщение Logrus » Сб авг 01, 2020 4:17 pm

лучше 10 раз прочитать, чем один раз записать
проверки добавить выше, не надо на каждый чих дд заново одно и то же

существенно!!!
https://github.com/Alexandr-logrus/majo ... pdated.php
на cct можно без проверки и при каждом его изменении лампа включится без вызова турн он
За это сообщение автора Logrus поблагодарил:
pru469 (Вс авг 02, 2020 7:50 am)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Помощь в php

Сообщение Chainik » Сб авг 01, 2020 5:05 pm

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);
}
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Помощь в php

Сообщение Logrus » Сб авг 01, 2020 5:08 pm

такой подход еще хуже
в первом варианте при записи значения в савед добавить проверку если савед не равно нужному, запишем нужное

это из за бд мдм и реализации функций сет и гет проперти, так оптимальнее
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
pru469
Сообщения: 57
Зарегистрирован: Вс апр 07, 2019 6:49 pm
Благодарил (а): 33 раза
Поблагодарили: 10 раз

Re: Помощь в php

Сообщение pru469 » Вс авг 02, 2020 8:20 am

Благодарю за помощь. Если правильно понял, то проверку делать, так?

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

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, записать этот код?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Помощь в php

Сообщение Chainik » Вс авг 02, 2020 11:06 am

pru469 писал(а):
Вс авг 02, 2020 8:20 am
... Если правильно понял, то проверку делать, так?
Единственное, с точки зрения правильности синтаксиса не "!=", а "!==".
А вот в какой метод записывать код не подскажу, т.к. ПУ не пользуюсь.
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Помощь в php

Сообщение Logrus » Вс авг 02, 2020 11:23 am

в метод класса румс онактивити нужной комнаты на уровне об!екта

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);
}

а вот про отключение ничего не говорили, можно добавить таймер с продлением
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
pru469
Сообщения: 57
Зарегистрирован: Вс апр 07, 2019 6:49 pm
Благодарил (а): 33 раза
Поблагодарили: 10 раз

Re: Помощь в php

Сообщение pru469 » Вс авг 02, 2020 12:14 pm

Да. при таком сценарии значения присваиваются верно, но как было правильно замечено ранее 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);
}
т.е с проверкой статуса, не знаю на сколько это правильно, но вроде работает.
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Помощь в php

Сообщение Logrus » Вс авг 02, 2020 12:53 pm

в методе дд не совсем удобно если несколько дд в комнате
разбрасывая код по разным методам приводит к путанице и усложнению

то что у вас выше об!единить и почистить от лишнего и в онактивити комнаты
пишу с телефона т.ч. словами, если осенью зимой напомните кину примеров
За это сообщение автора Logrus поблагодарил:
pru469 (Вс авг 02, 2020 1:23 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
pru469
Сообщения: 57
Зарегистрирован: Вс апр 07, 2019 6:49 pm
Благодарил (а): 33 раза
Поблагодарили: 10 раз

Re: Помощь в php

Сообщение pru469 » Вс авг 02, 2020 1:23 pm

Спасибо, обязательно дождусь осени.
Ответить