1 2 3 4 5 6 7 8 9 10 9.5/10 9,74оценок: 35

Автоматизация инженерных систем в доме или как я обучал Дом уму-разуму

Тема в разделе "Умный дом", создана пользователем Smith2007, 09.01.15.

  1. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Есть какие либо конкретные устройства, хорошо зарекомендовавшие себя?
     
  2. Евгений Г
    Регистрация:
    17.08.13
    Сообщения:
    843
    Благодарности:
    246

    Евгений Г

    Живу здесь

    Евгений Г

    Живу здесь

    Регистрация:
    17.08.13
    Сообщения:
    843
    Благодарности:
    246
    Адрес:
    Москва
    D1 Mini Wemos на esp8266 12E
    У меня такие https://www.forumhouse.ru/threads/378870/.
    На выходе 5в есть, USB и все ноги разведены. Около 300 рублей стоит
     
  3. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Спасибо конечно, но собирать самому схемы как-то не хочется.
    Постараюсь найти законченное устройство, что бы можно было просто заменить традиционный выключатель на более умный, которым в т. ч. можно по wifi управлять. Дополнительно могу модули коммутации вывести под фальш-потолок. Там места много.
     
  4. Avkurb1970
    Регистрация:
    14.05.12
    Сообщения:
    1.549
    Благодарности:
    682

    Avkurb1970

    Живу здесь

    Avkurb1970

    Живу здесь

    Регистрация:
    14.05.12
    Сообщения:
    1.549
    Благодарности:
    682
    Адрес:
    Москва
    Посмотрите https://www.elkoep.ru/produkcija/
    Сами работаем с другими чехами (параллельное направление безопасности), эти ребята вроде адекватные. Продукцию чехи очень качественную делают. Тут могу утверждать по своему направлению (охранка Jablotron).
     
  5. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458
    Вчера хотел подшутить по поводу этого вопроса - В отечественном понимании DIY-лизма модули ESP8266 - вполне себе законченное решение. На уровне Ардуино. Чего там - купи модуль, добавь релюшку, блок питания, скачай, настрой и залей прошивку. Куда уж проще? На всякую пожаро/электробезопасность - наплевать. Главное - дешево.
    @Smith2007 подозреваю, что кроме интернет-розеток вы ничего готового для Wi-Fi не найдете. Встречаются еще коробочки на ESP, но это далеко не выключатели - их только под потолок.
     
  6. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Допилил звуковое сопровождение.
    Теперь вся озвучка делается единственным php скриптом.
    Код:
    <?php
    
    
    ###################################################
    # Ubuntu 16.04/ PHP7
    #
    # Скрипт получает на входе текстовую строку,
    # синтезирует из нее речевой аудиофайл,
    # копирует полученный файл на сервер asterisk
    # подключается к asterisk ami и воспроизводит файл/
    #
    # Для работы скрипта требуется установить php-ssh2
    #
    # sudo apt-get update
    # sudo apt-get install php-ssh2
    # Сервер на котором запускается php и сервер
    # asterisk - на разных ip
    ###################################################
    
    # --- Входные переменные ---
    $speaker = $_REQUEST['speaker']; // Голоса: Женские - jane, oksana, alyss omazh, Мужские - zahar, ermil
    $emotion = $_REQUEST['emotion']; // Эмоциональная окраска голоса. Возможные значения:
                     // good — радостный, доброжелательный
                     // evil — раздраженный
                     // neutral — нейтральный (используется по умолчанию)
    $speech = $_REQUEST['speech'];  // имя файла синтезированного текста (file.mp3)
    $text = $_REQUEST['text'];    // Синтезируемый текст
    
    # --- настройка Asterisk  ---
    $strhost = "192.168.1.11";     // Адрес сервера FreePBX
    $strport = "5038";        // Порт AMI
    $timeout = "100";
    $ami_user = "openhab\r\n";    // Пользователь AMI интерфейса FreePBX
    $ami_password = "password\r\n";// Пароль AMI
    $ssh_user = "user";
    $ssh_password = "password";
    $errno=0 ;
    $errstr=0 ;
    
    # ------ Настройки Yandex.Speech ---------------
    $KeyCode="2a4c42ce-b445-43d8-b5a5-88f6cee9c11a";    // API Key Yandex.Speech
    
    if (empty($speaker)) { $speaker = "omazh"; }; // значения по умолчанию
    if (empty($emotion)) { $emotion = "evil"; };  // значения по умолчанию
    if (empty($speech)) { $speech = "speech.mp3"; };  // значения по умолчанию
    if (empty($text)) { $text = "Внимание! Обнаружено нарушение периметра безопасности!"; };  // значения по умолчанию
    $SpeechFile="/tmp/$speech";    // Путь/Имя файла в который будет записана синтезируемая речь
    echo "$SpeechFile \r\n";
    $qs = http_build_query(array("format" => "mp3","lang" => "ru-RU","speaker" => $speaker,"key" =>$KeyCode,"emotion" => $emotion, "text" => $text));
    $ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer: \r\n")));
    $soundfile = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx);
    $i=file_put_contents($SpeechFile, $soundfile);
    
    echo("i=$i \r\n");
    
    // Если синтезировали речь - копируем полученный файл на FreePBX
    if ( $i > 0 ) {
        // Подключаемся к серверу по ssh
        if ($connection = ssh2_connect($strhost, 22)) {
           echo "Connection Successful!\r\n";
        }  else {
          die("Connection Failed...\r\n");
        };
        // авторизуемся на сервере
        if (ssh2_auth_password($connection, $ssh_user, $ssh_password)) {
          echo "Authentication Successful!\r\n";
        } else {
          die("Authentication Failed...\r\n");
        }
        // Копируем файл на FreePBX
        ssh2_scp_send($connection, $SpeechFile, "/tmp/$speech", 0644); // /tmp/$speech - каталог должен совпадать с каталогом из контекста
                                       // /etc.asterisk/extention_custom.conf  -> pa-custom -> Playback(/tmp/${var1})
        if (!$connection) die('Send failed');
        };
    
    
    #-------------- вызываем asterisk AMI и воспроизводим синтезированный аудиофайл---------------------
    $var1 = basename($speech, '.mp3') + "\r\n\r\n"; // для asterisk требуется имя без расширения
    $sconn = fsockopen ($strhost, $strport, $$errno, $$errstr, $timeout) or die("Connection to $strhost:$strport failed");
    
    if (!$sconn) { echo "$errstr ($errno)<br>\n"; }
    
      else {
    
      fputs ($sconn, "Action: login\r\n");
      fputs ($sconn, "Username: $ami_user");
      fputs ($sconn, "Secret: $ami_password");
      fputs ($sconn, "Events: off\r\n\r\n");
      usleep(500);
    
      fputs ($sconn, "Action: Originate\r\n");
      fputs ($sconn, "Channel: Local/590@from-internal\r\n");
      fputs ($sconn, "Callerid: OpenHAB\r\n");
      fputs ($sconn, "Timeout: 15000\r\n");
      fputs ($sconn, "Context: pa-custom\r\n");
      fputs ($sconn, "Exten: 577\r\n");
      fputs ($sconn, "Priority: 1\r\n\r\n");
      fputs ($sconn, "Async: yes\r\n\r\n" );
      fputs ($sconn, "Variable: var1=$var1" );
      fputs ($sconn, "Action: Logoff\r\n\r\n");
      usleep (500);
    
      fclose ($sconn);
    
      }
    ?>
    Вызов из rules
    Код:
    rule "Protect" when
    Item PCode_0 changed from CLOSED to OPEN or
    Item PCode_1 changed from CLOSED to OPEN or
    Item PCode_2 changed from CLOSED to OPEN or
    Item PCode_3 changed from CLOSED to OPEN or
    Item PCode_4 changed from CLOSED to OPEN or
    Item PCode_5 changed from CLOSED to OPEN or
    Item PCode_6 changed from CLOSED to OPEN or
    Item PCode_7 changed from CLOSED to OPEN or
    Item PCode_8 changed from CLOSED to OPEN or
    Item PCode_9 changed from CLOSED to OPEN or
    Item PCode_10 changed from CLOSED to OPEN or
    Item PCode_11 changed from CLOSED to OPEN or
    Item PCode_12 changed from CLOSED to OPEN or
    Item PCode_13 changed from CLOSED to OPEN or
    Item Test_Protect changed from OFF to ON
    then
    Test_Protect.sendCommand (OFF)
    Test_Protect.postUpdate (OFF)
    var String SpeechTxt = "Внимание! Обнаружено нарушение периметра безопасности!"
    / var String SpeechTxt = "Добрый день, Максимка! Добрый день Дениска!"
    SpeechTxt = SpeechTxt. encode('UTF-8')
    var String Subject = "SH2: Protect!"
    var String Message = "
    var int year = now. getYear
    var int month = now. getMonthOfYear
    var int day = now. getDayOfMonth
    var int hour = now. getHourOfDay
    var int minute = now. getMinuteOfHour
    logInfo("Protect", "year=" + year + " month=" + month + " day=" + day + " hour=" + hour + " minute=" + minute)
    val String mask = "img_" + year + "-" + month + "-" + day + "_" + hour + "." + minute
    logInfo("Protect", "mask=" + mask)
    val List<String> attachmentUrlList = newArrayList(
    "file:/etc/openhab/cmd/snapshot/"+mask+"_cam1.jpg",
    "file:/etc/openhab/cmd/snapshot/"+mask+"_cam2.jpg",
    "file:/etc/openhab/cmd/snapshot/"+mask+"_cam3.jpg",
    "file:/etc/openhab/cmd/snapshot/"+mask+"_cam4.jpg")
    logInfo("Protect", "List=" + attachmentUrlList)
    
    if (PCode_0.state = OPEN) {Message = Message + "Обнаружено движение в гараже! " }
    if (PCode_1.state = OPEN) {Message = Message + "Обнаружено движение в Мастерской! " }
    if (PCode_2.state = OPEN) {Message = Message + "Обнаружено движение в котельной! " }
    if (PCode_3.state = OPEN) {Message = Message + "Обнаружено движение в ванной 0 этажа! " }
    if (PCode_4.state = OPEN) {Message = Message + "Обнаружено движение в фойе 2 этажа! " }
    if (PCode_5.state = OPEN) {Message = Message + "Обнаружено движение в прихожей! " }
    if (PCode_6.state = OPEN) {Message = Message + "Обнаружено движение в ванной 1 этажа! " }
    if (PCode_7.state = OPEN) {Message = Message + "Разбито стекло в гараже! " }
    if (PCode_8.state = OPEN) {Message = Message + "Разбито стекло в мастерской! " }
    if (PCode_9.state = OPEN) {Message = Message + "Разбито стекло в котельной! " }
    if (PCode_10.state = OPEN) {Message = Message + "Разбито стекло в ванной 0 этажа! " }
    if (PCode_11.state = OPEN) {Message = Message + "Разбито стекло в ванной 1 этажа! " }
    if (PCode_12.state = OPEN) {Message = Message + "Секционные ворота открыты! " }
    if (PCode_13.state = OPEN) {Message = Message + "Калитка секционных ворот открыта! " }
    if (Test_Protect.state = ON) {Message = Message + "Тестирование системы безопасности " }
    
    var String url="http: /192.168.1.5/intercom.php?text=" + SpeechTxt
    logInfo("Protect", "url=" + url)
    sendHttpGetRequest (url)
    var String snapshot = "/etc/openhab/cmd/snapshot_dvr.sh@@" + mask
    executeCommandLine (snapshot)
    Thread: sleep (5000)
    / logInfo("Protect", "mask= " mask)
    sendMail (EMail, Subject, Message, attachmentUrlList)
    end
    
    
     
    Последнее редактирование: 14.10.16
  7. DragonShelt
    Регистрация:
    08.09.10
    Сообщения:
    4
    Благодарности:
    0

    DragonShelt

    Участник

    DragonShelt

    Участник

    Регистрация:
    08.09.10
    Сообщения:
    4
    Благодарности:
    0
    Адрес:
    Юго-Восток РТ
  8. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Нет. Я уже построил всю систему на базе ПЛК + openhab для визуализации.
    При этом система получилась не зависимой от платформы. Это может быть комп с браузером, а так же имеются "заточенные" приложения для смартфонов на базе андроид и ios.
    Плюсом к Openhab нужно отнести то, что это проект с открытым кодом (open source) над которым трудятся тысячи программистов.
     
  9. Alex1985ru
    Регистрация:
    30.03.16
    Сообщения:
    2
    Благодарности:
    0

    Alex1985ru

    Новичок

    Alex1985ru

    Новичок

    Регистрация:
    30.03.16
    Сообщения:
    2
    Благодарности:
    0
    Прочитал тему. Спасибо что делитесь реализацией своих идей.
    Как я понял каждый микрокомпьютер (FreePBX и система видеонаблюдения) связаны через коммутатор с сервером.
    Возник вопрос, почему не реализовали FreePBX (IP телефонная станция) и систему видеонаблюдения на одном микрокомпе (Intel Atom).
    Если бы была такая реализация, то какие проблемы бы возникли:
    - в пропускной способности канала связи между коммутатором и микрокомпьютером;
    - в производительности микрокомпьютера?
     
  10. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Конечно. Все компьютеры связаны в одну сеть гигабитным коммутатором.
    FreePBX удобно разворачивать сразу готовый пакет вместе с операционной системой CentOS (линух).
    Видеонаблюдение требовательно с ресурсам процессора. Идет кодирование сигнала с 4-х видеокмер и раздача по сетке.

    Кроме того обновлять отдельные узлы безопаснее. Меньше вероятности, что накосячиш чего и потом все встанет разом.
    Сервер видеонаблюдения и freepbx работают и я даже забываю об их существовании.
    2017-05-01_00-29-17.png uptime 121 день и это совпадает с длительным отключением электроэнергии, когда UPS не справился.
    Аналогично с freepbx

    Зачем что-то еще придумывать если все работает? :)
     
    Последнее редактирование: 01.05.17
  11. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Ни с чем не возникли бы проблемы. Ни с каналом ни с CPU. Просто лень что-то менять, когда все исправно работает.
     
  12. DiaZoN
    Регистрация:
    01.11.10
    Сообщения:
    8.806
    Благодарности:
    10.249

    DiaZoN

    Живу здесь

    DiaZoN

    Живу здесь

    Регистрация:
    01.11.10
    Сообщения:
    8.806
    Благодарности:
    10.249
    Адрес:
    Казань
    @Smith2007, камеры тоже в гигабитный коммутатор воткнуты?
    Я правильно понимаю что они в этом случае питание получают по отдельному кабелю, а не через рое?
    Или теперь гигабитную скорость между остальными гигабитными клиентами можно получить даже если в сеть воткнут 100 мегабитный клиент?
     
  13. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    У меня аналоговые камеры стоят. Видеорегистратор захватывает видеосигнал и кодирует.

    Современные коммутаторы допускает это. 100 мбитные клиенты у меня имеются несколько штук. Один SIP телефон старенький и точки доступа. Но сеть разделена на vlan и они ни как не мешают друг другу.
    По крайней мере рабочий комп утилизирует свой гигабитный порт на 98% когда качаю чего либо и при этом телефония не тормозит, видеонаблюдение не тормозит.
     
  14. asakharov
    Регистрация:
    03.10.13
    Сообщения:
    2.250
    Благодарности:
    939

    asakharov

    Живу здесь

    asakharov

    Живу здесь

    Регистрация:
    03.10.13
    Сообщения:
    2.250
    Благодарности:
    939
    Адрес:
    Москва
    @DiaZoN, 100 мегабитные и гигибитные порты в коммутаторе друг на друга не влияют. В современных коммутаторах все порты работают на максимально доступной скоростью, и CPU коммутатора это практически не загружает. Я пробовал на SMB коммутаторах с четырьмя 10G портами их максимально нагрузить трафиком. Тоже никаких проблем, коммутатор успешно справляется. Отдельный коммутатор SMB класса.
     
  15. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458
    @asakharov, модель 10Gb коммутатора можете назвать?