Умный дом: Domoticz.

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

Метки:
  1. Arturs

    Arturs Нерд

    Добил я NUT присутствие и питоновский скрипт. Пока все работает. И в Домотиксе тоже через переменные. Следующий этап Node Red, но без вашей помощи не осилю
     
  2. Arturs

    Arturs Нерд

    Всем привет. С Наступающим новым годом. Хочу к RP3b+ подключить блютузные колонки, пока не получилось чтоб нормально работали. Может кто подключал???? ЧТо лучше использовать bluealsa или PulseAudio
     
  3. Securbond

    Securbond Гуру

    Предыдущие скрипты работы с временными интервалами и датчиком движения отрабатывали условие времени не корректно. Этот скрипт один на ночь и день.., погонял его три дня, всё норм. Временные таймеры отключения нужно подбирать в зависимости от датчика движения (у сяоми он достаточно вредный, по этому условия избыточны и продублированы)
    Код (Javascript):
    return {
        on = {  -- Это перечень idx устройств, изменение состояний которых приводит к запуску скрипта
            devices = {21  -- коридор датчик движения
            },
        },
        execute = function(domoticz, device)
            if domoticz.devices(21).state == 'On' and (domoticz.time.matchesRule('at 06:00-23:00')) then  -- два условия, движение и временной интервал
                domoticz.devices(59).switchSelector(10) -- выставляем уровень освещения в коридоре (люстра)
                domoticz.devices(59).switchSelector(0).afterSec(80) --выключаем через 80 секунд (люстра)
                end
             if domoticz.devices(21).state == 'On' and (domoticz.time.matchesRule('at 23:01-05:59')) then -- два условия, движение и временной интервал
                domoticz.devices(60).switchSelector(10) -- выставляем уровень освещения в коридоре (ночник)
                domoticz.devices(60).switchSelector(0).afterSec(40) --через 40 сек гасим ночник
                end
             if domoticz.devices(21).state == 'Off'  then
                 domoticz.devices(59).switchSelector(0).afterSec(10) --если нет движения через 10 секунд выключаем освещение (люстра)
                 domoticz.devices(60).switchSelector(0).afterSec(5) --если нет движения через 5 секунд выключаем освещение (ночник)
             end
        end
    }
     
    ИгорьК нравится это.
  4. Hellsing

    Hellsing Нуб

    Здравствуйте, пробую как вы написали, что при вкл/выкл. группового сценария вкл./выкл. определённый event. Но получаю ошибку. Вручную если вбить в браузер то срабатывает. Что может быть не так?
    Screenshot_98.png Screenshot_99.png Screenshot_100.png Screenshot_101.png
     
  5. Securbond

    Securbond Гуру

    Проверил только что у себя, работает. Проверьте стоит ли пароль на domoticz, если стоит, то поставьте галку не спрашивать пароль для локальных адресов
    vbvbvb.JPG

    Если не получится, пропишите конкретный адрес машины на которой крутится domoticz 192.168.__.__
     
    Hellsing нравится это.
  6. Hellsing

    Hellsing Нуб

    Спасибо большое, у меня там было пусто, заработало когда прописал "127.0.0.1". А как можно указать чтобы вкл./выкл. не один event а несколько?
     
  7. Securbond

    Securbond Гуру

    Уверен, что эти команды можно прописывать не только в переключателях но и в скриптах. Нужно почитать документацию https://www.domoticz.com/wiki/DzVents:_next_generation_LUA_scripting и сделать скрипт, который бы отключал сразу несколько ивентов.

    Не проверял, но возможно сработает такая команда в скрипте

    Код (Java):
    domoticz.openURL('http:127.0.0.1:8080/json.htm?type=events&param=updatestatus&eventid=7&eventstatus=0')
    ну и по какому то условию попробовать запустить несколько таких команд одним скриптом.

    Только теория, НЕ ПРОВЕРЯЛ !
     
    Последнее редактирование: 4 янв 2019
    Arturs и Hellsing нравится это.
  8. Arturs

    Arturs Нерд

    Всем привет. Может кому приходилось поженить RP с блютузной колонкой???
     
  9. Alex Pas

    Alex Pas Нуб

    Всем привет.
    Ни как не могу решить вопрос с управлением громкостью, тут вижу есть кто победил.
    Направьте плиз на путь .
    1. Создал switch
    upload_2019-2-10_16-23-49.png
    2. Создал Vol.sh
    upload_2019-2-10_16-24-31.png
    внутри :
    upload_2019-2-10_16-26-33.png
    Sudo -u pi (уже как добавочное) тут вычитал
    3. Создал две переменных (значения меняться при изменении "бигунка"
    upload_2019-2-10_16-28-10.png

    4. Создал LUA но ответа ноль
    upload_2019-2-10_16-29-32.png

    Но Алса не меняет свои значения
    upload_2019-2-10_16-30-26.png
     
  10. Vladis_a

    Vladis_a Гик

    Построил все на Nodemcu и ESPEasy. Как всегда, ИгорьК был прав.:)
    Роутер Asus RT-N56 тянет всех клиентов, не особо напрягаясь.
    Но вот теперь ищу плагин термостата для Domoticz. Хочется, чтобы котел включался по температуре в другой комнате.
    В Событиях на основе Blockly сделал что-то подобное, но не совсем устраивает.
    Может, кто-то натыкался на толковый плагин для Domoticz?
     
  11. АРТ1385

    АРТ1385 Нуб

    Приветствую. Может кто нибудь подскажет почему при удаленном входе в Domoticz. через сайт MY.Domoticz, не удается править или добавлять новые скрипты, есть возможность только удалять существующие???
     
  12. ZaRaZa

    ZaRaZa Нерд

    Добрый день.
    позвольте вопрос по азам.
    Осваиваю связку mqtt> node red> domoticz, все установлено на raspberry. пока жду оборудование решил поэкспериментировать на чем есть, а именно передача в domoticz показаний от raspberry.
    данные о температуре процессора в node red прилетают в виде
    /rpi/temp : msg.payload : string[4]
    "42.9"
    подскажите как преобразовать данные о температуре в строку понятную domoticz?
    {"idx":51, "nvalue": 0, "svalue": "температура процессора"}
    и второй вопрос, где можно почитать про node red? желательно на русском и желательно с примерами? )) а то меня все на иностранные сайты отправляет
     
  13. ansh

    ansh Нуб

    Добрый день!
    Создал скрипт в dzVents, но он не работает. Тесты показали, что не срабатывает domoticz.devices(47).state == 'Vibrate'
    Как правильно объявлять статус "Selector"? И можно, как то из блокли вытащить объявление статуса т.к. в блокли работает см. ниже?
    return {
    active = true,
    on = {
    devices = {47}
    },
    execute = function(domoticz, device)

    local lampaT = domoticz.devices('Лампа разноцветная в туалете')
    local lampaTDay = domoticz.scenes('Включение света в туалете днем')
    local lampaTNight = domoticz.scenes('Включение света в туалете ночью')


    if (domoticz.devices(47).state == 'Vibrate' and domoticz.time.matchesRule('at 07:00-23:00') ) then
    lampaTDay.switchOn()
    elseif (domoticz.devices(47).state == 'Vibrate') then
    lampaTNight.switchOn()
    end
    end
    }
    Скрипт в блокли срабатывает...
     

    Вложения:

    • vibrate2.png
      vibrate2.png
      Размер файла:
      36,9 КБ
      Просмотров:
      704
    Последнее редактирование: 12 апр 2019
  14. ИгорьК

    ИгорьК Гуру


    Попробуйте:

    Код (Lua):
    -- вместо
    if (domoticz.devices(47).state == 'Vibrate'...

    -- написать
    if (domoticz.devices(47).state == 10

    -- или
    if (domoticz.devices(47).state == '10'

    -- или
    if (domoticz.devices(47).rawData == 10

    -- То есть число, соответствующее названию

    -- А также, вместо:

    local lampaT = domoticz.devices('Лампа разноцветная в туалете')

    -- Писать:
    local lampaT = domoticz.devices(45) -- idx

    И, кроме того - что лог пишет?

    upload_2019-4-12_14-22-6.png
     
    Последнее редактирование: 12 апр 2019
  15. ansh

    ansh Нуб

    Спасибо, но не работает. Я уже поменял на обычный "virtual Switch" (idx 12) и включаю такой же "virtual Switch" (idx 42), но почему то не работает.(

    return {
    active = true,
    on = {
    devices = {12}
    },
    execute = function(domoticz, device)

    if (domoticz.devices(12).state == 'On' ) then
    domoticz.devices(42).switchOn()
    end
    end
    }
    В логах только это
    Код (C++):
    2019-04-12 15:05:50.290 Status: User: Admin initiated a switch command (12/Теплый пол/On)
     
  16. ИгорьК

    ИгорьК Гуру

    А в настройках DzVents включен?
     
  17. ansh

    ansh Нуб

  18. ansh

    ansh Нуб

    Другой скрипт работает:
    return {
    active = true,
    on = {
    devices = {'Датчик движения в коридоре'}
    },
    execute = function(domoticz, device)

    local lustraKor = domoticz.devices('Люстра коридор')
    local lustraKorDay = domoticz.scenes('Люстра в коридоре днем')
    local lustraKorNight = domoticz.scenes('Люстра в коридоре ночью')

    if (device.name == 'Датчик движения в коридоре' and device.state == 'On' and domoticz.time.matchesRule('at 07:00-23:00') ) then
    lustraKorDay.switchOn()
    elseif (device.name == 'Датчик движения в коридоре' and device.state == 'On' ) then
    lustraKorNight.switchOn()
    end
    end
    }
     
  19. ansh

    ansh Нуб

    На другом компе и с версией Domoticz 3.8153 скрипт срабатывает:
    return {
    active = true,
    on = {
    devices = {44}
    },
    execute = function(domoticz, device)

    local test2 = domoticz.devices(45)

    if (domoticz.devices(44).state == 'On' ) then
    test2.switchOn()

    end
    end
    }
     
    Последнее редактирование: 17 апр 2019
  20. IgorK

    IgorK Нерд

    Вот пример преобразования на Node-Red
    [{"id":"d94decf3.c129e","type":"inject","z":"2628fc67.52c5b4","name":"","topic":"","payload":"42.9","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":1240,"wires":[["460a59ff.b345b8"]]},{"id":"460a59ff.b345b8","type":"function","z":"2628fc67.52c5b4","name":"Make Mqtt Mess","func":"ttemp=msg.payload;\nmsg.payload={};\nmsg.payload.idx=51;\nmsg.payload.nvalue=0;\nmsg.payload.svalue=ttemp;\nreturn msg;","outputs":1,"noerr":0,"x":323,"y":1240,"wires":[["6214fab5.d2ff44"]]},{"id":"6214fab5.d2ff44","type":"debug","z":"2628fc67.52c5b4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":490,"y":1240,"wires":[]}]
    А здесь можно задать вопросы по ноду: https://web.telegram.org/#/im?p=@node_red