iobroker.weathersense 1.0.0 → 1.0.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/README.md CHANGED
@@ -10,12 +10,17 @@
10
10
 
11
11
  **Tests:** ![Test and Release](https://github.com/ltspicer/ioBroker.weathersense/workflows/Test%20and%20Release/badge.svg)
12
12
 
13
- ## weathersense adapter for ioBroker
13
+ ## WeatherSense adapter for ioBroker
14
14
 
15
15
  WeatherSense is a cloud for weather stations. This adapter reads data from the WeatherSense server.
16
16
 
17
17
  See: https://play.google.com/store/apps/details?id=com.emax.weahter&hl=de_CH
18
18
 
19
+ Some WiFi weather stations use the WeatherSense Cloud.
20
+
21
+ For example, this WiFi weather station from Ideoon (Pearl):
22
+
23
+ ![Screenshot](https://github.com/ltspicer/WeatherSense/blob/main/wetterstation.png)
19
24
 
20
25
  ## Use:
21
26
  Simply enter your WeatherSense account login details (email and password).
@@ -24,6 +29,14 @@ The data can also be sent via MQTT.
24
29
 
25
30
 
26
31
  ## Changelog
32
+ ### 1.0.2 (2025-07-02)
33
+
34
+ - New release because SSH troubles in dev portal
35
+
36
+ ### 1.0.1 (2025-07-02)
37
+
38
+ - Code cleanups
39
+
27
40
  ### 1.0.0 (2025-07-01)
28
41
 
29
42
  - Initial release
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Configuración del adaptador para WeatherSense",
3
+ "username": "Nombre de usuario de WeatherSense (correo electrónico)",
4
+ "passwort": "Contraseña de weathersense",
5
+ "mqtt_active": "Usar MQTT",
6
+ "broker_address": "Dirección IP del corredor MQTT",
7
+ "mqtt_user": "Usuario de MQTT",
8
+ "mqtt_pass": "Contraseña mqtt",
9
+ "mqtt_port": "Puerto MQTT",
10
+ "sensor_id": "ID de sensor (1-20)",
11
+ "storeJson": "Salvar json",
12
+ "storeDir": "Carpeta para el archivo JSON"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Paramètres de l'adaptateur pour WEATHERSENSE",
3
+ "username": "Nom d'utilisateur Weathersense (e-mail)",
4
+ "passwort": "Mot de passe WEATHERSENSE",
5
+ "mqtt_active": "Utiliser MQTT",
6
+ "broker_address": "Adresse IP du courtier MQTT",
7
+ "mqtt_user": "Utilisateur MQTT",
8
+ "mqtt_pass": "Mot de passe MQTT",
9
+ "mqtt_port": "Port MQTT",
10
+ "sensor_id": "ID du capteur (1-20)",
11
+ "storeJson": "Enregistrer JSON",
12
+ "storeDir": "Dossier pour le fichier json"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Impostazioni dell'adattatore per Weathersense",
3
+ "username": "Weathersense Nome utente (e -mail)",
4
+ "passwort": "Password di ammission",
5
+ "mqtt_active": "Usa mqtt",
6
+ "broker_address": "Indirizzo IP del broker MQTT",
7
+ "mqtt_user": "Utente MQTT",
8
+ "mqtt_pass": "Password MQTT",
9
+ "mqtt_port": "Porta mqtt",
10
+ "sensor_id": "ID sensore (1-20)",
11
+ "storeJson": "Salva JSON",
12
+ "storeDir": "Cartella per il file JSON"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Adapterinstellingen voor weerssense",
3
+ "username": "WeatherSense gebruikersnaam (e -mail)",
4
+ "passwort": "WeatherSense -wachtwoord",
5
+ "mqtt_active": "Gebruik MQTT",
6
+ "broker_address": "MQTT -makelaar IP -adres",
7
+ "mqtt_user": "MQTT -gebruiker",
8
+ "mqtt_pass": "MQTT -wachtwoord",
9
+ "mqtt_port": "MQTT -poort",
10
+ "sensor_id": "Sensor-ID (1-20)",
11
+ "storeJson": "Bewaar JSON",
12
+ "storeDir": "Map voor JSON -bestand"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Ustawienia adaptera dla Weathersense",
3
+ "username": "Weathersense Username (e -mail)",
4
+ "passwort": "WEATHERSENSE Hasło",
5
+ "mqtt_active": "Użyj MQTT",
6
+ "broker_address": "MQTT Broker adres IP",
7
+ "mqtt_user": "Użytkownik MQTT",
8
+ "mqtt_pass": "Hasło MQTT",
9
+ "mqtt_port": "Port MQTT",
10
+ "sensor_id": "Identyfikator czujnika (1-20)",
11
+ "storeJson": "Zapisz JSON",
12
+ "storeDir": "Folder dla pliku JSON"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Configurações do adaptador para WeatherSense",
3
+ "username": "WeatherSense Nome de usuário (email)",
4
+ "passwort": "Senha de WeatherSense",
5
+ "mqtt_active": "Use MQTT",
6
+ "broker_address": "Endereço IP do corretor MQTT",
7
+ "mqtt_user": "Usuário MQTT",
8
+ "mqtt_pass": "Senha MQTT",
9
+ "mqtt_port": "Porta MQTT",
10
+ "sensor_id": "ID do sensor (1-20)",
11
+ "storeJson": "Salve JSON",
12
+ "storeDir": "Pasta para arquivo json"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Настройки адаптера для Weathersense",
3
+ "username": "Имя пользователя Weathersense (электронная почта)",
4
+ "passwort": "Пароль Weathersense",
5
+ "mqtt_active": "Используйте MQTT",
6
+ "broker_address": "IP -адрес брокера MQTT",
7
+ "mqtt_user": "Пользователь MQTT",
8
+ "mqtt_pass": "MQTT пароль",
9
+ "mqtt_port": "Порт MQTT",
10
+ "sensor_id": "Идентификатор датчика (1-20)",
11
+ "storeJson": "Спасите Json",
12
+ "storeDir": "Папка для файла json"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Налаштування адаптера для Weathersense",
3
+ "username": "Ім'я користувача Weathersense (електронна пошта)",
4
+ "passwort": "Пароль Weathersense",
5
+ "mqtt_active": "Використовуйте MQTT",
6
+ "broker_address": "IP -адреса MQTT Broker",
7
+ "mqtt_user": "Користувач MQTT",
8
+ "mqtt_pass": "Пароль MQTT",
9
+ "mqtt_port": "Порт MQTT",
10
+ "sensor_id": "Ідентифікатор датчика (1-20)",
11
+ "storeJson": "Зберегти json",
12
+ "storeDir": "Папка для файлу JSON"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "heizoel24-mex adapter settings": "Weathersense的适配器设置",
3
+ "username": "Weathersense用户名(电子邮件)",
4
+ "passwort": "Weathersense密码",
5
+ "mqtt_active": "使用MQTT",
6
+ "broker_address": "MQTT代理IP地址",
7
+ "mqtt_user": "MQTT用户",
8
+ "mqtt_pass": "MQTT密码",
9
+ "mqtt_port": "MQTT端口",
10
+ "sensor_id": "传感器ID(1-20)",
11
+ "storeJson": "保存JSON",
12
+ "storeDir": "JSON文件的文件夹"
13
+ }
package/io-package.json CHANGED
@@ -1,20 +1,73 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "weathersense",
4
- "version": "1.0.0",
4
+ "version": "1.0.2",
5
5
  "news": {
6
+ "1.0.2": {
7
+ "en": "New release because SSH troubles in dev portal",
8
+ "de": "Neue Veröffentlichung, weil SSH Probleme im dev Portal",
9
+ "ru": "Новый релиз из-за проблем с SSH на портале dev",
10
+ "pt": "Nova versão porque SSH problemas no portal dev",
11
+ "nl": "Nieuwe release omdat SSH problemen heeft in dev portal",
12
+ "fr": "Nouvelle version parce que SSH dérange dans le portail dev",
13
+ "it": "Nuova release perché problemi SSH nel portale dev",
14
+ "es": "Nuevo lanzamiento porque problemas SSH en el portal dev",
15
+ "pl": "Nowe wydanie ponieważ SSH problemy w portalu dev",
16
+ "uk": "Новий реліз через SSH клопоти на порталі dev",
17
+ "zh-cn": "Dev 门户网站中由于 SSH 麻烦而新建发布"
18
+ },
19
+ "1.0.1": {
20
+ "en": "Code cleanups",
21
+ "de": "Aufräumen von Codes",
22
+ "ru": "Очистка кода",
23
+ "pt": "Limpeza de código",
24
+ "nl": "Code opruiming",
25
+ "fr": "Nettoyage du code",
26
+ "it": "Pulizia del codice",
27
+ "es": "Limpieza del código",
28
+ "pl": "Czyszczenie kodu",
29
+ "uk": "Чистка коду",
30
+ "zh-cn": "代码清理"
31
+ },
6
32
  "1.0.0": {
7
33
  "en": "First release",
8
- "de": "Erstes Release"
34
+ "de": "Erstes Release",
35
+ "ru": "Первый релиз",
36
+ "pt": "Primeiro lançamento",
37
+ "nl": "Eerste release",
38
+ "fr": "Première sortie",
39
+ "it": "Prima versione",
40
+ "es": "Primer lanzamiento",
41
+ "pl": "Pierwsze wydanie",
42
+ "uk": "Перший випуск",
43
+ "zh-cn": "第一版"
9
44
  }
10
45
  },
11
46
  "titleLang": {
12
47
  "en": "WeatherSense",
13
- "de": "WeatherSense"
48
+ "de": "WeatherSense",
49
+ "ru": "Вытекающая сторона",
50
+ "pt": "WeatherSense",
51
+ "nl": "Weerstand",
52
+ "fr": "Weathersense",
53
+ "it": "Ambienti",
54
+ "es": "WeatherSense",
55
+ "pl": "Weathersense",
56
+ "uk": "Weathersense",
57
+ "zh-cn": "风雨"
14
58
  },
15
59
  "desc": {
16
60
  "en": "Read in data from WeatherSense",
17
- "de": "Daten von WeatherSense einlesen"
61
+ "de": "Daten von WeatherSense einlesen",
62
+ "ru": "Читать в данных из Weathersense",
63
+ "pt": "Leia os dados de WeatherSense",
64
+ "nl": "Lees in gegevens van WeatherSense",
65
+ "fr": "Lire dans les données de Weathersense",
66
+ "it": "Leggi i dati da Weathersense",
67
+ "es": "Leer en datos de WeatherSense",
68
+ "pl": "Odczytane dane z Weathersense",
69
+ "uk": "Прочитайте в даних Weathersense",
70
+ "zh-cn": "阅读Weathersense的数据"
18
71
  },
19
72
  "authors": [
20
73
  "Daniel Luginbühl <webmaster@ltspiceusers.ch>"
@@ -37,7 +90,7 @@
37
90
  "loglevel": "info",
38
91
  "tier": 3,
39
92
  "mode": "schedule",
40
- "schedule": "*/5 * * * *",
93
+ "schedule": "*/10 * * * *",
41
94
  "allowInit": true,
42
95
  "type": "metering",
43
96
  "compact": true,
@@ -55,8 +108,7 @@
55
108
  {
56
109
  "admin": ">=7.4.10"
57
110
  }
58
- ],
59
- "installedFrom": "file:/opt/iobroker/ioBroker.weathersense"
111
+ ]
60
112
  },
