SmartLiving.ru

Обсуждение проекта
 
Текущее время: Вс ноя 19, 2017 11:31 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Простые устройства-функционал
СообщениеДобавлено: Пн ноя 13, 2017 12:43 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 19, 2017 2:24 pm
Сообщения: 16
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
подскажите пожалуйста
Разбираюсь с простыми устройствами-очень интересный модуль.
Проблема в чем- есть тэн водонагревателя и датчик ds18b20
датчик бывает выдает неверные значения раз-два в час что то типа -1900
Естественно тен включается -так как по логике запуск при 50 градусов и выключение при 75
Пороги в простых устройствах прописаны
Нижний порог 5
Верхний порог 100
но в связанных устройствах все равно тэн при левых значениях срабатывает.

Как сделать что бы при значении выходящем за порог связанные устройства не включались????


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Вт ноя 14, 2017 6:11 am 
Не в сети

Зарегистрирован: Чт апр 20, 2017 5:32 am
Сообщения: 80
Откуда: Томск
Благодарил (а): 25 раз.
Поблагодарили: 8 раз.
Vlado писал(а):
подскажите пожалуйста
Разбираюсь с простыми устройствами-очень интересный модуль.
Проблема в чем- есть тэн водонагревателя и датчик ds18b20
датчик бывает выдает неверные значения раз-два в час что то типа -1900
Естественно тен включается -так как по логике запуск при 50 градусов и выключение при 75
Пороги в простых устройствах прописаны
Нижний порог 5
Верхний порог 100
но в связанных устройствах все равно тэн при левых значениях срабатывает.

Как сделать что бы при значении выходящем за порог связанные устройства не включались????


Как вариант в php условия прописать
что то типо:
если значение меньше 0 не включаем тен
и тд.

_________________
Raspberry Pi2, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Вт ноя 14, 2017 11:47 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 19, 2017 2:24 pm
Сообщения: 16
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Цитата:
Как вариант в php условия прописать
что то типо:
если значение меньше 0 не включаем тен
и тд.


Так и сделал, причем даже использовать значения
Нижний порог 5
Верхний порог 100
не получилось , система все равно реагирует на ошибочные значения
В итоге решил вопрос вот таким условием
[Показать] Скрытый текст:
if (getGlobal('Sensor_temp03'.'.'.'alive') == '1') {
if (getGlobal('Sensor_temp03'.'.'.'value') > '10' && getGlobal('Sensor_temp03'.'.'.'value') < '100') {
if (getGlobal("Sensor_temp03.value") < '65') {
callMethod("Relay01.turnOn");
}
if (getGlobal("Sensor_temp03.value") > '75') {
callMethod("Relay01.turnOff");
}
if (getGlobal("Sensor_temp03.value") < '55') {
callMethod("Relay02.turnOn");
}
if (getGlobal("Sensor_temp03.value") > '65') {
callMethod("Relay02.turnOff");
}
if (getGlobal("Sensor_temp03.value") < '50') {
callMethod("Relay03.turnOn");
}
if (getGlobal("Sensor_temp03.value") > '60') {
callMethod("Relay03.turnOff");
}
}
}

3 тэна и датчик ds18b20 ну и то же условие для второго датчика температуры -если один из них выйдет из строя или начнет показывать чушь то второй подхватит управление...
Но эт как бы через костыль, хотелось использовать простые настройки которые есть в системе,
жаль что простые устройства так и недопилили до конца. :cry:
Условия Нижний порог Верхний порог срабатывают только на оповещения, использовать данные для проекта не получилось


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Ср ноя 15, 2017 10:55 am 
Не в сети

Зарегистрирован: Чт апр 20, 2017 5:32 am
Сообщения: 80
Откуда: Томск
Благодарил (а): 25 раз.
Поблагодарили: 8 раз.
Vlado писал(а):
Цитата:
Как вариант в php условия прописать
что то типо:
если значение меньше 0 не включаем тен
и тд.


