Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.
Модератор: immortal
-
Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
-
Благодарил (а):
79 раз
-
Поблагодарили:
24 раза
Сообщение
Lerych » Пн дек 24, 2018 7:31 pm
DiminatorDK писал(а): ↑Пн дек 24, 2018 3:38 pm
Спасибо, посмотрел. Но для меня это пока очень сложно. И главное отличие заключается в том что ваше устройство умеет сообщать о себе, мое к сожалению нет. И вы, если я правильно понял, основной упор делали на что чтобы обновлять только те переменные, которые изменились, чтобы повысить производительность. Или я ошибаюсь? Я в php очень слаб, вынужденно взялся за изучение, поэтому многое еще не понятно.
Я хотел, чтобы Вы посмотрели использование модуля PrpTransfer.
А конкретно, я создал класс, в который от моего контроллера приходит в свойство status строка из 128 нолей и единиц. Эту строку я раскладываю по статусам объектов соответствующих контактам (например, cn0, cn1, cn2 и т.д.). А так как у меня уже созданы другие объекты для каких же контактов и имеют разные имена (типа, mdp1_q1, ..., fs323_q1 и т.д), я с помощью PrpTransfer сделал соответствие между, например, cn0-status к mdp1_q1-status, ..., cn127-status -> fs323_q1-status.
Как-то так.
-
tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
-
Благодарил (а):
223 раза
-
Поблагодарили:
815 раз
Сообщение
tarasfrompir » Пн дек 24, 2018 10:40 pm
hc2hunter писал(а): ↑Пн дек 24, 2018 7:21 pm
Подумав... изобразил так:
Код: Выделить всё
$sqlQuery = "SELECT MESSAGE
FROM shouts
WHERE MEMBER_ID = 0 AND UNIX_TIMESTAMP(ADDED) > ".(time()-10)."
ORDER BY ID DESC
LIMIT 1";
$last_msg = SQLSelectOne($sqlQuery);
echo($last_msg['MESSAGE']);
Это ест немного не правилно...
твой запрос такой же как и мой - поскольку ты вибираеш всеравно ОДНУ запись и последнюю по времени создания. ORDER BY ID DESC - это выбор последней записи с конца и еще и SQLSelectOn -тоде выбор одной записи...
Дело в том что ты выбрал только одну запись - а их за 10 секунд может быть и сотня. Поэтому как то для себя определись с конкретизацией постановки вопроса... уточни что надо получить в итоге толи все записи- ответы системы за 10 секунд толи на конкретный запрос - комманду надо получить ответ от системы толи еще что-то. (Обьясни поподробней)...
Спасибо нам ПОМОЖЕТ..!
-
DiminatorDK
- Сообщения: 104
- Зарегистрирован: Сб фев 20, 2016 12:19 pm
-
Благодарил (а):
7 раз
-
Поблагодарили:
2 раза
Сообщение
DiminatorDK » Пн дек 24, 2018 11:38 pm
Lerych писал(а): ↑Пн дек 24, 2018 7:31 pm
Я хотел, чтобы Вы посмотрели использование модуля PrpTransfer.
А конкретно, я создал класс, в который от моего контроллера приходит в свойство status строка из 128 нолей и единиц. Эту строку я раскладываю по статусам объектов соответствующих контактам (например, cn0, cn1, cn2 и т.д.). А так как у меня уже созданы другие объекты для каких же контактов и имеют разные имена (типа, mdp1_q1, ..., fs323_q1 и т.д), я с помощью PrpTransfer сделал соответствие между, например, cn0-status к mdp1_q1-status, ..., cn127-status -> fs323_q1-status.
Как-то так.
Ааа, теперь понял. Т.е. вы создали создали некую таблицу соответствия и теперь не зависите от названия объекта. Спасибо, буду изучать. Но боюсь что сейчас мне еще рано, надо более простым путем пока решить а дальше улучшать.
-
Lerych
- Сообщения: 191
- Зарегистрирован: Чт дек 14, 2017 8:46 pm
- Откуда: Московская область, Серпухов
-
Благодарил (а):
79 раз
-
Поблагодарили:
24 раза
Сообщение
Lerych » Пн дек 24, 2018 11:48 pm
DiminatorDK писал(а): ↑Пн дек 24, 2018 11:38 pm
Ааа, теперь понял. Т.е. вы создали создали некую таблицу соответствия и теперь не зависите от названия объекта. Спасибо, буду изучать. Но боюсь что сейчас мне еще рано, надо более простым путем пока решить а дальше улучшать.
Да, всё правильно поняли. Обращайтесь.
-
DiminatorDK
- Сообщения: 104
- Зарегистрирован: Сб фев 20, 2016 12:19 pm
-
Благодарил (а):
7 раз
-
Поблагодарили:
2 раза
Сообщение
DiminatorDK » Пн дек 24, 2018 11:49 pm
Столкнулся со странным поведением при создании элемента Выключатель на сцене. Создал элемент, привязал к нему объект, выбрал Запускать Объект.Метод - Выбрал Объект и ниже в списке выбрал метод. Нажал сохранить и с удивлением увидел что поле метода очистилось. Тоже самое происходит и со статусом. Объект остается а связанное св-во очищается после нажатия на сохранить. Подскажите, что я делаю не так?
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
Chainik » Вт дек 25, 2018 8:44 am
DiminatorDK писал(а): ↑Пн дек 24, 2018 11:49 pm
...Объект остается а связанное св-во очищается после нажатия на сохранить. Подскажите, что я делаю не так?
Могу предположить, что у вас не задано ни одно состояние элемента. Т.е. не заполнено поле "State Название". Дело в том, что у элемента должно быть хотя бы одно состояние.
-
hc2hunter
- Сообщения: 507
- Зарегистрирован: Сб дек 02, 2017 10:45 am
- Откуда: RUS
-
Благодарил (а):
228 раз
-
Поблагодарили:
348 раз
Сообщение
hc2hunter » Вт дек 25, 2018 9:05 am
tarasfrompir1 писал(а): ↑Пн дек 24, 2018 10:40 pm
Это ест немного не правилно...
твой запрос такой же как и мой - поскольку ты вибираеш всеравно ОДНУ запись и последнюю по времени создания. ORDER BY ID DESC - это выбор последней записи с конца и еще и SQLSelectOn -тоде выбор одной записи...
Дело в том что ты выбрал только одну запись - а их за 10 секунд может быть и сотня. Поэтому как то для себя определись с конкретизацией постановки вопроса... уточни что надо получить в итоге толи все записи- ответы системы за 10 секунд толи на конкретный запрос - комманду надо получить ответ от системы толи еще что-то. (Обьясни поподробней)...
все верно, мне нужна именно последняя.
с SQLSelectOn, согласен, - это уже перебор, т.к. уже в запросе выбирается одна...
-
DiminatorDK
- Сообщения: 104
- Зарегистрирован: Сб фев 20, 2016 12:19 pm
-
Благодарил (а):
7 раз
-
Поблагодарили:
2 раза
Сообщение
DiminatorDK » Вт дек 25, 2018 11:28 am
Chainik писал(а): ↑Вт дек 25, 2018 8:44 am
DiminatorDK писал(а): ↑Пн дек 24, 2018 11:49 pm
...Объект остается а связанное св-во очищается после нажатия на сохранить. Подскажите, что я делаю не так?
Могу предположить, что у вас не задано ни одно состояние элемента. Т.е. не заполнено поле "State Название". Дело в том, что у элемента должно быть хотя бы одно состояние.
Есть два состояния. on и off. Заработало только после того как я назвал метод вместо SwitchOff - turnOff и turnOn по аналогии с стандартным включателем света который есть на дефолтовой сцене. Очень странно. Причем если называю TurnOff (с большой буквы) то данные так-же пропадают после попытке сохранения. Ничего не понимаю. Неужели есть какие-то ограничения?
-
Chainik
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
-
Благодарил (а):
260 раз
-
Поблагодарили:
454 раза
Сообщение
Chainik » Вт дек 25, 2018 12:01 pm
DiminatorDK писал(а): ↑Вт дек 25, 2018 11:28 am
Причем если называю TurnOff (с большой буквы) то данные так-же пропадают после попытке сохранения. Ничего не понимаю. Неужели есть какие-то ограничения?
Странно. Да вроде особых ограничений не должно быть. Только лучше не называть объекты на русском (хотя у некоторых так успешно все работало). Вроде бы нельзя использовать пробелы. Еще внутри объекта не должно быть совпадений имен в свойствах и методах. Иначе возникнет путаница.
-
DiminatorDK
- Сообщения: 104
- Зарегистрирован: Сб фев 20, 2016 12:19 pm
-
Благодарил (а):
7 раз
-
Поблагодарили:
2 раза
Сообщение
DiminatorDK » Вт дек 25, 2018 12:29 pm
Нет, все нормально. Похоже что это баг какой-то. Так как если называю метод turnOn и turnOff а также свойство status то они сами подставляются при выборе объекта. Если пытаюсь выбрать что-то другое то при сохранении опять подставляются эти значения. Очень странно. Баг какой-то.