homematic-manager 3.0.0 → 3.0.1
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/data/manifest.json +2 -2
- package/node_modules/@homematic-manager/backend/package.json +1 -1
- package/node_modules/@homematic-manager/core/dist/devices/hmipKey.d.ts +1 -1
- package/node_modules/@homematic-manager/core/dist/devices/hmipKey.js +1 -1
- package/node_modules/@homematic-manager/core/dist/links/roles.d.ts +14 -0
- package/node_modules/@homematic-manager/core/dist/links/roles.js +25 -1
- package/node_modules/@homematic-manager/core/package.json +1 -1
- package/package.json +3 -3
- package/ui/assets/index-YYK59Qny.js +21 -0
- package/ui/assets/{index-DM5Ozzyn.css → index-zKVCiLPm.css} +1 -1
- package/ui/index.html +2 -2
- package/ui/assets/index-DlodmFUk.js +0 -21
package/data/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-09-
|
|
2
|
+
"generatedAt": "2026-09-30T20:15:59.038Z",
|
|
3
3
|
"sources": [
|
|
4
4
|
{
|
|
5
5
|
"name": "openccu-data/easymode_extract",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
{
|
|
35
35
|
"name": "homematic-manager/legacy-easymode-localization",
|
|
36
36
|
"version": "2.7.1",
|
|
37
|
-
"url": "https://github.com/hobbyquaker/homematic-manager/tree/
|
|
37
|
+
"url": "https://github.com/hobbyquaker/homematic-manager/tree/2.7.1/www/easymodes/localization",
|
|
38
38
|
"sha256": "00e0e2d79c7fbc1f97b8e7cb10d4da4473a3f693d0d07493ad909c14ddfb906c"
|
|
39
39
|
}
|
|
40
40
|
],
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* sticker shows them twice:
|
|
6
6
|
*
|
|
7
7
|
* - as a QR code, `EQ01SG<SGTIN, 24 hex>DLK<key, 32 hex>` - the form 2.x's scanner parsed
|
|
8
|
-
* (`
|
|
8
|
+
* (`www/js/homematic-manager.js` at the tag 2.7.1), with a four-character prefix before `SG`;
|
|
9
9
|
* - printed, the SGTIN in groups of four and the key as 26 characters of eQ-3's base-32 alphabet in
|
|
10
10
|
* groups of 5-5-5-5-6 (`XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX`).
|
|
11
11
|
*
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* sticker shows them twice:
|
|
6
6
|
*
|
|
7
7
|
* - as a QR code, `EQ01SG<SGTIN, 24 hex>DLK<key, 32 hex>` - the form 2.x's scanner parsed
|
|
8
|
-
* (`
|
|
8
|
+
* (`www/js/homematic-manager.js` at the tag 2.7.1), with a four-character prefix before `SG`;
|
|
9
9
|
* - printed, the SGTIN in groups of four and the key as 26 characters of eQ-3's base-32 alphabet in
|
|
10
10
|
* groups of 5-5-5-5-6 (`XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX`).
|
|
11
11
|
*
|
|
@@ -45,6 +45,20 @@ export interface DecodedLinkFlags {
|
|
|
45
45
|
readonly unknownBits: number;
|
|
46
46
|
}
|
|
47
47
|
export declare function decodeLinkFlags(flags: number | undefined): DecodedLinkFlags;
|
|
48
|
+
/**
|
|
49
|
+
* Is this a link between two channels of one device - the button of a switch or dimmer actuator
|
|
50
|
+
* driving its own relay (`KEQ…:1` → `KEQ…:1`), or a dimmer's real channel and its virtual ones
|
|
51
|
+
* (`JEQ…:1` → `JEQ…:2`)? An address that does not parse is never part of one.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isInternalLink(link: Pick<Link, 'SENDER' | 'RECEIVER'>): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The `FLAGS` of a link as the grid shows them (B-86): rfd reports every device-internal link with
|
|
56
|
+
* `SENDER_BROKEN` set (a lab HM-LC-Sw1's own `:1` → `:1` answers `FLAGS: 1`, and the maintainer's
|
|
57
|
+
* dimmers and switch plugs flag each of their internal links), although the links work. For such a
|
|
58
|
+
* link the two broken bits carry no information and are dropped; a link to or from a peer that is
|
|
59
|
+
* not a device of this interface (`@1A2B3C:14`) keeps them, as does every other link.
|
|
60
|
+
*/
|
|
61
|
+
export declare function linkFlags(link: Pick<Link, 'SENDER' | 'RECEIVER' | 'FLAGS'>): DecodedLinkFlags;
|
|
48
62
|
/** `getLinks` request flags, as the RPC console offers them. */
|
|
49
63
|
export declare const GET_LINKS_FLAGS: {
|
|
50
64
|
readonly GROUP: 1;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* roles), the maintenance channel `:0` never does, and a channel without the matching role list is
|
|
12
12
|
* not offered at all.
|
|
13
13
|
*/
|
|
14
|
-
import { isMaintenanceAddress } from '../address/address.js';
|
|
14
|
+
import { isMaintenanceAddress, tryParseAddress } from '../address/address.js';
|
|
15
15
|
import { isChannelDescription, parseRoles } from '../devices/index.js';
|
|
16
16
|
/**
|
|
17
17
|
* `FLAGS` of a link record: the interface process marks the side whose configuration it could not
|
|
@@ -36,6 +36,30 @@ export function decodeLinkFlags(flags) {
|
|
|
36
36
|
unknownBits: bits & ~(LINK_FLAGS.SENDER_BROKEN | LINK_FLAGS.RECEIVER_BROKEN),
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Is this a link between two channels of one device - the button of a switch or dimmer actuator
|
|
41
|
+
* driving its own relay (`KEQ…:1` → `KEQ…:1`), or a dimmer's real channel and its virtual ones
|
|
42
|
+
* (`JEQ…:1` → `JEQ…:2`)? An address that does not parse is never part of one.
|
|
43
|
+
*/
|
|
44
|
+
export function isInternalLink(link) {
|
|
45
|
+
const sender = tryParseAddress(link.SENDER);
|
|
46
|
+
const receiver = tryParseAddress(link.RECEIVER);
|
|
47
|
+
return sender !== undefined && receiver !== undefined && sender.device === receiver.device;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The `FLAGS` of a link as the grid shows them (B-86): rfd reports every device-internal link with
|
|
51
|
+
* `SENDER_BROKEN` set (a lab HM-LC-Sw1's own `:1` → `:1` answers `FLAGS: 1`, and the maintainer's
|
|
52
|
+
* dimmers and switch plugs flag each of their internal links), although the links work. For such a
|
|
53
|
+
* link the two broken bits carry no information and are dropped; a link to or from a peer that is
|
|
54
|
+
* not a device of this interface (`@1A2B3C:14`) keeps them, as does every other link.
|
|
55
|
+
*/
|
|
56
|
+
export function linkFlags(link) {
|
|
57
|
+
const decoded = decodeLinkFlags(link.FLAGS);
|
|
58
|
+
if (!decoded.broken || !isInternalLink(link)) {
|
|
59
|
+
return decoded;
|
|
60
|
+
}
|
|
61
|
+
return { senderBroken: false, receiverBroken: false, broken: false, unknownBits: decoded.unknownBits };
|
|
62
|
+
}
|
|
39
63
|
/** `getLinks` request flags, as the RPC console offers them. */
|
|
40
64
|
export const GET_LINKS_FLAGS = {
|
|
41
65
|
GROUP: 1,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homematic-manager",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Configure and administer Homematic and HomematicIP devices - devices and channels, direct links, paramsets, RSSI, service messages, events and an RPC console - from a local HTTP/WebSocket server that also serves the web UI",
|
|
6
6
|
"keywords": [
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
"hm-simulator": "^1.3.0"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@homematic-manager/backend": "3.0.
|
|
71
|
-
"@homematic-manager/core": "3.0.
|
|
70
|
+
"@homematic-manager/backend": "3.0.1",
|
|
71
|
+
"@homematic-manager/core": "3.0.1",
|
|
72
72
|
"binrpc": "^4.2.0",
|
|
73
73
|
"homematic-rega": "^2.0.0",
|
|
74
74
|
"homematic-xmlrpc": "^2.0.0",
|