homebridge / homebridge-config-ui-x Goto Github PK
View Code? Open in Web Editor NEWThe Homebridge UI. Monitor, configure and backup Homebridge from a browser.
Home Page: https://homebridge.io
License: MIT License
The Homebridge UI. Monitor, configure and backup Homebridge from a browser.
Home Page: https://homebridge.io
License: MIT License
Setting port to '80' causes homebridge not to start.
Feb 8 21:16:46 HomeBridge homebridge[1237]: [2018-2-8 21:16:46] [Config] Using Form Authentication Feb 8 21:16:46 HomeBridge homebridge[1237]: Error: listen EACCES 0.0.0.0:80 Feb 8 21:16:46 HomeBridge homebridge[1237]: at Object._errnoException (util.js:1003:13) Feb 8 21:16:46 HomeBridge homebridge[1237]: at _exceptionWithHostPort (util.js:1024:20) Feb 8 21:16:46 HomeBridge homebridge[1237]: at Server.setupListenHandle [as _listen2] (net.js:1349:19) Feb 8 21:16:46 HomeBridge homebridge[1237]: at listenInCluster (net.js:1407:12) Feb 8 21:16:46 HomeBridge homebridge[1237]: at Server.listen (net.js:1495:7) Feb 8 21:16:46 HomeBridge homebridge[1237]: at HomebridgeConfigUi.<anonymous> (/usr/local/lib/node_modules/homebridge-config-ui-x/src/index.ts:39:17) Feb 8 21:16:46 HomeBridge homebridge[1237]: at Generator.next (<anonymous>) Feb 8 21:16:46 HomeBridge homebridge[1237]: at fulfilled (/usr/local/lib/node_modules/homebridge-config-ui-x/dist/index.js:4:58) Feb 8 21:16:46 HomeBridge homebridge[1237]: at <anonymous> Feb 8 21:16:46 HomeBridge systemd[1]: homebridge.service: Main process exited, code=exited, status=1/FAILURE Feb 8 21:16:46 HomeBridge systemd[1]: homebridge.service: Unit entered failed state. Feb 8 21:16:46 HomeBridge systemd[1]: homebridge.service: Failed with result 'exit-code'.
Hello,
on my web interface the accessory button is not there, does anyone know how to fix that?
It would be nice to have a shutdown button for the whole computer as well. As many people use Raspberry PI computers without any physical power button the web interface would be an easy way to shut down the computer.
Other buttons could be added too for restarting etc. - maybe the whole thing could be a configuration option to extend the top bar with custom commands.
Thanks again for this awesome plugin.
Hi Oznu,
I'm really quit happy with your docker files and your config-ui-x modification. You really did great work and it is more stable then before (when I was running homebridge on a standalone debian installation)
I was wondering, can I somehow change the number of logfile lines.. now it is:
tail -n 100 -f /homebridge/logs/homebridge.log and it would be nice if I can change it to 200 or 300 instead of the current 100.
thanks in advance (again :-))
Abel
Hello,
Can you add multiple instances of the Homebridge to this plugin?
Greeting Manu
The checking for update is turning with no results and you can not search for plugin updates anymore. Getting this error in log:
`{ StatusCodeError: 500 - {"code":"INTERNAL","message":"Internal server error"}
at new StatusCodeError (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/request-promise-core/lib/errors.js:32:15)
at Request.plumbing.callback (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/request-promise-core/lib/plumbing.js:104:33)
at Request.RP$callback [as _callback] (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/request-promise-core/lib/plumbing.js:46:31)
at Request.self.callback (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/request/request.js:186:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:194:7)
at Request. (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/request/request.js:1163:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:191:7)
at IncomingMessage. (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/request/request.js:1085:12)
at Object.onceWrapper (events.js:293:19)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:188:7)
at endReadableNT (_stream_readable.js:975:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
name: 'StatusCodeError',
statusCode: 500,
message: '500 - {"code":"INTERNAL","message":"Internal server error"}',
error: { code: 'INTERNAL', message: 'Internal server error' },
options:
{ json: true,
uri: 'https://api.npms.io/v2/package/homebridge',
method: 'GET',
callback: [Function: RP$callback],
transform: undefined,
simple: true,
resolveWithFullResponse: false,
transform2xxOnly: false },
response:
IncomingMessage {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: [Object],
length: 0,
pipes: null,
pipesCount: 0,
flowing: true,
ended: true,
endEmitted: true,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: false,
domain: null,
_events:
{ end: [Object],
close: [Object],
data: [Function],
error: [Function] },
_eventsCount: 4,
_maxListeners: undefined,
socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: null,
npnProtocol: false,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 9,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'api.npms.io',
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 103,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Object],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
connection:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: null,
npnProtocol: false,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 9,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'api.npms.io',
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 103,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Object],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers:
{ date: 'Fri, 16 Feb 2018 20:27:59 GMT',
'content-type': 'application/json; charset=utf-8',
'content-length': '53',
connection: 'close',
'set-cookie': [Object],
'x-response-time': '14ms',
'access-control-allow-origin': '',
'access-control-allow-credentials': 'false',
'access-control-allow-methods': 'GET, POST, OPTIONS',
'access-control-allow-headers': 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type',
'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
server: 'cloudflare',
'cf-ray': '3ee340302f0552f6-MIA' },
rawHeaders:
[ 'Date',
'Fri, 16 Feb 2018 20:27:59 GMT',
'Content-Type',
'application/json; charset=utf-8',
'Content-Length',
'53',
'Connection',
'close',
'Set-Cookie',
'__cfduid=d08b9cfa3a5518b463d37e25fdad41b991518812879; expires=Sat, 16-Feb-19 20:27:59 GMT; path=/; domain=.npms.io; HttpOnly',
'Set-Cookie',
'_ga=cbb3587d-2457-40c5-b84d-0d6de7418e30; path=/; expires=Wed, 15 Feb 2023 20:27:59 GMT; httponly',
'X-Response-Time',
'14ms',
'Access-Control-Allow-Origin',
'',
'Access-Control-Allow-Credentials',
'false',
'Access-Control-Allow-Methods',
'GET, POST, OPTIONS',
'Access-Control-Allow-Headers',
'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type',
'Expect-CT',
'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
'Server',
'cloudflare',
'CF-RAY',
'3ee340302f0552f6-MIA' ],
trailers: {},
rawTrailers: [],
upgrade: false,
url: '',
method: null,
statusCode: 500,
statusMessage: 'Internal Server Error',
client:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: null,
npnProtocol: false,
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 9,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'api.npms.io',
_readableState: [Object],
readable: false,
domain: null,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: false,
destroyed: true,
_bytesDispatched: 103,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Object],
read: [Function],
_consuming: true,
_idleNext: null,
_idlePrev: null,
_idleTimeout: -1 },
_consuming: true,
_dumped: false,
req:
ClientRequest {
domain: null,
_events: [Object],
_eventsCount: 5,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
upgrading: false,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedHeader: {},
_contentLength: 0,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: [Object],
connection: [Object],
_header: 'GET /v2/package/homebridge HTTP/1.1\r\nhost: api.npms.io\r\naccept: application/json\r\nConnection: close\r\n\r\n',
_headers: [Object],
_headerNames: [Object],
_onPendingData: null,
agent: [Object],
socketPath: undefined,
timeout: undefined,
method: 'GET',
path: '/v2/package/homebridge',
_ended: true,
res: [Circular],
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null },
request:
Request {
domain: null,
_events: [Object],
_eventsCount: 5,
_maxListeners: undefined,
uri: [Object],
method: 'GET',
readable: true,
writable: true,
explicitMethod: true,
_qs: [Object],
_auth: [Object],
_oauth: [Object],
_multipart: [Object],
_redirect: [Object],
_tunnel: [Object],
_rp_resolve: [Function],
_rp_reject: [Function],
_rp_promise: [Object],
_rp_callbackOrig: undefined,
callback: [Function],
_rp_options: [Object],
headers: [Object],
setHeader: [Function],
hasHeader: [Function],
getHeader: [Function],
removeHeader: [Function],
localAddress: undefined,
pool: {},
dests: [],
__isRequestRequest: true,
_callback: [Function: RP$callback],
proxy: null,
tunnel: true,
setHost: true,
originalCookieHeader: undefined,
_disableCookies: true,
_jar: undefined,
port: 443,
host: 'api.npms.io',
path: '/v2/package/homebridge',
_json: true,
httpModule: [Object],
agentClass: [Object],
agent: [Object],
_started: true,
href: 'https://api.npms.io/v2/package/homebridge',
req: [Object],
ntick: true,
response: [Circular],
originalHost: 'api.npms.io',
originalHostHeaderName: 'host',
responseContent: [Circular],
_destdata: true,
_ended: true,
_callbackCalled: true },
toJSON: [Function: responseToJSON],
caseless: Caseless { dict: [Object] },
read: [Function],
body: { code: 'INTERNAL', message: 'Internal server error' } } }
`
"platform":[ { "platform": "config", "name": "Config", "port": 8080, "sudo": true } ] }
This is my config but when I try to access it through my Pi's IP address 10.0.1.190:8080 it shows that safari isn't able to connect to server.
When I check to see if 8080 on my pi is listening it seem that it isn't listening on port 8080
Hi Oznu,
I would like to ask if it is possible to add a secure https connection to your config-ui-x. For now it's my only website without https and because I want to connect over the internet to this great applet I really would like to send my password over https.
Is it possible?
Kind regards,
Abel
I run the command homebridge -I and tried much but the accessory tab won't show up in the web interface
@oznu First, thanks a lot for your great work and sharing. Wouldn't want to miss config-ui-x
Maybe you will consider in one of the next updates to also show the Version of n, npm, node running.
Would be a helpful enhancement.
Thanks in advance for the time you are investing.
Have a good one. ππ»
Hi,
I think that the config screen needs a small improvement: Currently the editor element overlaps on top
with title element (Chrome browser, others not tested).
ui/src/scss/styles.scss
#config-editor {
position: absolute;
bottom: 30px;
top: 140px;
right: 15px;
left: 15px;
width: auto;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
}
Recommended change: top: 170px
Setup:
When opening and then closing the logging window multiple times there is a "tail" process being created each time and never closed. These processes remain active during the runtime of homebridge.
This is not the case on another homebridge server where the homebridge process runs as root and the sudo mode is disabled (otherwise same setup).
Hi,
I have a problem with accessing the UI on the standard 8080 port specified in the config, the port is not listening. I installed homebridge as systemd https://gist.github.com/johannrichard/0ad0de1feb6adb9eb61a/.
My config.json
{
"bridge": {
"name": "ShamHomebridge",
"username": "B8:27:EB:A3:47:BB",
"port": 51826,
"pin": "501-62-117"
},
"description": "This is an example configuration file. You can use this as a template for creating your own configuration file.",
"platforms": [
{
"platform": "config",
"name": "Config",
"port": 8080,
"log": "systemd",
"restart" : "sudo -n systemctl restart homebridge",
"sudo": true
}
],
"platforms": [
{
"platform": "Blynk",
"name": "Blynk",
"server": "192.168.10.70",
"httpsPort": "9443",
"token" : "7bd441d08bfa4c13962eeb8577ee9d5d",
"dashboardName": "METEO",
"accessories": [
{
"name": "RoomTemperature",
"widget": "TemperatureSensor",
"caption": "Temperature",
"pin": "V11"
},
{
"name": "RoomHumidity",
"widget": "HumiditySensor",
"caption": "Humidity",
"pin": "V13"
}
]
}
],
"accessories": [
]
}
Π Π²ΠΎΡ ΡΡΠΎ Π²ΡΠ΄Π°Π΅Ρ sudo journalctl -au homebridge
>ΡΠ΅Π² 01 00:36:43 raspberrypi systemd[1]: Started Node.js HomeKit Server.
ΡΠ΅Π² 01 00:36:49 raspberrypi homebridge[3470]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
ΡΠ΅Π² 01 00:36:49 raspberrypi node[3470]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
ΡΠ΅Π² 01 00:36:49 raspberrypi homebridge[3470]: *** WARNING *** Please fix your application to use the native API of Avahi!
ΡΠ΅Π² 01 00:36:49 raspberrypi homebridge[3470]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
ΡΠ΅Π² 01 00:36:49 raspberrypi homebridge[3470]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported part
ΡΠ΅Π² 01 00:36:49 raspberrypi homebridge[3470]: *** WARNING *** Please fix your application to use the native API of Avahi!
ΡΠ΅Π² 01 00:36:49 raspberrypi homebridge[3470]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegist
ΡΠ΅Π² 01 00:36:49 raspberrypi node[3470]: *** WARNING *** Please fix your application to use the native API of Avahi!
ΡΠ΅Π² 01 00:36:49 raspberrypi node[3470]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
ΡΠ΅Π² 01 00:36:49 raspberrypi node[3470]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially)
ΡΠ΅Π² 01 00:36:49 raspberrypi node[3470]: *** WARNING *** Please fix your application to use the native API of Avahi!
ΡΠ΅Π² 01 00:36:49 raspberrypi node[3470]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
ΡΠ΅Π² 01 00:37:04 raspberrypi homebridge[3470]: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ΡΠ΅Π² 01 00:37:04 raspberrypi homebridge[3470]: β npm update check failed β
ΡΠ΅Π² 01 00:37:04 raspberrypi homebridge[3470]: β Try running with sudo or get access β
ΡΠ΅Π² 01 00:37:04 raspberrypi homebridge[3470]: β to the local update config store via β
ΡΠ΅Π² 01 00:37:04 raspberrypi homebridge[3470]: β sudo chown -R $USER:$(id -gn $USER) /home/homebridge/.config β
ΡΠ΅Π² 01 00:37:04 raspberrypi homebridge[3470]: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ΡΠ΅Π² 01 00:37:10 raspberrypi homebridge[3470]: [2018-2-1 00:37:10] Loaded plugin: homebridge-blynk
ΡΠ΅Π² 01 00:37:10 raspberrypi homebridge[3470]: [2018-2-1 00:37:10] Registering platform 'homebridge-blynk.Blynk'
ΡΠ΅Π² 01 00:37:10 raspberrypi homebridge[3470]: [2018-2-1 00:37:10] ---
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] Loaded plugin: homebridge-config-ui-x
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] Registering platform 'homebridge-config-ui-x.config'
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] ---
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] Loaded config.json with 0 accessories and 1 platforms.
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] ---
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] Loading 1 platforms...
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] [Blynk] Initializing Blynk platform...
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] [Blynk] Loading accessories...
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] [Blynk] Found: RoomTemperature
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] [Blynk] Found: RoomHumidity
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] [Blynk] Initializing platform accessory 'RoomTemperature'...
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] [Blynk] Initializing platform accessory 'RoomHumidity'...
ΡΠ΅Π² 01 00:37:17 raspberrypi homebridge[3470]: [2018-2-1 00:37:17] Loading 0 accessories...
ΡΠ΅Π² 01 00:37:18 raspberrypi homebridge[3470]: Setup Payload:
ΡΠ΅Π² 01 00:37:18 raspberrypi homebridge[3470]: X-HM://0024ASPFP1A86
ΡΠ΅Π² 01 00:37:18 raspberrypi homebridge[3470]: Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
QR
ΡΠ΅Π² 01 00:37:19 raspberrypi homebridge[3470]: Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:
ID
ΡΠ΅Π² 01 00:37:19 raspberrypi homebridge[3470]: [2018-2-1 00:37:19] Homebridge is running on port 51826.
ΡΠ΅Π² 01 00:37:31 raspberrypi homebridge[3470]: Status: 200
ΡΠ΅Π² 01 00:37:31 raspberrypi homebridge[3470]: Headers: {"content-type":"application/json;charset=utf-8","access-control-allow-origin":"*","content-length":"1
ΡΠ΅Π² 01 00:37:31 raspberrypi homebridge[3470]: Response: ["20.800"]
ΡΠ΅Π² 01 00:37:31 raspberrypi homebridge[3470]: Status: 200
ΡΠ΅Π² 01 00:37:31 raspberrypi homebridge[3470]: Headers: {"content-type":"application/json;charset=utf-8","access-control-allow-origin":"*","content-length":"1
ΡΠ΅Π² 01 00:37:31 raspberrypi homebridge[3470]: Response: ["48.588"]
<
thanks for the help I do not know where to go next.
I would like to add the ability to view and control accessories exposed by Homebridge from the Config UI X interface.
This requires support in the user interface for each HomeKit service type. There are ~40 services that have ~125 different characteristics.
To enable accessory control Homebridge must be started in insecure mode using the -I
flag (this allows Config UI X access, the Accessories tab won't be displayed if it's not enabled):
homebridge -I
Currently the web page always shows "Homebridge" as the title. It would be nice if it could use the actual name given for the homebridge instance.
Background: I have multiple homebridge servers running and when you have multiple web pages open it can become cumbersome to see which servers page you're on.
Thanks for this awesome software!
Hi there,
I've installed homebridge-config-ui-x, and am able to get to the login page localhost:8080. When I enter the default username and password "admin" (without quotes), I get "Invalid Username and Password".
Here are my config.json details:
{
"platform": "config",
"name": "Config",
"port": 8080,
"sudo": true,
"log": "/home/pi/homebridge/config/logs/homebridge.log",
"theme": "blue",
"restart": "/home/pi/homebridge/ docker-compose restart homebridge"
}
Has anybody else seen this? What have I done wrong?
I don't think it's related, but I updated sudoers using visudo as instructed, adding homebridge ALL=(ALL) NOPASSWD: ALL at the end (although I'm not exactly sure what my username is. Is this the username I use when I SSH from Putty / Filezilla?
@oznu Thanks for your ongoing development and constant update.
A lot of people ( as I can see in the very passionated German Forum http://homekit.community ) love the recent implementation of accessories feature. β€οΈππ»
One question was asked due to the frequent updates, if it is possible you could give some info when a new version is out, what the changes are. Would be very appreciated.
https://github.com/oznu/homebridge-config-ui-x/releases
As always, thanks a lot for your time you are investing and for sharing with the community. π
The current version presents us with a login window which doesn't play nice with keychain auto fill in safari on iOS/macOS, possibly 1password and others for those that use them on other browsers/OS?
Where as the login page before played nice with autofill for credentials.
Whats the chance of having a login work like it did before in the last version?
I'm using systems and journalctl and sudo to view the log and it all works, but once I start a session, there is no way to close it, so if I go to another section of the GUI and then back to logs, then i have to journalctl sessions and the logs are repeated twice.
you can also grep on ps to see that the command is running twice. This will only get worse as you tab away and back again.
Is there a way to close the session? I tried clicking on the view logs button again but nothing happens. I have to manually kill the existing sessions.
Thx.
Temperature shows as 0.00Β°C with this plugin
The regular homebridge-config-ui by shidevil works fine, tried specifying
"temp": "/sys/class/thermal/thermal_zone0/temp",
But no luck.
I have tried to put this behind an apache2 proxy/vhonst, but have failed with everything I know how to try. Is this possible? Are the loopback calls based on the config or based on the URL? Please tell me if I missed something obvious. All works awesome if I go directly to port 8081, but when I proxy/vhost, the logs, status and other things stop working.
Sample vhost I was using:
<VirtualHost 10.0.69.116:80>
ServerName homebridge.wiesalani.com
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPass / http://localhost:8081/ nocanon
ProxyPassReverse / http://localhost:8081/
Thanks and great job.
Hi,
first of all thnk you for your great work. After I installed your Plugin I get this error in ssh:
Error: listen EADDRINUSE :::8090
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at Server.setupListenHandle [as _listen2] (net.js:1351:14)
at listenInCluster (net.js:1392:12)
at Server.listen (net.js:1476:7)
at HomebridgeConfigUi. (/usr/local/lib/node_modules/homebridge-config-ui-x/src/index.ts:39:17)
at Generator.next ()
at fulfilled (/usr/local/lib/node_modules/homebridge-config-ui-x/dist/index.js:4:58)
at
Is there any sollution?
I have tried to use the log file two different ways and have issues with both. I would appreciate some help.
Here is the first way:
in the config.json file:
"log": "/var/log/daemon.log",
In the web gui I see nothing and the system crashes and restarts. Here is the error I get from the log file.:
Dec 31 05:57:24 XXX homebridge[832]: fs.js:1453
Dec 31 05:57:24 XXX homebridge[832]: throw error;
Dec 31 05:57:24 XXX homebridge[832]: ^
Dec 31 05:57:24 XXX homebridge[832]: Error: watch /var/log/daemon.log EACCES
Dec 31 05:57:24 XXX homebridge[832]: at exports._errnoException (util.js:1020:11)
Dec 31 05:57:24 XXX homebridge[832]: at FSWatcher.start (fs.js:1451:19)
Dec 31 05:57:24 XXX homebridge[832]: at Object.fs.watch (fs.js:1478:11)
Dec 31 05:57:24 XXX homebridge[832]: at Tail.watch (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/tail/lib/tail.js:112:32)
Dec 31 05:57:24 XXX homebridge[832]: at new Tail (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/tail/lib/tail.js:84:10)
Dec 31 05:57:24 XXX homebridge[832]: at tailLogFromFile (/usr/lib/node_modules/homebridge-config-ui-x/lib/wss-logs.js:13:14)
Dec 31 05:57:24 XXX homebridge[832]: at WebSocketServer.wss.on (/usr/lib/node_modules/homebridge-config-ui-x/lib/wss-logs.js:72:7)
Dec 31 05:57:24 XXX homebridge[832]: at emitTwo (events.js:106:13)
Dec 31 05:57:24 XXX homebridge[832]: at WebSocketServer.emit (events.js:191:7)
Dec 31 05:57:24 XXX homebridge[832]: at handleUpgrade (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/ws/lib/WebSocketServer.js:87:16)
Dec 31 05:57:24 XXX homebridge[832]: at WebSocketServer.completeUpgrade (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/ws/lib/WebSocketServer.js:288:5)
Dec 31 05:57:24 XXX homebridge[832]: at WebSocketServer.handleUpgrade (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/ws/lib/WebSocketServer.js:227:10)
Dec 31 05:57:24 XXX homebridge[832]: at Server.WebSocketServer._ultron.on (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/ws/lib/WebSocketServer.js:86:14)
Dec 31 05:57:24 XXX homebridge[832]: at emitThree (events.js:116:13)
Dec 31 05:57:24 XXX homebridge[832]: at Server.emit (events.js:194:7)
Dec 31 05:57:24 XXX homebridge[832]: at onParserExecuteCommon (_http_server.js:409:14)
Dec 31 05:57:24 XXX homebridge[832]: at HTTPParser.onParserExecute (_http_server.js:377:5)
Also tried this in the config.json file:
"log": {
"tail": "sudo tail -f /var/log/daemon.log"
},
Error I receive in the web gui:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
The log tail command "sudo tail -f /var/log/daemon.log" exited unexpectedly with code 1. Please check the command in your config.json is correct.
Got a RasPi 3 running with Homebridge and Config UI X, but want to use HTTPS for the webinterface.
During startup after upgrading to the latest version.
The temperature in the CPU section of the Status page is shown as a percentage - for example, 51.5Β°C%
I believe that this should just display the temperature in degrees - e.g. 51.5Β°C
Suggestion for UI:
Thanks for awesome plugin
Make http api for toggle accessory state
Trying toβ¦
launchctl unload ~/Library/LaunchAgents/com.homebridge.server.plist && launchctl load ~/Library/LaunchAgents/com.homebridge.server.plist
β¦ fails from Config UI X. From the Terminal it will work as expected.
I attempted to change the admin password, and I used Safariβs built in password generator. The proble is, it didnβt save the password like it typically does. Now Iβm locked out of the web access. Is there anyway to reset the password, or do I need to completely uninstall the plugin and reinstall it?
Only "Platforms" view is shown
Hi,
I got the following error, when installing on my RPI3.
Thanks in advance for your support:
pi@Homebridge:~ $ npm install -g --unsafe-perm homebridge-config-ui-x
/usr/local/bin/homebridge-config-ui-x -> /usr/local/lib/node_modules/homebridge-config-ui-x/bin/standalone.js[email protected] install /usr/local/lib/node_modules/homebridge-config-ui-x/node_modules/node-pty
node scripts/install.jsgyp ERR! configure error
gyp ERR! stack Error: Command failed: /usr/bin/python2 -c import platform; print(platform.python_version());
gyp ERR! stack ValueError: bad marshal data (string ref out of range)
gyp ERR! stack
gyp ERR! stack at ChildProcess.exithandler (child_process.js:275:12)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at maybeClose (internal/child_process.js:925:16)
gyp ERR! stack at Socket.stream.socket.on (internal/child_process.js:346:11)
gyp ERR! stack at emitOne (events.js:116:13)
gyp ERR! stack at Socket.emit (events.js:211:7)
gyp ERR! stack at Pipe._handle.close [as _onclose] (net.js:554:12)
gyp ERR! System Linux 4.9.63-v7+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/homebridge-config-ui-x/node_modules/node-pty
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install:node scripts/install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2018-02-18T10_20_57_657Z-debug.log
First this: what a great plugin for die hard Homebridge users!
I have installed the Plugin and everything is working on one item: viewing the log. I have installed homebridge using the default settings (user homebridge and with systems). I have added the sudo option and added the option in /etc/sudoers
I can install plugin's, remove them but viewing the log file I get the following error:
Using systemd to tail logs
CMD: sudo -n journalctl -o cat -n 500 -f -u homebridge
chdir(2) failed.: Permission denied
The log tail command "sudo -n journalctl -o cat -n 500 -f -u homebridge" exited with code 1.
Please check the command in your config.json is correct.
See https://github.com/oznu/homebridge-config-ui-x#log-viewer-configuration for instructions.
Any idea what I'm doing wrong?
Hello,
im not sure about issue/question.
But if i have run node at this Version
pi@raspberrypi:~ $ node -v
v6.10.0
then your UI runs fine.
But for unsing the HUE Plugin i read that i must update node to 8.9.4,
If i do this your pulgin dont will run.
i follow this Instruktion for update node.
https://forum.smartapfel.de/forum/thread/1007-plugin-homebridge-hue/?postID=20159#post20159
homebridge runs fine with this Version of node, but your plugin wont start the WEB-UI
Regads for help
jens
Updating plugins doesn't work from web, works from cmd.
[2018-3-12 21:46:47] [Config] Running Command: C:\Program Files\nodejs\npm.cmd install --unsafe-perm homebridge-config-ui-x@latest
[2018-3-12 21:47:31] [Config] Running Command: node C:\Users\pax07\node_modules\nsp\bin\nsp check
[2018-3-12 21:47:32] [Config] Error: File not found:
at new WindowsPtyAgent (C:\Users\pax07\node_modules\node-pty\src\windowsPtyAgent.ts:52:22)
at new WindowsTerminal (C:\Users\pax07\node_modules\node-pty\src\windowsTerminal.ts:50:19)
at Object.spawn (C:\Users\pax07\node_modules\node-pty\src\index.ts:30:10)
at Bluebird (C:\Users\pax07\node_modules\homebridge-config-ui-x\src\pm.ts:182:24)
at Promise._execute (C:\Users\pax07\node_modules\bluebird\js\release\debuggability.js:303:9)
at Promise._resolveFromExecutor (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:483:18)
at new Promise (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:79:10)
at PackageManager.runNspScan (C:\Users\pax07\node_modules\homebridge-config-ui-x\src\pm.ts:170:12)
at executeCommand.then (C:\Users\pax07\node_modules\homebridge-config-ui-x\src\pm.ts:434:28)
at tryCatcher (C:\Users\pax07\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:512:31)
at Promise._settlePromise (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:693:18)
at Promise._fulfill (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:638:18)
at Promise._resolveCallback (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:432:57)
at Promise._settlePromiseFromHandler (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:524:17)
at Promise._settlePromise (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:693:18)
at Promise._fulfill (C:\Users\pax07\node_modules\bluebird\js\release\promise.js:638:18)
at MappingPromiseArray.PromiseArray._resolve (C:\Users\pax07\node_modules\bluebird\js\release\promise_array.js:126:19)
[2018-3-12 21:49:33] Got SIGINT, shutting down Homebridge...
Terminate batch job (Y/N)? y
C:\Users\pax07>npm i homebridge-config-ui-x
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\pax07\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\pax07\package.json'
npm WARN pax07 No description
npm WARN pax07 No repository field.
npm WARN pax07 No README data
npm WARN pax07 No license field.
+ [email protected]
updated 1 package in 12.731s
C:\Users\pax07>
when using a homebridge fork, like https://github.com/NorthernMan54/homebridge, an upgrade will install the original. So a parameter for the fork would be nice.
I am getting this error for the past few updates. Its also crashing homebridge. Current version is 2.2.2
/usr/lib/node_modules/homebridge-config-ui-x/node_modules/ws/lib/websocket.js:371
const err = new Error(
^
Error: WebSocket is not open: readyState 3 (CLOSED)
at WebSocket.send (/usr/lib/node_modules/homebridge-config-ui-x/node_modules/ws/lib/websocket.js:371:19)
at LogsWssHandler.send (/usr/lib/node_modules/homebridge-config-ui-x/src/wss/logs.ts:43:13)
at emitOne (events.js:116:13)
at PipeSocket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:246:13)
at PipeSocket.Readable.push (_stream_readable.js:208:10)
at Pipe.onread (net.js:594:20)
This is the Configuration UI plugin for Homebridge section of the config.json
{
"platform": "config",
"name": "Config",
"port": 8766,
"restart": "sudo systemctl restart homebridge",
"log": "systemd",
"temp": "/sys/class/thermal/thermal_zone0/temp",
"sudo": true
},
I have followed all of your instructions for setting up this plugin with systemd and sudo mode.
I use many Raspberry PIs as homebridge nodes with LED strips and z-wave etc on them.
It would be nice to also use this interface to perform the system updates and get alerted about apt updates (including security etc). Would this be a challenge to add?
Hello, I have an idea for a cool extension for your plugin. Maybe it is possible to install this.
Many users use multiple Homebridge instances, would not it be great to have a monitor for all Homebridge instances in your plugin where all Homebridge statuses are displayed?
I am running Raspian Stretch on a Pi3 with systemd starting homebridge on boot. What do I enter for the log files location in the config?
I tried:
log: "systemd"
log: "var/log/daemon.log"
log: "/var/log/homebridge.log"
It would be nice to use the Log Screen.
I start my homebridge with just homebridge (pi@raspberrypi:~ $ homebridge). I also can start with pm2 start homebridge. However it does not work!
I have everything configured properly, but I can't access the web ui. this is whats in my config.json
"platform": [
{
"platform": "config",
"name": "Config",
"port": 8080,
"sudo": true,
"theme": "blue"
}
]
Update is offered regardless of Wanted or not, this could lead to incompatibilities. Updates should only be offered fort the wanted version.
npm -g outdated
Package Current Wanted Latest Location
homebridge-fritz 0.5.12 0.5.12 0.6.0
@oznu Thanks for your great work and sharing. ππ»
Maybe you want to consider to integrate a apple-touch-icon.png in one of your next updates? ππ
And is there a chance to change Login screen wallpaper snapshot.jpg individual? With every update of course it's going to default at the moment.
Is it possible to assign a port other than 8080?
For some reason this continually fails when using the upgrade feature within the container... will keep digging.
This issue tracks the types of accessories supported by the Homebridge Config UI X accessory control feature which allows you to view and control your Homebridge accessories in a web browser.
Accessory Types not listed here can still be controlled using your iOS apps.
These accessory types can be fully controlled via the Homebridge Config UI X interface:
These accessory types can controlled via the Homebridge Config UI X interface, but some controls are still not fully implemented:
If it's not listed above, it's not currently supported.
Each accessory type is implemented using an Angular Component. If you know Angular + TypeScript then pull requests for new accessory types are more than welcome.
https://github.com/oznu/homebridge-config-ui-x/tree/master/ui/src/app/modules/accessories/types
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.