Так и сделал, причем даже использовать значения
Нижний порог 5
Верхний порог 100
не получилось , система все равно реагирует на ошибочные значения
В итоге решил вопрос вот таким условием
[Показать] Скрытый текст:
if (getGlobal('Sensor_temp03'.'.'.'alive') == '1') {
if (getGlobal('Sensor_temp03'.'.'.'value') > '10' && getGlobal('Sensor_temp03'.'.'.'value') < '100') {
if (getGlobal("Sensor_temp03.value") < '65') {
callMethod("Relay01.turnOn");
}
if (getGlobal("Sensor_temp03.value") > '75') {
callMethod("Relay01.turnOff");
}
if (getGlobal("Sensor_temp03.value") < '55') {
callMethod("Relay02.turnOn");
}
if (getGlobal("Sensor_temp03.value") > '65') {
callMethod("Relay02.turnOff");
}
if (getGlobal("Sensor_temp03.value") < '50') {
callMethod("Relay03.turnOn");
}
if (getGlobal("Sensor_temp03.value") > '60') {
callMethod("Relay03.turnOff");
}
}
}

3 тэна и датчик ds18b20 ну и то же условие для второго датчика температуры -если один из них выйдет из строя или начнет показывать чушь то второй подхватит управление...
Но эт как бы через костыль, хотелось использовать простые настройки которые есть в системе,
жаль что простые устройства так и недопилили до конца. :cry:
Условия Нижний порог Верхний порог срабатывают только на оповещения, использовать данные для проекта не получилось


А как у вас подключен датчик? ардуино? каким кабелем? Скрутки или винтовые соединения?
Просто у меня при больших расстояниях ds18b20 на megad2561 показывал что типа -168. Как вариант плохое соединение, либо кабель.
Но соглашусь костыль :)

_________________
Raspberry Pi2, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Ср ноя 15, 2017 11:02 am 
Не в сети

Зарегистрирован: Чт апр 20, 2017 5:32 am
Сообщения: 80
Откуда: Томск
Благодарил (а): 25 раз.
Поблагодарили: 8 раз.
Как вариант кода:
Код:

$temperatura 
= gg("Sensor_temp03.value");
$tempmin = 10;
$tempmax = 75;

if ($temperatura < $tempmin)
callMethod("Relay01.turnOn");
if ($temperatura > $tempmax)
callMethod("Relay01.turnOff");

_________________
Raspberry Pi2, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Ср ноя 15, 2017 3:37 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 19, 2017 2:24 pm
Сообщения: 16
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Цитата:
А как у вас подключен датчик? ардуино? каким кабелем? Скрутки или винтовые соединения?
Просто у меня при больших расстояниях ds18b20 на megad2561 показывал что типа -168. Как вариант плохое соединение, либо кабель.
Но соглашусь костыль :)


обычная витая пара, по дому пустил от меги метра 4-5 в данном случае, в принципе уже какое то время использую в доме мега+витая пара до 10-15 м дальше не пробовал, главное стабильное питание.
Проблем нет, кое где в одном кабель канале с 220в - тоже норм, хотя читал страшилки про наводки и т.д
полет года 2 как нормальный.
Соединения со старых разьемов с ес1840 остались там штырьки очень туго входят - контакт хороший...ну или паяю, кое где где неуверен ставлю резьбовые разьемы под болты.
По ds18b20 у меня на ардуине не реализованы задержки в коде а датчиков около 6 уже, ну и на бойлере опрос быстрый раз в 4 секунды, вот и вылетает в час пару глюков.
Это в принципе не критично
По коду вариант интересный изучу спс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Ср ноя 15, 2017 6:01 pm 
Не в сети

