Охота реализовать автоматическое управление уровнем яркости диммеров в зависимости от освещенности помещения.

Долго мучал устройство EZ-Motion и графики освещенности не очень то радуют. alt text

Свет стабильно падал от окна, лампы на столе и ламп дневного света на потолке.

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

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

задан 03 Фев '14, 11:11

Swat's gravatar image

Swat
2111415
процент согласия: 18%

отредактирован 07 Фев '14, 08:31

PoltoS's gravatar image

PoltoS ♦♦
5731312


Логику можно реализовать на любом контроллере.

Пример виртуального устройства на FIBARO HC-2

Дискретность можно сделать любую.

Главный цикл FIBARO запускает опрос сенсора EZ-MOTION с периодом 5 сек, после опроса записывает в глобальную переменную среднее значение освещенности за минуту и запускает сцену управления диммером. Переменная on_off_opros не позволяет запуститься опросу пока не выполнена сцена и не сброшена переменная on_off_opros.

local on_off_opros = fibaro: getGlobal("ON_OFF_OPROS")

if (on_off_opros==0) then
  fibaro: setGlobal("ON_OFF_OPROS",1)

  local light_var1=tonumber(fibaro:getValue(119, "valueSensor"));
  fibaro: sleep(10000);
  local light_var2=tonumber(fibaro:getValue(119, "valueSensor"));
  fibaro: sleep(10000);
  local light_var3=tonumber(fibaro:getValue(119, "valueSensor"));
  fibaro: sleep(10000);
  local light_var4=tonumber(fibaro:getValue(119, "valueSensor"));
  fibaro: sleep(10000);
  local light_var5=tonumber(fibaro:getValue(119, "valueSensor"));
  fibaro: sleep(10000);
  local light_var6=tonumber(fibaro:getValue(119, "valueSensor"));
  local light = (light_var1+ light_var2+ light_var3+ light_var4+ light_var5+ light_var6)/6; -- получаем среднее значение за 1 минуту
  fibaro: setGlobal("EZ_MOT1_Ligth", ligth); -- записываем в глобальную переменную
  fibaro:startScene(5) -- стартуем сцену управления диммером
end

-- Scene(5)
local ligth=tonumber(fibaro:getGlobal("EZ_MOT1_Ligth"))
local sost_lamp_lest = tonumber(fibaro:getValue(66, "value"))

---Управление освещением лестницы на 2 этаж.
  if (light>=90) then
        fibaro:call(66, "setValue", 0)
  end
  if (light>=80 and light<90) then
    fibaro:call(66, "setValue", 20)
  end
  if (light>=70 and light<80) then
    fibaro:call(66, "setValue", 30)
  end
  if (light>=60 and light<70) then
    fibaro:call(66, "setValue", 40)
  end
  if (light>=50 and light<60) then
    fibaro:call(66, "setValue", 50)
  end
  if (light>=40 and light<50) then
    fibaro:call(66, "setValue", 60)
  end
  if (light>=30 and light<40) then
    fibaro:call(66, "setValue", 70)
  end
  if (light>=20 and light<30) then
    fibaro:call(66, "setValue", 80)
  end
  if (light>=10 and light<20) then
    fibaro:call(66, "setValue", 90)
  end
  if (light>0 and light<10) then
    fibaro:call(66, "setValue", 99)
  end
  fibaro: setGlobal("ON_OFF_OPROS",0)
ссылка

отвечен 06 Фев '14, 14:18

Gulayev's gravatar image

Gulayev
1.5k113
процент согласия: 11%

отредактирован 07 Фев '14, 08:30

PoltoS's gravatar image

PoltoS ♦♦
5731312

У меня данный скрипт работает отлично, регулирует освещение на лестнице, только еще привязан к датчику движения, чтобы свет зря не горел. Период опроса и дискретность можно взять любую, это будет влиять на линейность. График получить элементарно, только зачем? Нужно регулировать освещенность, а не на график смотреть. Код в скрипте элементарный, количество условий меняется в зависимости от нужной дискретности. Можно реализовать в цикле, что бы код был короче.

(06 Фев '14, 15:46) Gulayev Gulayev's gravatar image

да просто глянув на график, можно сразу понять на какие значения привязываться и будет ли плавность перехода. ну можно кнечно и опытным путем сидеть подбирать значения.

Главное светомузыки избежать, от изменения освещенности, от включенной датчиком лампы. Либо больше не проверят уровень освещения пока лампа горит. Судя по моему графику ночь без освещения любого + паразитный свет от окна это максимальное значние 0-12

а пасмурный день + лампа дневного света на потолке варьируется от 35 - 50

(06 Фев '14, 18:48) Swat Swat's gravatar image

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

(06 Фев '14, 20:49) Gulayev Gulayev's gravatar image

А есть ли смысл такое городить? Графика по вашим данным нету? Я поставил период в 6 минут как стоит по умолчанию в системе. Двойных данных нету. График более менее адекватный стал, но период 6 минут. если брать среднее от одной минуты данные могут быть не лучше.

alt text

На изображение, когда был пик, это светило солнце в окно, потом оно скрылось.

ссылка

отвечен 06 Фев '14, 14:29

Swat's gravatar image

Swat
2111415
процент согласия: 18%

отредактирован 06 Фев '14, 14:33

Ваш ответ
toggle preview

Следить за этим вопросом

По почте:

Авторизовавшись, здесь Вы сможете подписаться на обновления по этому вопросу.

По RSS:

Ответы

Ответы и комментарии

Основы размётки

  • *курсив* или _курсив_
  • **жирный** или __жирный__
  • ссылка:[текст](http://url.com/ "Суть вопроса")
  • картинка?![alt текст](/path/img.jpg "Суть вопроса")
  • нумерованый список: 1. Foo 2. Bar
  • чтобы добавить перенос строки в тексте, сделайте два переноса строки в редакторе
  • базовые теги HTML также поддерживаются

Теги к вопросу:

×50
×48
×44
×32
×28
×8
×7

Задан: 03 Фев '14, 11:11

Просмотров: 2,845 раз

Отредактирован: 07 Фев '14, 08:33

powered by OSQA