Умный дом: Domoticz.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 17 сен 2017.

Метки:
  1. Oleg Pitsenko

    Oleg Pitsenko Нерд

    Подскажите, есть такая лажа в журнале, соответсвенно и приходит 2 уведомления.
    2018-02-04 12:18:59 Off
    2018-02-04 12:18:58 Off
    2018-02-04 12:18:38 On
    2018-02-04 12:18:36 On
    2018-02-04 12:16:51 Off
    2018-02-04 12:16:51 Off
    2018-02-04 12:14:43 On
    2018-02-04 12:14:42 On
    2018-02-04 12:14:28 Off
    2018-02-04 12:14:27 Off
    Вот скрипт:
    Код (C++):
    local heating_probe = 'Температура в Спальне'
    local thermostat_setpoint = 'Установка отопления в Спальне'
    local heating_unit = 'Батарея спальня'
    local hysteresis = 1

    commandArray = {}
    -- loop through all the devices
    for deviceName,deviceValue in pairs(otherdevices) do
        if (deviceName== thermostat_setpoint ) then
            if tonumber(deviceValue) < tonumber(otherdevices[heating_probe]-hysteresis) then

                if (otherdevices[heating_unit] == "On") then
                 --   commandArray['SendNotification']='Heating is off'
                    commandArray[heating_unit]='Off'
                    print("Heating is Off")
                end
         
            elseif tonumber(deviceValue) > tonumber(otherdevices[heating_probe]+hysteresis) then
                if (otherdevices[heating_unit] == "Off") then
                    commandArray[heating_unit]='On'
                --    commandArray['SendNotification']='Heating is on'
                    print("Heating is On")
                end
            end
        end
    end

    -- loop through all the variables
    for variableName,variableValue in pairs(uservariables) do

    end

    return commandArray
     
    Последнее редактирование: 5 фев 2018
  2. Oleg Pitsenko

    Oleg Pitsenko Нерд

    Ещё вопрос, как обновить статус выключателя, но чтобы он устройство тем что управляет не трогал.
     
  3. gofk

    gofk Нерд

    Предлагаю дополнительно вывести в лог текущие значения всех переменных. Для анализа.
    Уведомления точно оба отсюда появляются? Нигде на смене статуса батареи дополнительного уведомления не висит?
    Ну и дополнительно:
    - в коде
    Код (C++):
    print("Heating is Off")
    - в логе
    Код (C++):
    Off
    Это ошибка или в реальности так? Разные строки?
     
    Последнее редактирование: 5 фев 2018
  4. Oleg Pitsenko

    Oleg Pitsenko Нерд

    Heating is Off - выводится в общий лог системы(выводится один раз), а Off - это уже лог данного выключателя(батареи) выводится по два раза.
     
  5. ИгорьК

    ИгорьК Гуру

    Устройство автоматической перезагрузки роутера.

    Железо
    .
    Висит на брокере, рапортует о перезагрузках и проблемах.
    Там же сервер - можно обновлять прошивку по http.
    Выложил много много файлов на bitbuket.

    upload_2018-2-14_18-1-20.png

    Файлы 1 - 4 - первый опыт применения загрузки по http - они обеспечивают работу сервера.
    5 - вызывается после прекращения работы сервера и существует в целях стандартизации. Он просто вызывает файл 6 - установка глобальных переменных.
    Дальше - файл 7, основная работа.

    Вместо него можно (из setglobals.lua) звать routerDS. Тогда вместо диода применять гроздь датчиков DS18b20 и мониторить температуру, которая тоже будет отправляться на брокер, если есть связь. При этом на устройство надо будет загрузить файл _ds18b20.lua, что в приложении к этому посту.

    upload_2018-2-14_17-43-56.png


    Со стороны Domoticz делаем три железки под тупым устройством (Router Restart):
    upload_2018-2-14_17-16-48.png

    Они отражают состояние кучи:

    upload_2018-2-14_17-18-16.png

    Причину перезагрузки и текущее состояние.

    upload_2018-2-14_17-20-52.png

    Поскольку с устройства идут mqtt данные в стиле OpenHab (и менять этот стиль пока не хочу, он удобен для отладки и мониторинга), задействовал Node Red:

    upload_2018-2-14_17-23-4.png


    С таким кодом в части "Restart Router":

    Код (Javascript):
    var newmsg = {}
    var ss = '' +  msg.topic.substring(10);
    function setSwitch(idx, nm){
       var switchpayload = '{"command":"switchlight","idx":' + idx + ',"switchcmd":"'+ nm +'"}';
       return switchpayload;
    }
    function setHeap(idx, nm){
       nm = +nm;
       var temppayload = '{"idx":' + idx +',"svalue":"' + nm.toFixed(0) + '"}';
       return temppayload;
    }

    function setText(idx, nm){
       var temppayload = '{"idx":' + idx +',"svalue":"' + nm + '"}';
       return temppayload;
    }

    switch (ss) {
      case 'reason':
      newmsg.payload = setText(112, msg.payload);
       return newmsg;

      case 'state':
      var com = 'Off';
       if (msg.payload == 'ON') {
         com = 'On';
       }
       newmsg.payload = setSwitch(113, com);
      return newmsg;
    case 'heap':
      newmsg.payload = setHeap(114, msg.payload);
       return newmsg;
    default:
      return null;
    }
    return null;
     
    SmartSelectImage_2018-02-20-07-15-18.png
     

    Вложения:

    • _ds18b20.zip
      Размер файла:
      992 байт
      Просмотров:
      287
    Последнее редактирование: 20 фев 2018
  6. Vladis_a

    Vladis_a Гик

    С позволения присутствующих выскажу мнение новичка.
    У меня на HP Proliant Microserver установлена система Xpenology (полная копия брендового DSM 6.1 от Synology).
    Стало интересно, как же выглядят OpenHab 2 и Domoticz. С установкой никаких проблем не возникло, поставились обе системы без проблем.
    Забегая вперед, скажу, что с OpenHab 2 так и не разобрался, хотя провел немало времени и пытался вникнуть. Но! Я просто заблудился во всех этих sitemap, binding и т.д.
    Установил Domoticz и понимание пришло гораздо быстрее. Да и проблем с настройкой там нет, все логично и понятно.
    Сейчас еще нашел проект Mysensors, сделал на основе Nano и NRF24 шлюз Serial, а на основе Pro Mini + NRF24 - узел. Данные температуры уже благополучно передаются на Domoticz.
    Продолжаю разбираться дальше.
     
    ИгорьК нравится это.
  7. ИгорьК

    ИгорьК Гуру

    Поскольку Domoticz рулится Lua, через некоторое время разберетесь и с этим языком, после чего пары "NRF24 + что-то еще" замените на единичные ESP-8266.

    Nano и NRF24 шлюз Serial, Pro Mini + NRF24 (итого 4 шт.) = ESP-8266 1 шт.
     
    Последнее редактирование: 22 фев 2018
    Airbus нравится это.
  8. Vladis_a

    Vladis_a Гик

    К сожалению, мой домашний роутер (Asus RT-N56U) скоро "ляжет" от уже имеющейся нагрузки :).
    Он, бедный, и так тянет порядка 12 клиентов (проводных и бес-).
    Да и, благодаря Вашей теме по NRF24, у меня с ними проблем нет - конденсаторы напаяны сразу же, питание идет через адаптер, данные ходят туда-сюда без потерь.
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Я б даже сказал nano=esp8266 по цене.
     
  10. ИгорьК

    ИгорьК Гуру

    Asus RT-N56U от 12 клиентов не ляжет.
     
  11. Vladis_a

    Vladis_a Гик

    :) уговорили, попробую как-нибудь навесить на него еще 6 клиентов (именно столько планируется узлов в доме).
    Я своим постом хотел подсказать таким же, как я новичкам, что Domoticz ГОРАЗДО, в разы проще в понимании!
    Да и мне бы сначала с Domoticz и MySensors разобраться :)
    Все равно в плане написания программ на разных языках мне за Вами, Airbus и Пушным звер не угнаться :)
     
  12. ИгорьК

    ИгорьК Гуру

    ... но я бы не сказал, что устойчивее OpenHab, к сожалению. Я первую версию ОН пока не снес. Работают параллельно. Иногда Domoticz подвисает. Это мой опыт, вроде бы ни кем здесь не подтверждаемый.
     
  13. Vladis_a

    Vladis_a Гик

    Мой Microserver пока выключается на ночь, но как только запущу в боевом режиме несколько узлов, то Domoticz будет крутиться на нем в режиме 24/7/365.
    В случае сбоев обязательно отрапортую.
     
  14. Airbus

    Airbus Радиохулиган Модератор

    Airbus только начинает делать умный дом.И начну с Xiaomi.Посмотрю нужно ли оно мне?Потом перекую все это в Domoticz.Вот Игорь-это голова!Кстати что по Роутерам?Мой упорно проситься на помойку.Хочу взять уже под умный дом в перспективе.Что посоветуете?Провайдер ТТК
     
  15. Vladis_a

    Vladis_a Гик

    Я видел Xiaomi, но отказался от этой идеи. Возможно, я не прав, но на Ардуино и ESP8266 больше возможностей по кол-ву самых разных датчиков, а значит система гибче.
    Да и кто его знает, что там китайцы напрограммировали :)
    А тут сам разбираешься, сам делаешь - руки и голова заняты. :) "Творчество", блин :)
     
  16. Airbus

    Airbus Радиохулиган Модератор

    Да я в принципе согласен esp8266 наше все и спаять легко и прошить и код написать можно.Но вопрос решил в пользу дизайна готовых устройств да и паять сейчас особенно некогда.Хотя Xiaomi это пробный шар.Если придет апетит во время еды буду менять если нет остановлюсь.
     
  17. SergeiL

    SergeiL Оракул Модератор

    В свое время выбирал между Z-Wave от Fibaro и 433Mhz Nexa + Telldus.
    У фибаро была убойная цена, тогда для начала решил попробовать 433Mhz.

    В результате, из-за неустойчивого одностороннего канала и ненадежности срабатывания, все переделал на ESP и OH1. (OH 2.2 параллельно гоняю, не переехал еще).
    Работает все очень надежно, т.т.т, доволен! :)

    А выключатели 433MHz и силовые устройства частично лежат мертвым грузом. :( На дачу переезжают.
    Поэтому лучше, конечно, сразу нормально делать.
     
  18. Securbond

    Securbond Гуру

     
    petr0vsk нравится это.
  19. JohnS

    JohnS Нуб

    Всем привет, я новенький как тут так и с Domoticz.

    Я это делаю с помощью JSON API. Например так: curl 'http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=Off'
     
  20. JohnS

    JohnS Нуб

    Еще у меня вопрос:
    Есть ли реализации плавной (ну или не совсем плавной) регулировки громкости (Dimmer) в Domoticz желательно на dzVents?