Умный дом: Domoticz.

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

Метки:
  1. Securbond

    Securbond Гуру

    Вчера не мог закончить скрипт. причина оказалась банальна - скрипты не работали вообще. Не знаю почему, но такое иногда случается. Пока не определил причину данного поведения, помогает переустановка Domoticz по верх рабочей системы. Ничего при этом не слетает и скрипты начинают работать.
    Итак над чем я бился... После того как прикрутил радио, встала проблема регулировки звука без физического прикладывания силы к переменному резистору динамиков.
    Регулировка осуществляется командой
    Код (Bash):
    amixer cset numid=1 -- 400
    ,
    где 400 это уровень звука (от -10239 (тишина) до 400 (на полную)).
    Первым делом создаём bash скрипт vol.sh , куда будем передавать уровень звука.
    Код (Bash):
    #!/bin/bash
    amixer cset numid=1 -- $1
    Теперь нужно создать Swich Dimmer
    Vol.JPG
    И добавляем пару пользовательских переменных. Одна "dimm" для сохранения положения бегунка, вторая "vol", в которую мы засунем уровень громкости переработанный скриптом и функцией map, которую для нас любезно написал ИгорьК
    А потом пишем скрипт LUA
    Код (Javascript):
    commandArray = {}
    do
    function map( x,  oldMIN,  oldMAX,  newMIN,  newMAX)
       return (x - oldMIN) * (newMAX - newMIN) / (oldMAX - oldMIN) + newMIN
    end

    if devicechanged['Volume'] then
    local dd = otherdevices_svalues['Volume']  
    if(devicechanged['Volume'] =='Off') then
         commandArray['Variable:vol'] = "-10239"
         os.execute ("/home/pi/domoticz/scripts/bash/vol.sh -10239")
         commandArray['Радио']='Off'
       
    else if(devicechanged['Volume']=='On') then
        commandArray['Variable:vol'] = "-100"
        os.execute ("/home/pi/domoticz/scripts/bash/vol.sh -100")
    else  
    commandArray['Variable:dimm'] = dd
    local v = ( map( dd, 0, 100, -10000, 400))

    os.execute ("/home/pi/domoticz/scripts/bash/vol.sh " ..v)
    commandArray['Variable:vol'] = tostring(v)
       end
      end
    end
    end
    return commandArray
    Значение -10000, я подобрал произвольно для своего динамика.
    Не претендую на красивость данного скрипта, но мои потребности удовлетворяет и звук регулирует.
     
    ИгорьК нравится это.
  2. ИгорьК

    ИгорьК Гуру

    А у меня раз в неделю перестают приниматься данные по mqtt. Сейчас работают одновременно и OpenHab и Domoticz. И не решил пока на чем остановиться.
    В помощь OH сейчас для скриптов начал применять Node Red. И в целом все работает.
     
  3. Securbond

    Securbond Гуру

    А вот и последний новогодний подарок в этом году приехал (от снегурочки)

    4603E7E5-759A-4A84-A6C8-A7AA055089FC.jpeg E5B8134D-9535-4AA4-A537-496C70A27A5C.jpeg 84EA53B4-C9E7-4B30-B7DC-CA11F6C5E785.jpeg

    Люстра от Xiaomi Yeelight 28W. Купил на али за 4063 руб. На борту 240 светодиодов по 0,12w каждый Имеет кучу режимов, регулировку по яркости и цвету от желтого до белого. Особенно интересные это "Рассвет", когда люстра постепенно в течении длительного времени набирает яркость. И "Закат" то же самое, только яркость снижается до полного выключения устройства. Пульт в комплекте имеет кнопки: включить, выключить, + - Яркость, кнопка смены предустановленных режимов и кнопка включения режима ночника «Moon».
    Domoticz поддерживает данные устройства без танцев с бубном (есть в устройствах). при том как RGB, так и Обычные лампы Yeelight. При подключении к HomeKit (Apple) работает, но регулирует только яркость.
    На комнату в 16 кв.м Хватает с запасом. За счет непрозрачного бортика потолок освещается немного хуже(но мне там не на что смотреть, пыли меньше видно:rolleyes:).
     
    Последнее редактирование: 16 янв 2018
    gofk и ИгорьК нравится это.
  4. gofk

    gofk Нерд

    Вопрос непосредственно по Domoticz.
    Создал в оборудовании Dummi. Добавил виртуальные датчики (тип "Light/Switch", подтип "Selector Switch").
    Работают, рулятся через HTTP-запросы, все ОК.
    Но не могу теперь с ними ничего сделать. Только переименовать. Ни удалить, ни отредактировать свойства.
    На панели у датчиков кнопка "Редактировать" есть, курсор при наведении превращается в руку. Даже кнопка нажимается. Но ничего не происходит.
    Что теперь? Если нужно удалить - только само устройство удалять и все датчики заново создавать? Как-то кривенько...

    Не сразу, но удалось обнаружить в заголовке таблицы устройств маленькую корзину. При клике на которую удаляются выделенные в списке элементы. А я ещё гадал, зачем в списке чекбоксы :)
    Не знаю, кому пришло в голову размещать управляющие элементы в шапке таблицы. При том, что на всех остальных страницах кнопки расположены или под, или над списками. Пусть это будет на его совести.
    Очевидно, что никакой тайны никому не открыл, но вдруг, поможет кому-то типа меня.
    [​IMG]
     
    Последнее редактирование: 17 янв 2018
  5. gofk

    gofk Нерд

    А можете после установки расстояние от потолка до нижней плоскости люстры измерить? Хочу, но потолки дюже низкие. Пока поглядываю на philips...
     
  6. ИгорьК

    ИгорьК Гуру

    Удаляются. Просто Вы кривенько изучили ситуацию.
     
  7. Securbond

    Securbond Гуру

    Завтра буду дома измерю, но если потолки низкие думаю Вам стоит глянуть на более дорогие варианты из данной линейки (которые без бортика).
     
  8. alexvtule

    alexvtule Нерд

    Вот настройки ESPшки с прошивкой EasyESP

    Температуру и замыкания кнопки GPIO12 на сервер Domoticz устройство передает.
    А обратную команду с сервера на замыкание этого GPIO12 не принимает.
     

    Вложения:

  9. alexvtule

    alexvtule Нерд

    Извините, возможно за дурацкий вопрос...
    А чем вы это радио проигрываете? Ну то есть на какие устройства направляется аудиопоток, громкостью которого вы управляете?
     
    ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    И мне интересно - что там оно у вас говорит? :)
     
  11. Securbond

    Securbond Гуру

    Radio.PNG
    Код (Javascript):
    local sensor = 'Радио'

    commandArray = {}

    if (devicechanged[sensor] == 'Off') then
    os.execute ("killall mplayer")
    end

    if (devicechanged[sensor] == 'Наше Радио') then
    os.execute ("/home/pi/domoticz/scripts/bash/radio.sh http://nashe128.streamr.ru")
    commandArray[sensor]='Off'
    end

    if (devicechanged[sensor] == 'Свое Радио') then
    os.execute ("/home/pi/domoticz/scripts/bash/radio.sh http://svoeradiofm.hostingradio.ru:8032/svoe-128.mp3")
    commandArray[sensor]='Off'
    end

    if (devicechanged[sensor] == 'Paradise') then
    os.execute ("/home/pi/domoticz/scripts/bash/radio.sh http://stream-tx3.radioparadise.com:80/aac-128")
    commandArray[sensor]='Off'
    end

    if (devicechanged[sensor] == 'Европа Плюс') then
    os.execute ("/home/pi/domoticz/scripts/bash/radio.sh http://ep128.streamr.ru")
    commandArray[sensor]='Off'
    end
    return commandArray
     

    Код (Bash):
    #!/bin/sh
    killall mplayer
    mplayer -ao alsa -noconsolecontrols $1 > /dev/null 2>&1
    Вещает на колонки, подключенные к малине.
    Можно через Yandex speechkit сообщать о важных событиях.
    Например так:
    ыус.PNG
    Код (Bash):
    #!/bin/bash
    mplayer "http://tts.voicetech.yandex.net/generate?text=Помещение%20на%20охране&format=mp3&lang=ru-RU&speaker=omazh&key=xxxxxxxxxxxxxxxxxxxxxxxxxxx
     
    ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Гуру

    У Вас Домотикз в части приема данных по MQTT периодически не зависает?
     
  13. Securbond

    Securbond Гуру

    Не замечал.. но сильно не отслеживаю. А вот роутер от количества устройств похоже скоро ляжет.
    domm.PNG
     
  14. gofk

    gofk Нерд

    До сих пор непонятно, каким образом Вы "обратную команду с сервера" отправляете...
    HTML:
    http://<ESP IP address>/control?cmd=GPIO,<pin>,0
    не работает?
     
  15. alexvtule

    alexvtule Нерд

    Так это команда для управления устройством, которое находится в локальной сети с сервером Domoticz. А у меня сервер Domoticz - удаленный и с белым IP-адресом, чтобы можно было из любого места со смартфона подключиться, он стоит на работе. А ESP-шки работают на даче в своей локалке с выходом в Интернет через 4G модем...
    Я же ввожу в поле IDX выключателя идентификатор, который выдает сам сервер Domoticz.... датчики температуры таким же образом он как-то находит?
     
  16. ИгорьК

    ИгорьК Гуру

    Ну что Вы мучаетесь - установите OpenHab 2 - там все логично и понятно. Включая язык написания скриптов :)
     
  17. gofk

    gofk Нерд

    Не поверите - установил уже в виртуалке :) Нифига не понятно, но интересно до жути :)
    Как минимум управление с телефона (сам интерфейс) гораздо симпатичнее, чем в приложении для Domoticz. А альтернативу ему (мобильному приложению domoticz) я пока не нашёл...
    В остальном не спорю, в Domoticz повседневные задачи решаются куда как проще и нагляднее. На первый взгляд. А там будем посмотреть.
     
  18. gofk

    gofk Нерд

    https://www.letscontrolit.com/wiki/index.php/Relais
     
    Последнее редактирование: 22 янв 2018
  19. ИгорьК

    ИгорьК Гуру

    На этом преимущества заканчиваются. И это еще вопрос - что Вы имеете в виду. Если появившуюся во второй версии возможность раскрасить интерфейс как задницу попугая - это тоже сомнительное преимущество.
    Единственно что там есть полезного - вложенные окна. Единственно.
     
  20. sega2177

    sega2177 Нуб

    Добрый день,серьезно увлекся "умным домом",установил domoticz, настроил работает,но все по Вашим примерам и учебникам,за что всем спасибо,но сам ничего не понимаю в языках программирования и отсюда вопрос-какой начать язык изучать именно для систем умного дома? Я понимаю что их много и ответить однозначно сложно,но что бы вы посоветовали новичку.