Зарегистрирован: Чт апр 20, 2017 5:32 am
Сообщения: 80
Откуда: Томск
Благодарил (а): 25 раз.
Поблагодарили: 8 раз.
Vlado писал(а):
Цитата:
А как у вас подключен датчик? ардуино? каким кабелем? Скрутки или винтовые соединения?
Просто у меня при больших расстояниях ds18b20 на megad2561 показывал что типа -168. Как вариант плохое соединение, либо кабель.
Но соглашусь костыль :)


обычная витая пара, по дому пустил от меги метра 4-5 в данном случае, в принципе уже какое то время использую в доме мега+витая пара до 10-15 м дальше не пробовал, главное стабильное питание.
Проблем нет, кое где в одном кабель канале с 220в - тоже норм, хотя читал страшилки про наводки и т.д
полет года 2 как нормальный.
Соединения со старых разьемов с ес1840 остались там штырьки очень туго входят - контакт хороший...ну или паяю, кое где где неуверен ставлю резьбовые разьемы под болты.
По ds18b20 у меня на ардуине не реализованы задержки в коде а датчиков около 6 уже, ну и на бойлере опрос быстрый раз в 4 секунды, вот и вылетает в час пару глюков.
Это в принципе не критично
По коду вариант интересный изучу спс.


Может в скетче меги использовать sleep? а лучше mills?
Быть может шина в процессе опроса занята и выдает абракадабру? :)
У себя сделал период опроса 1 минута практически всех датчиков, оптимально я думаю такой период будет и для систем отопления, бойлеров, ну за минуту грубо скажем если температура достигла 75 градусов, ну максимум на 1 градус поднимется, это же не критично? Зато система будет стабильней без промежуточного мусора. Опрос раз в 4 секунды в 60 секунд плодит 15 записей в БД :) не рациональная нагрузка.
Так вот об sleep и mills, лучше последнее :)
Код будет примерно следующий (код для понятия принципа работы)

Код:
const int button1Pin = 2;
const int button2Pin = 3;
const int led1Pin = 4;
const int led2Pin = 5;
unsigned long led1OnTime;
unsigned long led2OnTime;
bool led1On;
bool led2On;
void setup() {
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
led1On = false;
led2On = false;
}
void loop(){
if (digitalRead(button1Pin) == HIGH) {
digitalWrite(led1Pin, HIGH);
led1On = true;
led1OnTime = millis();
}
if (digitalRead(button2Pin) == HIGH) {
digitalWrite(led2Pin, HIGH);
led2On = true;
led2OnTime = millis();
}
if(
led1On)
if(
millis() - led1OnTime > 30000) {
digitalWrite(led1Pin, LOW);
led1On = false;
}
if(
led2On)
if(
millis() - led2OnTime > 30000) {
digitalWrite(led2Pin, LOW);
led2On = false;
}

Когда кнопка нажата, скетч заставляет светодиод включится, сохраняет текущее время и меняет значение в переменной статуса.
Если светодиод горит (переменная состояния равна true), скетч периодечески проверяет длительность состояния вкл. (30 секунд, то есть 30000 милисекунд): если период превышает допустимый (30 секунд 30000 миллисекунд), то это значит, что светодиод выключен.
(с) взято на просторах интернета.

глюки - это критично
п.с. - 220 может давать наводки, и как понимаю может быть очень критично для 1 wire сетей, есть страшилки что возможно и полный отказ сети в связи с тем что сгорит или что то в этом роде :)

_________________
Raspberry Pi2, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Ср ноя 15, 2017 11:56 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 19, 2017 2:24 pm
Сообщения: 16
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Цитата:
Может в скетче меги использовать sleep? а лучше mills?

задержки в скетче ставить нельзя, в системе есть датчики движения и давления воды, да и бойлер если перегреется то отрубится по перегреву на минуту полностью по питанию, по расчетам даже 10 секунд много, бойлер проточный (водонагреватель) нагревается быстро.
Когда разбирался с железом сделал скетч по подобию AMS с поддержкой mqtt для различных ардуин (mega,esp,stm32) то что использую в проекте.
Помню пробовал сделать модуль с millis что бы реализовать задержки каким либо способом внутри конкретного модуля, но не получилось- не хватило знаний- и времени и он конфликтовал с модулем таймер(он тоже использует millis и реализуется без задержек основного кода -задержки для модулей).
Задержки нужны разные для различных устройств.
Все довольно примитивно , но главное что работает и уже давно.
Наводки пока не пугают, апаратная реализация получилась вполне надежная их пока не регистрирую.


