iobroker.proscenic 0.1.1 → 0.1.3
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/LICENSE +1 -1
- package/README.md +24 -7
- package/build/objects/object-definitions.js +2 -2
- package/build/objects/object-definitions.js.map +1 -1
- package/io-package.json +28 -2
- package/package.json +3 -2
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026 C@ptain Ch@os
|
|
3
|
+
Copyright (c) 2026 C@ptain Ch@os <butan_akrobat1t@icloud.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# ioBroker.proscenic
|
|
2
2
|
|
|
3
|
+
<img width="147" height="139" alt="image" src="https://github.com/user-attachments/assets/c5d6a8c4-e6e4-42d6-be61-2c79e37f5a60" />
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
3
8
|
Development-stage ioBroker adapter for supported Proscenic vacuum robots,
|
|
4
9
|
initially the Proscenic M7 Pro (`M7_PRO`, model `811_LDS`) through the legacy
|
|
5
10
|
Proscenic cloud/gateway path.
|
|
@@ -13,7 +18,10 @@ against the verified legacy European Proscenic cloud, enumerate one real M7 Pro,
|
|
|
13
18
|
connect to the cloud gateway, project normalized runtime states, and expose the
|
|
14
19
|
first real-device-validated control and maintenance objects.
|
|
15
20
|
|
|
16
|
-
Verified on
|
|
21
|
+
Verified on Proscenic M7 Pro so far:
|
|
22
|
+
|
|
23
|
+
<img width="1136" height="378" alt="image" src="https://github.com/user-attachments/assets/8a53c100-3ec4-41a0-8254-29cdf28c7000" />
|
|
24
|
+
|
|
17
25
|
|
|
18
26
|
- cloud login, token acquisition, device discovery, gateway discovery, framed
|
|
19
27
|
socket reception, decryption, bounded reconnect, and adapter unload cleanup;
|
|
@@ -23,15 +31,15 @@ Verified on one owner-local Proscenic M7 Pro so far:
|
|
|
23
31
|
modes, deep cleaning, and dust collection;
|
|
24
32
|
- consumable counters for filter, side brush, main brush, and sensors;
|
|
25
33
|
- recent maintenance/message history, including dust-bag messages;
|
|
26
|
-
-
|
|
34
|
+
- local-development live-map rendering for VIS, including
|
|
27
35
|
app-oriented map colors, no-go areas, room-zone candidates, charger marker,
|
|
28
36
|
and an interpolated pose trail.
|
|
29
37
|
|
|
30
|
-
The adapter is
|
|
31
|
-
|
|
38
|
+
The adapter is an early public beta. The supported hardware claim is limited to
|
|
39
|
+
the tested M7 Pro (`M7_PRO` / `811_LDS`) and the legacy cloud backend. Other
|
|
32
40
|
models, accounts, regions, firmware versions, Tuya-local control, room-cleaning
|
|
33
|
-
commands, final map storage/retention policy
|
|
34
|
-
|
|
41
|
+
commands, and final map storage/retention policy still require separate
|
|
42
|
+
evidence.
|
|
35
43
|
|
|
36
44
|
Raw payloads, serial numbers, gateway endpoints, device addresses, credentials,
|
|
37
45
|
packet captures, private maps, and home-layout data are not committed or exposed
|
|
@@ -63,6 +71,15 @@ Security policy and contribution requirements are documented in
|
|
|
63
71
|
|
|
64
72
|
## Changelog
|
|
65
73
|
|
|
74
|
+
### 0.1.3 (2026-09-14)
|
|
75
|
+
|
|
76
|
+
- Fixed ioBroker object role metadata for command buttons and the water level
|
|
77
|
+
state.
|
|
78
|
+
|
|
79
|
+
### 0.1.2 (2026-09-14)
|
|
80
|
+
|
|
81
|
+
- Updated public maintainer/contact metadata for ioBroker latest review.
|
|
82
|
+
|
|
66
83
|
### 0.1.1 (2026-09-14)
|
|
67
84
|
|
|
68
85
|
- Documented the npm first-publish bootstrap path and the Trusted Publishing
|
|
@@ -96,4 +113,4 @@ their respective owners.
|
|
|
96
113
|
|
|
97
114
|
MIT License. See [LICENSE](LICENSE).
|
|
98
115
|
|
|
99
|
-
Copyright (c) 2026 C@ptain Ch@os
|
|
116
|
+
Copyright (c) 2026 C@ptain Ch@os <butan_akrobat1t@icloud.com>
|
|
@@ -77,7 +77,7 @@ const STATE_DEFINITIONS = [
|
|
|
77
77
|
state("status.clean.totalTime", "Total cleaning time", "number", "value", { unit: "s", min: 0 }),
|
|
78
78
|
state("status.battery.percent", "Battery", "number", "value.battery", { unit: "%", min: 0, max: 100 }),
|
|
79
79
|
state("status.battery.rawPercent", "Raw battery", "number", "value.battery", { unit: "%", min: 0, max: 100 }),
|
|
80
|
-
state("status.water.level", "Water level", "number", "
|
|
80
|
+
state("status.water.level", "Water level", "number", "value", { min: 0 }),
|
|
81
81
|
state("status.mop.mode", "Mop mode", "number", "state", { min: 0 }),
|
|
82
82
|
state("status.fan.mode", "Fan mode", "string", "state"),
|
|
83
83
|
state("status.error.rawCount", "Raw error count", "number", "value", { min: 0 }),
|
|
@@ -197,7 +197,7 @@ function commandButton(definition) {
|
|
|
197
197
|
name: definition.command,
|
|
198
198
|
type: "boolean",
|
|
199
199
|
role: "button",
|
|
200
|
-
read:
|
|
200
|
+
read: false,
|
|
201
201
|
write: true,
|
|
202
202
|
def: false
|
|
203
203
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/objects/object-definitions.ts"],
|
|
4
|
-
"sourcesContent": ["import type { CommandDefinition } from \"../domain/commands\";\nimport { COMMAND_DEFINITIONS } from \"../domain/commands\";\n\nexport interface StateDefinition {\n\tid: string;\n\tobject: ioBroker.StateObject;\n}\n\nexport interface ChannelDefinition {\n\tid: string;\n\tobject: ioBroker.ChannelObject;\n}\n\nexport const CHANNEL_DEFINITIONS: readonly ChannelDefinition[] = [\n\tchannel(\"device\", \"Selected device\"),\n\tchannel(\"connection\", \"Connection\"),\n\tchannel(\"capabilities\", \"Capabilities\"),\n\tchannel(\"consumables\", \"Consumables\"),\n\tchannel(\"consumables.filter\", \"Filter\"),\n\tchannel(\"consumables.sideBrush\", \"Side brush\"),\n\tchannel(\"consumables.mainBrush\", \"Main brush\"),\n\tchannel(\"consumables.sensors\", \"Sensors\"),\n\tchannel(\"status\", \"Status\"),\n\tchannel(\"status.clean\", \"Cleaning\"),\n\tchannel(\"status.battery\", \"Battery\"),\n\tchannel(\"status.water\", \"Water\"),\n\tchannel(\"status.mop\", \"Mop\"),\n\tchannel(\"status.fan\", \"Fan\"),\n\tchannel(\"status.error\", \"Error\"),\n\tchannel(\"status.features\", \"Features\"),\n\tchannel(\"status.maintenance\", \"Maintenance\"),\n\tchannel(\"status.maintenance.history\", \"Maintenance message history\"),\n\tchannel(\"map\", \"Map metadata\"),\n\tchannel(\"map.live\", \"Experimental live map\"),\n\tchannel(\"commands\", \"Commands\"),\n\tchannel(\"commands.fan\", \"Fan commands\"),\n];\n\nexport const STATE_DEFINITIONS: readonly StateDefinition[] = [\n\tstate(\"device.code\", \"Device code\", \"string\", \"info.name\"),\n\tstate(\"device.model\", \"Device model\", \"string\", \"info.name\"),\n\tstate(\"device.online\", \"Device online\", \"boolean\", \"indicator.reachable\"),\n\tstate(\"device.image\", \"Device image\", \"string\", \"text\"),\n\tstate(\"connection.cloud\", \"Cloud connected\", \"boolean\", \"indicator.connected\"),\n\tstate(\"connection.gateway\", \"Gateway connected\", \"boolean\", \"indicator.connected\"),\n\tstate(\"connection.lastError\", \"Last redacted error\", \"string\", \"text\"),\n\tstate(\"connection.lastStatusEvent\", \"Last status event\", \"string\", \"date\"),\n\tstate(\"capabilities.statusRead\", \"Read status\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.commands\", \"Commands exposed\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.maps\", \"Maps exposed\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.consumables\", \"Consumables exposed\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.maintenanceMessages\", \"Maintenance messages exposed\", \"boolean\", \"indicator\"),\n\t...consumableStates(\"consumables.filter\", \"Filter\"),\n\t...consumableStates(\"consumables.sideBrush\", \"Side brush\"),\n\t...consumableStates(\"consumables.mainBrush\", \"Main brush\"),\n\t...consumableStates(\"consumables.sensors\", \"Sensors\"),\n\tstate(\"consumables.updated\", \"Last consumables update\", \"string\", \"date\"),\n\tstate(\"consumables.lastReadResult\", \"Last consumables read result\", \"string\", \"text\"),\n\tstate(\"consumables.lastError\", \"Last consumables read error\", \"string\", \"text\"),\n\tstate(\"status.mode\", \"Mode\", \"string\", \"state\"),\n\tstate(\"status.subMode\", \"Sub mode\", \"string\", \"state\"),\n\tstate(\"status.clean.area\", \"Cleaning area\", \"number\", \"value\", { unit: \"m\u00B2\", min: 0 }),\n\tstate(\"status.clean.time\", \"Cleaning time\", \"number\", \"value\", { unit: \"s\", min: 0 }),\n\tstate(\"status.clean.totalArea\", \"Total cleaning area\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.clean.totalTime\", \"Total cleaning time\", \"number\", \"value\", { unit: \"s\", min: 0 }),\n\tstate(\"status.battery.percent\", \"Battery\", \"number\", \"value.battery\", { unit: \"%\", min: 0, max: 100 }),\n\tstate(\"status.battery.rawPercent\", \"Raw battery\", \"number\", \"value.battery\", { unit: \"%\", min: 0, max: 100 }),\n\tstate(\"status.water.level\", \"Water level\", \"number\", \"level\", { min: 0 }),\n\tstate(\"status.mop.mode\", \"Mop mode\", \"number\", \"state\", { min: 0 }),\n\tstate(\"status.fan.mode\", \"Fan mode\", \"string\", \"state\"),\n\tstate(\"status.error.rawCount\", \"Raw error count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.hasWarning\", \"Has maintenance warning\", \"boolean\", \"indicator\"),\n\tstate(\"status.maintenance.warningCount\", \"Maintenance warning count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.code\", \"Last maintenance event code\", \"number\", \"value\"),\n\tstate(\"status.maintenance.level\", \"Last maintenance event level\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.message\", \"Maintenance message\", \"string\", \"text\"),\n\tstate(\"status.maintenance.details\", \"Maintenance details\", \"string\", \"text\"),\n\tstate(\"status.maintenance.eventCount\", \"Maintenance event count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.updated\", \"Last maintenance event update\", \"string\", \"date\"),\n\tstate(\"status.maintenance.history.items\", \"Maintenance message history\", \"string\", \"json\"),\n\tstate(\"status.maintenance.history.count\", \"Maintenance message history count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.history.totalCount\", \"Total maintenance message count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.history.latestCode\", \"Latest maintenance history code\", \"number\", \"value\"),\n\tstate(\"status.maintenance.history.latestLevel\", \"Latest maintenance history level\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.history.latestMessage\", \"Latest maintenance history message\", \"string\", \"text\"),\n\tstate(\"status.maintenance.history.latestEventTime\", \"Latest maintenance history event time\", \"string\", \"date\"),\n\tstate(\"status.maintenance.history.updated\", \"Last maintenance message history update\", \"string\", \"date\"),\n\tstate(\n\t\t\"status.maintenance.history.lastReadResult\",\n\t\t\"Last maintenance message history read result\",\n\t\t\"string\",\n\t\t\"text\",\n\t),\n\tstate(\"status.maintenance.history.lastError\", \"Last maintenance message history read error\", \"string\", \"text\"),\n\tstate(\"status.features.autoBoost\", \"Auto boost\", \"boolean\", \"indicator\"),\n\tstate(\"status.features.cleanComponents\", \"Clean components\", \"boolean\", \"indicator\"),\n\tstate(\"map.available\", \"Map data available\", \"boolean\", \"indicator\"),\n\tstate(\"map.id\", \"Map ID\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.pathId\", \"Path ID\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.width\", \"Map width\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.height\", \"Map height\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.resolution\", \"Map resolution\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.areaCount\", \"Map area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.compressedBytes\", \"Compressed map bytes\", \"number\", \"value\", { unit: \"B\", min: 0 }),\n\tstate(\"map.encodedBytes\", \"Encoded map bytes\", \"number\", \"value\", { unit: \"B\", min: 0 }),\n\tstate(\"map.updated\", \"Last map metadata update\", \"string\", \"date\"),\n\tstate(\"map.live.image\", \"Experimental live map image\", \"string\", \"text\"),\n\tstate(\"map.live.areas\", \"Experimental live map areas\", \"string\", \"json\"),\n\tstate(\"map.live.updated\", \"Last live map image update\", \"string\", \"date\"),\n\tstate(\"map.live.orientation\", \"Live map orientation\", \"string\", \"state\"),\n\tstate(\"map.live.poseCount\", \"Live map pose count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.rawPoseCount\", \"Raw live map pose count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.pathLineSegments\", \"Live map path line segments\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.skippedPathSegments\", \"Skipped live map path segments\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.currentAreaCount\", \"Current live map area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.cachedAreaCount\", \"Cached live map area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.renderedForbiddenAreaCount\", \"Rendered forbidden area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.renderedRoomAreaCount\", \"Rendered room area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.hasCachedStaticOverlays\", \"Has cached static live map overlays\", \"boolean\", \"indicator\"),\n\tstate(\"map.live.renderReason\", \"Last live map render reason\", \"string\", \"state\"),\n\tstate(\"map.live.lastPathId\", \"Last live map path ID\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.pathResetCount\", \"Live map path reset count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.lastPoseUpdated\", \"Last live map pose update\", \"string\", \"date\"),\n\tstate(\"map.live.decompressedBytes\", \"Live map decompressed bytes\", \"number\", \"value\", { unit: \"B\", min: 0 }),\n\t...COMMAND_DEFINITIONS.map(definition => commandButton(definition)),\n\tstate(\"commands.lastCommand\", \"Last command\", \"string\", \"text\"),\n\tstate(\"commands.lastResult\", \"Last command result\", \"string\", \"text\"),\n\tstate(\"commands.lastError\", \"Last command error\", \"string\", \"text\"),\n\tstate(\"commands.lastExecution\", \"Last command execution\", \"string\", \"date\"),\n];\n\nexport async function extendAdapterObjects(adapter: ioBroker.Adapter): Promise<void> {\n\tfor (const definition of CHANNEL_DEFINITIONS) {\n\t\tawait adapter.setObjectNotExistsAsync(definition.id, definition.object);\n\t}\n\n\tfor (const definition of STATE_DEFINITIONS) {\n\t\tawait adapter.setObjectNotExistsAsync(definition.id, definition.object);\n\t}\n}\n\nfunction channel(id: string, name: string): ChannelDefinition {\n\treturn {\n\t\tid,\n\t\tobject: {\n\t\t\t_id: id,\n\t\t\ttype: \"channel\",\n\t\t\tcommon: {\n\t\t\t\tname,\n\t\t\t},\n\t\t\tnative: {},\n\t\t},\n\t};\n}\n\nfunction state(\n\tid: string,\n\tname: string,\n\ttype: ioBroker.CommonType,\n\trole: string,\n\toptions: Partial<ioBroker.StateCommon> = {},\n): StateDefinition {\n\treturn {\n\t\tid,\n\t\tobject: {\n\t\t\t_id: id,\n\t\t\ttype: \"state\",\n\t\t\tcommon: {\n\t\t\t\tname,\n\t\t\t\ttype,\n\t\t\t\trole,\n\t\t\t\tread: true,\n\t\t\t\twrite: false,\n\t\t\t\t...options,\n\t\t\t},\n\t\t\tnative: {},\n\t\t},\n\t};\n}\n\nfunction consumableStates(prefix: string, name: string): StateDefinition[] {\n\treturn [\n\t\tstate(`${prefix}.usedSeconds`, `${name} used seconds`, \"number\", \"value\", { unit: \"s\", min: 0 }),\n\t\tstate(`${prefix}.intervalHours`, `${name} interval`, \"number\", \"value\", { unit: \"h\", min: 0 }),\n\t\tstate(`${prefix}.remainingPercent`, `${name} remaining`, \"number\", \"value\", { unit: \"%\" }),\n\t\tstate(`${prefix}.overdueHours`, `${name} overdue`, \"number\", \"value\", { unit: \"h\", min: 0 }),\n\t];\n}\n\nfunction commandButton(definition: CommandDefinition): StateDefinition {\n\treturn {\n\t\tid: definition.id,\n\t\tobject: {\n\t\t\t_id: definition.id,\n\t\t\ttype: \"state\",\n\t\t\tcommon: {\n\t\t\t\tname: definition.command,\n\t\t\t\ttype: \"boolean\",\n\t\t\t\trole: \"button\",\n\t\t\t\tread: true,\n\t\t\t\twrite: true,\n\t\t\t\tdef: false,\n\t\t\t},\n\t\t\tnative: {},\n\t\t},\n\t};\n}\n"],
|
|
4
|
+
"sourcesContent": ["import type { CommandDefinition } from \"../domain/commands\";\nimport { COMMAND_DEFINITIONS } from \"../domain/commands\";\n\nexport interface StateDefinition {\n\tid: string;\n\tobject: ioBroker.StateObject;\n}\n\nexport interface ChannelDefinition {\n\tid: string;\n\tobject: ioBroker.ChannelObject;\n}\n\nexport const CHANNEL_DEFINITIONS: readonly ChannelDefinition[] = [\n\tchannel(\"device\", \"Selected device\"),\n\tchannel(\"connection\", \"Connection\"),\n\tchannel(\"capabilities\", \"Capabilities\"),\n\tchannel(\"consumables\", \"Consumables\"),\n\tchannel(\"consumables.filter\", \"Filter\"),\n\tchannel(\"consumables.sideBrush\", \"Side brush\"),\n\tchannel(\"consumables.mainBrush\", \"Main brush\"),\n\tchannel(\"consumables.sensors\", \"Sensors\"),\n\tchannel(\"status\", \"Status\"),\n\tchannel(\"status.clean\", \"Cleaning\"),\n\tchannel(\"status.battery\", \"Battery\"),\n\tchannel(\"status.water\", \"Water\"),\n\tchannel(\"status.mop\", \"Mop\"),\n\tchannel(\"status.fan\", \"Fan\"),\n\tchannel(\"status.error\", \"Error\"),\n\tchannel(\"status.features\", \"Features\"),\n\tchannel(\"status.maintenance\", \"Maintenance\"),\n\tchannel(\"status.maintenance.history\", \"Maintenance message history\"),\n\tchannel(\"map\", \"Map metadata\"),\n\tchannel(\"map.live\", \"Experimental live map\"),\n\tchannel(\"commands\", \"Commands\"),\n\tchannel(\"commands.fan\", \"Fan commands\"),\n];\n\nexport const STATE_DEFINITIONS: readonly StateDefinition[] = [\n\tstate(\"device.code\", \"Device code\", \"string\", \"info.name\"),\n\tstate(\"device.model\", \"Device model\", \"string\", \"info.name\"),\n\tstate(\"device.online\", \"Device online\", \"boolean\", \"indicator.reachable\"),\n\tstate(\"device.image\", \"Device image\", \"string\", \"text\"),\n\tstate(\"connection.cloud\", \"Cloud connected\", \"boolean\", \"indicator.connected\"),\n\tstate(\"connection.gateway\", \"Gateway connected\", \"boolean\", \"indicator.connected\"),\n\tstate(\"connection.lastError\", \"Last redacted error\", \"string\", \"text\"),\n\tstate(\"connection.lastStatusEvent\", \"Last status event\", \"string\", \"date\"),\n\tstate(\"capabilities.statusRead\", \"Read status\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.commands\", \"Commands exposed\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.maps\", \"Maps exposed\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.consumables\", \"Consumables exposed\", \"boolean\", \"indicator\"),\n\tstate(\"capabilities.maintenanceMessages\", \"Maintenance messages exposed\", \"boolean\", \"indicator\"),\n\t...consumableStates(\"consumables.filter\", \"Filter\"),\n\t...consumableStates(\"consumables.sideBrush\", \"Side brush\"),\n\t...consumableStates(\"consumables.mainBrush\", \"Main brush\"),\n\t...consumableStates(\"consumables.sensors\", \"Sensors\"),\n\tstate(\"consumables.updated\", \"Last consumables update\", \"string\", \"date\"),\n\tstate(\"consumables.lastReadResult\", \"Last consumables read result\", \"string\", \"text\"),\n\tstate(\"consumables.lastError\", \"Last consumables read error\", \"string\", \"text\"),\n\tstate(\"status.mode\", \"Mode\", \"string\", \"state\"),\n\tstate(\"status.subMode\", \"Sub mode\", \"string\", \"state\"),\n\tstate(\"status.clean.area\", \"Cleaning area\", \"number\", \"value\", { unit: \"m\u00B2\", min: 0 }),\n\tstate(\"status.clean.time\", \"Cleaning time\", \"number\", \"value\", { unit: \"s\", min: 0 }),\n\tstate(\"status.clean.totalArea\", \"Total cleaning area\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.clean.totalTime\", \"Total cleaning time\", \"number\", \"value\", { unit: \"s\", min: 0 }),\n\tstate(\"status.battery.percent\", \"Battery\", \"number\", \"value.battery\", { unit: \"%\", min: 0, max: 100 }),\n\tstate(\"status.battery.rawPercent\", \"Raw battery\", \"number\", \"value.battery\", { unit: \"%\", min: 0, max: 100 }),\n\tstate(\"status.water.level\", \"Water level\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.mop.mode\", \"Mop mode\", \"number\", \"state\", { min: 0 }),\n\tstate(\"status.fan.mode\", \"Fan mode\", \"string\", \"state\"),\n\tstate(\"status.error.rawCount\", \"Raw error count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.hasWarning\", \"Has maintenance warning\", \"boolean\", \"indicator\"),\n\tstate(\"status.maintenance.warningCount\", \"Maintenance warning count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.code\", \"Last maintenance event code\", \"number\", \"value\"),\n\tstate(\"status.maintenance.level\", \"Last maintenance event level\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.message\", \"Maintenance message\", \"string\", \"text\"),\n\tstate(\"status.maintenance.details\", \"Maintenance details\", \"string\", \"text\"),\n\tstate(\"status.maintenance.eventCount\", \"Maintenance event count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.updated\", \"Last maintenance event update\", \"string\", \"date\"),\n\tstate(\"status.maintenance.history.items\", \"Maintenance message history\", \"string\", \"json\"),\n\tstate(\"status.maintenance.history.count\", \"Maintenance message history count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.history.totalCount\", \"Total maintenance message count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.history.latestCode\", \"Latest maintenance history code\", \"number\", \"value\"),\n\tstate(\"status.maintenance.history.latestLevel\", \"Latest maintenance history level\", \"number\", \"value\", { min: 0 }),\n\tstate(\"status.maintenance.history.latestMessage\", \"Latest maintenance history message\", \"string\", \"text\"),\n\tstate(\"status.maintenance.history.latestEventTime\", \"Latest maintenance history event time\", \"string\", \"date\"),\n\tstate(\"status.maintenance.history.updated\", \"Last maintenance message history update\", \"string\", \"date\"),\n\tstate(\n\t\t\"status.maintenance.history.lastReadResult\",\n\t\t\"Last maintenance message history read result\",\n\t\t\"string\",\n\t\t\"text\",\n\t),\n\tstate(\"status.maintenance.history.lastError\", \"Last maintenance message history read error\", \"string\", \"text\"),\n\tstate(\"status.features.autoBoost\", \"Auto boost\", \"boolean\", \"indicator\"),\n\tstate(\"status.features.cleanComponents\", \"Clean components\", \"boolean\", \"indicator\"),\n\tstate(\"map.available\", \"Map data available\", \"boolean\", \"indicator\"),\n\tstate(\"map.id\", \"Map ID\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.pathId\", \"Path ID\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.width\", \"Map width\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.height\", \"Map height\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.resolution\", \"Map resolution\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.areaCount\", \"Map area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.compressedBytes\", \"Compressed map bytes\", \"number\", \"value\", { unit: \"B\", min: 0 }),\n\tstate(\"map.encodedBytes\", \"Encoded map bytes\", \"number\", \"value\", { unit: \"B\", min: 0 }),\n\tstate(\"map.updated\", \"Last map metadata update\", \"string\", \"date\"),\n\tstate(\"map.live.image\", \"Experimental live map image\", \"string\", \"text\"),\n\tstate(\"map.live.areas\", \"Experimental live map areas\", \"string\", \"json\"),\n\tstate(\"map.live.updated\", \"Last live map image update\", \"string\", \"date\"),\n\tstate(\"map.live.orientation\", \"Live map orientation\", \"string\", \"state\"),\n\tstate(\"map.live.poseCount\", \"Live map pose count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.rawPoseCount\", \"Raw live map pose count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.pathLineSegments\", \"Live map path line segments\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.skippedPathSegments\", \"Skipped live map path segments\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.currentAreaCount\", \"Current live map area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.cachedAreaCount\", \"Cached live map area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.renderedForbiddenAreaCount\", \"Rendered forbidden area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.renderedRoomAreaCount\", \"Rendered room area count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.hasCachedStaticOverlays\", \"Has cached static live map overlays\", \"boolean\", \"indicator\"),\n\tstate(\"map.live.renderReason\", \"Last live map render reason\", \"string\", \"state\"),\n\tstate(\"map.live.lastPathId\", \"Last live map path ID\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.pathResetCount\", \"Live map path reset count\", \"number\", \"value\", { min: 0 }),\n\tstate(\"map.live.lastPoseUpdated\", \"Last live map pose update\", \"string\", \"date\"),\n\tstate(\"map.live.decompressedBytes\", \"Live map decompressed bytes\", \"number\", \"value\", { unit: \"B\", min: 0 }),\n\t...COMMAND_DEFINITIONS.map(definition => commandButton(definition)),\n\tstate(\"commands.lastCommand\", \"Last command\", \"string\", \"text\"),\n\tstate(\"commands.lastResult\", \"Last command result\", \"string\", \"text\"),\n\tstate(\"commands.lastError\", \"Last command error\", \"string\", \"text\"),\n\tstate(\"commands.lastExecution\", \"Last command execution\", \"string\", \"date\"),\n];\n\nexport async function extendAdapterObjects(adapter: ioBroker.Adapter): Promise<void> {\n\tfor (const definition of CHANNEL_DEFINITIONS) {\n\t\tawait adapter.setObjectNotExistsAsync(definition.id, definition.object);\n\t}\n\n\tfor (const definition of STATE_DEFINITIONS) {\n\t\tawait adapter.setObjectNotExistsAsync(definition.id, definition.object);\n\t}\n}\n\nfunction channel(id: string, name: string): ChannelDefinition {\n\treturn {\n\t\tid,\n\t\tobject: {\n\t\t\t_id: id,\n\t\t\ttype: \"channel\",\n\t\t\tcommon: {\n\t\t\t\tname,\n\t\t\t},\n\t\t\tnative: {},\n\t\t},\n\t};\n}\n\nfunction state(\n\tid: string,\n\tname: string,\n\ttype: ioBroker.CommonType,\n\trole: string,\n\toptions: Partial<ioBroker.StateCommon> = {},\n): StateDefinition {\n\treturn {\n\t\tid,\n\t\tobject: {\n\t\t\t_id: id,\n\t\t\ttype: \"state\",\n\t\t\tcommon: {\n\t\t\t\tname,\n\t\t\t\ttype,\n\t\t\t\trole,\n\t\t\t\tread: true,\n\t\t\t\twrite: false,\n\t\t\t\t...options,\n\t\t\t},\n\t\t\tnative: {},\n\t\t},\n\t};\n}\n\nfunction consumableStates(prefix: string, name: string): StateDefinition[] {\n\treturn [\n\t\tstate(`${prefix}.usedSeconds`, `${name} used seconds`, \"number\", \"value\", { unit: \"s\", min: 0 }),\n\t\tstate(`${prefix}.intervalHours`, `${name} interval`, \"number\", \"value\", { unit: \"h\", min: 0 }),\n\t\tstate(`${prefix}.remainingPercent`, `${name} remaining`, \"number\", \"value\", { unit: \"%\" }),\n\t\tstate(`${prefix}.overdueHours`, `${name} overdue`, \"number\", \"value\", { unit: \"h\", min: 0 }),\n\t];\n}\n\nfunction commandButton(definition: CommandDefinition): StateDefinition {\n\treturn {\n\t\tid: definition.id,\n\t\tobject: {\n\t\t\t_id: definition.id,\n\t\t\ttype: \"state\",\n\t\t\tcommon: {\n\t\t\t\tname: definition.command,\n\t\t\t\ttype: \"boolean\",\n\t\t\t\trole: \"button\",\n\t\t\t\tread: false,\n\t\t\t\twrite: true,\n\t\t\t\tdef: false,\n\t\t\t},\n\t\t\tnative: {},\n\t\t},\n\t};\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "proscenic",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.1.3": {
|
|
7
|
+
"en": "Fixed ioBroker object role metadata for command buttons and the water level state",
|
|
8
|
+
"de": "ioBroker-Objektrollen für Befehlstasten und den Wasserstand-State korrigiert",
|
|
9
|
+
"ru": "Исправлены метаданные ролей объектов ioBroker для кнопок команд и состояния уровня воды",
|
|
10
|
+
"pt": "Metadados de função dos objetos ioBroker corrigidos para botões de comando e estado do nível de água",
|
|
11
|
+
"nl": "ioBroker-objectrolmetadata gecorrigeerd voor opdrachtknoppen en de waterniveau-status",
|
|
12
|
+
"fr": "Correction des métadonnées de rôle des objets ioBroker pour les boutons de commande et l'état du niveau d'eau",
|
|
13
|
+
"it": "Corretti i metadati dei ruoli degli oggetti ioBroker per i pulsanti di comando e lo stato del livello dell'acqua",
|
|
14
|
+
"es": "Corregidos los metadatos de roles de objetos ioBroker para botones de comando y estado del nivel de agua",
|
|
15
|
+
"pl": "Poprawiono metadane ról obiektów ioBroker dla przycisków poleceń i stanu poziomu wody",
|
|
16
|
+
"uk": "Виправлено метадані ролей об'єктів ioBroker для кнопок команд і стану рівня води",
|
|
17
|
+
"zh-cn": "修正命令按钮和水位状态的 ioBroker 对象角色元数据"
|
|
18
|
+
},
|
|
19
|
+
"0.1.2": {
|
|
20
|
+
"en": "Updated public maintainer metadata for ioBroker latest review",
|
|
21
|
+
"de": "Öffentliche Maintainer-Metadaten für die ioBroker-Latest-Prüfung aktualisiert",
|
|
22
|
+
"ru": "Обновлены публичные метаданные сопровождающего для проверки ioBroker latest",
|
|
23
|
+
"pt": "Metadados públicos do mantenedor atualizados para a revisão ioBroker latest",
|
|
24
|
+
"nl": "Openbare maintainer-metadata bijgewerkt voor ioBroker latest-controle",
|
|
25
|
+
"fr": "Métadonnées publiques du mainteneur mises à jour pour la revue ioBroker latest",
|
|
26
|
+
"it": "Metadati pubblici del manutentore aggiornati per la revisione ioBroker latest",
|
|
27
|
+
"es": "Metadatos públicos del mantenedor actualizados para la revisión de ioBroker latest",
|
|
28
|
+
"pl": "Zaktualizowano publiczne metadane opiekuna do przeglądu ioBroker latest",
|
|
29
|
+
"uk": "Оновлено публічні метадані супровідника для перевірки ioBroker latest",
|
|
30
|
+
"zh-cn": "更新公开维护者元数据以用于 ioBroker latest 审核"
|
|
31
|
+
},
|
|
6
32
|
"0.1.1": {
|
|
7
33
|
"en": "Documented npm first-publish bootstrap and enabled the trusted publishing path for future releases",
|
|
8
34
|
"de": "npm-Erstveröffentlichung dokumentiert und Trusted-Publishing-Pfad für zukünftige Releases aktiviert",
|
|
@@ -56,7 +82,7 @@
|
|
|
56
82
|
"uk": "Адаптер ioBroker для вакуумних роботів Proscenic, які використовують застарілий хмарний шлюз Proscenic",
|
|
57
83
|
"zh-cn": "使用传统 Proscenic 云网关的 Proscenic 真空机器人的 ioBroker 适配器"
|
|
58
84
|
},
|
|
59
|
-
"authors": ["C@ptain Ch@os <
|
|
85
|
+
"authors": ["C@ptain Ch@os <butan_akrobat1t@icloud.com>"],
|
|
60
86
|
"keywords": ["proscenic", "vacuum", "robot", "m7 pro"],
|
|
61
87
|
"licenseInformation": {
|
|
62
88
|
"type": "free",
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.proscenic",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "ioBroker adapter for Proscenic vacuum robots using the legacy Proscenic cloud gateway",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "C@ptain Ch@os",
|
|
7
|
-
"email": "
|
|
7
|
+
"email": "butan_akrobat1t@icloud.com"
|
|
8
8
|
},
|
|
9
9
|
"contributors": [],
|
|
10
10
|
"homepage": "https://github.com/Musashi1965/ioBroker.proscenic",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"check:full": "npm run lint && npm run check && npm run build && npm test && npm run test:integration",
|
|
71
71
|
"lint": "eslint -c eslint.config.mjs .",
|
|
72
72
|
"translate": "translate-adapter",
|
|
73
|
+
"release:preflight": "scripts/publication-preflight.sh",
|
|
73
74
|
"release": "release-script",
|
|
74
75
|
"dev-server": "dev-server"
|
|
75
76
|
},
|