Ставим OpenHAB на ODROID-C1+

"Внезапно" "померла" очередная MicroSD (в этот раз кингстон) на том экземпляре, где у меня крутился OpenHAB. Не то чтобы померла - малость поплохело ей в том месте где живет MySQL в результате чего поплохело и ему, и он перестал запускаться.

До этого нечто похожее происходило с другой карточкой при использовании ODROID-C1 в качестве чего-то отличного от запуска KODI (интернет на нем иногда пытался смотреть).
Для себя сделал вывод, что надо бы заказать eMMC модуль, ну или поставить это все дело на SSD - но тогда пострадает автономность.

Оригинал мануала по установке на убунту.

1. После запуска устанавливаем нужную временную зону ( а то она отчего-то в Австралии)

dpkg-reconfigure tzdata

2. Обновимся

sudo apt-get upgrade

3. Устанавливаем яву

sudo apt-add-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8-installer

4. Устанавливаем майскуль (чтобы было где хранить данные)

sudo apt-get install mysql-server

при инсталляции спросит за пароль пользователя рут - он пригодится очень в дальнейшем.

4.1 наполняем майскуль полезным

Запускаем командную строку Mysql от пользователя root

sudo mysql -u root -p

Создаем базу данных для OpenHAB

CREATE DATABASE OpenHAB;

Создаем пользователя для OpenHAB (mysql-openhab-user-password меняем на желаемый пароль для пользователя openhab)

CREATE USER 'openhab'@'localhost' IDENTIFIED BY 'mysql-openhab-user-password';

"Немного" прав на манипуляции с базой для пользователя

GRANT ALL PRIVILEGES ON OpenHAB.* TO 'openhab'@'localhost';

Выходим

quit

5. Для обмена данными с MySensors (в 1.6 на шлюзе теперь MQTT клиент) ставим MQTT брокер

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppasudo apt-get updatesudo apt-get install mosquitto

После тьмы каких-то варнингов все должно установится

6. Перезагружаемся, и проверяем жив ли скуль
root@odroid:~# pgrep -l sql1309 mysqld

и москито

root@odroid:~# pgrep -l mos675 mosquitto

Должны быть живы

7. Устанавливаем опенхаб.
Возможно стоило поставить бету 2.0, но я не настоящий сварщик в этих ваших линуксах, поэтому буду ставить что проще - 1.8

Добавляем ключики
wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -
или
curl 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -

Репозиторий опенхаба
echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.listsudo apt-get update
Установка
sudo apt-get install openhab-runtime

Запускаемся при запуске (если вдруг у вас что-то отличное от Убунту 14.х - смотрите оригинальный мануал
sudo update-rc.d openhab defaults

Дополнения (sudo apt-get install openhab-addon-${addon-type}-${addon-name})
Мне из этого нужные следующие
sudo apt-get install openhab-addon-binding-ntpsudo apt-get install openhab-addon-binding-mqttsudo apt-get install openhab-addon-persistence-mysql
* Список всего доступного: sudo apt-cache search openhab

Конфигурация размещается /etc/openhab/configurations/

Перезапускаемся.

sudo /etc/init.d/openhab restart

А то и целиком, чтобы уж наверняка.

После перезагрузки идем по адресу http://:8080 и что-то должно работать

*с указанием sitemap'а http://localhost:8080/openhab.app?sitemap=yourname 

8. Шарим логи и конфигурацию

Внезапно, нет самбы - устанавливаем
sudo apt-get install samba

sudo nano /etc/samba/smb.conf
Идем в конец и добавляем туда буковок, чтобы можно было смотреть логи и конфигурацию
[conf]comment = OpenHAB Configurationpath = /etc/openhab/configurationsbrowseable = yeswriteable = yesguest ok = nocreate mask = 0777directory mask = 0777[log]comment = OpenHAB Logspath = /var/log/openhabbrowseable = yeswriteable = yesguest ok = nocreate mask = 0777
Перезапускаем самбу

sudo service samba restart

Делаем доступным для всех конфиг
cd /etc/openhabsudo chmod -R 777 configurations/
и логи
cd /var/log/sudo chmod -R 777 openhab/

Создаем пользователя для доступа к шарам

sudo adduser new_username

Samba использует пользователей которые уже есть в системе, возьмем для примера имя new_username, допустим что он уже есть в системе, надо внести его в базу данных SMB и назначить пароль для доступа к общим ресурсам (копипаста):

smbpasswd -a user

включаем пользователя

smbpasswd -e user

9. Бекап всего этого дела, ибо MicroSD подыхают периодически (что и послужило стимулом к написанию этих буков)

Хранить будем на FTP
sudo apt-get install ftp

Вот таким скриптиком
--------------------------------------------------#!/bin/sh### System Setup ###BACKUP=/root/backup### FTP ###FTPD="/mnt/backup/openhab"FTPU="ftp-user" #[имя пользователя (логин) удаленного ftp-cервера]FTPP="ftp-password" #[пароль доступа к удаленному ftp-серверу]FTPS="ftp.server" #[адрес ftp-сервера или его IP]### Binaries ###TAR="$(which tar)"GZIP="$(which gzip)"FTP="$(which ftp)"## Today + hour in 24h format ###NOW=$(date +%Y%m%d) #[задаем текущую дату и время, чтобы итоговый файл выглядел в виде server-YYYYMMDD.tar.gz]### Create tmp dir ###mkdir $BACKUP/$NOW#база данныхmysqldump -u root -pPassWord OpenHAB > $BACKUP/database.sqlcd $BACKUP$TAR -cf $BACKUP/$NOW/database.tar database.sql#конфигурацияcd /etc/openhab/configurations/$TAR -cf $BACKUP/$NOW/conf.tar ./#логиcd /var/log/openhab$TAR -cf $BACKUP/$NOW/log.tar ./# GZARCHIVED=$BACKUP/OpenHAB-$NOW.tar.gzcd $BACKUP/$NOW$TAR -zcvf $ARCHIVED ./### ftp ###cd $BACKUPDUMPFILE=OpenHAB-$NOW.tar.gz$FTP -n $FTPS <<END_SCRIPTquote USER $FTPUquote PASS $FTPPcd $FTPDmput $DUMPFILEquitEND_SCRIPT### clear ###rm -rf $ARCHIVEDrm -rf $BACKUP/database.sqlrm -rf $BACKUP/$NOW--------------------------------------------------

засовываем все это дело в крон.