61
113
  "encryptedNative": [
62
114
  "passwort",
package/main.js CHANGED
@@ -77,9 +77,9 @@ class WeatherSense extends utils.Adapter {
77
77
 
78
78
  try {
79
79
  const instObj = await this.getForeignObjectAsync(`system.adapter.${this.namespace}`);
80
- if (instObj && instObj.common && instObj.common.schedule && instObj.common.schedule === "*/5 * * * *") {
81
- instObj.common.schedule = `*/${Math.floor(Math.random() * 6)} * * * *`;
82
- this.log.info(`Default schedule found and adjusted to spread calls better over the full hour!`);
80
+ if (instObj && instObj.common && instObj.common.schedule && instObj.common.schedule === "*/10 * * * *") {
81
+ instObj.common.schedule = `*/${(Math.floor(Math.random() * 5) + 3)} * * * *`;
82
+ this.log.info(`Default schedule found and adjusted to spread calls better over 3-7 minutes!`);
83
83
  await this.setForeignObjectAsync(`system.adapter.${this.namespace}`, instObj);
84
84
  this.terminate ? this.terminate() : process.exit(0);
85
85
  return;
@@ -328,16 +328,15 @@ class WeatherSense extends utils.Adapter {
328
328
 
329
329
 
330
330
  // Funktion zum Erzeugen des MD5-Hashes
331
- hashPassword(pw, key) {
332
- const combined = pw + key;
331
+ hashPassword(pw) {
332
+ const combined = pw + "emax@pwd123";
333
333
  return crypto.createHash("md5").update(combined, "utf8").digest("hex").toUpperCase();
334
334
  }
335
335
 
336
336
  // Login-Funktion
337
337
  async login(USERNAME, PASSWORD) {
338
- const MD5_KEY = "emax@pwd123";
339
338
  const LOGIN_URL = "https://47.52.149.125/V1.0/account/login";
340
- const hashed_pw = this.hashPassword(PASSWORD, MD5_KEY);
339
+ const hashed_pw = this.hashPassword(PASSWORD);
341
340
 
342
341
  const headers = {
343
342
  "Content-Type": "application/json; charset=utf-8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.weathersense",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Read in data from WeatherSense",
5
5
  "author": {
6
6
  "name": "Daniel Luginbühl",
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "repository": {
18
18
  "type": "git",
19
- "url": "git@github.com:ltspicer/ioBroker.weathersense.git"
19
+ "url": "https://github.com/ltspicer/ioBroker.weathersense"
20
20
  },
21
21
  "engines": {
22
22
  "node": ">= 20"
@@ -36,7 +36,7 @@
36
36
  "@iobroker/testing": "^5.0.4",
37
37
  "@tsconfig/node18": "^18.2.4",
38
38
  "@types/chai": "^4.3.12",
39
- "@types/chai-as-promised": "^8.0.1",
39
+ "@types/chai-as-promised": "^8.0.2",
40
40
  "@types/mocha": "^10.0.10",
41
41
  "@types/node": "^24.0.8",
42
42
  "@types/proxyquire": "^1.3.31",
@@ -44,7 +44,7 @@
44
44
  "@types/sinon-chai": "^3.2.12",
45
45
  "chai": "^4.5.0",
46
46
  "chai-as-promised": "^8.0.1",
47
- "eslint": "^9.28.0",
47
+ "eslint": "^9.30.0",
48
48
  "mocha": "^11.5.0",
49
49
  "proxyquire": "^2.1.3",
50
50
  "sinon": "^21.0.0",
@@ -69,6 +69,7 @@
69
69
  "check": "tsc --noEmit -p tsconfig.check.json",
70
70
  "lint": "eslint .",
71
71
  "translate": "translate-adapter",
72
+ "build": "build-adapter",
72
73
  "release": "release-script",
73
74
  "dev": "dev-server"
74
75
  },