Умный дом: Domoticz.

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

Метки:
  1. ИгорьК

    ИгорьК Гуру

    Я не силен в Линуксе, поспрашивайте по форумам. Полагаю, после ОН остался сервер, который его поддерживал и продолжает занимать эти порты. Как его вычислить - я не в теме.
     
  2. aliaksandr

    aliaksandr Нерд

    Здравствуйте. Появилось время продолжить свои изыскания, и вот с чем столкнулся. Предыдущие манипуляции прекрасно работали показывая температуру с датчиков и состояние переключателей. Когда же я попробовал в переключателях добавить get команды :
    Действие при включении: http://192.168.1.241/gpio?st=1&pin=15
    Действие при выключении: http://192.168.1.241/gpio?st=0&pin=15
    началась чехарда(.
    Релюшка щелкает хаотично несколько раз и в итоге может как остаться включенной так и выключится. Из сторонних приложений или из браузера данный гет запрос приводит к таким же последствиям. В журнал сыпется такой кошмар :
    018-12-16 10:28:11.622 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:11.723 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:11.734 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:12.055 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:12.066 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:12.382 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:12.394 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:12.708 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:12.719 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:13.037 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:13.049 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:13.363 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:13.374 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:13.690 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:13.702 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:14.016 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:14.028 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:14.343 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:14.354 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:14.671 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:14.683 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:15.004 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:15.015 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:15.332 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:15.344 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:15.659 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:15.670 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:15.985 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:15.997 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:16.313 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:16.324 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:16.638 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:16.649 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:16.964 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:16.975 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:17.292 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:17.303 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:17.623 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:17.634 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:17.945 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:17.957 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:18.273 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:18.284 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:18.601 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:18.613 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:18.936 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    2018-12-16 10:28:18.948 (Dummy) Light/Switch (gpio15)
    2018-12-16 10:28:19.256 MQTT: Topic: domoticz/in, Message: {"command":"switchlight","idx":6,"switchcmd":"Off"}
    Моя функция в NodRed выглядит так:
    var newmsg = {};
    // Удаляем первые 13 символов, оставляя "чистые топики" в переменной ss
    var ss = '' + msg.topic.substring(13);
    // Согласуем данные команды со стандартом Домотикз
    // Приходит "1" - будет "On", иначе - "Off"

    var com = 'Off';
    if (msg.payload == '1') {
    com = 'On';
    }

    //Функция формирования команды Домотикзу
    // Принимает idx и клманду
    function setSwitch(idx, nm){
    var switchpayload = '{"command":"switchlight","idx":' + idx + ',"switchcmd":"'+ nm +'"}';
    return switchpayload;
    }

    // Выбор ваших выключателей, в зависимости от приходящих сообщений
    switch (ss) {
    // Если пришел 'output4' то это выключатель с idx = 7, например
    case 'output4':
    var com = 'Off';
    if (msg.payload == 'ON') {
    com = 'On';
    }
    newmsg.payload = setSwitch(1, com);
    return newmsg;

    case 'output5':
    var com = 'Off';
    if (msg.payload == 'ON') {
    com = 'On';
    }
    newmsg.payload = setSwitch(2, com);
    return newmsg;

    case 'output12':
    var com = 'Off';
    if (msg.payload == 'ON') {
    com = 'On';
    }
    newmsg.payload = setSwitch(3, com);
    return newmsg;

    case 'output13':
    var com = 'Off';
    if (msg.payload == 'ON') {
    com = 'On';
    }
    newmsg.payload = setSwitch(4, com);
    return newmsg;

    case 'output14':
    var com = 'Off';
    if (msg.payload == 'ON') {
    com = 'On';
    }
    newmsg.payload = setSwitch(5, com);
    return newmsg;

    case 'output15':
    var com = 'Off';
    if (msg.payload == 'ON') {
    com = 'On';
    }
    newmsg.payload = setSwitch(6, com);
    return newmsg;

    default:
    return null;
    }
    return null;
    Подскажите пожалуйста, в чем может быть проблема.
     
  3. ИгорьК

    ИгорьК Гуру

    Конечно в коде Node Red.
    Сейчас он предназначен для показа состояний кнопок. Его надо переделать так, что если пришло сообщение, но состояние не изменилось - ничего не происходит
    Для этого применяйте https://nodered.org/docs/user-guide/context#using-context-in-a-function-node

    upload_2018-12-16_15-52-58.png
     
    Последнее редактирование: 16 дек 2018
  4. aliaksandr

    aliaksandr Нерд

    Спасибо, но пока это для меня слишком высокие материи :) Надо сначала 2+2 сделать. Вроде понимаю, что что-то связано с контекстами и статусами, но пока это просто какие-то слова. Наверное придется отложить до НГ выходных и там обстоятельно посидеть.
     
  5. ИгорьК

    ИгорьК Гуру

    Завтра помозгуем. У меня как раз в связи с морозами появился выключатель обогрева трубы. Выключатель физически работает, по MQTT управляется, а в Домитикз его еще нет.
    Вот и разберемся.
     
  6. aliaksandr

    aliaksandr Нерд

    В моих раскопках, на форуме известной прошивки от wifiiot, наткнулся на ветку в которой nemirow22 еще в 2015 году предлагал вот такое решение. (вставляется через импорт-клипборд)
    [{"id":"fcc1588.f033ea8","type":"mqtt-broker","broker":"192.168.1.149","port":"1883","clientid":""},{"id":"70076b16.8ff894","type":"mqtt in","name":"","topic":"/ESP12E/sensors/dhtt1","broker":"fcc1588.f033ea8","x":277,"y":311,"z":"5a9076f4.a56f88","wires":[["f23af088.0dc51"]]},{"id":"25ec8f20.da137","type":"mqtt out","name":"","topic":"domoticz/in/json","qos":"","retain":"","broker":"fcc1588.f033ea8","x":776,"y":311,"z":"5a9076f4.a56f88","wires":[]},{"id":"f23af088.0dc51","type":"function","name":"","func":"var Domoticz_IP = '192.168.1.149';\nvar Domoticz_Port = '8080';\nvar Domoticz_HID = '3';\nmsg.payload = '{\"dunit\":3,\"dtype\": 82,\"dsubtype\":1, \"svalue\":\"' + msg.payload +'; 0;0\"}';\nreturn msg;","outputs":1,"valid":true,"x":553,"y":312,"z":"5a9076f4.a56f88","wires":[["25ec8f20.da137"]]},{"id":"fb5a7884.04a588","type":"mqtt in","name":"","topic":"domoticz/in/json","broker":"fcc1588.f033ea8","x":267,"y":155,"z":"5a9076f4.a56f88","wires":[["df4f35d3.20b0c8"]]},{"id":"df4f35d3.20b0c8","type":"json","name":"","x":467,"y":154,"z":"5a9076f4.a56f88","wires":[["d3180787.2ce7f8"]]},{"id":"d3180787.2ce7f8","type":"function","name":"","func":"var Domoticz_IP = '192.168.1.149';\nvar Domoticz_Port = '8080';\nvar Domoticz_HID = '3';\n\nvar url = 'http://' + Domoticz_IP + \n\t\t ':' + Domoticz_Port +\n\t\t '/json.htm?type=command&param=udevice';\n\nif (msg.topic) {\n url = url + '&did=' + msg.topic;\n}\n\nif (msg.payload.hid) {\n url = url + '&hid=' + msg.payload.hid;\n}\nelse \n{\n url = url + '&hid=' + Domoticz_HID;\n}\n\nif (msg.payload.dunit) {\n url = url + '&dunit=' + msg.payload.dunit;\n}\n\nif (msg.payload.dtype) {\n url = url + '&dtype=' + msg.payload.dtype;\n}\n\nif (msg.payload.dsubtype) {\n url = url + '&dsubtype=' + msg.payload.dsubtype;\n}\n\nif (msg.payload.nvalue) {\n url = url + '&nvalue=' + msg.payload.nvalue;\n}\n\nif (msg.payload.svalue) {\n url = url + '&svalue=' + msg.payload.svalue;\n}\n\nmsg.url = url;\n\nreturn msg;","outputs":1,"valid":true,"x":610,"y":153,"z":"5a9076f4.a56f88","wires":[["81bf24bc.7e40d8","3425d55b.cbda2a"]]},{"id":"81bf24bc.7e40d8","type":"http request","name":"","method":"GET","ret":"txt","url":"","x":769,"y":153,"z":"5a9076f4.a56f88","wires":[[]]},{"id":"3425d55b.cbda2a","type":"debug","name":"","active":false,"console":"false","complete":"false","x":768,"y":119,"z":"5a9076f4.a56f88","wires":[]}]
    С такими
    Все просто качаете образ Domoticz sourceforge.net/projects/domoticz/files/ там же есть по для заливки этого образа на SD карту.
    Залили образ -втыкаете карточку в малину -заходите ваш ip:8080 . Дальше заходим в настройки ставим русский язык и локацию города-сохраняем.Далее заходим настройки - оборудование.Там добавляем поддержку виртуального оборудования(Dummy (Does nothing, use for virtual switches only)- на этом пока все.Идем по адрессу -ваш ip:1880 -попадаем в node-red.копируете текстовый файл что выкладывал выше и импортируете его в clipboard(cкрин ниже)-появится цепочка -в ней нужно заменить(c лева на право по порядку) в перврм прямоугольнике ESP12E -на свое название модуля(device name),во втором и третьем ip на адрес своей малины -жмем deploy в верхнем правом углу -под топиками(1-3 прямоугольник) должно засветится зеленая точка connected.
    Идем обратно в Domoticz (ip:8080) -там заходим настройки-устройства -в этой вкладке должен появится ваш датчик-справа от него зеленый круг со стрелкой жмете на него -подписываете как нравится название датчика и все датчик появится в закладке температура.По такому же алгоритму добавляете другие датчики и кнопки .
    http://homes-smart.ru/index.php/component/kunena/5-soft/974-esp8266-server-domoticz
    Пытался настроить под себя - пока не получилось.
     
  7. Arturs

    Arturs Нерд

  8. Arturs

    Arturs Нерд

    Domoticz (MQTT) обнаружение присутствия с тегами Bluetooth LE

    может кто разбирался с этой темой ???
     
  9. Arturs

    Arturs Нерд

  10. ИгорьК

    ИгорьК Гуру

    Я все хочу заняться, но никак железо не приобрету.
     
  11. Arturs

    Arturs Нерд

    я пробывал скрипт для обнаружения на питоне, но как то не оченьстабильно, посоветовали mqtt. Бегло пробежался показалось очень сложно, Поможете разобраться с mqtt и с nodeRed
     
  12. SergeiL

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

    А вы метки то купили?
     
  13. Arturs

    Arturs Нерд

    Да, два моячка купил NUT, один миник один с кнопкой
     
  14. SergeiL

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

    Я так понял их нужно все время на себе носить?
     
  15. Arturs

    Arturs Нерд

    на ключах. Домой пришел они отработали
     
  16. aliaksandr

    aliaksandr Нерд

    А нету в Domoticz как в Majordomo привязки телефона по GPS? Удобно. И видно кто где и ничего докупать не надо. Там я ставил приложение BigBrother на телефон и настраивал модуль в MD.
    И вопрос, пользуется кто функцией MyDomoticz для удаленного доступа? Или както по другому этот вопрос решается. С учетом что белого IP нет для MD я с помощью vpnki.ru поднимал туннель и делал публикацию URL, а тут поэксперементировал и вместо armbian поставил dietpi, и теперь не выходит настроить pptp соединение.
     
  17. ИгорьК

    ИгорьК Гуру

    Применяйте Owntracks без всяких модулей по протоколу mqtt.
     
  18. aliaksandr

    aliaksandr Нерд

    Поставил. Но если Mosquito стоит локально как Owntracks будет работать? только когда в локальной сети? или есть способ передавать данные и на локальный mqtt и на облачный?
     
  19. SergeiL

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

    А если у Вас используется облачный, зачем локальный поставили, используйте облачный.
     
    Последнее редактирование: 21 дек 2018
  20. aliaksandr

    aliaksandr Нерд

    Нет, стоит все локально. Только что нашел, что можно настроить мост. наверное надо попробовать перевести все еще и на облако.