Raspberry Pi 2 && OpenHab2 && ESP8266. Умный дом.

Тема в разделе "Глядите, что я сделал", создана пользователем Влад_openhab, 4 авг 2016.

  1. Влад_openhab

    Влад_openhab Нерд

    Тема подобная топику (многое взято оттуда)

    Здесь речь пойдет о реализации проекта на обновленной системе OpenHab2.


    1. Оборудования для быстрого старта Системы умного дома
    1.1.Raspberry pi (ревизия 1 B+, ревизия 2, ревизия 3) или любой другой мини ПК работающий на LINUX
    1.2.Блок питания 220В АС в 5V 2A, кабель USB to microusb
    1.3.Micro SD HC UHS-I– 8 ГБ минимум, лучше 16 ГБ
    1.4.USB WIFI 802.11n модуль
    1.5.Все данное оборудование можно купить на просторах алиэкспресс

    2. Установка Raspbian
    2.1.Скачиваем дистрибутив RASPBIAN JESSIE http://www.raspberrypi.org/downloads/прямая ссылка
    2.2.Скачиваем дистрибутив Win32DiskImager
    2.3.Скачиваем putty
    2.4.Скачиваем WINSCP
    2.5.C помощью утилиты Win32DiskImager записываем образ системы на sd-карту (от 8 ГБ)
    2.6.Вставляем карту в плату Raspberry Pi, подключаем lan и usb wi-fiмодуль (wifi не обязательно)
    2.7.Назначаем вашей Raspberry Pi статический адрес на роутере для удобства, перезагружаем роутер.
    2.8.Открываем putty в окно HOST пишем назначенный адрес
    2.9.Открывется терминал и запрашивает логин, вводим:
    Login: pi
    Password: raspberry
    Код (C++):
    passwd - Меняем пароль суперпользователя
    Код (C++):
    sudo rm /etc/ssh/ssh_host_*
    sudo dpkg-reconfigure openssh-server - Создадим новые сертефикаты и ключи ssh, отличные по умолчанию
    2.10. Настроим авторизация по ssh ключу
    Откроем PUTTYgen
    Нажмем кнопку Generate
    Водим мышкой по пустому полю внутри окна
    После генерации пароля добавляем passphrase если нужно
    нажимаем Save private key. Сохраняем публичный ключ в месте доступном только вам и никому его не передаем.
    После этого открываем PUTTY заходим на наш Raspberry как обычно вводим логин и пароль.
    Код (C++):
    mkdir ~/.ssh - Создаем директорию для ssh
    touch ~/.ssh/authorized_keys - Создадим файл с авторизационными ключами
    nano ~/.ssh/authorized_keys - Откроем для редактирования файл с авторизационными ключами
    Скопируем туда ключ из PUTTYgen он написан в окне Public key for pasting into OPENSSH authorized_keys files
    Начинается ключ с фразы ssh-rsa AAAA.....
    Сохраним файл
    Далее дадим правильные права на запись
    Код (C++):
    chmod go-w ~/ - Запрещаем запись в домашнюю директорию пользователя всем, кроме владельца.
    chmod 700 ~/.ssh - Разрешаем чтение, вход и запись в директории с настройками .ssh только владельцу.
    chmod 600 ~/.ssh/authorized_keys - Разрешаем читать и менять файл .ssh/authorized_keys только владельцу.
    Код (C++):
    sudo nano /etc/ssh/sshd_config - Редактируем настройки SSH
    Смотрим чтобы там были строчки
    Код (C++):
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      %h/.ssh/authorized_keys
    Если они закоментированы, то раскоментируем
    Сохраняем файл
    Код (C++):
    sudo service ssh restart - Перезагружаем ssh сервер
    Вернемся к Putty
    В HOST напишем адрес нашего сервера
    В Saved session напишем название нашего соединения
    Нажмем save
    В Categories выберем Connection/ Data
    В Окне Auto-login username пишем имя пользователя по умолчанию (для Raspberry pi - это "pi" )
    В Categories выберем Connection/ SSH/Auth/
    В окне Private key for authentication нажимаем Browse и указываем на сохраненный ранее приватный ключ
    В Categories выберем Sessions и нажимаем Save
    Заходим на сервер безопасно без пароля: нажимаем на ваше сохраненное соединение выбираем load и open
    В случае использования ключа с парольной фразой используем Pagent из дистрибутива PUTTY
    После запуска, появится иконка в области уведомлений. Жмем правой кнопкой, Add key.
    Выбираем ключ, указываем парольную фразу. Теперь ключ хранится в памяти.

    3. Настроим WIFI
    Код (C++):
    sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.bak - Бекап настроек
    Код (C++):
    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf - Редактирование настроек
    3.1.Копируем после всего текста
    Код (C++):
    network={
    ssid=”Имя вашей WIFIсети”
    psk= “пароль вашей WIFIсети”
    }
    3.2.Вводим SSIDи пароль вашей сети, кавычки оставляем, сохраняем (Ctrl+O), выходим из редактора (Ctrl+X).
    Код (C++):
    sudo reboot- Перезагружаемся
    Код (C++):
    sudo ifconfig - Смотрим подключения после перезагрузки, ищем wlan0 и назначенный IPадрес
    4. Обновление системы
    Код (C++):
    sudo apt-get update && sudo apt-get upgrade && sudo rpi-update && sudo apt-get autoremove
    5.Перезагрузка
    Код (C++):
    sudo reboot - Перезагружаемся
    6. Устанавливаем все нужные репозитории разом
    Код (C++):
    wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add - - скачиваем ключ репозитория openhab2
    echo 'deb http://dl.bintray.com/openhab/apt-repo2 testing main' | sudo tee /etc/apt/sources.list.d/openhab.list
    - получаем лист репозитория openhab2
    wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key - скачиваем ключ репозитория mosquitto
    sudo apt-key add mosquitto-repo.gpg.key - добаляем ключ mosquitto
    rm mosquitto-repo.gpg.key - удаляем файл ключа mosquitto
    cd /etc/apt/sources.list.d/ - переходим в папку с листами repo
    sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list- получаем лист репозитория mosquitto
    Код (C++):
    sudo apt-get update

    7. Устанавливаем все нужные пакеты разом
    Код (C++):
    sudo apt-get install samba samba-common-bin oracle-java8-jdk openhab2-online mosquitto mosquitto-clients

    8. Конфигурируем Raspberry
    Код (C++):
     sudo raspi-config
    8.1.Размечаем всю память на sd карте под систему выбираем Expand Filesystem
    8.2.Меняем настройки часового пояса
    8.3.Включаем SSH
    Код (C++):
    sudo nano /etc/fstab - Отключаем запись логов на sd
    8.4.Добавляем запись в конце
    Код (C++):
    none            /var/log        tmpfs  size=1M,noatime  0      0
    8.5.Меняем разрешение экрана. для этого:
    Код (C++):
    sudo nano /boot/config.txt
    8.6.ищем и исправляем строки:
    Код (C++):
    hdmi_group=2
    hdmi_mode=39

    9. Установка Samba. Samba - сервер для сетевых дисков
    Код (C++):
    sudo apt-get install samba samba-common-bin - ставим samba
    Код (C++):
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.default - Бекап настроек
    Код (C++):
    sudo nano /etc/samba/smb.conf - Меняем настройки
    9.1.Заменяем весь текст в редакторе на следующий:
    Код (C++):
    [global]
    workgroup = WORKGROUP
    netbios name = Raspberry
    server string = share
    guest ok = yes
    security = user
    map to guest = bad user
    browseable = yes
    [openHAB]
    comment=openHAB2 application
    path=/usr/share/openhab2
    browseable=Yes
    writeable=Yes
    only guest=no
    create mask=0777
    directory mask=0777
    public=no
    [openHAB-etc]
    comment=openHAB2 site configuration
    path=/etc/openhab2
    browseable=Yes
    writeable=Yes
    only guest=no
    create mask=0777
    directory mask=0777
    public=no
    Код (C++):
    sudo smbpasswd -a openhab - Добавляем пароль пользователя openhab в самбу
    Код (C++):
    sudo update-rc.d smbd enable
    sudo update-rc.d nmbd enable - Автозапуск самбы
    Код (C++):
    sudo service smbd restart - Рестартуем самбу
    9.2.Теперь с любого компьютера в локальной сети можно подключиться к сетевой папке с файлами openhab
    10.Установка Mosquitto. Mosquitto - сервер для обмена сообщениями по протоколу MQTT
    Код (C++):
    wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key - скачиваем ключ репозитория
    sudo apt-key add mosquitto-repo.gpg.key - добаляем ключ
    rm mosquitto-repo.gpg.key - удаляем ключ
    cd /etc/apt/sources.list.d/ - переходим в папку с листами repo
    sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list- получаем лист репозитория mosquitto
    sudo apt-get update -обновляем список пакетов
    sudo apt-get install mosquitto mosquitto-clients - устанавливаем брокер
    sudo service mosquitto status -проверяем работоспособность
    10.1. в ответ должны получить:
    Код (C++):
    [ ok ] mosquitto is running.
    mosquitto_sub -t test -пишем тестовое сообщение
    11.Cтавим Яву:
    Код (C++):
    sudo  apt-get install oracle-java8-jdk
    12.Установка и настройка Openhab2. Openhab 2- универсальная платформа для объединения всей домашней «умной» техники в единую систему управления
    Код (C++):
    wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add - скачиваем ключ репозитория openhab2
    echo 'deb http://dl.bintray.com/openhab/apt-repo2 testing main' | sudo tee etc/apt/sources.list.d/openhab.list добаляем ключ репозитория openhab2
    sudo apt-get update – Обновляем систему
    sudo apt-get install openhab2-online – Устанавливаем openhab2
    sudo /etc/init.d/openhab2 start – Запускаем openhab2
    sudo /etc/init.d/openhab2 status – Проверяем статус openhab2
    sudo systemctl enable openhab2.service – Добавляем в автозагрузку openhab2
    sudo chown -hR openhab:openhab /etc/init.d/openhab2 -  Даем права на папку пользователю  openhab
    sudo chown -hR openhab:openhab /usr/share/openhab2 -  Даем права на папку пользователю  openhab
    13.Заходим по адресу
    Код (C++):
    http://вашipадрес:8080
    – видим страницу с выбором интерфейса
    14.Добавляем демо интерфейс (пока что от openhab 1)
    Код (C++):
    cd /etc/openhab2
    sudo wget https://bintray.com/artifact/download/openhab/bin/distribution-1.8.3-demo.zip
    sudo unzip distribution-1.8.3-demo.zip
     
    Последнее редактирование: 8 авг 2016
    alp69 нравится это.
  2. alp69

    alp69 Форумчанин

    1. Встроенный wifi на Raspberry 3 конфигурируется так же?
    2. Как сконфигурировать встроенный wifi Малины 3 таким образом, чтобы она работала как клиент относительно главного роутера и как точка доступа для раздачи домашней сети?
     
  3. Влад_openhab

    Влад_openhab Нерд

    1. Да так же, это подходит для любого Debian дистрибутива (ориентир ubuntu 14.04 и выше, возможно ранние версии тоже работают)
    2. Может быть вы хотите сделать wifi мост? Или это будет другая сеть? Если же вы хотите создать точку доступа программно на малине, то должны знать что не все модели usb wifi адаптеров умеют это делать.
    Более подробно читайте тут
     
  4. alp69

    alp69 Форумчанин

    Схема такая. Малина 3 подключается встроенным модулем wifi к главному роутеру и доступна через проброшенный порт из интернета. Она же своим модулем организует свою (домашнюю) wifi сеть для вороха esp-шек, которые общаются с брокером (mqtt), который крутится на Малине.
    Это реально организовать силами Малины 3?
     
  5. Влад_openhab

    Влад_openhab Нерд

    К сожалению нет малины 3 под руками для пробы, есть только вторая. Вообще это реально. На роутере с openwrt делается очень просто, guest wlan называется. Я думаю проще сделать это на "главном роутере" так как антенна на роутере имеет большую мощность, нежели на малине, которая не покроет даже квартиру. Все таки я считаю что не нужно все вешать на малину, но это мое личное мнение
     
    alp69 и ИгорьК нравится это.
  6. ИгорьК

    ИгорьК Гуру

    Даже самый плохонький роутер раздаст сеть лучше чем Малина. Да и по цене они меньше малины будут.
     
    alp69 нравится это.
  7. alp69

    alp69 Форумчанин

    Заказал себе М3. 12.08 обещали привезти. Буду по Вашим постам ее вторым опенхабом фаршировать. Посмотрим, что за зверь. Есть инфа OH1.8.3 vs OH2.0?
     
    Последнее редактирование: 7 авг 2016
  8. alp69

    alp69 Форумчанин

    Не увидел где настраиваются демоны опенхаба и москита. Плохо смотрю? :oops:
     
    Последнее редактирование: 7 авг 2016
  9. Влад_openhab

    Влад_openhab Нерд

    Можете прочесть на официальном сайте.

    В openhab 2 можно встроить все от openhab 1, единственное могут модули поплыть
     
  10. Влад_openhab

    Влад_openhab Нерд

    sudo update-rc.d openhab2 defaults – Добавляем в автозагрузку openhab2

    демоны москита вроде бы прописываются сами при установке и стартуют автоматом, если не так то поправьте
     
    alp69 нравится это.
  11. ИгорьК

    ИгорьК Гуру

    Вопрос: Slider и Setpoint пробовали? Работают?
     
  12. alp69

    alp69 Форумчанин

    Не совсем понял.
     
  13. Влад_openhab

    Влад_openhab Нерд

    Пробовал demo интерфейс от openhab 1.8.3, были некоторые огрехи в оформлении класического интерфейса.
    Setpoint еще не пробовал. Позже опишу связь c ESP8266 (как время будет).
     
  14. Влад_openhab

    Влад_openhab Нерд

    Модули дополнения openhab или как их называют разработчики - аддоны, например openhab-addon-binding-gpio. В новой версии openhab он может называться по другому или его совсем может не быть.
     
    alp69 нравится это.
  15. ИгорьК

    ИгорьК Гуру

    Slider более интересует.
     
  16. poison

    poison Нуб

    Добрый день , форумчане!

    помогите выбрать программную платформу для умного дома.

    задумал я создать умный дом на платформе Raspberry PI3 (есть в наличие), сейчас стою перед сложным выбором, OpenHab показался перспективным и привлекателен, но и здесь дилемма между версиями.
     
  17. ИгорьК

    ИгорьК Гуру

    Если Вы сторонник всего нового и прогрессивного - ваша тема OpenHab 2, если старого и разлагающегося - OpenHab 1.
     
    Последнее редактирование: 23 сен 2016
  18. Дмитpий

    Дмитpий Нуб

    Добрый день!
    ставлю первый раз
    при установке обнаружил ошибку при настройке WiFi (psk= “пароль вашей WIFIсети”) лишний пробел.
    Но у меня другая проблема
    Код (C++):
    pi@raspberrypi:~ $ sudo service mosquitto status
    Б≈▐ mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
       Loaded: loaded (/etc/init.d/mosquitto)
       Active: active (exited) since Sun 2016-09-25 10:54:51 MSK; 7min ago
      Process: 426 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)

    Sep 25 10:54:49 raspberrypi systemd[1]: Starting LSB: mosquitto MQTT v3.1 me....
    Sep 25 10:54:49 raspberrypi mosquitto[426]: Starting network daemon:: mosquitto.
    Sep 25 10:54:51 raspberrypi systemd[1]: Started LSB: mosquitto MQTT v3.1 mes....
    Hint: Some lines were ellipsized, use -l to show in full.
    pi@raspberrypi:~ $ mosquitto_sub -t test
    Error: Connection refused
     
    Что не так? надеюсь на помощь.
     
    Последнее редактирование: 25 сен 2016
  19. alp69

    alp69 Форумчанин

    sudo?
    Код (Javascript):
    ...
    pi@raspberrypi:~ $ sudo mosquitto_sub -t test
     
    Последнее редактирование: 25 сен 2016
  20. Дмитpий

    Дмитpий Нуб

    Код (C++):
    pi@raspberrypi:~ $ sudo mosquitto_sub -t test
    Error: Connection refused