Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
20 часов назад, Юлия сказал:

подскажите, пожалуйста,  ваше мнение.

Тут, к сожалению, ни чем помочь не могу, т.к. не пользуюсь ни тем, ни другим, поскольку отсутствует соотв. оборудование и под одно, и под другое + нет желания делать дом умнее себя )))

Опубликовано

Поставил по инструкции. UI завелся. сам homebridge работает (как бы), но после скана qr мост не цепляет. В логах пусто. Пробовал и 5g и 3g сети роутера. Мб кто сталкивался?

Опубликовано (изменено)

4 дня я пытался запустить Homebridge на Keenetic Hero 4G (KN-2310).

Мне удалось добавить Homebridge в HomeKit, по совету sc0rp1d:

В 12.01.2019 в 13:18, sc0rp1d сказал:

Я как раз позавчера начал настраивать Homebridge и столкнулся с тем же самым.

Проблема в том, что SRP шифрование очень требовательно к ресурсам, собственно поэтому все HomeKit устройства такие дорогие - там специальный алгоритм шифрования, который быстро работает на очень слабых устройствах.

Я смог обойти это место, переписал исходники, но там будет еще одно, которое обойти не удастся, поэтому сделал очень хитрый трюк.

SRP нужен только для первого раза - сопряжения iOS и Bridge. Берем запускаем Homebridge на компьютере, без платформ, с теме же настройками bridge, что и на роутере. Делаем сопряжение, а потом переносим папки persist и accessories с компьютера на роутер. Homebridge на компьютере нам больше не нужен, а iOS уже будет считать, что сделал пару с Homebridge на роутере.

Уточню порядок действий, для тех, кому как и мне его сообщение было не до конца понятным.
Заранее предупреждаю, в итоге у меня ничего не работает, из-за недостатка ресурсов моего роутера. Но вы можете сделать свою попытку.


Прежде всего вам нужно подготовить роутер по инструкции из базы знаний Keenetic.

Когда закончите с подготовкой роутера, подключайтесь к нему по SSH и устанавливайте пакеты:

opkg update
opkg upgrade
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-pty-prebuilt-multiarch_0.10.1-pre.5-1_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-homebridge_1.5.0-2_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-bufferutil_4.0.6-1_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-utf-8-validate_5.0.9-1_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-homebridge-config-ui-x_4.50.1-2_mipsel-3.4.ipk

(В репозитории entware нет архива, через какое-то время они обновят версии файлов и ссылки могут быть недоступны. Найдите их пути по названию, просто открыв список файлов по ссылке)

После установки всех файлов, запускаем команду для автоматической конфигурации Homebridge-config-ui-x:

hb-service install --user root -U /opt/share/homebridge

Затем запускаете сам homebridge-config-ui-x (Он запускается и перезапускается о-о-очень долго, 2-3 минуты):

/opt/etc/init.d/S98homebridge restart

Проверьте что Homebridge-config-ui-x доступен через веб-интерфейс по адресу http://192.168.1.1:8581.
Больше никаких действий с роутером не делайте, на нём не получится добавить мост в HomeKit.

Устанавливаете Homebridge на ПК, инструкции есть на официальном сайте: homebridge.io
Если вы на Debian/Ubuntu, он у вас стартанёт после установки самостоятельно, подключайтесь к нему по адресу: http://127.0.0.1:8581
Добавляйте мост, (с помощью QR-кода Homebridge на компьютере), устанавливайте нужные плагины (для меня это был Yeelighter), добавляйте мосты для ваших плагинов, подключайте устройства в HomeKit до состояния полной работоспособности.

Затем, вам нужно перенести config.json и папки (accessories и persist) со всем их содержимым с ПК на роутер. Переносить node_modules не нужно
Вот список:

/var/lib/homebridge/config.json
/var/lib/homebridge/accessories/*
/var/lib/homebridge/persist/*

Таким образом вы перенесёте весь кэш подключений к мостам, ваш iPhone не заметит подмены.

Теперь вам нужно установить на роутере все те плагины, что вы устанавливали на ПК.

Далее, очень важно отредактировать config.json, добавив к нему элемент "mdns". Без этого Homebridge на роутере будет долбиться в не ту сеть и не сможет подключиться к устройствам локальной сети. В вашем config.json должно быть примерно следующее:

{
    //Это указывает homebridge правильный сетевой интерфейс
    "mdns": {
        "interface": "192.168.1.1"
    },
    //Остальные настройки будут отличаться, их изменять не нужно
    "bridge": {
        "name": "Homebridge 52E0",
        "username": "0E:28:13:36:52:E0",
        "port": 51064,
        "pin": "111-11-111",
        "advertiser": "bonjour-hap"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "auth": "form",
            "theme": "auto",
            "tempUnits": "c",
            "lang": "auto",
            //Это чтобы работало логирование homebridge-config-ui-x
            "log": {
                "method": "file",
                "path": "/opt/var/log/homebridge.log"
            },
            "platform": "config"
        },
        {
            "name": "Yeelighter",
            "timeout": 300000,
            "interval": 300000,
            "ctforcolor": true,
            "blocking": false,
            "split": false,
            "manual": [
                {
                    "ignorePower": false
                }
            ],
            "platform": "Yeelighter",
            "_bridge": {
                "username": "0E:F8:94:F1:1C:92",
                "port": 34836
            }
        }
    ]
}

И в общем-то это всё.
Чтобы у вас работало логирование, укажите Homebridge-config-ui-x где лежит лог-файл и как к нему обращаться (Это есть в коде выше, секция platforms[0]->log).

В итоге, к сожалению, я пришёл к выводу что мой Keenetic Hero 4G не вывозит эту задачу и лампа которую я пытался добавить с его помощью в HomeKit кажется не успевает ответить вовремя. Из-за этого в моём приложении "Дом" светильник то появляется, то "не отвечает", пользоваться я им не могу. Попытки увеличить тайм-аут и интервал опроса в конфигурации Homebridge не увенчались успехом. Надеюсь это сможет вам помочь, удачи! 🤞

P.S.
Я пытался организовать Homebridge на VDS, подключая сервер к роутеру по Wireguard. Мне удалось дать доступ VDS к локальной сети роутера, но к сожалению попытки добавить мост в HomeKit были не успешны. В обе стороны адреса пингуются и мне кажется что это какое-то ограничение HomeKit.

Вероятнее всего, самым лучшим решением будет купить Orange PI или Raspberry PI. Но я как и вы, хотел сэкономить деньги и задействовать уже существующие ресурсы.

Если кому-то удастся подключить Keenetic Hero 4G к Homebridge, дайте знать✌️

Изменено пользователем Nikita_Komissarov
Опубликовано
27 минут назад, Nikita_Komissarov сказал:

(В репозитории entware нет архива, через какое-то время они обновят версии файлов и ссылки могут быть недоступны. Найдите их пути по названию, просто открыв список файлов по ссылке)

файлы индекса были добавлены...

Скрытый текст
~ # opkg list | grep ^node | cut -f-3 -d' '
node - v16.16.0-1
node-actions-on-google - 3.0.0-1
node-alexa-app - 4.2.3-4
node-arduino-firmata - 0.3.4-33
node-argon2 - 0.29.1-1
node-ask-sdk - 2.12.1-1
node-authenticate-pam - 1.0.5-1
node-autobahn - 20.9.2-4
node-aws-crt - 1.14.1-1
node-aws-iot-device-sdk - 2.2.12-1
node-aws-iot-device-sdk-v2 - 1.8.7-1
node-aws-sdk - 2.1167.0-1
node-azure-event-hubs - 5.8.0-1
node-azure-iot-device - 1.18.0-1
node-azure-iot-device-amqp - 1.14.0-1
node-azure-iot-device-http - 1.14.0-1
node-azure-iot-device-mqtt - 1.16.0-1
node-azure-iothub - 1.15.0-1
node-bcrypt - 5.0.1-2
node-bignum - 0.13.1-4
node-binaryjs - 0.2.1-14
node-bleacon - 0.5.1-11
node-bleno - 0.5.0-4
node-bluetooth-hci-socket - 0.5.3-4
node-browserify - 17.0.0-3
node-bufferutil - 4.0.6-1
node-classic-level - 1.2.0-1
node-clean-modules - 2.0.6-1
node-coap - 1.0.11-1
node-cpx - 1.5.0-12
node-cylon - 1.3.0-26
node-cylon-firmata - 0.24.0-26
node-cylon-gpio - 0.30.1-14
node-cylon-i2c - 0.26.1-26
node-deasync - 0.1.28-1
node-deasync-promise - 1.0.1-3
node-eddystone-beacon - 1.0.7-9
node-enocean-utils - 0.5.1-3
node-epoll - 4.0.1-2
node-exorcist - 2.0.0-2
node-expat - 2.4.0-2
node-express - 4.18.1-1
node-ffi-napi - 4.0.3-3
node-ffmpeg-for-homebridge - 0.1.4-1
node-firmata - 2.3.0-2
node-forever - 4.0.3-1
node-fuse-bindings - 2.12.4-3
node-gulp - 4.0.2-1
node-gyp - 9.1.0-1
node-hap-nodejs - 0.10.2-1
node-hashmap - 2.4.0-4
node-hid - 2.1.1-2
node-hid-stream - 1.1.0-3
node-homebridge - 1.5.0-2
node-homebridge-camera-ffmpeg - 3.1.4-1
node-homebridge-cmd4 - 6.3.0-1
node-homebridge-config-ui-x - 4.50.1-2
node-homebridge-z2m - 1.9.0-1
node-homekit2mqtt - 1.1.2-2
node-i2c-bus - 5.2.2-2
node-inspect - 2.0.0-4
node-javascript-obfuscator - 4.0.0-1
node-johnny-five - 2.1.0-1
node-jsonfile - 6.1.0-3
node-lambda - 1.0.0-1
node-level - 8.0.0-1
node-leveldown - 6.1.1-1
node-levelup - 5.1.1-1
node-logfmt - 1.3.2-3
node-lwm2m-node-lib - 1.4.0-1
node-mdns - 2.7.2-3
node-megahash - 1.0.5-2
node-mocha - 10.0.0-1
node-modbus-serial - 8.0.5-2
node-modclean - 3.0.0-beta.1-1
node-mqtt - 4.3.7-1
node-nconf - 0.12.0-1
node-net-ping - 1.2.3-4
node-noble - 1.9.1-4
node-noble-device - 1.4.1-2
node-npm - v16.16.0-1
node-npm-check-updates - 16.0.6-1
node-onoff - 6.0.3-2
node-openzwave-shared - 1.7.2-2
node-pi-spi - 1.2.1-4
node-pm2 - 5.2.0-1
node-pty - 0.10.1-2
node-pty-prebuilt-multiarch - 0.10.1-pre.5-1
node-red - 3.0.2-1
node-red-contrib-gpio - 0.51.0-3
node-red-contrib-homekit-bridged - 1.4.3-1
node-red-contrib-modbus - 5.23.1-1
node-red-dashboard - 3.1.7-1
node-red-node-arduino - 0.3.1-3
node-red-node-discovery - 0.0.23-1
node-red-node-serialport - 1.0.1-1
node-red-node-sqlite - 1.0.3-1
node-rimraf - 3.0.2-3
node-rpi-gpio - 2.1.7-3
node-rpio - 2.4.2-2
node-serialport - 10.4.0-1
node-serialport-bindings - 10.0.1-1
node-serialport-bindings-cpp - 10.7.0-1
node-serialport-list - 10.4.0-1
node-simple-xmpp - 2.3.1-2
node-sleep - 6.3.0-3
node-socket.io - 4.5.1-1
node-socket.io-client - 4.5.1-1
node-spi-device - 3.1.2-1
node-sqlite3 - 5.0.11-1
node-static - 0.7.11-4
node-statvfs - 2.2.1-1
node-system-sleep - 1.3.7-3
node-twilio - 3.81.0-1
node-typescript - 4.8.2-1
node-uglify-js - 3.17.0-1
node-usb - 2.5.1-1
node-utf-8-validate - 5.0.9-1
node-websocket - 1.0.34-2
node-ws - 8.8.1-1
node-yarn - 1.22.19-1
node-zigbee2mqtt - 1.27.2-1
~ # 

 

 

Опубликовано (изменено)

Хочу уточнить в рамках развития этой темы, почему в интерфейсах Homebridge Debian/Ubuntu и пакета для Mipsel есть визуальные различия? При этом они отмечены одинаковой версией. Может ли это играть роль в работоспособности добавления моста на iPhone?

Я заметил разницу в том, что для пакета Debian/Ubuntu в основном меню веб-интерфейса есть раздел "Аксессуары", а в настройках дополнительные параметры запуска Homebridge в режиме отладки. Может ли быть так, что пакет Mipsel собран из исходников более поздней (< 1.5.0) версии Homebridge и отмечен как 1.5.0?

Я решил что это может влиять на работоспособность добавления моста в iPhone, так как эта процедура, в моём порядке действий, предусматривала перенос кэшей с версии ПК на версию роутера. Если они действительно различаются, это может быть причиной проблемы.

Скриншоты Homebridge версии 1.5.0 из официального репозитория Debian/Ubuntu:

Цитата

image.thumb.png.85bcd98e866fe663c3ca94447ba0c567.pngimage.thumb.png.487b0c63e2818e07de76c7d980ed3dd9.png

 

Скриншоты из веб-интерфейса текущей версии (1.5.0) пакета Mipsel не прилагаю, т.к. у меня нет времени устанавливать его ещё раз на Keenetic. Но вы можете поверить мне на слово, сейчас выглядит он также, как на скриншотах от пользователя TheBB:

Цитата

screen_2021-04-14_17:38:30_hb.png


Сейчас у меня развёрнут Homebridge на компьютере, но я всё ещё надеюсь на то, что мой Keenetic в состоянии выполнять эти функции. Пожалуйста, проверьте это. Если действительно допущена ошибка, я попробую установить его ещё раз и обещаю вернуться с обратной связью

Изменено пользователем Nikita_Komissarov
Опубликовано
В 25.09.2022 в 05:37, Nikita_Komissarov сказал:

Хочу уточнить в рамках развития этой темы, почему в интерфейсах Homebridge Debian/Ubuntu и пакета для Mipsel есть визуальные различия?

Разное пользовательское окружение (сравните вывод `env && set` на ПК и на Кинетике); в Entware нет "systemd" как на "взрослых" системах GNU/Linux; пути к бинарникам (/opt/bin:/opt/sbin:...)...

Опубликовано
1 минуту назад, TheBB сказал:

Разное пользовательское окружение (сравните вывод `env && set` на ПК и на Кинетике); в Entware нет "systemd" как на "взрослых" системах GNU/Linux; пути к бинарникам (/opt/bin:/opt/sbin:...)...

Понятно, спасибо. Эта вероятность была бы слишком простым решением проблемы 😒

Опубликовано

systemd - https://github.com/oznu/homebridge-config-ui-x/blob/master/src/bin/platforms/linux.ts#L92 (и много где ещё) )))

path_to_bin - https://github.com/oznu/homebridge-config-ui-x/blob/master/src/bin/platforms/linux.ts#L192 (тоже полно) )))

systemd+avahi - https://github.com/oznu/homebridge-config-ui-x/blob/master/src/bin/hb-service.ts#L934

продолжать можно долго...

Или, чтоб получить такую картитку (ОС Entware):

Скрытый текст

screen_2022-09-27_13:48:56-hb.png

нужно "ковырять" зависимость https://github.com/oznu/homebridge-config-ui-x/blob/master/package.json#L84 руками (или "выпиливать" и собирать отдельным пакетом), а в нём тоже пути править надо...

  • 2 месяца спустя...
Опубликовано
В 24.09.2022 в 07:54, Nikita_Komissarov сказал:

устанавливайте пакеты:

opkg update
opkg upgrade
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-pty-prebuilt-multiarch_0.10.1-pre.5-1_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-homebridge_1.5.0-2_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-bufferutil_4.0.6-1_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-utf-8-validate_5.0.9-1_mipsel-3.4.ipk
opkg install http://bin.entware.net/mipselsf-k3.4/test/node-js/node-homebridge-config-ui-x_4.50.1-2_mipsel-3.4.ipk

(В репозитории entware нет архива, через какое-то время они обновят версии файлов и ссылки могут быть недоступны. Найдите их пути по названию, просто открыв список файлов по ссылке)

После установки всех файлов, запускаем команду для автоматической конфигурации Homebridge-config-ui-x:

hb-service install --user root -U /opt/share/homebridge

Затем запускаете сам homebridge-config-ui-x (Он запускается и перезапускается о-о-очень долго, 2-3 минуты):

/opt/etc/init.d/S98homebridge restart

Проверьте что Homebridge-config-ui-x доступен через веб-интерфейс по адресу http://192.168.1.1:8581.

на 2610 сделал по инструкции, все запустилось ... через веб-интерфейс запустил обновление - все пропало ... 

/opt/etc/init.d/S98homebridge restart тоже не помогает ... повторил на 1010 - тот же результат ... ЧЯДНТ ?
Опубликовано
В 08.12.2022 в 11:12, Sergey Artamonov сказал:

на 2610 сделал по инструкции, все запустилось ... через веб-интерфейс запустил обновление - все пропало ... 

/opt/etc/init.d/S98homebridge restart тоже не помогает ... повторил на 1010 - тот же результат ... ЧЯДНТ ?

снес все через opkg remove, установил снова - запустилось в версии 1.6, актуальная версия. обновлений не требуется ... чудеса ...

  • 1 год спустя...
  • 1 месяц спустя...
Опубликовано (изменено)

Долго ковырялся чтобы завести на роутере с mipsel (искренне завидую владельцам роутеров на aarch64) и наконец получилось - но под Debian. Последняя версия, но с нюансом - без сетевой морды (ее поставить реально, но я пока не осилил), то есть настраивать только вручную через config.json (ну или поднять Homebridge на каком-то другом устройстве и подтянуть впоследствии уже правильно оформленный config.json оттуда).

Гайд для тех кто захочет повторить: устанавливаем Debian по инструкции отсюда, далее все обновляем и устанавливаем Node.js:

apt update
apt install dialog apt-utils
apt install --reinstall dialog apt-utils
apt upgrade
apt install npm

Далее устанавливаем сам Homebridge:

npm install -g --unsafe-perm homebridge

Требуемые плагины устанавливаются точно так же:

npm install -g --unsafe-perm homebridge-tuya-local

Базовый config.json кладем в /var/homebridge:

{
	"mdns": {
		"interface": "192.168.1.1"
	},
	"bridge": {
		"name": "Homebridge",
		"username": "0E:7A:27:7A:21:09",
		"port": 51997,
		"pin": "681-93-982",
		"advertiser": "bonjour-hap"
	},
	"accessories": [],
	"platforms": []
}

Теперь /etc/init.d/homebridge:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          Homebridge
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/var/homebridge"
cmd="/usr/local/bin/homebridge -U /var/homebridge"
user="root"

name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1
}

case "$1" in
    start)
    if is_running; then
        echo "Already started"
    else
        echo "Starting $name"
        cd "$dir"
        $cmd >> "$stdout_log" 2>> "$stderr_log" &
        echo $! > "$pid_file"
        if ! is_running; then
            echo "Unable to start, see $stdout_log and $stderr_log"
            exit 1
        fi
    fi
    ;;
    stop)
    if is_running; then
        echo -n "Stopping $name.."
        kill `get_pid`
        for i in 1 2 3 4 5 6 7 8 9 10
        # for i in `seq 10`
        do
            if ! is_running; then
                break
            fi

            echo -n "."
            sleep 1
        done
        echo

        if is_running; then
            echo "Not stopped; may still be shutting down or shutdown may have failed"
            exit 1
        else
            echo "Stopped"
            if [ -f "$pid_file" ]; then
                rm "$pid_file"
            fi
        fi
    else
        echo "Not running"
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
        echo "Unable to stop, will not attempt to start"
        exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
        echo "Running"
    else
        echo "Stopped"
        exit 1
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0

Теперь запускаем службу:

chmod 755 /etc/init.d/homebridge
update-rc.d homebridge defaults
service homebridge start

Подключиться к Homebridge можно либо по QR-коду из /var/log/homebridge.log, либо по коду из config.json. Чтобы Homebridge запускался вместе с роутером можно добавить службу в /chroot-services.list. Немного потестировал и пока что все работает замечательно - мост добавляется в приложение Дом, свет включается-выключается.

Изменено пользователем Ferbez
  • 4 месяца спустя...
Опубликовано

Подскажите куда переносить папки с ПК? В роутере отсутствуют нужные дерриктории, то-есть в папке var нет папки lib

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.