Вложения:
Комментарий к файлу: пример кода на мегу
amqtt_v1.0_mega_4_reliz3.rar [6.78 КБ]
Скачиваний: 4
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Чт ноя 16, 2017 3:28 am 
Не в сети

Зарегистрирован: Чт апр 20, 2017 5:32 am
Сообщения: 80
Откуда: Томск
Благодарил (а): 25 раз.
Поблагодарили: 8 раз.
Vlado писал(а):
Цитата:
Может в скетче меги использовать sleep? а лучше mills?

задержки в скетче ставить нельзя, в системе есть датчики движения и давления воды, да и бойлер если перегреется то отрубится по перегреву на минуту полностью по питанию, по расчетам даже 10 секунд много, бойлер проточный (водонагреватель) нагревается быстро.
Когда разбирался с железом сделал скетч по подобию AMS с поддержкой mqtt для различных ардуин (mega,esp,stm32) то что использую в проекте.
Помню пробовал сделать модуль с millis что бы реализовать задержки каким либо способом внутри конкретного модуля, но не получилось- не хватило знаний- и времени и он конфликтовал с модулем таймер(он тоже использует millis и реализуется без задержек основного кода -задержки для модулей).
Задержки нужны разные для различных устройств.
Все довольно примитивно , но главное что работает и уже давно.
Наводки пока не пугают, апаратная реализация получилась вполне надежная их пока не регистрирую.


Так тогда может если значение которое выходит за пределы исключить из выполнения? При условии что оно всегда -1900?

В скетче ардуино
Код:

sensVal 
constrain(sensVal1075);
// ограничиваем значения sensVal диапазоном от 10 до 75
 


Возможно будет работать :)

Или же в PHP

Код:

$temperatura 
gg("Sensor_temp03.value");
$tempmin 10;
$tempmax 75;

if (
$temperatura >= 10 && $temperatura 75///если температура больше или равно 10 и меньше 75
callMethod("Relay01.turnOn");                          ///включаем реле
if ($temperatura $tempmax)                           ///если температура больше 75
callMethod("Relay01.turnOff");                          ///выключаем реле
 


Наверняка будет работать :)

_________________
Raspberry Pi2, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Простые устройства-функционал
СообщениеДобавлено: Чт ноя 16, 2017 12:35 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 19, 2017 2:24 pm
Сообщения: 16
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Цитата:
Так тогда может если значение которое выходит за пределы исключить из выполнения? При условии что оно всегда -1900?

В скетче ардуино
Код:

sensVal = constrain(sensVal, 10, 75);
// ограничиваем значения sensVal диапазоном от 10 до 75



Возможно будет работать :)


попробую...спс идея хорошая..но что бы и уличные датчики работали нужно наверное либо интервал увеличить, либо отдельно модуль для тэна и для датчиков температур......Заметил если общую задержку на выполнение делать от минуты до 5 то вообще нет левых значений
на данный момент сделал на мд ограничения, норм работает.
жаль что в простых устройствах нельзя без заморочек указать условия, а через код только.
Устройства не шибко простые получаются.
Сегодня хотел условие засунуть в "действия" инвертора по быстрому

if (timeBetween('23:02', '06:58')) {
callMethod("Relay04.turnOn");
}
if (timeBetween('06:53', '22:55')) {
callMethod("Relay04.turnOff");
}
(там банально esp+реле+обвязка в корпус обогревателя засунул)
включение в ночное время только когда тариф дешевый..

В итоге тишина.Но прекрасно работает в сценарии и простых устройствах


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB