iobroker.idm-multitalent_002 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 zloe <klaus@zloebl.net>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,156 @@
1
+ ![Logo](admin/idm-multitalent_002.png)
2
+
3
+ ## Attention!
4
+ This is an open source adapter from an individual that is not related to the manufacturer, no warranty or guarantees!
5
+
6
+ ### You might loose warranty from the manufacturer!
7
+ # ioBroker.idm-multitalent_002
8
+ [![NPM version](https://img.shields.io/npm/v/iobroker.idm-multitalent_002.svg)](https://www.npmjs.com/package/iobroker.idm-multitalent_002)
9
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.idm-multitalent_002.svg)](https://www.npmjs.com/package/iobroker.idm-multitalent_002)
10
+ ![Number of Installations](https://iobroker.live/badges/idm-multitalent_002-installed.svg)
11
+ ![Current version in stable repository](https://iobroker.live/badges/idm-multitalent_002-stable.svg)
12
+ <!--[![Dependency Status](https://img.shields.io/david/zloe/iobroker.idm-multitalent_002.svg)](https://david-dm.org/zloe/iobroker.idm-multitalent_002)
13
+ -->
14
+ [![NPM](https://nodei.co/npm/iobroker.idm-multitalent_002.png?downloads=true)](https://nodei.co/npm/iobroker.idm-multitalent_002/)
15
+
16
+ **Tests:** ![Test and Release](https://github.com/zloe/ioBroker.idm-multitalent_002/workflows/Test%20and%20Release/badge.svg)
17
+
18
+ ## idm-multitalent_002 adapter for ioBroker
19
+ Read and write values of a iDM heatpump with multitalent.002 control.
20
+
21
+ Currently following versions are supported:
22
+ * TERRA050701 - idm701 ... mostly supported, protocol information missing, one experimently installation, running since April 6th, 2022
23
+ * TERRA061001 - idm712 ... supported, one experimental installation
24
+ * EVR-II071102 - idm750 ... experimentally supported, protocol information available, but no installation
25
+
26
+ You need a Ethernet to RS422 converter to connect to the multitalent control.
27
+ **Note** that you have to connect ground/shield of your converter to the ground of the control/heatpump in order to prevent electric influences on the sensor readings.
28
+ The values are read all 30 seconds. As the control is quite picky on the timing this is the fastest suggested polling time.
29
+ The changed values are also transferred once all 30 seconds (exactly before the values are read) to the control.
30
+
31
+ During bootup of the control (e.g. after a power loss) no values should be polled from the control. This is currently **NOT** ensured by the adapter. So you **manually** need to **stop** it. If the control of the heatpump did not start due to the adapter then simply stop the adapter and power cycle the control. This should fix the problem. Afterwards you can start the adapter again.
32
+
33
+ Example installation:
34
+ ![system overview](idm%20RS422%20Anschluss.drawio.png)
35
+
36
+ ## Changelog
37
+
38
+ ### **WORK_IN_PROGRESS**
39
+ * (zloe) improve error handling
40
+ ### 0.1.0 (2022-04-10)
41
+ * (zloe) request static data at a different (less frequent) interval or when changes are sent to the control
42
+ * (zloe) first running version, still missing proper error handling
43
+ * (zloe) do not use custom state parameters as they are overwritten in some circumstances (i do not yet understand how to do this properly)
44
+
45
+ ### 0.0.2 (2022-02-19)
46
+ * (zloe) initial release
47
+
48
+ ## License
49
+ MIT License
50
+
51
+ Copyright (c) 2022 zloe <klaus@zloebl.net>
52
+
53
+ Permission is hereby granted, free of charge, to any person obtaining a copy
54
+ of this software and associated documentation files (the "Software"), to deal
55
+ in the Software without restriction, including without limitation the rights
56
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
57
+ copies of the Software, and to permit persons to whom the Software is
58
+ furnished to do so, subject to the following conditions:
59
+
60
+ The above copyright notice and this permission notice shall be included in all
61
+ copies or substantial portions of the Software.
62
+
63
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
64
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
65
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
66
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
67
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
68
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
69
+ SOFTWARE.
70
+
71
+ ## Developer manual
72
+ Missing documentation about the data structures/blocks.
73
+
74
+ Attention, still experimental, ... the adapter sets values of the heatpump, so do not install, unless you know what you are doing and contacted the author!
75
+
76
+ ### Getting started
77
+
78
+ You are almost done, only a few steps left:
79
+ 1. Create a new repository on GitHub with the name `ioBroker.idm-multitalent_002`
80
+ 1. Initialize the current folder as a new git repository:
81
+ ```bash
82
+ git init -b main
83
+ git add .
84
+ git commit -m "Initial commit"
85
+ ```
86
+ 1. Link your local repository with the one on GitHub:
87
+ ```bash
88
+ git remote add origin https://github.com/zloe/ioBroker.idm-multitalent_002
89
+ ```
90
+
91
+ 1. Push all files to the GitHub repo:
92
+ ```bash
93
+ git push origin main
94
+ ```
95
+
96
+ 1. Head over to [main.js](main.js) and start programming!
97
+
98
+ ### Best Practices
99
+ We've collected some [best practices](https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices) regarding ioBroker development and coding in general. If you're new to ioBroker or Node.js, you should
100
+ check them out. If you're already experienced, you should also take a look at them - you might learn something new :)
101
+
102
+ ### Scripts in `package.json`
103
+ Several npm scripts are predefined for your convenience. You can run them using `npm run <scriptname>`
104
+ | Script name | Description |
105
+ |-------------|-------------|
106
+ | `test:js` | Executes the tests you defined in `*.test.js` files. |
107
+ | `test:package` | Ensures your `package.json` and `io-package.json` are valid. |
108
+ | `test:unit` | Tests the adapter startup with unit tests (fast, but might require module mocks to work). |
109
+ | `test:integration` | Tests the adapter startup with an actual instance of ioBroker. |
110
+ | `test` | Performs a minimal test run on package files and your tests. |
111
+ | `check` | Performs a type-check on your code (without compiling anything). |
112
+ | `lint` | Runs `ESLint` to check your code for formatting errors and potential bugs. |
113
+ | `release` | Creates a new release, see [`@alcalzone/release-script`](https://github.com/AlCalzone/release-script#usage) for more details. |
114
+
115
+ ### Writing tests
116
+ When done right, testing code is invaluable, because it gives you the
117
+ confidence to change your code while knowing exactly if and when
118
+ something breaks. A good read on the topic of test-driven development
119
+ is https://hackernoon.com/introduction-to-test-driven-development-tdd-61a13bc92d92.
120
+ Although writing tests before the code might seem strange at first, but it has very
121
+ clear upsides.
122
+
123
+ The template provides you with basic tests for the adapter startup and package files.
124
+ It is recommended that you add your own tests into the mix.
125
+
126
+ ### Publishing the adapter
127
+ Using GitHub Actions, you can enable automatic releases on npm whenever you push a new git tag that matches the form
128
+ `v<major>.<minor>.<patch>`. We **strongly recommend** that you do. The necessary steps are described in `.github/workflows/test-and-release.yml`.
129
+
130
+ Since you installed the release script, you can create a new
131
+ release simply by calling:
132
+ ```bash
133
+ npm run release
134
+ ```
135
+ Additional command line options for the release script are explained in the
136
+ [release-script documentation](https://github.com/AlCalzone/release-script#command-line).
137
+
138
+ To get your adapter released in ioBroker, please refer to the documentation
139
+ of [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository).
140
+
141
+ ### Test the adapter manually on a local ioBroker installation
142
+ In order to install the adapter locally without publishing, the following steps are recommended:
143
+ 1. Create a tarball from your dev directory:
144
+ ```bash
145
+ npm pack
146
+ ```
147
+ 1. Upload the resulting file to your ioBroker host
148
+ 1. Install it locally (The paths are different on Windows):
149
+ ```bash
150
+ cd /opt/iobroker
151
+ npm i /path/to/tarball.tgz
152
+ ```
153
+
154
+ For later updates, the above procedure is not necessary. Just do the following:
155
+ 1. Overwrite the changed files in the adapter directory (`/opt/iobroker/node_modules/iobroker.idm-multitalent_002`)
156
+ 1. Execute `iobroker upload idm-multitalent_002` on the ioBroker host
Binary file
@@ -0,0 +1,100 @@
1
+ <html>
2
+
3
+ <head>
4
+
5
+ <!-- Load ioBroker scripts and styles-->
6
+ <link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
7
+ <link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
8
+
9
+ <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
10
+ <script type="text/javascript" src="../../socket.io/socket.io.js"></script>
11
+
12
+ <script type="text/javascript" src="../../js/translate.js"></script>
13
+ <script type="text/javascript" src="../../lib/js/materialize.js"></script>
14
+ <script type="text/javascript" src="../../js/adapter-settings.js"></script>
15
+
16
+ <!-- Load our own files -->
17
+ <link rel="stylesheet" type="text/css" href="style.css" />
18
+ <script type="text/javascript" src="words.js"></script>
19
+
20
+ <script type="text/javascript">
21
+ // This will be called by the admin adapter when the settings page loads
22
+ function load(settings, onChange) {
23
+ // example: select elements with id=key and class=value and insert value
24
+ if (!settings) return;
25
+ $('.value').each(function () {
26
+ var $key = $(this);
27
+ var id = $key.attr('id');
28
+ if ($key.attr('type') === 'checkbox') {
29
+ // do not call onChange direct, because onChange could expect some arguments
30
+ $key.prop('checked', settings[id])
31
+ .on('change', () => onChange())
32
+ ;
33
+ } else {
34
+ // do not call onChange direct, because onChange could expect some arguments
35
+ $key.val(settings[id])
36
+ .on('change', () => onChange())
37
+ .on('keyup', () => onChange())
38
+ ;
39
+ }
40
+ });
41
+ onChange(false);
42
+ // reinitialize all the Materialize labels on the page if you are dynamically adding inputs:
43
+ if (M) M.updateTextFields();
44
+ }
45
+
46
+ // This will be called by the admin adapter when the user presses the save button
47
+ function save(callback) {
48
+ // example: select elements with class=value and build settings object
49
+ var obj = {};
50
+ $('.value').each(function () {
51
+ var $this = $(this);
52
+ if ($this.attr('type') === 'checkbox') {
53
+ obj[$this.attr('id')] = $this.prop('checked');
54
+ } else if ($this.attr('type') === 'number') {
55
+ obj[$this.attr('id')] = parseFloat($this.val());
56
+ } else {
57
+ obj[$this.attr('id')] = $this.val();
58
+ }
59
+ });
60
+ callback(obj);
61
+ }
62
+ </script>
63
+
64
+ </head>
65
+
66
+ <body>
67
+
68
+ <div class="m adapter-container">
69
+
70
+ <div class="row">
71
+ <div class="col s12 m4 l2">
72
+ <img src="idm-multitalent_002.png" class="logo">
73
+ </div>
74
+ </div>
75
+
76
+ <!-- Put your content here -->
77
+
78
+ <!-- For example columns with settings: -->
79
+ <!--<div class="col s6 input-field">
80
+ <input type="text" class="value" id="serialport" />
81
+ <label for="serialport" class="translate">Serial Port</label>
82
+ </div>
83
+ -->
84
+ <div class="col s6 input-field">
85
+ <input type="text" class="value" id="tcpserverip" />
86
+ <label for="tcpserverip" class="translate">TCP Server IP</label>
87
+ </div>
88
+ <div class="col s6 input-field">
89
+ <input type="text" class="value" id="tcpserverport" />
90
+ <label for="tcpserverport" class="translate">TCP Server Port</label>
91
+ </div>
92
+ <div class="col s6 input-field">
93
+ <input type="text" class="value" id="pollinterval" />
94
+ <label for="pollinterval" class="translate">Poll interval for sensor, status and error data [s]</label>
95
+ </div>
96
+ </div>
97
+
98
+ </body>
99
+
100
+ </html>
@@ -0,0 +1,32 @@
1
+ /* You can delete those if you want. I just found them very helpful */
2
+ * {
3
+ box-sizing: border-box
4
+ }
5
+ .m {
6
+ /* Don't cut off dropdowns! */
7
+ overflow: initial;
8
+ }
9
+ .m.adapter-container,
10
+ .m.adapter-container > div.App {
11
+ /* Fix layout/scrolling issues with tabs */
12
+ height: 100%;
13
+ width: 100%;
14
+ position: relative;
15
+ }
16
+ .m .select-wrapper + label {
17
+ /* The positioning for dropdown labels is messed up */
18
+ transform: none !important;
19
+ }
20
+
21
+ label > i[title] {
22
+ /* Display the help cursor for the tooltip icons and fix their positioning */
23
+ cursor: help;
24
+ margin-left: 0.25em;
25
+ }
26
+
27
+ .dropdown-content {
28
+ /* Don't wrap text in dropdowns */
29
+ white-space: nowrap;
30
+ }
31
+
32
+ /* Add your styles here */
package/admin/words.js ADDED
@@ -0,0 +1,41 @@
1
+ /*global systemDictionary:true */
2
+ 'use strict';
3
+
4
+ systemDictionary = {
5
+ 'idm-multitalent_002 adapter settings': {
6
+ 'en': 'Adapter settings for idm-multitalent_002',
7
+ 'de': 'Adaptereinstellungen für idm-multitalent_002',
8
+ 'ru': 'Настройки адаптера для idm-multitalent_002',
9
+ 'pt': 'Configurações do adaptador para idm-multitalent_002',
10
+ 'nl': 'Adapterinstellingen voor idm-multitalent_002',
11
+ 'fr': "Paramètres d'adaptateur pour idm-multitalent_002",
12
+ 'it': "Impostazioni dell'adattatore per idm-multitalent_002",
13
+ 'es': 'Ajustes del adaptador para idm-multitalent_002',
14
+ 'pl': 'Ustawienia adaptera dla idm-multitalent_002',
15
+ 'zh-cn': 'idm-multitalent_002的适配器设置'
16
+ },
17
+ 'option1': {
18
+ 'en': 'option1',
19
+ 'de': 'option1',
20
+ 'ru': 'option1',
21
+ 'pt': 'option1',
22
+ 'nl': 'option1',
23
+ 'fr': 'option1',
24
+ 'it': 'option1',
25
+ 'es': 'option1',
26
+ 'pl': 'option1',
27
+ 'zh-cn': 'option1'
28
+ },
29
+ 'option2': {
30
+ 'en': 'option2',
31
+ 'de': 'option2',
32
+ 'ru': 'option2',
33
+ 'pt': 'option2',
34
+ 'nl': 'option2',
35
+ 'fr': 'option2',
36
+ 'it': 'option2',
37
+ 'es': 'option2',
38
+ 'pl': 'option2',
39
+ 'zh-cn': 'option2'
40
+ }
41
+ };
@@ -0,0 +1,117 @@
1
+ {
2
+ "common": {
3
+ "name": "idm-multitalent_002",
4
+ "version": "0.1.0",
5
+ "news": {
6
+ "0.1.0": {
7
+ "en": "* first working release\nno error handling implemented so far\n\n## License\nMIT License\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
8
+ },
9
+ "0.0.2": {
10
+ "en": "* initial release\n\n## License\nMIT License\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.",
11
+ "de": "* Erstveröffentlichung\n\n## Lizenz\nMIT-Lizenz\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nHiermit wird jeder Person kostenlos die Erlaubnis erteilt, eine Kopie zu erhalten\ndieser Software und zugehörigen Dokumentationsdateien (die „Software“) zu behandeln\nin der Software ohne Einschränkung, einschließlich, aber nicht beschränkt auf die Rechte\nzu verwenden, zu kopieren, zu modifizieren, zusammenzuführen, zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen\nKopien der Software und Personen, denen die Software gehört, zu gestatten\ndazu eingerichtet werden, unter folgenden Bedingungen:\n\nDer obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen enthalten sein\nKopien oder wesentliche Teile der Software.\n\nDIE SOFTWARE WIRD \"WIE BESEHEN\" BEREITGESTELLT, OHNE JEGLICHE GEWÄHRLEISTUNG, AUSDRÜCKLICH ODER\nSTILLSCHWEIGEND, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT,\nEIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE\nAUTOREN ODER URHEBERRECHTSINHABER HAFTEN FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE\nHAFTUNG, OB AUS VERTRAG, DELIKT ODER ANDERWEITIG, ENTSTEHEND AUS,\nAUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN HANDLUNGEN MIT DER\nSOFTWARE.",
12
+ "ru": "* Первый выпуск\n\n## Лицензия\nЛицензия Массачусетского технологического института\n\nCopyright (c) zloe 2022 <klaus@zloebl.net>\n\nНастоящим предоставляется бесплатное разрешение любому лицу, получившему копию\nданного программного обеспечения и связанных с ним файлов документации (\"Программное обеспечение\"), для\nв Программном обеспечении без ограничений, включая, помимо прочего, права\nиспользовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и/или продавать\nкопий Программного обеспечения, а также разрешить лицам, которым Программное обеспечение\nпредоставляется для этого при соблюдении следующих условий:\n\nВышеприведенное уведомление об авторских правах и это уведомление о разрешении должны быть включены во все\nкопии или существенные части Программного обеспечения.\n\nПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ\nПОДРАЗУМЕВАЕТСЯ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ,\nПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЕ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ\nАВТОРЫ ИЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГОЕ.\nОТВЕТСТВЕННОСТЬ, БУДУЩАЯ ПО ДОГОВОРУ, ДЕЛИКТУ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩАЯ ИЗ,\nВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ СДЕЛКАМИ В\nПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.",
13
+ "pt": "* lançamento inicial\n\n## Licença\nLicença MIT\n\nDireitos autorais (c) 2022 zloe <klaus@zloebl.net>\n\nÉ concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia\ndeste software e arquivos de documentação associados (o \"Software\"), para lidar\nno Software sem restrição, incluindo, sem limitação, os direitos\nusar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender\ncópias do Software, e para permitir que as pessoas a quem o Software é\nequipado para tal, nas seguintes condições:\n\nO aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todos os\ncópias ou partes substanciais do Software.\n\nO SOFTWARE É FORNECIDO \"COMO ESTÁ\", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU\nIMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO,\nADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO A\nAUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTROS\nRESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE,\nFORA OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO\nPROGRAMAS.",
14
+ "nl": "* Eerste uitgave\n\n## Vergunning\nMIT-licentie\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nHierbij wordt kosteloos toestemming verleend aan eenieder die een exemplaar verkrijgt\nvan deze software en bijbehorende documentatiebestanden (de \"Software\"), om\nin de Software zonder beperking, inclusief maar niet beperkt tot de rechten\ngebruiken, kopiëren, wijzigen, samenvoegen, publiceren, distribueren, in sublicentie geven en/of verkopen\nkopieën van de Software, en om personen aan wie de Software is\ndaartoe ingericht, onder de volgende voorwaarden:\n\nDe bovenstaande copyrightkennisgeving en deze toestemmingskennisgeving zullen worden opgenomen in alle\nkopieën of substantiële delen van de Software.\n\nDE SOFTWARE WORDT GELEVERD \"AS IS\", ZONDER ENIGE GARANTIE, EXPLICIET OF\nIMPLICIET, INCLUSIEF MAAR NIET BEPERKT TOT DE GARANTIES VAN VERKOOPBAARHEID,\nGESCHIKTHEID VOOR EEN BEPAALD DOEL EN NIET-INBREUK. IN GEEN GEVAL ZAL DE\nAUTEURS OF AUTEURSRECHTHOUDERS ZIJN AANSPRAKELIJK VOOR ENIGE CLAIM, SCHADE OF ANDERE\nAANSPRAKELIJKHEID, ONGEACHT UIT EEN OVEREENKOMST, ONRECHTMATIGHEID OF ANDERSZINS, VOORTVLOEIEND UIT,\nBUITEN OF IN VERBAND MET DE SOFTWARE OF HET GEBRUIK OF ANDERE HANDELINGEN IN DE\nSOFTWARE.",
15
+ "fr": "* Première version\n\n## Licence\nLicence MIT\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nPermission est accordée, sans frais, à toute personne obtenant une copie\nde ce logiciel et des fichiers de documentation associés (le \"Logiciel\"), pour traiter\ndans le Logiciel sans restriction, y compris, sans s'y limiter, les droits\nutiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre\ncopies du Logiciel, et de permettre aux personnes à qui le Logiciel est\nfourni pour ce faire, sous réserve des conditions suivantes :\n\nL'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans tous\ndes copies ou des parties substantielles du Logiciel.\n\nLE LOGICIEL EST FOURNI \"TEL QUEL\", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU\nIMPLICITES, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE,\nADÉQUATION À UN USAGE PARTICULIER ET ABSENCE DE CONTREFAÇON. EN AUCUN CAS LE\nLES AUTEURS OU LES DÉTENTEURS DU COPYRIGHT SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE\nRESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, RÉSULTANT DE,\nEN DEHORS OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE\nLOGICIEL.",
16
+ "it": "* Versione iniziale\n\n## Licenza\nLicenza MIT\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nL'autorizzazione è concessa, gratuitamente, a chiunque ne ottenga una copia\ndi questo software e dei file di documentazione associati (il \"Software\"), da trattare\nnel Software senza restrizioni, inclusi senza limitazione i diritti\nutilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere\ncopie del Software e per consentire alle persone a cui è destinato il Software\nfornito a tal fine, alle seguenti condizioni:\n\nL'avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere inclusi in tutto\ncopie o parti sostanziali del Software.\n\nIL SOFTWARE VIENE FORNITO \"COSÌ COM'È\", SENZA ALCUN TIPO DI GARANZIA, ESPRESSA O\nIMPLICITE, COMPRESE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ,\nIDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO IL\nGLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRO\nRESPONSABILITÀ, SIA IN AZIONE CONTRATTUALE, ILLECITO O ALTRO, DERIVANTE DA,\nFUORI O IN COLLEGAMENTO CON IL SOFTWARE O L'UTILIZZO O ALTRE CONTRATTI NELLA\nSOFTWARE.",
17
+ "es": "* Versión inicial\n\n## Licencia\nLicencia MIT\n\nCopyright (c) 2022 zloe <klaus@zloebl.net>\n\nPor la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia\nde este software y los archivos de documentación asociados (el \"Software\"), para tratar\nen el Software sin restricciones, incluidos, entre otros, los derechos\nusar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender\ncopias del Software, y para permitir a las personas a quienes se les\nprovisto para hacerlo, sujeto a las siguientes condiciones:\n\nEl aviso de derechos de autor anterior y este aviso de permiso se incluirán en todos\ncopias o partes sustanciales del Software.\n\nEL SOFTWARE SE PROPORCIONA \"TAL CUAL\", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O\nIMPLÍCITO, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD,\nIDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO VIOLACIÓN. EN NINGÚN CASO LA\nLOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑOS U OTROS\nRESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA FORMA, DERIVADA DE,\nFUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL\nSOFTWARE.",
18
+ "pl": "* Pierwsze wydanie\n\n## Licencja\nLicencja MIT\n\nCopyright (c) 2022 zł <klaus@zloebl.net>\n\nNiniejszym udziela się nieodpłatnego zezwolenia każdej osobie otrzymującej kopię\ntego oprogramowania i związanych z nim plików dokumentacji („Oprogramowanie”), aby handlować\nw Oprogramowaniu bez ograniczeń, w tym bez ograniczeń praw\nużywać, kopiować, modyfikować, łączyć, publikować, rozpowszechniać, udzielać sublicencji i/lub sprzedawać\nkopie Oprogramowania oraz zezwalać osobom, dla których Oprogramowanie jest\nw tym celu, z zastrzeżeniem następujących warunków:\n\nPowyższa informacja o prawach autorskich i niniejsza informacja o pozwoleniu będą zawarte we wszystkich\nkopie lub istotne części Oprogramowania.\n\nOPROGRAMOWANIE JEST DOSTARCZANE „TAK JAK JEST”, BEZ JAKICHKOLWIEK GWARANCJI, WYRAŹNYCH LUB\nDOROZUMIANYCH, W TYM MIĘDZY INNYMI GWARANCJE WARTOŚCI HANDLOWEJ,\nPRZYDATNOŚĆ DO OKREŚLONEGO CELU I NIENARUSZALNOŚCI. W ŻADNYM WYPADKU NIE\nAUTORZY LUB POSIADACZE PRAW AUTORSKICH PONOSZĄ ODPOWIEDZIALNOŚĆ ZA WSZELKIE ROSZCZENIA, SZKODY LUB INNE\nODPOWIEDZIALNOŚĆ UMOWNA, CZYNNA LUB W INNY SPOSÓB, WYNIKAJĄCA Z,\nNIE ZWIĄZANE Z OPROGRAMOWANIEM LUB KORZYSTANIEM LUB INNYMI CZYNNOŚCIAMI W\nOPROGRAMOWANIE.",
19
+ "zh-cn": "* 初始发行\n\n## 执照\n麻省理工学院许可证\n\n版权所有 (c) 2022 zloe <klaus@zloebl.net>\n\n特此免费授予任何获得副本的人的许可\n本软件和相关文档文件(“软件”),以处理\n在软件中不受限制,包括但不限于权利\n使用、复制、修改、合并、发布、分发、再许可和/或出售\n软件的副本,并允许接收软件的人\n提供这样做,但须符合以下条件:\n\n以上版权声明和本许可声明应包含在所有\n软件的副本或大部分。\n\n本软件按“原样”提供,不提供任何形式的明示或\n暗示,包括但不限于对适销性的保证,\n适用于特定目的和不侵权。在任何情况下均不得\n作者或版权持有人应对任何索赔、损害或其他\n责任,无论是在合同诉讼、侵权行为还是其他方面,由以下原因引起:\n与本软件或本软件的使用或其他交易无关或与之相关\n软件。"
20
+ },
21
+ "0.0.1": {
22
+ "en": "initial release",
23
+ "de": "Erstveröffentlichung",
24
+ "ru": "Начальная версия",
25
+ "pt": "lançamento inicial",
26
+ "nl": "Eerste uitgave",
27
+ "fr": "Première version",
28
+ "it": "Versione iniziale",
29
+ "es": "Versión inicial",
30
+ "pl": "Pierwsze wydanie",
31
+ "zh-cn": "首次出版"
32
+ }
33
+ },
34
+ "title": "iDM multitalent.002",
35
+ "titleLang": {
36
+ "en": "iDM multitalent.002",
37
+ "de": "iDM multitalent.002",
38
+ "ru": "iDM multitalent.002",
39
+ "pt": "iDM multitalent.002",
40
+ "nl": "iDM multitalent.002",
41
+ "fr": "iDM multitalent.002",
42
+ "it": "iDM multitalent.002",
43
+ "es": "iDM multitalent.002",
44
+ "pl": "iDM multitalent.002",
45
+ "zh-cn": "iDM multitalent.002"
46
+ },
47
+ "desc": {
48
+ "en": "Read and write values of a iDM heatpump with multitalent.002 control.",
49
+ "de": "Lesen und schreiben Sie Werte einer iDM Wärmepumpe mit multitalent.002 Steuerung.",
50
+ "ru": "Чтение и запись значений теплового насоса iDM с управлением multitalent.002.",
51
+ "pt": "Ler e gravar valores de uma bomba de calor iDM com controle multitalent.002.",
52
+ "nl": "Lees en schrijf waarden van een iDM warmtepomp met multitalent.002 besturing.",
53
+ "fr": "Lecture et écriture des valeurs d'une pompe à chaleur iDM avec commande multitalent.002.",
54
+ "it": "Leggi e scrivi valori di una pompa di calore iDM con controllo multitalent.002.",
55
+ "es": "Leer y escribir valores de una bomba de calor iDM con control multitalent.002.",
56
+ "pl": "Odczyt i zapis wartości pompy ciepła iDM ze sterowaniem multitalent.002.",
57
+ "zh-cn": "读取和写入具有 multitalent.002 控制的 iDM 热泵的值。"
58
+ },
59
+ "authors": [
60
+ "zloe <klaus@zloebl.net>"
61
+ ],
62
+ "keywords": [
63
+ "iDM",
64
+ "heating",
65
+ "heatpump",
66
+ "multitalent"
67
+ ],
68
+ "license": "MIT",
69
+ "platform": "Javascript/Node.js",
70
+ "main": "main.js",
71
+ "icon": "idm-multitalent_002.png",
72
+ "enabled": true,
73
+ "extIcon": "https://raw.githubusercontent.com/zloe/ioBroker.idm-multitalent_002/main/admin/idm-multitalent_002.png",
74
+ "readme": "https://github.com/zloe/ioBroker.idm-multitalent_002/blob/main/README.md",
75
+ "loglevel": "info",
76
+ "mode": "daemon",
77
+ "type": "climate-control",
78
+ "compact": true,
79
+ "connectionType": "local",
80
+ "dataSource": "poll",
81
+ "materialize": true,
82
+ "dependencies": [
83
+ {
84
+ "js-controller": ">=2.0.0"
85
+ }
86
+ ]
87
+ },
88
+ "native": {
89
+ "tcpserverip": "192.168.2.42",
90
+ "tcpserverport": 4001,
91
+ "pollinterval": 30
92
+ },
93
+ "objects": [],
94
+ "instanceObjects": [
95
+ {
96
+ "_id": "info",
97
+ "type": "channel",
98
+ "common": {
99
+ "name": "Information"
100
+ },
101
+ "native": {}
102
+ },
103
+ {
104
+ "_id": "info.connection",
105
+ "type": "state",
106
+ "common": {
107
+ "role": "indicator.connected",
108
+ "name": "If connected to iDM Multitalent.002 control",
109
+ "type": "boolean",
110
+ "read": true,
111
+ "write": false,
112
+ "def": false
113
+ },
114
+ "native": {}
115
+ }
116
+ ]
117
+ }
@@ -0,0 +1,19 @@
1
+ // This file extends the AdapterConfig type from "@types/iobroker"
2
+ // using the actual properties present in io-package.json
3
+ // in order to provide typings for adapter.config properties
4
+
5
+ import { native } from '../io-package.json';
6
+
7
+ type _AdapterConfig = typeof native;
8
+
9
+ // Augment the globally declared type ioBroker.AdapterConfig
10
+ declare global {
11
+ namespace ioBroker {
12
+ interface AdapterConfig extends _AdapterConfig {
13
+ // Do not enter anything here!
14
+ }
15
+ }
16
+ }
17
+
18
+ // this is required so the above AdapterConfig is found by TypeScript / type checking
19
+ export {};