iobroker.emby 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -8
- package/build/main.js +223 -61
- package/build/main.js.map +1 -1
- package/io-package.json +57 -15
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -46,9 +46,13 @@ This adapter would not have been possible without the great work of @thewhobox <
|
|
|
46
46
|
| Remove objects of clients deleted in Emby | Default on. When a client is removed in the Emby dashboard (Devices), its objects are deleted as soon as the server no longer reports its session. |
|
|
47
47
|
| Remove objects of inactive clients after | Days without activity after which the objects of a client the server no longer reports are deleted (default 0 = off). Scripts and history settings on these objects are lost. |
|
|
48
48
|
|
|
49
|
-
The adapter creates a device for every
|
|
49
|
+
The adapter creates a device for every client the server reports. The object ID is derived from the Emby device ID, so it stays the same when the client reconnects (device IDs with only letters, digits, `-` and `_` up to 40 characters are used as they are, longer ones such as those of web browsers are shortened to a 16 character hash). The object name is the device name shown in Emby (it can be changed in the Emby dashboard under Devices). Emby only reports a session while the client is connected, so open an Emby app or the web client once to see the first device.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
If a client has several sessions at the same time (e.g. two browser tabs), the session that is playing, supports remote control or was active last is shown. Devices of clients that are not seen again are kept with `info.online = false`; they are removed when the client is deleted in the Emby dashboard or after the configured number of inactive days (see Configuration), or can be deleted manually.
|
|
52
|
+
|
|
53
|
+
### Upgrade from 2.x to 3.0.0
|
|
54
|
+
|
|
55
|
+
Up to version 2.x the object IDs were the Emby session IDs, which change when a client reconnects. From 3.0.0 on the object ID is derived from the device ID. Existing objects are migrated automatically on the first start (version 2.x) or as soon as the client is reported again (version 1.3.0), including values, history settings and room/function assignments. Scripts, visualisations and aliases that use the old IDs have to be adjusted, the log shows `Migrated objects of "…" from <old id> to <new id>` for every client. History data already recorded stays under the old IDs.
|
|
52
56
|
|
|
53
57
|
## Objects
|
|
54
58
|
|
|
@@ -63,6 +67,8 @@ Note: Emby assigns a new session ID when a client reconnects. The adapter then r
|
|
|
63
67
|
| Object | Description | Info |
|
|
64
68
|
| ------------- | ------------- | ------------- |
|
|
65
69
|
| x.info.online | Session is currently reported by the server | `false` after the client was closed or switched off |
|
|
70
|
+
| x.info.deviceId | Emby device ID of the client | |
|
|
71
|
+
| x.info.sessionId | Current Emby session ID | Changes when the client reconnects |
|
|
66
72
|
| x.info.deviceName | Name of the device | |
|
|
67
73
|
| x.info.userName | Name of the user logged in on the device | |
|
|
68
74
|
| x.info.supportedCommands | Commands supported by the client (JSON array) | |
|
|
@@ -122,6 +128,12 @@ Only created for clients that support remote control, and only for commands the
|
|
|
122
128
|
Placeholder for the next version (at the beginning of the line):
|
|
123
129
|
### **WORK IN PROGRESS**
|
|
124
130
|
-->
|
|
131
|
+
### 3.0.0 (2026-10-29)
|
|
132
|
+
- (Schimi1983) **BREAKING:** Clients are identified by the Emby device ID instead of the session ID, so the object IDs no longer change when a client reconnects. Existing objects including values, history settings and room/function assignments are migrated automatically; scripts and visualisations using the old IDs have to be adjusted (see README)
|
|
133
|
+
- (Schimi1983) New states info.deviceId and info.sessionId; several sessions of one client (e.g. browser tabs) are shown as one device
|
|
134
|
+
- (Schimi1983) Objects that older versions created for ioBroker connections (other instances, version 1.3.0) are removed and no longer created
|
|
135
|
+
- (Schimi1983) Integration test against a mock Emby server added
|
|
136
|
+
|
|
125
137
|
### 2.0.0 (2026-10-29)
|
|
126
138
|
- (copilot) Adapter requires node.js >= 22.19.0 now
|
|
127
139
|
- (Schimi1983) Connection is re-established after the server closes it (e.g. server restart), KeepAlive is sent, info.connection reflects the real state
|
|
@@ -161,12 +173,6 @@ Only created for clients that support remote control, and only for commands the
|
|
|
161
173
|
### 1.1.1 (2023-11-20)
|
|
162
174
|
- (mcm1957) Dependencies have been updated.
|
|
163
175
|
|
|
164
|
-
### 1.1.0 (2023-11-20)
|
|
165
|
-
- (mcm1957) Adapter requires nodejs 16 now.
|
|
166
|
-
- (mcm1957) Adapter has been moved into iobroker-community-adapters oragnization.
|
|
167
|
-
- (thewhobox) An error causing multiple 'undefined' messages has been fixed. [#23]
|
|
168
|
-
- (mcm1957) Dependencies have been updated.
|
|
169
|
-
|
|
170
176
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
171
177
|
|
|
172
178
|
## License
|
package/build/main.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const node_crypto_1 = require("node:crypto");
|
|
36
37
|
const utils = __importStar(require("@iobroker/adapter-core"));
|
|
37
38
|
/** Delay before a new connection attempt after the socket closed. */
|
|
38
39
|
const RECONNECT_DELAY_MS = 60_000;
|
|
@@ -44,6 +45,12 @@ const MIN_POLL_SECONDS = 5;
|
|
|
44
45
|
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
45
46
|
/** Timeout for REST calls to the server. */
|
|
46
47
|
const HTTP_TIMEOUT_MS = 10_000;
|
|
48
|
+
/** Device ids matching this pattern are used as object id directly, all others are hashed. */
|
|
49
|
+
const PLAIN_DEVICE_ID = /^[A-Za-z0-9_-]{1,40}$/;
|
|
50
|
+
/** Ids of the adapter's own channels; a device must never get one of them. */
|
|
51
|
+
const RESERVED_IDS = new Set(['info', 'server']);
|
|
52
|
+
/** Valid values of common.type; versions <= 1.3.0 created buttons with type "button" */
|
|
53
|
+
const STATE_TYPES = new Set(['number', 'string', 'boolean', 'array', 'object', 'mixed', 'json']);
|
|
47
54
|
/**
|
|
48
55
|
* Simple remote commands: state id below `<session>.` → REST path below `/Sessions/<session>/`.
|
|
49
56
|
*/
|
|
@@ -101,10 +108,14 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
101
108
|
pollTimer = null;
|
|
102
109
|
/** Serialises processing of Sessions messages so slow object creation cannot overlap. */
|
|
103
110
|
sessionQueue = Promise.resolve();
|
|
104
|
-
/**
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
|
|
111
|
+
/** Device key → signature (name, remote control, supported commands) of the objects created during this run. */
|
|
112
|
+
createdDevices = new Map();
|
|
113
|
+
/** Device keys reported by the server in the last Sessions message. */
|
|
114
|
+
activeDevices = new Set();
|
|
115
|
+
/** Device key → current Emby session id (needed for the REST commands). */
|
|
116
|
+
sessionOf = new Map();
|
|
117
|
+
/** Sessions of ioBroker connections already checked for objects created by versions <= 2.x */
|
|
118
|
+
checkedOwnSessions = new Set();
|
|
108
119
|
initialSessionsLoaded = false;
|
|
109
120
|
/** API key, resolved once at start (see migratePlainApiKey). */
|
|
110
121
|
apiKey = '';
|
|
@@ -126,7 +137,12 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
126
137
|
await this.setStateAsync('info.connection', false, true);
|
|
127
138
|
// the key is copied once, this.config.apikey is not read again (see migratePlainApiKey)
|
|
128
139
|
this.apiKey = this.config.apikey || '';
|
|
129
|
-
await this.
|
|
140
|
+
await this.migrateStoredDevices();
|
|
141
|
+
if (await this.migratePlainApiKey()) {
|
|
142
|
+
// @KI_HINWEIS: updateConfig() makes the js-controller restart the instance right away; a
|
|
143
|
+
// connection started now would be cut off, and its timers would be created while stopping.
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
130
146
|
if (!this.config.ip || this.config.ip === '0.0.0.0:8096') {
|
|
131
147
|
this.log.error('No server address configured (IP:Port).');
|
|
132
148
|
return;
|
|
@@ -298,7 +314,7 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
298
314
|
}
|
|
299
315
|
const registered = removeDeleted ? await this.getRegisteredDeviceIds() : null;
|
|
300
316
|
for (const { sid, obj } of await this.getSessionDevices()) {
|
|
301
|
-
if (this.
|
|
317
|
+
if (this.activeDevices.has(sid)) {
|
|
302
318
|
continue;
|
|
303
319
|
}
|
|
304
320
|
const deviceId = obj?.native?.deviceId || '';
|
|
@@ -315,7 +331,7 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
315
331
|
}
|
|
316
332
|
if (reason) {
|
|
317
333
|
this.log.info(`Removing objects of client "${nameOf(name)}" (${sid}) because ${reason}`);
|
|
318
|
-
await this.
|
|
334
|
+
await this.deleteDeviceObjects(sid);
|
|
319
335
|
}
|
|
320
336
|
}
|
|
321
337
|
}
|
|
@@ -349,11 +365,11 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
349
365
|
if (sid === 'info') {
|
|
350
366
|
return;
|
|
351
367
|
}
|
|
352
|
-
if (this.
|
|
353
|
-
this.log.debug(`Objects of
|
|
368
|
+
if (this.createdDevices.delete(sid)) {
|
|
369
|
+
this.log.debug(`Objects of device ${sid} were deleted`);
|
|
354
370
|
}
|
|
355
|
-
// a deleted
|
|
356
|
-
this.
|
|
371
|
+
// a deleted device that is no longer active must not be recreated by markDeviceOffline
|
|
372
|
+
this.activeDevices.delete(sid);
|
|
357
373
|
delete this.laststates[sid];
|
|
358
374
|
}
|
|
359
375
|
/**
|
|
@@ -369,7 +385,7 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
369
385
|
this.handleCommand(id.substring(this.namespace.length + 1), state).catch(e => this.log.warn(`Command ${id} failed: ${e.message}`));
|
|
370
386
|
}
|
|
371
387
|
/**
|
|
372
|
-
* Executes a command for a
|
|
388
|
+
* Executes a command for a client.
|
|
373
389
|
*
|
|
374
390
|
* @param id state id without namespace
|
|
375
391
|
* @param state new state
|
|
@@ -380,9 +396,9 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
380
396
|
await this.setStateAsync(id, state.val, true);
|
|
381
397
|
return;
|
|
382
398
|
}
|
|
383
|
-
const
|
|
384
|
-
const cmd = id.substring(
|
|
385
|
-
if (!
|
|
399
|
+
const key = id.substring(0, id.indexOf('.'));
|
|
400
|
+
const cmd = id.substring(key.length + 1);
|
|
401
|
+
if (!key || !cmd.startsWith('command.')) {
|
|
386
402
|
this.log.info(`Not supported command: ${id}`);
|
|
387
403
|
return;
|
|
388
404
|
}
|
|
@@ -390,6 +406,11 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
390
406
|
this.log.warn('No API key configured, commands cannot be sent.');
|
|
391
407
|
return;
|
|
392
408
|
}
|
|
409
|
+
const sessionId = this.sessionOf.get(key);
|
|
410
|
+
if (!sessionId) {
|
|
411
|
+
this.log.warn(`Command ${cmd} not sent: client ${key} is not connected to the server`);
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
393
414
|
const base = `Sessions/${encodeURIComponent(sessionId)}`;
|
|
394
415
|
if (SIMPLE_COMMANDS[cmd]) {
|
|
395
416
|
await this.apiPost(`${base}/${SIMPLE_COMMANDS[cmd]}`);
|
|
@@ -429,7 +450,7 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
429
450
|
/**
|
|
430
451
|
* Converts a plain-text API key stored by older versions into an encrypted value.
|
|
431
452
|
*
|
|
432
|
-
* @returns true if the instance object was rewritten
|
|
453
|
+
* @returns true if the instance object was rewritten (the instance is restarted then)
|
|
433
454
|
*/
|
|
434
455
|
async migratePlainApiKey() {
|
|
435
456
|
// @KI_HINWEIS: Since `apikey` is listed in encryptedNative, js-controller decrypts it on start.
|
|
@@ -604,7 +625,55 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
604
625
|
.split(/[\s,;]+/)
|
|
605
626
|
.map(s => s.trim())
|
|
606
627
|
.filter(Boolean);
|
|
607
|
-
return list.includes(d.Id) ||
|
|
628
|
+
return (list.includes(d.Id) ||
|
|
629
|
+
(!!d.DeviceId && list.includes(d.DeviceId)) ||
|
|
630
|
+
list.includes(this.deviceKey(d.DeviceId, d.Id)));
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Whether a session is a connection of this adapter (this or another instance) and not a client.
|
|
634
|
+
*
|
|
635
|
+
* @param deviceId Emby device id of the session
|
|
636
|
+
*/
|
|
637
|
+
isIoBrokerConnection(deviceId) {
|
|
638
|
+
// 00001 = fixed id used by versions <= 1.3.0, ioBroker-emby.N = id of every instance since 2.0.0
|
|
639
|
+
return deviceId === '00001' || (!!deviceId && deviceId.startsWith(`ioBroker-${this.name}.`));
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Removes the objects that versions <= 2.x created for an ioBroker connection, once per session.
|
|
643
|
+
*
|
|
644
|
+
* @param sessionId session id of the ioBroker connection
|
|
645
|
+
*/
|
|
646
|
+
async removeIoBrokerDevice(sessionId) {
|
|
647
|
+
if (this.checkedOwnSessions.has(sessionId)) {
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
this.checkedOwnSessions.add(sessionId);
|
|
651
|
+
const sid = sessionId.replace(this.FORBIDDEN_CHARS, '_');
|
|
652
|
+
const obj = await this.getObjectAsync(sid);
|
|
653
|
+
// only objects without stored device id, so a client with this session id is never touched
|
|
654
|
+
if (obj?.type === 'device' && !obj.native?.deviceId) {
|
|
655
|
+
this.log.info(`Removed objects ${sid} that an older version created for an ioBroker connection`);
|
|
656
|
+
await this.deleteDeviceObjects(sid);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Object id of a client. Derived from the Emby device id, which stays the same across reconnects,
|
|
661
|
+
* unlike the session id.
|
|
662
|
+
*
|
|
663
|
+
* @param deviceId Emby device id
|
|
664
|
+
* @param sessionId session id, used only if the server reports no device id
|
|
665
|
+
*/
|
|
666
|
+
deviceKey(deviceId, sessionId) {
|
|
667
|
+
// @KI_HINWEIS: Emby device ids are hex strings, UUIDs or (web clients) long base64 strings of the
|
|
668
|
+
// user agent. Short ids with safe characters are used as they are, all others are hashed, so the
|
|
669
|
+
// object id is always short, stable and free of forbidden characters.
|
|
670
|
+
if (!deviceId) {
|
|
671
|
+
return sessionId.replace(this.FORBIDDEN_CHARS, '_');
|
|
672
|
+
}
|
|
673
|
+
if (PLAIN_DEVICE_ID.test(deviceId) && !RESERVED_IDS.has(deviceId)) {
|
|
674
|
+
return deviceId;
|
|
675
|
+
}
|
|
676
|
+
return (0, node_crypto_1.createHash)('sha1').update(deviceId).digest('hex').substring(0, 16);
|
|
608
677
|
}
|
|
609
678
|
/**
|
|
610
679
|
* Writes a state only if its value changed.
|
|
@@ -623,50 +692,82 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
623
692
|
*/
|
|
624
693
|
async handleSessions(list) {
|
|
625
694
|
if (!this.initialSessionsLoaded) {
|
|
626
|
-
//
|
|
695
|
+
// devices left over from before an adapter restart are marked offline on the first message
|
|
627
696
|
for (const { sid } of await this.getSessionDevices()) {
|
|
628
|
-
this.
|
|
697
|
+
this.activeDevices.add(sid);
|
|
629
698
|
}
|
|
630
699
|
this.initialSessionsLoaded = true;
|
|
631
700
|
}
|
|
632
|
-
|
|
701
|
+
// one entry per client; a client can have several sessions (e.g. two browser tabs)
|
|
702
|
+
const byKey = new Map();
|
|
633
703
|
for (const d of list) {
|
|
634
704
|
if (!d || typeof d.Id !== 'string' || d.Id === '') {
|
|
635
705
|
continue;
|
|
636
706
|
}
|
|
637
|
-
if (
|
|
638
|
-
|
|
707
|
+
if (this.isIoBrokerConnection(d.DeviceId)) {
|
|
708
|
+
await this.removeIoBrokerDevice(d.Id);
|
|
639
709
|
continue;
|
|
640
710
|
}
|
|
641
711
|
if (this.isIgnored(d)) {
|
|
642
712
|
this.log.debug(`Device skipped: ${d.DeviceName}`);
|
|
643
713
|
continue;
|
|
644
714
|
}
|
|
645
|
-
|
|
715
|
+
const key = this.deviceKey(d.DeviceId, d.Id);
|
|
716
|
+
const other = byKey.get(key);
|
|
717
|
+
if (!other || this.preferSession(d, other)) {
|
|
718
|
+
byKey.set(key, d);
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
for (const [key, d] of byKey) {
|
|
722
|
+
if (key !== d.Id && !this.createdDevices.has(key) && (await this.getObjectAsync(d.Id))) {
|
|
723
|
+
// objects of versions <= 2.x use the session id
|
|
724
|
+
await this.migrateDevice(d.Id, key);
|
|
725
|
+
}
|
|
726
|
+
this.sessionOf.set(key, d.Id);
|
|
646
727
|
// @KI_HINWEIS: a web client reports SupportsRemoteControl=false while its page is in the
|
|
647
728
|
// background or reconnecting, so the objects are rebuilt whenever this signature changes.
|
|
648
729
|
const signature = JSON.stringify([d.DeviceName, !!d.SupportsRemoteControl, d.SupportedCommands || []]);
|
|
649
|
-
if (this.
|
|
650
|
-
await this.
|
|
651
|
-
this.
|
|
730
|
+
if (this.createdDevices.get(key) !== signature) {
|
|
731
|
+
await this.createDeviceObjects(key, d);
|
|
732
|
+
this.createdDevices.set(key, signature);
|
|
652
733
|
}
|
|
653
|
-
await this.updateSession(d);
|
|
734
|
+
await this.updateSession(key, d);
|
|
654
735
|
}
|
|
655
|
-
for (const
|
|
656
|
-
if (!
|
|
657
|
-
|
|
736
|
+
for (const key of this.activeDevices) {
|
|
737
|
+
if (!byKey.has(key)) {
|
|
738
|
+
this.sessionOf.delete(key);
|
|
739
|
+
await this.markDeviceOffline(key);
|
|
658
740
|
}
|
|
659
741
|
}
|
|
660
|
-
this.
|
|
742
|
+
this.activeDevices = new Set(byKey.keys());
|
|
661
743
|
}
|
|
662
744
|
/**
|
|
663
|
-
*
|
|
745
|
+
* Chooses between two sessions of the same client: playing before idle, remote control before
|
|
746
|
+
* none, then the most recent activity.
|
|
664
747
|
*
|
|
748
|
+
* @param a candidate
|
|
749
|
+
* @param b session chosen so far
|
|
750
|
+
* @returns true if a is the better choice
|
|
751
|
+
*/
|
|
752
|
+
preferSession(a, b) {
|
|
753
|
+
if (!!a.NowPlayingItem !== !!b.NowPlayingItem) {
|
|
754
|
+
return !!a.NowPlayingItem;
|
|
755
|
+
}
|
|
756
|
+
if (!!a.SupportsRemoteControl !== !!b.SupportsRemoteControl) {
|
|
757
|
+
return !!a.SupportsRemoteControl;
|
|
758
|
+
}
|
|
759
|
+
return (Date.parse(a.LastActivityDate || '') || 0) > (Date.parse(b.LastActivityDate || '') || 0);
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* Updates the states of one client.
|
|
763
|
+
*
|
|
764
|
+
* @param sid object id of the client (device key)
|
|
665
765
|
* @param d session from the server
|
|
666
766
|
*/
|
|
667
|
-
async updateSession(d) {
|
|
668
|
-
const sid = d.Id;
|
|
767
|
+
async updateSession(sid, d) {
|
|
669
768
|
await this.setValue(`${sid}.info.online`, true);
|
|
769
|
+
await this.setValue(`${sid}.info.sessionId`, d.Id);
|
|
770
|
+
await this.setValue(`${sid}.info.deviceId`, d.DeviceId || '');
|
|
670
771
|
await this.setValue(`${sid}.info.deviceName`, d.DeviceName || '');
|
|
671
772
|
await this.setValue(`${sid}.info.userName`, d.UserName || '');
|
|
672
773
|
if (Array.isArray(d.SupportedCommands)) {
|
|
@@ -761,32 +862,94 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
761
862
|
}
|
|
762
863
|
}
|
|
763
864
|
/**
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
865
|
+
* Moves the objects of version 2.x (device object stored the device id in native.deviceId, but the
|
|
866
|
+
* object id was the session id) to the device key, once on start.
|
|
867
|
+
*/
|
|
868
|
+
async migrateStoredDevices() {
|
|
869
|
+
for (const { sid, obj } of await this.getSessionDevices()) {
|
|
870
|
+
const deviceId = obj?.native?.deviceId || '';
|
|
871
|
+
if (!deviceId) {
|
|
872
|
+
// versions <= 1.3.0: migrated as soon as the server reports the session again
|
|
873
|
+
continue;
|
|
874
|
+
}
|
|
875
|
+
const key = this.deviceKey(deviceId, sid);
|
|
876
|
+
if (key === sid) {
|
|
877
|
+
continue;
|
|
878
|
+
}
|
|
879
|
+
if (await this.getObjectAsync(key)) {
|
|
880
|
+
// an older session of a client that was already migrated
|
|
881
|
+
this.log.info(`Removing objects of old session ${sid} of client "${nameOf(obj.common.name)}"`);
|
|
882
|
+
await this.delObjectAsync(sid, { recursive: true });
|
|
883
|
+
continue;
|
|
884
|
+
}
|
|
885
|
+
await this.migrateDevice(sid, key);
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
/**
|
|
889
|
+
* Moves all objects and states of a client to a new object id: objects including common.custom
|
|
890
|
+
* (history settings), current values and the membership in rooms and functions. The old objects are
|
|
891
|
+
* deleted afterwards.
|
|
769
892
|
*
|
|
770
|
-
* @param
|
|
771
|
-
* @param
|
|
893
|
+
* @param oldId old object id (session id)
|
|
894
|
+
* @param newId new object id (device key)
|
|
772
895
|
*/
|
|
773
|
-
async
|
|
774
|
-
|
|
775
|
-
|
|
896
|
+
async migrateDevice(oldId, newId) {
|
|
897
|
+
const oldPrefix = `${this.namespace}.${oldId}`;
|
|
898
|
+
const newPrefix = `${this.namespace}.${newId}`;
|
|
899
|
+
const objects = await this.getForeignObjectsAsync(`${oldPrefix}.*`);
|
|
900
|
+
const device = await this.getForeignObjectAsync(oldPrefix);
|
|
901
|
+
if (device) {
|
|
902
|
+
objects[oldPrefix] = device;
|
|
903
|
+
}
|
|
904
|
+
const ids = Object.keys(objects)
|
|
905
|
+
.filter(id => id === oldPrefix || id.startsWith(`${oldPrefix}.`))
|
|
906
|
+
.sort((a, b) => a.length - b.length);
|
|
907
|
+
if (!ids.length) {
|
|
908
|
+
return;
|
|
909
|
+
}
|
|
910
|
+
// @KI_HINWEIS: ioBroker has no rename. Objects are copied with common.custom, so history adapters
|
|
911
|
+
// continue on the new id; the data already recorded stays under the old id in the database.
|
|
912
|
+
for (const id of ids) {
|
|
913
|
+
const obj = objects[id];
|
|
914
|
+
const target = newPrefix + id.substring(oldPrefix.length);
|
|
915
|
+
const common = { ...obj.common };
|
|
916
|
+
if (obj.type === 'state' && !STATE_TYPES.has(String(common.type))) {
|
|
917
|
+
// corrected by createDeviceObjects afterwards, set here to avoid warnings of the js-controller
|
|
918
|
+
common.type = common.role === 'button' ? 'boolean' : 'mixed';
|
|
919
|
+
}
|
|
920
|
+
await this.setForeignObjectAsync(target, {
|
|
921
|
+
type: obj.type,
|
|
922
|
+
common,
|
|
923
|
+
native: obj.native || {},
|
|
924
|
+
});
|
|
925
|
+
if (obj.type === 'state') {
|
|
926
|
+
const st = await this.getForeignStateAsync(id);
|
|
927
|
+
if (st) {
|
|
928
|
+
await this.setForeignStateAsync(target, { val: st.val, ack: true, ts: st.ts, q: st.q });
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
const enums = await this.getForeignObjectsAsync('enum.*', 'enum');
|
|
933
|
+
for (const [enumId, enumObj] of Object.entries(enums)) {
|
|
934
|
+
const members = Array.isArray(enumObj?.common?.members) ? enumObj.common.members : [];
|
|
935
|
+
if (!members.some(m => ids.includes(m))) {
|
|
776
936
|
continue;
|
|
777
937
|
}
|
|
778
|
-
|
|
779
|
-
await this.
|
|
938
|
+
const updated = members.map(m => (ids.includes(m) ? newPrefix + m.substring(oldPrefix.length) : m));
|
|
939
|
+
await this.extendForeignObjectAsync(enumId, { common: { members: updated } });
|
|
780
940
|
}
|
|
941
|
+
this.log.info(`Migrated objects of "${nameOf(device?.common?.name ?? oldId)}" from ${oldId} to ${newId}. Scripts and visualisations using the old id have to be adjusted.`);
|
|
942
|
+
await this.deleteDeviceObjects(oldId);
|
|
781
943
|
}
|
|
782
944
|
/**
|
|
783
|
-
* Deletes all objects of a
|
|
945
|
+
* Deletes all objects of a client and forgets its runtime state.
|
|
784
946
|
*
|
|
785
|
-
* @param sid
|
|
947
|
+
* @param sid object id of the client
|
|
786
948
|
*/
|
|
787
|
-
async
|
|
788
|
-
this.
|
|
789
|
-
this.
|
|
949
|
+
async deleteDeviceObjects(sid) {
|
|
950
|
+
this.activeDevices.delete(sid);
|
|
951
|
+
this.createdDevices.delete(sid);
|
|
952
|
+
this.sessionOf.delete(sid);
|
|
790
953
|
if (this.timeoutplays[sid]) {
|
|
791
954
|
this.clearTimeout(this.timeoutplays[sid]);
|
|
792
955
|
}
|
|
@@ -797,16 +960,16 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
797
960
|
await this.delObjectAsync(sid, { recursive: true });
|
|
798
961
|
}
|
|
799
962
|
/**
|
|
800
|
-
* Marks a
|
|
963
|
+
* Marks a client the server no longer reports (client closed, TV switched off).
|
|
801
964
|
*
|
|
802
|
-
* @param sid
|
|
965
|
+
* @param sid object id of the client
|
|
803
966
|
*/
|
|
804
|
-
async
|
|
967
|
+
async markDeviceOffline(sid) {
|
|
805
968
|
if (!(await this.getObjectAsync(sid))) {
|
|
806
969
|
// objects were deleted in the meantime, nothing to update
|
|
807
970
|
return;
|
|
808
971
|
}
|
|
809
|
-
this.log.debug(`
|
|
972
|
+
this.log.debug(`Client ${sid} is no longer active`);
|
|
810
973
|
// objects created by versions <= 1.3.0 have no info.online yet
|
|
811
974
|
await this.extendObjectAsync(`${sid}.info.online`, roState('Session is active on the server', 'boolean', 'indicator.reachable'));
|
|
812
975
|
await this.setValue(`${sid}.info.online`, false);
|
|
@@ -846,13 +1009,13 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
846
1009
|
this.laststates[id] = state;
|
|
847
1010
|
}
|
|
848
1011
|
/**
|
|
849
|
-
* Creates or updates the objects of a
|
|
1012
|
+
* Creates or updates the objects of a client. Uses extendObject so objects created by older
|
|
850
1013
|
* versions with invalid types (e.g. common.type "button") are corrected.
|
|
851
1014
|
*
|
|
1015
|
+
* @param sid object id of the client (device key)
|
|
852
1016
|
* @param device session from the server
|
|
853
1017
|
*/
|
|
854
|
-
async
|
|
855
|
-
const sid = device.Id;
|
|
1018
|
+
async createDeviceObjects(sid, device) {
|
|
856
1019
|
await this.setObjectNotExistsAsync(sid, {
|
|
857
1020
|
type: 'device',
|
|
858
1021
|
common: { name: device.DeviceName || sid },
|
|
@@ -863,14 +1026,13 @@ class EmbyAdapter extends utils.Adapter {
|
|
|
863
1026
|
common: { name: device.DeviceName || sid },
|
|
864
1027
|
native: { deviceId: device.DeviceId || '' },
|
|
865
1028
|
});
|
|
866
|
-
if (device.DeviceId) {
|
|
867
|
-
await this.removeSupersededSessions(sid, device.DeviceId);
|
|
868
|
-
}
|
|
869
1029
|
const objs = {
|
|
870
1030
|
info: { type: 'channel', common: { name: 'Info' }, native: {} },
|
|
871
1031
|
media: { type: 'channel', common: { name: 'Media Info' }, native: {} },
|
|
872
1032
|
posters: { type: 'channel', common: { name: 'Media Posters' }, native: {} },
|
|
873
1033
|
'info.online': roState('Session is active on the server', 'boolean', 'indicator.reachable'),
|
|
1034
|
+
'info.deviceId': roState('Emby device id', 'string', 'text'),
|
|
1035
|
+
'info.sessionId': roState('Current Emby session id', 'string', 'text'),
|
|
874
1036
|
'info.deviceName': roState('Name of the Device now playing', 'string', 'info.name'),
|
|
875
1037
|
'info.userName': roState('Logged in User', 'string', 'info.name'),
|
|
876
1038
|
'info.supportedCommands': roState('List of supported Commands', 'string', 'json'),
|
package/build/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "emby",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.0": {
|
|
7
|
+
"en": "**BREAKING:** Clients are identified by the Emby device ID instead of the session ID, so the object IDs no longer change when a client reconnects. Existing objects including values, history settings and room/function assignments are migrated automatically; scripts and visualisations using the old IDs have to be adjusted (see README)\nNew states info.deviceId and info.sessionId; several sessions of one client (e.g. browser tabs) are shown as one device\nObjects that older versions created for ioBroker connections (other instances, version 1.3.0) are removed and no longer created\nIntegration test against a mock Emby server added",
|
|
8
|
+
"de": "**AKTUELL: ** Kunden sehen die Emby-Geräte-ID statt der Sitzungs-ID, sodass sich die Objekt-IDs nicht mehr ändern. Bestehende Objekte wie Werte, Historie und Raum-/Funktionszuweisungen werden automatisch migriert; Skripte und Visualisierungen mit alten IDs müssen angepasst werden (siehe README)\nNeue Status info.deviceId und info.sessionId; mehrere Sitzungen eines Clients (z. B. Browser-Tabs) werden als Gerät angezeigt\nObjekte, die ältere Versionen für ioBroker-Verbindungen (andere Instanzen, Version 1.3.0) entfernt und nicht mehr erstellt\nIntegrationstest mit Emby-Server hinzugefügt",
|
|
9
|
+
"ru": "**ВАЖНО: ** Клиенты идентифицируются по идентификатору устройства Emby, а не по идентификатору сеанса, поэтому идентификаторы объектов больше не меняются при повторном подключении клиента. Существующие объекты, включая значения, настройки истории и назначения помещений/функций, переносятся автоматически; скрипты и визуализации, использующие старые идентификаторы, необходимо скорректировать (см. README)\nНовые состояния Info.DeviceID и Info.SessionID; несколько сеансов одного клиента (например, вкладки браузера) отображаются на одном устройстве\nОбъекты, созданные более старыми версиями для подключений IOBroker (другие экземпляры, версия 1.3.0), удаляются и больше не создаются\nДобавлен интеграционный тест на макетном сервере Emby",
|
|
10
|
+
"pt": "**AVISO: ** Os clientes são identificados pelo ID do dispositivo Emby em vez do ID da sessão. Assim, os IDs do objeto não mudam mais ao se reconectar. Objetos existentes, incluindo valores, histórico e atribuições de sala/função, são migrados automaticamente; scripts e visualizações usando IDs antigos (veja README)\nNovos estados info.deviceID e info.sessionID; várias sessões de um cliente (ex: abas do navegador)\nObjetos criados por versões antigas para conexões IOBroker (outras, versão 1.3.0) são removidos e não são mais criados\nTeste de integração com um servidor Emby simulado",
|
|
11
|
+
"nl": "**BREAKING: ** Clients worden geïdentificeerd aan de hand van de apparaat-ID van Emby in plaats van de sessie-ID, zodat de object-ID's niet langer veranderen wanneer een client opnieuw verbinding maakt. Bestaande objecten, waaronder waarden, geschiedenisinstellingen en kamer-/functietoewijzingen, worden automatisch gemigreerd; scripts en visualisaties die de oude ID's gebruiken, moeten worden aangepast (zie README)\nNieuwe staten Info.DeviceID en Info.SessionId; verschillende sessies van één client (bijv. browsertabbladen) worden als één apparaat weergegeven\nObjecten die in oudere versies zijn gemaakt voor IOBroker-verbindingen (in andere gevallen versie 1.3.0), worden verwijderd en niet langer gemaakt\nIntegratietest met een namaakserver van Emby toegevoegd",
|
|
12
|
+
"fr": "**RUPTURE :** Les clients sont identifiés par l'identifiant de l'appareil Emby au lieu de l'ID de session. L'ID des objets ne change plus à la reconnexion. Les objets existants, y compris les valeurs, l'historique et l'attribution des salles et des fonctions, sont automatiquement migrés ; les scripts et les visualisations utilisant les anciens ID doivent être ajustés (voir README)\nNouveaux états info.deviceID et info.sessionID ; plusieurs sessions d'un client (onglets de navigateur, par exemple)\nLes objets créés par les anciennes versions pour les connexions IObroker (autres instances, version 1.3.0) sont supprimés\nAjout d'un test d'intégration sur un faux serveur Emby",
|
|
13
|
+
"it": "**ULTIMO: ** I client sono identificati dall'ID dispositivo Emby anziché dall'ID sessione, quindi non cambiano più quando un client si riconnette. Gli oggetti esistenti, tra cui valori, cronologia e assegnazioni di stanze/funzioni, vengono migrati automaticamente; gli script e le visualizzazioni con i vecchi ID vanno modificati (vedi README)\nNuovi stati Info.deviceID e Info.sessionId; più sessioni di un client (ad es. schede)\nGli oggetti creati in versioni precedenti per le connessioni IOBroker (altre istanze, 1.3.0) sono rimossi e non più creati\nAggiunto test di integrazione su un finto server Emby",
|
|
14
|
+
"es": "**ÚLTIMA HORA: ** Los clientes se identifican por el ID del dispositivo Emby en lugar del de la sesión, por lo que los ID de objeto ya no cambian cuando el cliente se vuelve a conectar. Los objetos existentes, incluidos los valores, el historial, los ajustes y las asignaciones de sala o función, se migran automáticamente; hay que ajustar los guiones y las visualizaciones con los ID antiguos (consulte README)\nNuevos estados info.deviceID e info.sessionID; varias sesiones de un cliente (por ejemplo, pestañas del navegador) se muestran en un solo dispositivo\nLos objetos que las versiones anteriores creaban para las conexiones de IOBroker (en otros casos, la versión 1.3.0) se eliminan y ya no se crean\nPrueba de integración con un servidor Emby simulado",
|
|
15
|
+
"pl": "**BREAKING: ** Klienci są identyfikowani przez identyfikator urządzenia Emby zamiast identyfikatora sesji, więc identyfikatory obiektów nie zmieniają się już po ponownym połączeniu klienta. Istniejące obiekty, w tym wartości, ustawienia historii i przypisania pomieszczenia/funkcji, są migrowane automatycznie; skrypty i wizualizacje przy użyciu starych identyfikatorów muszą zostać dostosowane (patrz README)\nNowe stany Info.deviceID i Info.sessionId; kilka sesji jednego klienta (np. karty przeglądarki) jest wyświetlanych jako jedno urządzenie\nObiekty utworzone w starszych wersjach dla połączeń ioBroker (inne instancje, wersja 1.3.0) są usuwane i nie są już tworzone\nDodano test integracji z fałszywym serwerem Emby",
|
|
16
|
+
"uk": "**BREAKING: ** Клієнти ідентифікуються за ідентифікатором пристрою Emby замість ідентифікатора сеансу, тому ідентифікатори об'єктів більше не змінюються при повторному підключенні клієнта. Існуючі об'єкти, включаючи значення, налаштування історії та призначення кімнати/функцій, переносяться автоматично; скрипти та візуалізації з використанням старих ідентифікаторів мають бути налаштовані (див. README)\nНові стани Info.deviceId та Info.sessionId; кілька сеансів одного клієнта (наприклад, вкладки браузера) відображаються як один пристрій\nОб'єкти, створені старими версіями для з'єднань IObroker (інші екземпляри, версія 1.3.0) видаляються і більше не створюються\nДодано тест інтеграції проти макетного сервера Emby",
|
|
17
|
+
"zh-cn": "**BREAKING:** 客户端由 Emby 设备 ID 而不是会话 ID 标识,因此当客户端重新连接时,对象 ID 不再更改。包括值、历史记录设置和房间/功能分配在内的现有对象会自动迁移;必须调整使用旧 ID 的脚本和可视化效果(参见 README)\n新状态 info.deviceID 和 Info.SessionID;一个客户端的多个会话(例如浏览器选项卡)显示为一台设备\n旧版本为 IOBroker 连接(其他实例,版本 1.3.0)创建的对象已删除且不再创建\n添加了针对模拟 Emby 服务器的集成测试"
|
|
18
|
+
},
|
|
6
19
|
"2.0.0": {
|
|
7
20
|
"en": "Adapter requires node.js >= 22.19.0 now\nConnection is re-established after the server closes it (e.g. server restart), KeepAlive is sent, info.connection reflects the real state\nOnly \"Sessions\" messages are processed as sessions, invalid messages no longer cause errors\nFixed command.volume (always failed), command.unmute is created for clients reporting \"Unmute\"\nMessages and dialogs with quotes or line breaks work now\nCommands use https if SSL is enabled, API key is sent as header and no longer logged\nAPI key is stored encrypted, an existing key is converted automatically (one restart)\nNew states info.online and info.lastActivity per session; sessions that disappear are reset to idle\nCurrent sessions are read via REST right after connecting, the server pushes them only on the next change\nSessions are polled every 60 s (configurable) to keep info.lastActivity current\nOptional cleanup: objects of clients deleted in Emby (default on) or inactive for a configurable number of days (default off) are removed\nObject types of buttons fixed, empty numbers are written as null, states are only written on change\nDependencies \"request\" and \"websocket\" replaced by native fetch and WebSocket\nAPI key is entered in a password field\nThe adapter no longer shows up as its own device, it connects with a device ID per instance\nObjects of an old session are removed when the same client connects with a new session ID\nCommand states are created as soon as a client reports remote control support, not only on adapter start\nDevice names follow the display name set in the Emby dashboard; REST calls use the adapter's device ID so they do not appear as an extra client\nREADME updated: configuration, all objects, broken CodeQL badge removed\nAdmin UI migrated to jsonConfig (based on #275), API key is entered in a password field, short-form i18n files\nDependencies updated (@iobroker/adapter-core 3.4.3)\nPackage content defined via \"files\" in package.json, tsconfig added for type checking\nThe adapter was refactored to TypeScript",
|
|
8
21
|
"de": "Adapter benötigt jetzt node.js >= 22.19.0\nVerbindung wird wiederhergestellt, wenn der Server ihn schließt (z. B. Serverneustart), KeepAlive wird gesendet, info.connection\nNur Sessions werden als Sessions verarbeitet, ungültige Nachrichten führen nicht mehr\nCommand.volume behoben (immer fehlgeschlagen), command.unmute gibt es für Kunden, die „Unmute“ melden\nSMS und Dialoge mit Anführungszeichen funktionieren jetzt\nBefehle nutzen https, wenn SSL aktiviert ist, API-Key als Header und nicht mehr geloggt\nAPI-Key wird verschlüsselt gespeichert, automatisch konvertiert (ein Neustart)\nNeue Status info.online und info.lastActivity pro Sitzung. Verschwindende Sessions\nAktuelle Sessions werden per REST gelesen, der Server pusht sie erst bei der nächsten Änderung\nSessions werden alle 60 s abgefragt (konfigurierbar), um Info.LastActivity\nOptionale Säuberung: Objekte von Kunden, die in Emby gelöscht (Standard an) oder mehrere Tage inaktiv waren (Standard aus), werden entfernt\nObjekttypen von Buttons behoben, leere Zahlen als Null, Staaten nur bei Änderung\nAbhängigkeiten „Request“ und „Websocket“ ersetzt durch Native Fetch und WebSocket\nAPI-Schlüssel im Passwortfeld\nDer Adapter ist kein eigenes Gerät mehr, er hat eine Geräte-ID pro Instanz\nObjekte einer alten Sitzung werden entfernt, wenn der Client eine neue ID nutzt\nBefehlsstatus wird erzeugt, sobald ein Kunde Fernsupport meldet, nicht nur beim Adapterstart\nGerätenamen folgen dem Anzeigenamen im Emby-Dashboard; REST-Aufrufe nutzen die Geräte-ID des Adapters.\nREADME aktualisiert: Konfiguration, alle Objekte, defektes QL\nAdmin-UI auf JsonConfig migriert (basierend auf #275), API-Key im Passwortfeld, I18N-Kurzdateien\nNeue Abhängigkeiten (@iobroker /adapter-core 3.4.3)\nPaketinhalt per „Dateien“ in package.json, tsconfig zur Typprüfung hinzugefügt\nDer Adapter wurde auf TypeScript umgestellt",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Opublikowano w wersji stabilnej",
|
|
81
94
|
"uk": "Опубліковано в стабільному",
|
|
82
95
|
"zh-cn": "发布到稳定版"
|
|
83
|
-
},
|
|
84
|
-
"1.0.1": {
|
|
85
|
-
"en": "Fixed bug for states",
|
|
86
|
-
"de": "Fehler für die States behoben",
|
|
87
|
-
"ru": "Исправлена ошибка для состояний",
|
|
88
|
-
"pt": "Bug corrigido para estados",
|
|
89
|
-
"nl": "Bug voor staten opgelost",
|
|
90
|
-
"fr": "Correction d'un bug pour les états",
|
|
91
|
-
"it": "Risolto bug per gli stati",
|
|
92
|
-
"es": "Error solucionado para estados.",
|
|
93
|
-
"pl": "Naprawiono błąd dla stanów",
|
|
94
|
-
"uk": "Виправлена помилка для штатів",
|
|
95
|
-
"zh-cn": "修复了州的错误"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -161,7 +161,49 @@
|
|
|
161
161
|
"adminUI": {
|
|
162
162
|
"config": "json"
|
|
163
163
|
},
|
|
164
|
-
"nogit": true
|
|
164
|
+
"nogit": true,
|
|
165
|
+
"messages": [
|
|
166
|
+
{
|
|
167
|
+
"condition": {
|
|
168
|
+
"operand": "and",
|
|
169
|
+
"rules": [
|
|
170
|
+
"oldVersion<3.0.0",
|
|
171
|
+
"newVersion>=3.0.0"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"title": {
|
|
175
|
+
"en": "Devices are identified by the Emby device ID",
|
|
176
|
+
"de": "Geräte werden über die Emby-Geräte-ID identifiziert",
|
|
177
|
+
"ru": "Устройства определяются по ID устройства Emby",
|
|
178
|
+
"pt": "Os dispositivos são identificados pelo ID do dispositivo Emby",
|
|
179
|
+
"nl": "Apparaten worden geïdentificeerd aan de hand van de Emby-apparaat-ID",
|
|
180
|
+
"fr": "Les appareils sont identifiés par l’ID d’appareil Emby",
|
|
181
|
+
"it": "I dispositivi sono identificati tramite l’ID dispositivo di Emby",
|
|
182
|
+
"es": "Los dispositivos se identifican por el ID de dispositivo de Emby",
|
|
183
|
+
"pl": "Urządzenia są identyfikowane za pomocą identyfikatora urządzenia Emby",
|
|
184
|
+
"uk": "Пристрої визначаються за ID пристрою Emby",
|
|
185
|
+
"zh-cn": "设备现在通过 Emby 设备 ID 识别"
|
|
186
|
+
},
|
|
187
|
+
"text": {
|
|
188
|
+
"en": "The object IDs of the clients change from the Emby session ID to the device ID, which no longer changes when a client reconnects. Existing objects including their values, history settings and room/function assignments are migrated automatically. Scripts, visualisations and aliases that use the old IDs have to be adjusted; history data already recorded stays under the old IDs.",
|
|
189
|
+
"de": "Die Objekt-IDs der Clients wechseln von der Emby-Session-ID zur Geräte-ID, die sich bei einer neuen Verbindung des Clients nicht mehr ändert. Bestehende Objekte werden inklusive Werten, History-Einstellungen und Raum-/Funktionszuordnung automatisch übernommen. Skripte, Visualisierungen und Aliase mit den alten IDs müssen angepasst werden; bereits aufgezeichnete History-Daten bleiben unter den alten IDs.",
|
|
190
|
+
"ru": "Идентификаторы объектов клиентов меняются с ID сеанса Emby на ID устройства, который больше не меняется при повторном подключении клиента. Существующие объекты, включая значения, настройки истории и привязку к комнатам/функциям, переносятся автоматически. Скрипты, визуализации и алиасы со старыми ID необходимо изменить; уже записанные данные истории остаются под старыми ID.",
|
|
191
|
+
"pt": "Os IDs de objeto dos clientes mudam do ID de sessão do Emby para o ID do dispositivo, que já não muda quando um cliente se reconecta. Os objetos existentes, incluindo valores, configurações de histórico e atribuições de cômodos/funções, são migrados automaticamente. Scripts, visualizações e aliases que usam os IDs antigos precisam ser ajustados; os dados de histórico já registrados permanecem nos IDs antigos.",
|
|
192
|
+
"nl": "De object-ID’s van de clients veranderen van de Emby-sessie-ID naar de apparaat-ID, die niet meer verandert wanneer een client opnieuw verbinding maakt. Bestaande objecten inclusief waarden, historie-instellingen en ruimte-/functietoewijzingen worden automatisch overgenomen. Scripts, visualisaties en aliassen met de oude ID’s moeten worden aangepast; reeds vastgelegde historiegegevens blijven onder de oude ID’s.",
|
|
193
|
+
"fr": "Les ID d’objet des clients passent de l’ID de session Emby à l’ID d’appareil, qui ne change plus lorsqu’un client se reconnecte. Les objets existants, y compris leurs valeurs, réglages d’historique et affectations de pièces/fonctions, sont migrés automatiquement. Les scripts, visualisations et alias utilisant les anciens ID doivent être adaptés ; les données d’historique déjà enregistrées restent sous les anciens ID.",
|
|
194
|
+
"it": "Gli ID oggetto dei client passano dall’ID sessione di Emby all’ID dispositivo, che non cambia più quando un client si riconnette. Gli oggetti esistenti, inclusi valori, impostazioni della cronologia e assegnazioni a stanze/funzioni, vengono migrati automaticamente. Script, visualizzazioni e alias che usano i vecchi ID devono essere adattati; i dati di cronologia già registrati restano sotto i vecchi ID.",
|
|
195
|
+
"es": "Los ID de objeto de los clientes cambian del ID de sesión de Emby al ID de dispositivo, que ya no cambia cuando un cliente se vuelve a conectar. Los objetos existentes, incluidos sus valores, la configuración del historial y la asignación a habitaciones/funciones, se migran automáticamente. Los scripts, visualizaciones y alias que usan los ID antiguos deben ajustarse; los datos de historial ya registrados permanecen en los ID antiguos.",
|
|
196
|
+
"pl": "Identyfikatory obiektów klientów zmieniają się z identyfikatora sesji Emby na identyfikator urządzenia, który nie zmienia się już przy ponownym połączeniu klienta. Istniejące obiekty wraz z wartościami, ustawieniami historii i przypisaniem do pomieszczeń/funkcji są przenoszone automatycznie. Skrypty, wizualizacje i aliasy korzystające ze starych identyfikatorów należy dostosować; zapisane już dane historii pozostają pod starymi identyfikatorami.",
|
|
197
|
+
"uk": "Ідентифікатори об’єктів клієнтів змінюються з ID сеансу Emby на ID пристрою, який більше не змінюється під час повторного підключення клієнта. Наявні об’єкти разом зі значеннями, налаштуваннями історії та прив’язкою до кімнат/функцій переносяться автоматично. Скрипти, візуалізації та аліаси зі старими ID потрібно змінити; уже записані дані історії залишаються під старими ID.",
|
|
198
|
+
"zh-cn": "客户端的对象 ID 由 Emby 会话 ID 改为设备 ID,客户端重新连接时不再改变。现有对象(包括数值、历史记录设置以及房间/功能分配)会自动迁移。使用旧 ID 的脚本、可视化和别名需要调整;已记录的历史数据保留在旧 ID 下。"
|
|
199
|
+
},
|
|
200
|
+
"level": "warn",
|
|
201
|
+
"buttons": [
|
|
202
|
+
"agree",
|
|
203
|
+
"cancel"
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
]
|
|
165
207
|
},
|
|
166
208
|
"native": {
|
|
167
209
|
"ip": "0.0.0.0:8096",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.emby",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Emby",
|
|
5
5
|
"author": "thewhobox <admin@mikegerst.de>",
|
|
6
6
|
"contributors": [
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"@iobroker/types": "^7.2.5",
|
|
38
38
|
"@tsconfig/node22": "^22.0.6",
|
|
39
39
|
"@types/node": "^22.20.5",
|
|
40
|
-
"typescript": "~6.0.3"
|
|
40
|
+
"typescript": "~6.0.3",
|
|
41
|
+
"ws": "^8.22.0"
|
|
41
42
|
},
|
|
42
43
|
"main": "build/main.js",
|
|
43
44
|
"files": [
|
|
@@ -52,7 +53,7 @@
|
|
|
52
53
|
"check": "tsc -p tsconfig.json --noEmit",
|
|
53
54
|
"lint": "eslint -c eslint.config.mjs",
|
|
54
55
|
"test:package": "mocha test/packageFiles --exit",
|
|
55
|
-
"test:integration": "mocha test/integrationAdapter --exit",
|
|
56
|
+
"test:integration": "mocha test/integrationAdapter test/integrationEmby --exit",
|
|
56
57
|
"test": "npm run test:package",
|
|
57
58
|
"translate": "translate-adapter -b admin/i18n/en.json",
|
|
58
59
|
"release": "release-script",
|