Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable the analysis of two towers. [BREAKING] #262

Merged
merged 10 commits into from
Jan 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ BYD HVS Battery poll data

## Introduction

This Adapter takes data from a byd PV battery ( https://www.bydbatterybox.com/ ) and puts them into datapoints in the adapter. Unfortunately there is no official API and no documentation, so I used wireshark and a byd-hvs-simulator to try to understand the communication. My adapter simulates the byd-app, sends similar packets to the device and analyses the responses.
This Adapter takes data from a byd PV battery ( https://www.bydbatterybox.com/ ) and puts them into datapoints in the adapter. Unfortunately there is no official API and no documentation, so I used wireshark and a byd-hvs-simulator to try to understand the communication. My adapter simulates the byd-app, sends similar packets to the device and analyses the responses.

## be careful

Expand All @@ -19,10 +19,10 @@ Up to 5 HVS Modules are now supported.
## settings

Interval: That's easy: how often (s) shall the data be polled
IP-Adress: Thats self explaining. Either you use the standard address ( 192.168.16.254 ) and change the routing at home, e.g.: https://www.photovoltaikforum.com/thread/150898-byd-hvs-firmware-update/?postID=2215343#post2215343 . The advantage is: The beConnect app works, too. Other possibility: You change the IP-Adress of the box. But: Be warned: the text on the webpage is confusing and if you are not absolutely shure about the things you do: PLEASE do not touch the settings. In the German forums I read from people who were locked out of their system and there is no way back, either byd sends you a replacement HVU or you have to buy a new one.
IP-Adress: Thats self explaining. Either you use the standard address ( 192.168.16.254 ) and change the routing at home, e.g.: https://www.photovoltaikforum.com/thread/150898-byd-hvs-firmware-update/?postID=2215343#post2215343 . The advantage is: The beConnect app works, too. Other possibility: You change the IP-Adress of the box. But: Be warned: the text on the webpage is confusing and if you are not absolutely shure about the things you do: PLEASE do not touch the settings. In the German forums I read from people who were locked out of their system and there is no way back, either byd sends you a replacement HVU or you have to buy a new one.
Battery-details: As explained above: Do you need the details of the battery? If so: set the checkobx.
Battery-details - every ... cycles :Also like above, should be clear
Test Mode - show data in error log: If you check this box: the sent and recieved data are displayed in the error-log, so you can easily download the data and send it to me in case of errors.
Test Mode - show data in error log: If you check this box: the sent and recieved data are displayed in the error-log, so you can easily download the data and send it to me in case of errors.
Copy and Paste does not work - the data is cut at the end. You will have to download it before you send it to me.

[Link zur nativen deutschen Readme:](README-German.md)
Expand All @@ -32,8 +32,12 @@ Copy and Paste does not work - the data is cut at the end. You will have to down
Placeholder for the next version (at the beginning of the line):
### __WORK IN PROGRESS__
-->
### 1.5.1 (2024-01-15)
* Enable the possibility to get informations from a two tower setup
* BREAKING CHANGE of Structure.

### 1.5.0 (2023-11-04)
* Breaking change: nodejs 16 minimum required
* Breaking change: nodejs 16 minimum required
* automated checks and release-script repaired (thanks to mcm1957, he did the work)
* nothing else changed in code

Expand Down
11 changes: 10 additions & 1 deletion admin/index_m.html
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,22 @@
<input type="checkbox" class="value" id="ConfTestMode" />
<label for="ConfTestMode" class="translate">Test Mode - show data in error log</label>
</div>
</div>
</div>
<div class="row">
<div class="col s6 input-field">
<input type="text" class="value" id="ConfDetailshowoften" />
<label for="ConfDetailshowoften" class="translate">Battery-details - every ... cycles</label>
</div>
</div>
<div class="row">
<div class="col s6 input-field">
<select name="ConfBydTowerCont" id="ConfBydTowerCount" class="value">
<option>1</option>
<option>2</option>
</select>
<label for="ConfBydTowerCount" class="translate">ConfBydTowerCount</label>
</div>
</div>
</div>

</div>
Expand Down
15 changes: 14 additions & 1 deletion admin/words.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,18 @@ systemDictionary = {
"es": "Modo de prueba: muestra datos en el registro de errores",
"pl": "Tryb testowy - pokaż dane w dzienniku błędów",
"zh-cn": "测试模式-在错误日志中显示数据"
}
},
"ConfBydTowerCount": {
"en": "Count of towers",
"de": "Anzahl der Türme",
"ru": "Количество башен",
"pt": "Contagem de torres",
"nl": "Aantal torens",
"fr": "Nombre de tours",
"it": "Conte di torri",
"es": "Conde de torres",
"pl": "Liczba wież",
"uk": "Кількість веж",
"zh-cn": "塔数"
}
};
50 changes: 49 additions & 1 deletion io-package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"common": {
"name": "bydhvs",
"version": "1.5.0",
"version": "1.5.1",
"news": {
"1.5.1": {
"en": "Working with parallel towers. you can setup it in admin page."
},
"1.5.0": {
"en": "Breaking change: nodejs 16 minimum required \nautomated checks and release-script repaired (thanks to mcm1957, he did the work)\nnothing else changed in code",
"de": "Breaking change: nodejs 16 minimum erforderlich\nautomatisierte kontrollen und release-script repariert (dank mcm1957, er tat die arbeit)\nnichts anders geändert in code",
Expand Down Expand Up @@ -136,6 +139,50 @@
"compact": true,
"connectionType": "local",
"dataSource": "poll",
"messages": [
{
"condition": {
"operand": "and",
"rules": [
"oldVersion<1.5.1",
"newVersion>=1.5.1"
]
},
"title": {
"en": "Changed structure of Diagnosis and CellDetails.",
"de": "Geänderte Struktur der Diagnose und CellDetails.",
"ru": "Изменение структуры диагностики и клеточных деталей.",
"pt": "Estrutura alterada de Diagnóstico e CellDetails.",
"nl": "Veranderde structuur van Diagnose en CellDetails.",
"fr": "Structure modifiée du diagnostic et des détails cellulaires.",
"it": "Struttura modificata di Diagnosi e CellDetails.",
"es": "Estructura modificada de Diagnóstico y Detalles Celulares.",
"pl": "Zmieniona struktura diagnostyki i cellDetails.",
"uk": "Змінена структура діагностики та клітинних деталей.",
"zh-cn": "已改变的诊断和细胞分类的结构."
},
"text": {
"en": "Changed structure of Diagnosis and CellDetails. We introduced an additional level for each tower. Example: Old Structure: bydhvs.0.Diagnosis.SOC; New Structure: bydhvs.0.Diagnosis.Tower_1.SOC; You should check your Database/Influx/... subscriptions.",
"de": "Geänderte Struktur der Diagnose und CellDetails. Wir haben für jeden Turm ein zusätzliches Niveau eingeführt. Beispiel: Alte Struktur: bydhvs.0.Diagnosis.SOC; Neue Struktur: bydhvs.0.Diagnosis.Tower_1.SOC; Sie sollten Ihre Datenbank/Influx/... Abonnements überprüfen.",
"ru": "Изменение структуры диагностики и клеточных деталей. Мы ввели дополнительный уровень для каждой башни. Пример: Старая структура: bydhvs.0.Diagnosis.SOC; Новая структура: bydhvs.0.Diagnosis.Tower_1.SOC; Вы должны проверить свою базу данных / Influx /... подписки.",
"pt": "Estrutura alterada de Diagnóstico e CellDetails. Introduzimos um nível adicional para cada torre. Exemplo: Old Structure: bydhvs.0.Diagnosis.SOC; New Structure: bydhvs.0.Diagnosis.Tower_1.SOC; Você deve verificar seu banco de dados / Influx /... assinaturas.",
"nl": "Veranderde structuur van Diagnose en CellDetails. We hebben een extra niveau voor elke toren ingevoerd. Voorbeeld: Oude structuur: bydhvs.0.Diagnose.SOC; Nieuwe structuur: bydhvs.0.Diagnose.Tower_1.SOC; Controleer uw Database/Influx/... abonnementen.",
"fr": "Structure modifiée du diagnostic et des détails cellulaires. Nous avons introduit un niveau supplémentaire pour chaque tour. Exemple: Ancienne structure: bydhvs.0.Diagnosis.SOC; Nouvelle structure: bydhvs.0.Diagnosis.Tower_1.SOC; Vous devriez vérifier vos abonnements Database/Influx/...",
"it": "Struttura modificata di Diagnosi e CellDetails. Abbiamo introdotto un livello aggiuntivo per ogni torre. Esempio: Struttura vecchia: bydhvs.0.Diagnosis.SOC; Nuova struttura: bydhvs.0.Diagnosis.Tower_1.SOC; Si consiglia di controllare il database/Influx/... abbonamenti.",
"es": "Estructura modificada de Diagnóstico y Detalles Celulares. Presentamos un nivel adicional para cada torre. Ejemplo: Old Structure: bydhvs.0.Diagnosis.SOC; New Structure: bydhvs.0.Diagnosis.Tower_1.SOC; Usted debe comprobar sus suscripciones de Base de Datos/Influjo/...",
"pl": "Zmieniona struktura diagnostyki i cellDetails. Wprowadziliśmy dodatkowy poziom dla każdej wieży. Przykład: Stara struktura: bydhvs.0.Diagnosis.SOC; Nowa struktura: bydhvs.0.Diagnosis.Tower _ 1.SOC; Powinieneś sprawdzić swoją bazę danych / Influm /... subskrypcje.",
"uk": "Змінена структура діагностики та клітинних деталей. Ми ввели додатковий рівень для кожної вежі. Приклад: Стара структура: bydhvs.0.Diagnosis.SOC; Нова структура: bydhvs.0.Diagnosis.Tower_1.SOC; Ви повинні перевірити вашу базу даних/Influx/... підписки.",
"zh-cn": "已改变的诊断和细胞分类的结构。 我们为每座塔增加了一层 例:旧结构:bydhvs.0.Diagnosis.SOC;新结构:bydhvs.0.Diagnosis.Tower_1.SOC; 您应该检查您的数据库/ Influx/... 订阅 ."
},
"link": "https://github.com/christianh17/ioBroker.bydhvs/pull/262",
"linkText": "Reiew SourceCode of that change or report an issue",
"level":"warn",
"buttons": [
"agree",
"cancel"
]
}
],
"materialize": true,
"dependencies": [
{
Expand All @@ -147,6 +194,7 @@
"ConfPollInterval": "60",
"ConfIPAdress": "192.168.16.254",
"ConfDetailshowoften": 60,
"ConfBydTowerCount": 1,
"pingInterval": 15000
},
"objects": [],
Expand Down
Loading