iobroker.mqtt-plus 1.6.1 → 1.6.2
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 +93 -116
- package/admin/jsonConfig.json +435 -358
- package/admin/readme.md +359 -359
- package/build/main.js +195 -180
- package/build/main.js.map +1 -1
- package/io-package.json +228 -207
- package/package.json +50 -48
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,124 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**mqtt-plus**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* **
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* **Ack-Filter pro Mapping** — für Datenpunkte ohne echtes Gerät dahinter
|
|
1
|
+

|
|
2
|
+
# ioBroker.mqtt-plus
|
|
3
|
+
|
|
4
|
+
[](https://www.npmjs.com/package/iobroker.mqtt-plus)
|
|
5
|
+
[](https://www.npmjs.com/package/iobroker.mqtt-plus)
|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
[](https://nodei.co/npm/iobroker.mqtt-plus/)
|
|
10
|
+
|
|
11
|
+
**Tests:** 
|
|
12
|
+
|
|
13
|
+
## mqtt-plus adapter for ioBroker
|
|
14
|
+
|
|
15
|
+
**mqtt-plus** mirrors ioBroker states into the namespace of an already installed MQTT client
|
|
16
|
+
adapter (e.g. `mqtt.0`) and back. It creates the required folder structure automatically,
|
|
17
|
+
converts values on the fly, provides a secured web dashboard for backup/restore and can
|
|
18
|
+
additionally push the data to an external webhook via HTTP(S).
|
|
19
|
+
|
|
20
|
+
`mqtt-plus` does not speak the MQTT protocol itself. Connection, QoS and `retain` towards the
|
|
21
|
+
broker are handled entirely by the separately installed MQTT adapter; `mqtt-plus` only reads
|
|
22
|
+
and writes states in its namespace.
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* **Bidirectional mirroring** – `out` (ioBroker → MQTT), `in` (MQTT → ioBroker) or `both`.
|
|
27
|
+
* **Topic mode per mapping** – `single` (one shared topic) or `dual` following the common MQTT
|
|
28
|
+
convention (state on `<topic>`, commands on `<topic>/set`).
|
|
29
|
+
* **Type conversion** – rounding, boolean ↔ number or automatic detection of the target type,
|
|
30
|
+
in both directions.
|
|
31
|
+
* **Unaltered timestamps** – the mirror takes over `ts`/`lc`/`q` of the source instead of
|
|
32
|
+
setting a new "now" on every copy. Inactive sources (age or quality) are detected and not kept
|
|
33
|
+
artificially fresh. Three sync modes per mapping allow exceptions for rarely reporting sensors
|
|
34
|
+
or targets that should always look fresh.
|
|
35
|
+
* **Force sync** – compares source and target directly and only heals real deviations, e.g.
|
|
36
|
+
after a restart or a lost connection.
|
|
37
|
+
* **Ack filter per mapping** – for states without a real device behind them
|
|
39
38
|
(`0_userdata.0.*`, `alias.0.*`).
|
|
40
|
-
* **
|
|
41
|
-
|
|
42
|
-
* **Remote
|
|
43
|
-
|
|
44
|
-
CA
|
|
45
|
-
* **Admin 7 Ready** — modernes `jsonConfig` mit responsiven Elementen.
|
|
39
|
+
* **Secured web dashboard** – basic auth with brute-force lockout, optional HTTPS, CSRF/CORS
|
|
40
|
+
protection. Live status, JSON structure preview, backup & restore.
|
|
41
|
+
* **Remote sync** – sends the data periodically or on demand via HTTP(S) POST to an external
|
|
42
|
+
webhook. The payload is freely configurable via template; TLS verification is always active
|
|
43
|
+
(an own CA can be configured for internal/self-signed targets).
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
Sync-Modus und Remote-Sync-Templates steht in **[admin/readme.md](admin/readme.md)** — das ist
|
|
49
|
-
derselbe Text, den ioBroker Admin auch in der Instanz-Ansicht anzeigt.
|
|
45
|
+
### Requirements
|
|
50
46
|
|
|
51
|
-
|
|
47
|
+
* js-controller >= 6.0.11
|
|
48
|
+
* Admin >= 7.6.20
|
|
49
|
+
* Node.js >= 22
|
|
50
|
+
* An installed and configured MQTT client adapter (e.g.
|
|
51
|
+
[ioBroker.mqtt](https://github.com/ioBroker/ioBroker.mqtt)) whose namespace is used as target
|
|
52
|
+
prefix.
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
nicht auf npm veröffentlicht — Installation läuft bis dahin ausschließlich direkt aus diesem
|
|
55
|
-
Git-Repository (siehe [Installation](#installation)). Der offizielle
|
|
56
|
-
[ioBroker Adapter-Checker](https://adapter-check.iobroker.in/) läuft bereits fehlerfrei bis auf
|
|
57
|
-
die Prüfungen, die zwingend eine vorherige npm-Veröffentlichung voraussetzen. Bis zur Aufnahme
|
|
58
|
-
fehlen noch:
|
|
54
|
+
### Configuration
|
|
59
55
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
The complete configuration guide (topic mode, echo protection, sync mode, remote sync
|
|
57
|
+
templates) is available in German in [admin/readme.md](admin/readme.md) – this is the same text
|
|
58
|
+
that ioBroker Admin shows in the instance view.
|
|
63
59
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
Installation direkt aus diesem Repository:
|
|
67
|
-
|
|
68
|
-
**Über die Admin-Oberfläche:**
|
|
69
|
-
Instanzen → "+" → Reiter *Benutzerdefiniert* → GitHub-URL eintragen:
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
https://github.com/Proxyyy87/ioBroker.mqtt-plus/
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Über die Kommandozeile:**
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
iobroker url https://github.com/Proxyyy87/ioBroker.mqtt-plus/tarball/main mqtt-plus
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Beim Installieren aus dem Git-Repository wird TypeScript automatisch kompiliert
|
|
82
|
-
(`npm`-`prepare`-Skript) — ein manueller Build-Schritt ist nicht nötig.
|
|
83
|
-
|
|
84
|
-
Vorausgesetzt wird ein bereits eingerichteter MQTT-Client-Adapter (z. B.
|
|
85
|
-
[ioBroker.mqtt](https://github.com/ioBroker/ioBroker.mqtt)), dessen Namespace `mqtt-plus` als
|
|
86
|
-
Ziel-Präfix verwendet.
|
|
87
|
-
|
|
88
|
-
## Entwicklung
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
git clone https://github.com/Proxyyy87/ioBroker.mqtt-plus.git
|
|
92
|
-
cd ioBroker.mqtt-plus
|
|
93
|
-
npm install
|
|
94
|
-
npm run build # kompiliert src/*.ts nach build/
|
|
95
|
-
npm run watch # kompiliert bei Änderungen automatisch neu
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Wichtig für Pull Requests:** Der Ordner `build/` wird bewusst mitversioniert (nicht per
|
|
99
|
-
`.gitignore` ausgeschlossen), weil der offizielle ioBroker Adapter-Checker die Datei `main`
|
|
100
|
-
(`build/main.js`) direkt aus dem Repository lädt, ohne vorher `npm install`/`prepare`
|
|
101
|
-
auszuführen. Nach jeder Änderung an `src/*.ts` also `npm run build` laufen lassen und den
|
|
102
|
-
aktualisierten `build/`-Ordner mit committen.
|
|
103
|
-
|
|
104
|
-
Technisch basiert der Adapter auf TypeScript, `@iobroker/adapter-core` und `axios`; das
|
|
105
|
-
Web-Dashboard und der HTTP(S)-Server sind mit Bordmitteln von Node.js (`http`/`https`)
|
|
106
|
-
umgesetzt, ohne zusätzliches Web-Framework. `@iobroker/testing` ist als devDependency
|
|
107
|
-
vorbereitet, aktuell gibt es aber noch keine automatisierten Tests (siehe Test-Badge oben).
|
|
60
|
+
The adapter is currently in the review process for the official ioBroker repository.
|
|
108
61
|
|
|
109
62
|
## Changelog
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
*
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
63
|
+
<!--
|
|
64
|
+
Placeholder for the next version (at the beginning of the line):
|
|
65
|
+
### **WORK IN PROGRESS**
|
|
66
|
+
-->
|
|
67
|
+
### 1.6.2 (2026-09-22)
|
|
68
|
+
* (proxy) Web server retries several times if the port is still in use (e.g. during an update)
|
|
69
|
+
instead of shutting the instance down permanently
|
|
70
|
+
* (proxy) Compact mode compatibility: removed `process.exit()`, adapter timers are used for delays
|
|
71
|
+
* (proxy) Node.js 22 is required as minimum, dependencies updated
|
|
72
|
+
* (proxy) Admin configuration validated against the official jsonConfig schema
|
|
73
|
+
* (proxy) Translations for all supported languages, GitHub Actions workflow for tests and release
|
|
74
|
+
|
|
75
|
+
### 1.6.1 (2026-09-22)
|
|
76
|
+
* (proxy) Per-mapping sync mode: "standard", "pass every update" (same value with a newer
|
|
77
|
+
timestamp is mirrored, for rarely changing sensors) or "force as before 1.6.0"
|
|
78
|
+
* (proxy) Mapping settings are shown as accordion with two short rows per entry
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
MIT License
|
|
82
|
+
|
|
83
|
+
Copyright (c) 2026 proxy <zumloeschen@ich.ms>
|
|
84
|
+
|
|
85
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
86
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
87
|
+
in the Software without restriction, including without limitation the rights
|
|
88
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
89
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
90
|
+
furnished to do so, subject to the following conditions:
|
|
91
|
+
|
|
92
|
+
The above copyright notice and this permission notice shall be included in all
|
|
93
|
+
copies or substantial portions of the Software.
|
|
94
|
+
|
|
95
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
96
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
97
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
98
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
99
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
100
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
101
|
+
SOFTWARE.
|