tarasfrompir

 
<<< Назад

Как-бы да если-бы... Я бы передавал температуру на термостат...

О передаче температуры на термостаты

ИТАК мы приобрели термостат для комнаты.. Теперь его нуна какбы то настроить в Мажорике.... Хм... Поехали...

  1. Необходимо настроить датчик температуры:

    • привяжем его к определенной комнате (если это не сделано).. Ведь датчиков то у нас много(немного, всего 1) а нам то все равно надо куда то голову приложить....
    • настроем его основным сенсором помещения
      1. Настроем термостат - привязываем его к той же комнате что и датчик температуы (Мы же еще те контролеры) Ну в смысле контролируем температуру комнаты....

        Ура теперь с помощью таких нехитрых настроек мы передаем температуру датчика в свойства комнаты (есть температура текущая в текущей комнате)...
    1. Теперь задача передать ее на термостат:
      • создадим такой маленький метод...
        Метод создаем здесь ( в настройках класса комнат)
        Тыцяем эту кнопку
  2. Создаем метод скажем - tempToTermostat

    с таким содержимым -

Предупреждение - пообщавшись тут с людьми и на форуме и в коннекте получилось одно замечание такого плана
ВОЗМОЖНО, если не отрабатывает правильно метод , необходимо сменить вот в этой строчке - $roomTemp=$this->getProperty('Temperature'); слово Temperature на temperature - поскольку у людей встречается всякое интересное, Ну и в добавок замечание уже от себя метод дабы правильно отрабатывал по расположению в комнате надо бы сменить скрипт на вот так

$roomTemp=$this->getProperty('Temperature');
$roomName=$this->object_title;
$termostats = getObjectsByClass('SThermostats');
foreach($termostats as $termostat) {
  $deviceLinkedRoom=gg($termostat['TITLE'].'.linkedRoom');
   if ($deviceLinkedRoom==$roomName){
    sg($termostat['TITLE'].'.value',$roomTemp);
    break;
  }
}

Поскольку могут быть ложные срабатывания на последний зарегистрированный в системе термостат...

Для тех у кого есть проблемма с передачей данных значения с запятой - после первой строки можна вставить вот это, оно заменит запятую на точку

$roomTemp = str_replace(",", ".", $roomTemp);
  1. ну и последнее действие включаем чтобы этот метод запускался по изменению значения- тоесть так

    а вот тут надо так вот изменить

Теперь ВСЕ должно работать примерно так - при изменении температуры на датчике она автоматически переносится в значение температуры комнаты, а от туда автоматически переносится в значение температуры термостата и все ЭТО происходит для устройств привязанных к одной комнате. Ибо потом уже желающие могут их собирать в кучу и передавать на так сказать общий термостат. Но это уже другая история....

Ну и напосдедок - обсуждения и замечания приветствуются....

ПС . То что подвигло на написание этой статьи...

Из форума

Я никогда не имею готовых решений, ибо мажордомо не имею. Есть тестовая версия с которой играюсь ради интереса и помощи ВАМ же пользователям. Потому что сам проходил все от старта... И язык ПХП я знаю с помощником.
ПОЭТОМУ Или нахрен оно надо и не спрашивайте или уж как то отзывайтесь... (Мое)

ППС
Внес несколько правок.... Теперь вроде все работает ... Отзыв 1 положительный есть...
ПППС
Обсуждение - СПАСИБО ВСЕМ за участие в обсуждении вопроса...

Обсуждение (13) (6)

Смотрите так же:
21.06.2021 Новый контроль циклов - или как таки разгрузить базу данных от ненужных запросов
18.11.2020 Функции работы с классами.. Добавленные 18.11.2020 года - https://github.com/sergejey/majordomo/pull/851
30.10.2020 Как получить информацию о местоположении и всем остальном
30.10.2020 Как получить внешни айпи адрес
17.12.2019 ТЕРМИНАЛЫ2 Как передать сообщение привязанному пользователю терминала
02.12.2019 Terminals 2 - настройка Телеграмма - как терминала (Обновлено)

Пирятин, Украина

На форуме: tarasfrompir

Веб-сайт:
http://netu_u_menya_sayta.world