iobroker.absolutehumidity 0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 BenAhrdt <github@ben-schmidt.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,138 @@
1
+ ![Logo](admin/absolutehumidity.png)
2
+ # ioBroker.absolutehumidity
3
+
4
+ [![NPM version](https://img.shields.io/npm/v/iobroker.absolutehumidity.svg)](https://www.npmjs.com/package/iobroker.absolutehumidity)
5
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.absolutehumidity.svg)](https://www.npmjs.com/package/iobroker.absolutehumidity)
6
+ ![Number of Installations](https://iobroker.live/badges/absolutehumidity-installed.svg)
7
+ ![Current version in stable repository](https://iobroker.live/badges/absolutehumidity-stable.svg)
8
+
9
+ [![NPM](https://nodei.co/npm/iobroker.absolutehumidity.png?downloads=true)](https://nodei.co/npm/iobroker.absolutehumidity/)
10
+
11
+ **Tests:** ![Test and Release](https://github.com/BenAhrdt/ioBroker.absolutehumidity/workflows/Test%20and%20Release/badge.svg)
12
+
13
+ ## absolutehumidity adapter for ioBroker
14
+
15
+ build absolute humidity from actual temperature and relative humidity
16
+
17
+ ## Developer manual
18
+ This section is intended for the developer. It can be deleted later.
19
+
20
+ ### DISCLAIMER
21
+
22
+ Please make sure that you consider copyrights and trademarks when you use names or logos of a company and add a disclaimer to your README.
23
+ You can check other adapters for examples or ask in the developer community. Using a name or logo of a company without permission may cause legal problems for you.
24
+
25
+ ### Getting started
26
+
27
+ You are almost done, only a few steps left:
28
+ 1. Create a new repository on GitHub with the name `ioBroker.absolutehumidity`
29
+ 1. Initialize the current folder as a new git repository:
30
+ ```bash
31
+ git init -b main
32
+ git add .
33
+ git commit -m "Initial commit"
34
+ ```
35
+ 1. Link your local repository with the one on GitHub:
36
+ ```bash
37
+ git remote add origin https://github.com/BenAhrdt/ioBroker.absolutehumidity
38
+ ```
39
+
40
+ 1. Push all files to the GitHub repo:
41
+ ```bash
42
+ git push origin main
43
+ ```
44
+ 1. Add a new secret under https://github.com/BenAhrdt/ioBroker.absolutehumidity/settings/secrets. It must be named `AUTO_MERGE_TOKEN` and contain a personal access token with push access to the repository, e.g. yours. You can create a new token under https://github.com/settings/tokens.
45
+
46
+ 1. Head over to [main.js](main.js) and start programming!
47
+
48
+ ### Best Practices
49
+ 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
50
+ check them out. If you're already experienced, you should also take a look at them - you might learn something new :)
51
+
52
+ ### State Roles
53
+ When creating state objects, it is important to use the correct role for the state. The role defines how the state should be interpreted by visualizations and other adapters. For a list of available roles and their meanings, please refer to the [state roles documentation](https://www.iobroker.net/#en/documentation/dev/stateroles.md).
54
+
55
+ **Important:** Do not invent your own custom role names. If you need a role that is not part of the official list, please contact the ioBroker developer community for guidance and discussion about adding new roles.
56
+
57
+ ### Scripts in `package.json`
58
+ Several npm scripts are predefined for your convenience. You can run them using `npm run <scriptname>`
59
+ | Script name | Description |
60
+ |-------------|-------------|
61
+ | `test:js` | Executes the tests you defined in `*.test.js` files. |
62
+ | `test:package` | Ensures your `package.json` and `io-package.json` are valid. |
63
+ | `test:integration` | Tests the adapter startup with an actual instance of ioBroker. |
64
+ | `test` | Performs a minimal test run on package files and your tests. |
65
+ | `check` | Performs a type-check on your code (without compiling anything). |
66
+ | `lint` | Runs `ESLint` to check your code for formatting errors and potential bugs. |
67
+ | `translate` | Translates texts in your adapter to all required languages, see [`@iobroker/adapter-dev`](https://github.com/ioBroker/adapter-dev#manage-translations) for more details. |
68
+ | `release` | Creates a new release, see [`@alcalzone/release-script`](https://github.com/AlCalzone/release-script#usage) for more details. |
69
+
70
+ ### Writing tests
71
+ When done right, testing code is invaluable, because it gives you the
72
+ confidence to change your code while knowing exactly if and when
73
+ something breaks. A good read on the topic of test-driven development
74
+ is https://hackernoon.com/introduction-to-test-driven-development-tdd-61a13bc92d92.
75
+ Although writing tests before the code might seem strange at first, but it has very
76
+ clear upsides.
77
+
78
+ The template provides you with basic tests for the adapter startup and package files.
79
+ It is recommended that you add your own tests into the mix.
80
+
81
+ ### Publishing the adapter
82
+ Using GitHub Actions, you can enable automatic releases on npm whenever you push a new git tag that matches the form
83
+ `v<major>.<minor>.<patch>`. We **strongly recommend** that you do. The necessary steps are described in `.github/workflows/test-and-release.yml`.
84
+
85
+ Since you installed the release script, you can create a new
86
+ release simply by calling:
87
+ ```bash
88
+ npm run release
89
+ ```
90
+ Additional command line options for the release script are explained in the
91
+ [release-script documentation](https://github.com/AlCalzone/release-script#command-line).
92
+
93
+ To get your adapter released in ioBroker, please refer to the documentation
94
+ of [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository).
95
+
96
+ ### Test the adapter manually with dev-server
97
+ Since you set up `dev-server`, you can use it to run, test and debug your adapter.
98
+
99
+ You may start `dev-server` by calling from your dev directory:
100
+ ```bash
101
+ dev-server watch
102
+ ```
103
+
104
+ The ioBroker.admin interface will then be available at http://localhost:undefined/
105
+
106
+ Please refer to the [`dev-server` documentation](https://github.com/ioBroker/dev-server#command-line) for more details.
107
+
108
+ ## Changelog
109
+ <!--
110
+ Placeholder for the next version (at the beginning of the line):
111
+ ### **WORK IN PROGRESS**
112
+ -->
113
+
114
+ ### **WORK IN PROGRESS**
115
+ * (BenAhrdt) initial release
116
+
117
+ ## License
118
+ MIT License
119
+
120
+ Copyright (c) 2026 BenAhrdt <github@ben-schmidt.net>
121
+
122
+ Permission is hereby granted, free of charge, to any person obtaining a copy
123
+ of this software and associated documentation files (the "Software"), to deal
124
+ in the Software without restriction, including without limitation the rights
125
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
126
+ copies of the Software, and to permit persons to whom the Software is
127
+ furnished to do so, subject to the following conditions:
128
+
129
+ The above copyright notice and this permission notice shall be included in all
130
+ copies or substantial portions of the Software.
131
+
132
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
133
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
134
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
135
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
136
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
137
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
138
+ SOFTWARE.
@@ -0,0 +1,16 @@
1
+ {
2
+ "i18n": true,
3
+ "type": "panel",
4
+ "items": {
5
+ "deviceManager": {
6
+ "type": "deviceManager",
7
+ "smallCards": false,
8
+ "newLine": true,
9
+ "xs": 12,
10
+ "sm": 12,
11
+ "md": 12,
12
+ "lg": 12,
13
+ "xl": 12
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,27 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" role="img" aria-labelledby="title desc">
2
+ <title id="title">Absolute Humidity</title>
3
+ <desc id="desc">Percent symbol with a thermometer on the lower left and a humidity drop on the upper right.</desc>
4
+ <defs>
5
+ <linearGradient id="stroke" x1="46" x2="220" y1="50" y2="212" gradientUnits="userSpaceOnUse">
6
+ <stop offset="0" stop-color="#37c4f2" />
7
+ <stop offset="1" stop-color="#0f4c81" />
8
+ </linearGradient>
9
+ <linearGradient id="fill" x1="80" x2="210" y1="88" y2="202" gradientUnits="userSpaceOnUse">
10
+ <stop offset="0" stop-color="#d9f8ff" />
11
+ <stop offset="1" stop-color="#79d7ef" />
12
+ </linearGradient>
13
+ </defs>
14
+
15
+ <path d="M116 194 162 62" fill="none" stroke="url(#stroke)" stroke-width="16" stroke-linecap="round" />
16
+
17
+ <circle cx="67" cy="164" r="28" fill="#071923" stroke="url(#stroke)" stroke-width="12" />
18
+ <path d="M67 158V75" fill="none" stroke="#071923" stroke-width="27" stroke-linecap="round" />
19
+ <path d="M67 158V75" fill="none" stroke="url(#stroke)" stroke-width="18" stroke-linecap="round" />
20
+ <path d="M67 157V76" fill="none" stroke="#d9f8ff" stroke-width="6" stroke-linecap="round" />
21
+ <path d="M67 75h19" fill="none" stroke="#d9f8ff" stroke-width="13" stroke-linecap="round" />
22
+ <circle cx="67" cy="164" r="18" fill="url(#fill)" />
23
+
24
+ <path d="M188 89c-12 17-29 39-32 61-4 29 16 51 41 51s45-22 41-51c-3-22-20-44-32-61-5-6-13-6-18 0Z" fill="#071923" stroke="url(#stroke)" stroke-width="12" stroke-linejoin="round" />
25
+ <path d="M197 118c-10 13-24 30-24 44 0 15 11 26 24 26s24-11 24-26c0-14-14-31-24-44Z" fill="url(#fill)" />
26
+ <path d="M185 160c0 9 7 16 17 19" fill="none" stroke="#eefcff" stroke-width="6" stroke-linecap="round" opacity=".85" />
27
+ </svg>
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Adaptereinstellungen für absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "Die Konfiguration erfolgt über den Device-Manager-Tab auf der linken Seite.",
4
+ "Manage devices in the Device Manager tab.": "Geräte werden im Device-Manager-Tab verwaltet.",
5
+ "Open Device Manager": "Device Manager öffnen",
6
+ "Open adapter tab": "Adapter-Tab öffnen",
7
+ "Manual calculation": "Manuelle Berechnung",
8
+ "Add device": "Gerät hinzufügen",
9
+ "Add a temperature and humidity device": "Temperatur- und Luftfeuchte-Gerät hinzufügen",
10
+ "Edit device": "Gerät bearbeiten",
11
+ "Delete device": "Gerät löschen",
12
+ "Delete this device?": "Dieses Gerät löschen?",
13
+ "Device not found": "Gerät nicht gefunden",
14
+ "Name": "Name",
15
+ "Temperature": "Temperatur",
16
+ "Temperature state": "Temperatur-State",
17
+ "Create temperature state in adapter": "Temperatur-State im Adapter anlegen",
18
+ "Relative humidity": "Relative Luftfeuchte",
19
+ "Relative humidity state": "State für relative Luftfeuchte",
20
+ "Create relative humidity state in adapter": "State für relative Luftfeuchte im Adapter anlegen",
21
+ "Absolute humidity": "Absolute Luftfeuchte",
22
+ "Dew point temperature": "Taupunkttemperatur"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Adapter settings for absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "Configuration is done via the Device Manager tab on the left side.",
4
+ "Manage devices in the Device Manager tab.": "Manage devices in the Device Manager tab.",
5
+ "Open Device Manager": "Open Device Manager",
6
+ "Open adapter tab": "Open adapter tab",
7
+ "Manual calculation": "Manual calculation",
8
+ "Add device": "Add device",
9
+ "Add a temperature and humidity device": "Add a temperature and humidity device",
10
+ "Edit device": "Edit device",
11
+ "Delete device": "Delete device",
12
+ "Delete this device?": "Delete this device?",
13
+ "Device not found": "Device not found",
14
+ "Name": "Name",
15
+ "Temperature": "Temperature",
16
+ "Temperature state": "Temperature state",
17
+ "Create temperature state in adapter": "Create temperature state in adapter",
18
+ "Relative humidity": "Relative humidity",
19
+ "Relative humidity state": "Relative humidity state",
20
+ "Create relative humidity state in adapter": "Create relative humidity state in adapter",
21
+ "Absolute humidity": "Absolute humidity",
22
+ "Dew point temperature": "Dew point temperature"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Ajustes del adaptador para absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "La configuración se realiza mediante la pestaña Device Manager del lado izquierdo.",
4
+ "Manage devices in the Device Manager tab.": "Los dispositivos se administran en la pestaña Device Manager.",
5
+ "Open Device Manager": "Abrir Device Manager",
6
+ "Open adapter tab": "Abrir pestaña del adaptador",
7
+ "Manual calculation": "Cálculo manual",
8
+ "Add device": "Añadir dispositivo",
9
+ "Add a temperature and humidity device": "Añadir dispositivo de temperatura y humedad",
10
+ "Edit device": "Editar dispositivo",
11
+ "Delete device": "Eliminar dispositivo",
12
+ "Delete this device?": "¿Eliminar este dispositivo?",
13
+ "Device not found": "Dispositivo no encontrado",
14
+ "Name": "Nombre",
15
+ "Temperature": "Temperatura",
16
+ "Temperature state": "Estado de temperatura",
17
+ "Create temperature state in adapter": "Crear estado de temperatura en el adaptador",
18
+ "Relative humidity": "Humedad relativa",
19
+ "Relative humidity state": "Estado de humedad relativa",
20
+ "Create relative humidity state in adapter": "Crear estado de humedad relativa en el adaptador",
21
+ "Absolute humidity": "Humedad absoluta",
22
+ "Dew point temperature": "Temperatura del punto de rocío"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Paramètres d'adaptateur pour absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "La configuration se fait via l'onglet Device Manager situé à gauche.",
4
+ "Manage devices in the Device Manager tab.": "Les appareils sont gérés dans l'onglet Device Manager.",
5
+ "Open Device Manager": "Ouvrir Device Manager",
6
+ "Open adapter tab": "Ouvrir l'onglet de l'adaptateur",
7
+ "Manual calculation": "Calcul manuel",
8
+ "Add device": "Ajouter un appareil",
9
+ "Add a temperature and humidity device": "Ajouter un appareil de température et humidité",
10
+ "Edit device": "Modifier l'appareil",
11
+ "Delete device": "Supprimer l'appareil",
12
+ "Delete this device?": "Supprimer cet appareil ?",
13
+ "Device not found": "Appareil introuvable",
14
+ "Name": "Nom",
15
+ "Temperature": "Température",
16
+ "Temperature state": "État de température",
17
+ "Create temperature state in adapter": "Créer l'état de température dans l'adaptateur",
18
+ "Relative humidity": "Humidité relative",
19
+ "Relative humidity state": "État d'humidité relative",
20
+ "Create relative humidity state in adapter": "Créer l'état d'humidité relative dans l'adaptateur",
21
+ "Absolute humidity": "Humidité absolue",
22
+ "Dew point temperature": "Température du point de rosée"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Impostazioni dell'adattatore per absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "La configurazione viene eseguita tramite la scheda Device Manager sul lato sinistro.",
4
+ "Manage devices in the Device Manager tab.": "I dispositivi vengono gestiti nella scheda Device Manager.",
5
+ "Open Device Manager": "Apri Device Manager",
6
+ "Open adapter tab": "Apri scheda adattatore",
7
+ "Manual calculation": "Calcolo manuale",
8
+ "Add device": "Aggiungi dispositivo",
9
+ "Add a temperature and humidity device": "Aggiungi dispositivo di temperatura e umidità",
10
+ "Edit device": "Modifica dispositivo",
11
+ "Delete device": "Elimina dispositivo",
12
+ "Delete this device?": "Eliminare questo dispositivo?",
13
+ "Device not found": "Dispositivo non trovato",
14
+ "Name": "Nome",
15
+ "Temperature": "Temperatura",
16
+ "Temperature state": "Stato temperatura",
17
+ "Create temperature state in adapter": "Crea stato temperatura nell'adattatore",
18
+ "Relative humidity": "Umidità relativa",
19
+ "Relative humidity state": "Stato umidità relativa",
20
+ "Create relative humidity state in adapter": "Crea stato umidità relativa nell'adattatore",
21
+ "Absolute humidity": "Umidità assoluta",
22
+ "Dew point temperature": "Temperatura del punto di rugiada"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Adapterinstellingen voor absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "De configuratie gebeurt via het Device Manager-tabblad aan de linkerkant.",
4
+ "Manage devices in the Device Manager tab.": "Apparaten worden beheerd op het Device Manager-tabblad.",
5
+ "Open Device Manager": "Device Manager openen",
6
+ "Open adapter tab": "Adaptertabblad openen",
7
+ "Manual calculation": "Handmatige berekening",
8
+ "Add device": "Apparaat toevoegen",
9
+ "Add a temperature and humidity device": "Temperatuur- en vochtigheidsapparaat toevoegen",
10
+ "Edit device": "Apparaat bewerken",
11
+ "Delete device": "Apparaat verwijderen",
12
+ "Delete this device?": "Dit apparaat verwijderen?",
13
+ "Device not found": "Apparaat niet gevonden",
14
+ "Name": "Naam",
15
+ "Temperature": "Temperatuur",
16
+ "Temperature state": "Temperatuurstate",
17
+ "Create temperature state in adapter": "Temperatuurstate in adapter aanmaken",
18
+ "Relative humidity": "Relatieve luchtvochtigheid",
19
+ "Relative humidity state": "Relatieve-luchtvochtigheidstate",
20
+ "Create relative humidity state in adapter": "Relatieve-luchtvochtigheidstate in adapter aanmaken",
21
+ "Absolute humidity": "Absolute luchtvochtigheid",
22
+ "Dew point temperature": "Dauwpunttemperatuur"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Ustawienia adaptera dla absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "Konfiguracja odbywa się za pomocą karty Device Manager po lewej stronie.",
4
+ "Manage devices in the Device Manager tab.": "Urządzenia są zarządzane na karcie Device Manager.",
5
+ "Open Device Manager": "Otwórz Device Manager",
6
+ "Open adapter tab": "Otwórz kartę adaptera",
7
+ "Manual calculation": "Obliczenie ręczne",
8
+ "Add device": "Dodaj urządzenie",
9
+ "Add a temperature and humidity device": "Dodaj urządzenie temperatury i wilgotności",
10
+ "Edit device": "Edytuj urządzenie",
11
+ "Delete device": "Usuń urządzenie",
12
+ "Delete this device?": "Usunąć to urządzenie?",
13
+ "Device not found": "Nie znaleziono urządzenia",
14
+ "Name": "Nazwa",
15
+ "Temperature": "Temperatura",
16
+ "Temperature state": "Stan temperatury",
17
+ "Create temperature state in adapter": "Utwórz stan temperatury w adapterze",
18
+ "Relative humidity": "Wilgotność względna",
19
+ "Relative humidity state": "Stan wilgotności względnej",
20
+ "Create relative humidity state in adapter": "Utwórz stan wilgotności względnej w adapterze",
21
+ "Absolute humidity": "Wilgotność bezwzględna",
22
+ "Dew point temperature": "Temperatura punktu rosy"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Configurações do adaptador para absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "A configuração é feita pela aba Device Manager no lado esquerdo.",
4
+ "Manage devices in the Device Manager tab.": "Os dispositivos são gerenciados na aba Device Manager.",
5
+ "Open Device Manager": "Abrir Device Manager",
6
+ "Open adapter tab": "Abrir aba do adaptador",
7
+ "Manual calculation": "Cálculo manual",
8
+ "Add device": "Adicionar dispositivo",
9
+ "Add a temperature and humidity device": "Adicionar dispositivo de temperatura e umidade",
10
+ "Edit device": "Editar dispositivo",
11
+ "Delete device": "Excluir dispositivo",
12
+ "Delete this device?": "Excluir este dispositivo?",
13
+ "Device not found": "Dispositivo não encontrado",
14
+ "Name": "Nome",
15
+ "Temperature": "Temperatura",
16
+ "Temperature state": "Estado de temperatura",
17
+ "Create temperature state in adapter": "Criar estado de temperatura no adaptador",
18
+ "Relative humidity": "Umidade relativa",
19
+ "Relative humidity state": "Estado de umidade relativa",
20
+ "Create relative humidity state in adapter": "Criar estado de umidade relativa no adaptador",
21
+ "Absolute humidity": "Umidade absoluta",
22
+ "Dew point temperature": "Temperatura do ponto de orvalho"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Настройки адаптера для absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "Настройка выполняется через вкладку Device Manager слева.",
4
+ "Manage devices in the Device Manager tab.": "Устройства управляются на вкладке Device Manager.",
5
+ "Open Device Manager": "Открыть Device Manager",
6
+ "Open adapter tab": "Открыть вкладку адаптера",
7
+ "Manual calculation": "Ручной расчет",
8
+ "Add device": "Добавить устройство",
9
+ "Add a temperature and humidity device": "Добавить устройство температуры и влажности",
10
+ "Edit device": "Редактировать устройство",
11
+ "Delete device": "Удалить устройство",
12
+ "Delete this device?": "Удалить это устройство?",
13
+ "Device not found": "Устройство не найдено",
14
+ "Name": "Имя",
15
+ "Temperature": "Температура",
16
+ "Temperature state": "Состояние температуры",
17
+ "Create temperature state in adapter": "Создать состояние температуры в адаптере",
18
+ "Relative humidity": "Относительная влажность",
19
+ "Relative humidity state": "Состояние относительной влажности",
20
+ "Create relative humidity state in adapter": "Создать состояние относительной влажности в адаптере",
21
+ "Absolute humidity": "Абсолютная влажность",
22
+ "Dew point temperature": "Температура точки росы"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "Налаштування адаптера для absolutehumidity",
3
+ "Configuration is done via the Device Manager tab on the left side.": "Налаштування виконується через вкладку Device Manager ліворуч.",
4
+ "Manage devices in the Device Manager tab.": "Пристрої керуються на вкладці Device Manager.",
5
+ "Open Device Manager": "Відкрити Device Manager",
6
+ "Open adapter tab": "Відкрити вкладку адаптера",
7
+ "Manual calculation": "Ручний розрахунок",
8
+ "Add device": "Додати пристрій",
9
+ "Add a temperature and humidity device": "Додати пристрій температури та вологості",
10
+ "Edit device": "Редагувати пристрій",
11
+ "Delete device": "Видалити пристрій",
12
+ "Delete this device?": "Видалити цей пристрій?",
13
+ "Device not found": "Пристрій не знайдено",
14
+ "Name": "Ім'я",
15
+ "Temperature": "Температура",
16
+ "Temperature state": "Стан температури",
17
+ "Create temperature state in adapter": "Створити стан температури в адаптері",
18
+ "Relative humidity": "Відносна вологість",
19
+ "Relative humidity state": "Стан відносної вологості",
20
+ "Create relative humidity state in adapter": "Створити стан відносної вологості в адаптері",
21
+ "Absolute humidity": "Абсолютна вологість",
22
+ "Dew point temperature": "Температура точки роси"
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "absolutehumidity adapter settings": "absolutehumidity的适配器设置",
3
+ "Configuration is done via the Device Manager tab on the left side.": "配置通过左侧的 Device Manager 标签页完成。",
4
+ "Manage devices in the Device Manager tab.": "设备在 Device Manager 标签页中管理。",
5
+ "Open Device Manager": "打开 Device Manager",
6
+ "Open adapter tab": "打开适配器标签页",
7
+ "Manual calculation": "手动计算",
8
+ "Add device": "添加设备",
9
+ "Add a temperature and humidity device": "添加温湿度设备",
10
+ "Edit device": "编辑设备",
11
+ "Delete device": "删除设备",
12
+ "Delete this device?": "删除此设备?",
13
+ "Device not found": "未找到设备",
14
+ "Name": "名称",
15
+ "Temperature": "温度",
16
+ "Temperature state": "温度状态",
17
+ "Create temperature state in adapter": "在适配器中创建温度状态",
18
+ "Relative humidity": "相对湿度",
19
+ "Relative humidity state": "相对湿度状态",
20
+ "Create relative humidity state in adapter": "在适配器中创建相对湿度状态",
21
+ "Absolute humidity": "绝对湿度",
22
+ "Dew point temperature": "露点温度"
23
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "i18n": true,
3
+ "type": "panel",
4
+ "items": {
5
+ "_configurationInfo": {
6
+ "type": "staticText",
7
+ "text": "Configuration is done via the Device Manager tab on the left side.",
8
+ "newLine": true,
9
+ "xs": 12,
10
+ "sm": 12,
11
+ "md": 12,
12
+ "lg": 12,
13
+ "xl": 12,
14
+ "style": {
15
+ "fontSize": 16,
16
+ "lineHeight": 1.5
17
+ }
18
+ },
19
+ "_configurationLink": {
20
+ "type": "staticLink",
21
+ "label": "Open adapter tab",
22
+ "href": "#tab-absolutehumidity",
23
+ "target": "_self",
24
+ "button": true,
25
+ "variant": "contained",
26
+ "color": "primary",
27
+ "newLine": true,
28
+ "xs": 12,
29
+ "sm": 12,
30
+ "md": 8,
31
+ "lg": 6,
32
+ "xl": 6,
33
+ "controlStyle": {
34
+ "backgroundColor": "#0f4c81",
35
+ "color": "#ffffff"
36
+ }
37
+ },
38
+ "_previewCard": {
39
+ "type": "staticText",
40
+ "format": "html",
41
+ "text": "<div class='ah-preview-card' style='width:300px;background:#d3d3d3;border-radius:4px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.25);margin-top:24px;color:#000;font-family:Roboto,Arial,sans-serif;'><div style='height:60px;background:#0f4c81;color:#fff;display:flex;align-items:center;padding:0 18px;gap:18px;font-weight:700;'><img src='adapter/absolutehumidity/absolutehumidity.svg' alt='' style='width:34px;height:34px;object-fit:contain;'><span>TestGeraet</span></div><div style='padding:18px 16px 20px;'><div style='color:#00a51a;font-size:20px;margin-bottom:18px;'>↔</div><div style='display:grid;grid-template-columns:1fr auto;gap:14px 16px;align-items:center;'><label for='ah-preview-temp'>Temperatur:</label><span><input id='ah-preview-temp' data-ah-temp type='number' value='21' step='0.1' style='width:72px;background:#fff;border:1px solid #ccc;border-radius:3px;padding:4px 6px;text-align:right;color:#000;' onchange='event.stopPropagation();event.stopImmediatePropagation();' oninput='event.stopPropagation();event.stopImmediatePropagation();const r=this.closest(\".ah-preview-card\"),t=Number(r.querySelector(\"[data-ah-temp]\").value),h=Number(r.querySelector(\"[data-ah-rh]\").value),abs=r.querySelector(\"[data-ah-abs]\"),dew=r.querySelector(\"[data-ah-dew]\");if(Number.isFinite(t)&&Number.isFinite(h)&&h>=0&&h<=100){const es=6.112*Math.exp((17.67*t)/(t+243.5)),e=h/100*es;abs.textContent=(Math.round(((216.7*e)/(273.15+t))*100)/100).toFixed(2);}else abs.textContent=\"\";if(Number.isFinite(t)&&Number.isFinite(h)&&h>0&&h<=100){const a=Math.log(h/100)+(17.62*t)/(243.12+t);dew.textContent=(Math.round(((243.12*a)/(17.62-a))*100)/100).toFixed(2);}else dew.textContent=\"\";'> <span style='color:#555;font-size:12px;'>°C</span></span><label for='ah-preview-rh'>Relative Luftfeuchte:</label><span><input id='ah-preview-rh' data-ah-rh type='number' value='50' min='0' max='100' step='1' style='width:72px;background:#fff;border:1px solid #ccc;border-radius:3px;padding:4px 6px;text-align:right;color:#000;' onchange='event.stopPropagation();event.stopImmediatePropagation();' oninput='event.stopPropagation();event.stopImmediatePropagation();const r=this.closest(\".ah-preview-card\"),t=Number(r.querySelector(\"[data-ah-temp]\").value),h=Number(r.querySelector(\"[data-ah-rh]\").value),abs=r.querySelector(\"[data-ah-abs]\"),dew=r.querySelector(\"[data-ah-dew]\");if(Number.isFinite(t)&&Number.isFinite(h)&&h>=0&&h<=100){const es=6.112*Math.exp((17.67*t)/(t+243.5)),e=h/100*es;abs.textContent=(Math.round(((216.7*e)/(273.15+t))*100)/100).toFixed(2);}else abs.textContent=\"\";if(Number.isFinite(t)&&Number.isFinite(h)&&h>0&&h<=100){const a=Math.log(h/100)+(17.62*t)/(243.12+t);dew.textContent=(Math.round(((243.12*a)/(17.62-a))*100)/100).toFixed(2);}else dew.textContent=\"\";'> <span style='color:#555;font-size:12px;'>%</span></span><span>Absolute Luftfeuchte:</span><span style='text-align:right;'><span data-ah-abs>9.16</span> <span style='color:#555;font-size:12px;'>g/m³</span></span><span>Taupunkttemperatur:</span><span style='text-align:right;'><span data-ah-dew>10.18</span> <span style='color:#555;font-size:12px;'>°C</span></span></div><div style='height:34px;'></div></div></div>",
42
+ "newLine": true,
43
+ "xs": 12,
44
+ "sm": 12,
45
+ "md": 8,
46
+ "lg": 6,
47
+ "xl": 6
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "common": {
3
+ "name": "absolutehumidity",
4
+ "version": "0.0.1",
5
+ "news": {
6
+ "0.0.1": {
7
+ "en": "initial release",
8
+ "de": "Erstveröffentlichung",
9
+ "ru": "Начальная версия",
10
+ "pt": "lançamento inicial",
11
+ "nl": "Eerste uitgave",
12
+ "fr": "Première version",
13
+ "it": "Versione iniziale",
14
+ "es": "Versión inicial",
15
+ "pl": "Pierwsze wydanie",
16
+ "uk": "Початкова версія",
17
+ "zh-cn": "首次出版"
18
+ }
19
+ },
20
+ "titleLang": {
21
+ "en": "Absolute Humidity",
22
+ "de": "Absolute Luftfeuchtigkeit",
23
+ "ru": "Абсолютная влажность",
24
+ "pt": "Umidade Absoluta",
25
+ "nl": "Absolute vochtigheid",
26
+ "fr": "Humidité absolue",
27
+ "it": "Umidità assoluta",
28
+ "es": "Humedad absoluta",
29
+ "pl": "Wilgotność bezwzględna",
30
+ "uk": "Абсолютна вологість",
31
+ "zh-cn": "绝对湿度"
32
+ },
33
+ "desc": {
34
+ "en": "build absolute humidity from actual temperature and relative humidity",
35
+ "de": "Ermitteln Sie die absolute Luftfeuchtigkeit aus der tatsächlichen Temperatur und der relativen Luftfeuchtigkeit",
36
+ "ru": "построить абсолютную влажность на основе фактической температуры и относительной влажности",
37
+ "pt": "construir umidade absoluta a partir da temperatura real e umidade relativa",
38
+ "nl": "bouw de absolute vochtigheid op uit de werkelijke temperatuur en de relatieve vochtigheid",
39
+ "fr": "construire l'humidité absolue à partir de la température réelle et de l'humidité relative",
40
+ "it": "costruire l'umidità assoluta dalla temperatura effettiva e dall'umidità relativa",
41
+ "es": "construir humedad absoluta a partir de la temperatura real y la humedad relativa",
42
+ "pl": "zbuduj wilgotność bezwzględną na podstawie rzeczywistej temperatury i wilgotności względnej",
43
+ "uk": "побудувати абсолютну вологість з фактичної температури та відносної вологості",
44
+ "zh-cn": "根据实际温度和相对湿度建立绝对湿度"
45
+ },
46
+ "authors": [
47
+ "BenAhrdt <github@ben-schmidt.net>"
48
+ ],
49
+ "keywords": [
50
+ "absolute Humidity",
51
+ "dewpoint temperature"
52
+ ],
53
+ "licenseInformation": {
54
+ "type": "free",
55
+ "license": "MIT"
56
+ },
57
+ "platform": "Javascript/Node.js",
58
+ "icon": "absolutehumidity.svg",
59
+ "enabled": true,
60
+ "extIcon": "https://raw.githubusercontent.com/BenAhrdt/ioBroker.absolutehumidity/main/admin/absolutehumidity.svg",
61
+ "readme": "https://github.com/BenAhrdt/ioBroker.absolutehumidity/blob/main/README.md",
62
+ "loglevel": "info",
63
+ "tier": 3,
64
+ "mode": "daemon",
65
+ "type": "weather",
66
+ "compact": true,
67
+ "connectionType": "local",
68
+ "dataSource": "push",
69
+ "supportedMessages": {
70
+ "deviceManager": true
71
+ },
72
+ "adminUI": {
73
+ "config": "json",
74
+ "tab": "json"
75
+ },
76
+ "adminTab": {
77
+ "singleton": true,
78
+ "name": {
79
+ "en": "Absolute Humidity",
80
+ "de": "Absolute Luftfeuchtigkeit",
81
+ "ru": "Абсолютная влажность",
82
+ "pt": "Umidade Absoluta",
83
+ "nl": "Absolute vochtigheid",
84
+ "fr": "Humidité absolue",
85
+ "it": "Umidità assoluta",
86
+ "es": "Humedad absoluta",
87
+ "pl": "Wilgotność bezwzględna",
88
+ "uk": "Абсолютна вологість",
89
+ "zh-cn": "绝对湿度"
90
+ },
91
+ "link": "TabConfig.json"
92
+ },
93
+ "dependencies": [
94
+ {
95
+ "js-controller": ">=6.0.11"
96
+ }
97
+ ],
98
+ "globalDependencies": [
99
+ {
100
+ "admin": ">=7.0.23"
101
+ }
102
+ ]
103
+ },
104
+ "native": {
105
+ "devices": []
106
+ },
107
+ "objects": [],
108
+ "instanceObjects": []
109
+ }