fredlcore / BSB-LAN

LAN/WiFi interface for Boiler-System-Bus (BSB) and Local Process Bus (LPB) and Punkt-zu-Punkt Schnittstelle (PPS) with a Siemens® controller used by Elco®, Brötje® and similar heating systems
231 stars 84 forks source link

Improved English translation for 8000-8011 parameters #418

Closed GSzabados closed 2 years ago

GSzabados commented 2 years ago

This should fix #417.

GSzabados commented 2 years ago

@1coderookie, thanks for pointing out my mistake in the other topic, I've had another look on the PR. And checked again the matched translations, and cross references from the BSB_LAN_defs.h. At this stage there shouldn't be any duplication anywhere and all the possible state number should be translated to English, at least those what are in the ISR and LMS14 manuals. I haven't had time yet to dig though the heat pump / cooling options yet from the third manual.

I have found these as new parameters in the LMS14 manual, and they don't have a German translation yet:

//From LMS14 manual, it might not part of the Brotje options, so might not be _2.
#define ENUM8009_2_D3_TEXT "Lockout"         
#define ENUM8009_2_D4_TEXT "Start prevention"
#define ENUM8009_2_D5_TEXT "Shutdown"

//LMS14 manual again, might not part of Brotje, or the ISR-Plus manual is too old, September 2009 version!
#define ENUM8003_dd_TEXT "Keep hot mode On"
#define ENUM8003_de_TEXT "Keep hot mode active"
#define ENUM8003_df_TEXT "Frost protection instantaneous water heater"

//LMS14 manual again, might not part of Brotje, or the ISR-Plus manual is too old, September 2009 version!
#define ENUM8005_e8_TEXT "Flue gas temperature, shutdown"
#define ENUM8005_e9_TEXT "Flue gas temperature, load limitation"
#define ENUM8005_ea_TEXT "Flue gas temperature to high"
#define ENUM8005_f5_TEXT "Safety limit thermostat limits output"
#define ENUM8005_fd_TEXT "Low flow rate"

And there is a case where I cannot resolve the differences between the German and English translations:

#define STR770_TEXT "Room temp setpoint boost (boost heating)"
#define ENUM8000_71_TEXT "Boost heating"

meanwhile the German should be:

#define STR770_TEXT "Schnellaufheizung"
#define ENUM8000_71_TEXT "Schnellaufheizung"

The English version gives a descriptive text to parameter 770, but that is not matching with the state text at 8000_71. The English manuals indeed refer to parameter 770 as Boost heating as well, but the descriptive one explains it better what it does. Should be the English changed this way?

#define STR770_TEXT "Boost heating"

Otherwise the branch in ArduinoIDE Verifies and Compiles without a warning for an ESP32 Dev Board.

Sketch uses 1148598 bytes (87%) of program storage space. Maximum is 1310720 bytes.
Global variables use 48248 bytes (14%) of dynamic memory, leaving 279432 bytes for local variables. Maximum is 327680 bytes.

I think for the rest of the English translation, I will just do phrase by phrase. I did not anticipated the cross references when I started the state parameter update.

GSzabados commented 2 years ago

@fredlcore, a bit off-topic, but just a short question regarding the heat pump / cooling circuit state parameters, what I have seen in the manual.

How are the state numbers being above 255, when every manual refers to the 8000 to 8011 (8031) parameters as values min-max 0 to 255? Is it just reports a 9 bit value instead of a 8 bit value? I don't really get the logic of the manufacturer here.

Just an example:

#define ENUM8004_11d_TEXT "Cooling mode Reduced" State number 285

fredlcore commented 2 years ago

Generally, values higher than 255 are numbered in the same way, with 9 or how many bits may be needed. The thing is that adding these translations in the LANG_xx.h files won't change anything in the actual code because the corresponding ENUMs in BSB_LAN_defs.h has to be adjusted, too. And generally, we have the rule that only those parameter options are added that have been verified on the actual heater and the actual option value. Because we have had the case that the numbering in the manual was not 100% the same as option value used and stored in the heater.

GSzabados commented 2 years ago

And generally, we have the rule that only those parameter options are added that have been verified on the actual heater and the actual option value. Because we have had the case that the numbering in the manual was not 100% the same as option value used and stored in the heater.

Ok, then I will leave it in the translation but I will just comment it out. So it can be reinstated if a device has those parameter and if the BSB_LAN_defs.h is updated with those.

I still have a few state numbers what I don't have yet for an English translation, mostly belongs to 8004 and 8006 as I remember. I will update those as well maybe later on today from the heat pump / cooling manual.

Can I check these translations without connecting an ESP board to a heater? I have an ESP32 with me, so I can write it, but I don't have access to an LMS / ISR at the moment.

fredlcore commented 2 years ago

No need to comment out the translations, assuming they are from "official" sources. While they consume space, they don't "hurt" anything as long as they are just in the LANG_xx.h files. The translations will probably only be shown if you are connected to a device where this parameter is supported. Otherwise you'll get "query failed" for each parameter you call...

GSzabados commented 2 years ago

assuming they are from "official" sources

OK, thanks for confirming. They all came from the manuals, so "official" sources.

I still have a few which I don't have an English translation for, about 7. They are just not listed in any of the English manuals. Most of them related to "Charging electric", I need to search a bit in the translations, but I believe, I can come up with a good English equivalent.
It is a bit odd, that some phrases, I cannot even find in two of the German manuals...

I will add the ones in a few hours from the heat pump / cooling (albatros) manual, what I just checked today.

GSzabados commented 2 years ago

This 7 phrases what I cannot find in any English manuals.

#define ENUM8006_32_TEXT "Freigegeben, Verd bereit"
#define ENUM8010_40_TEXT "Ladung Elektro, Notbetrieb"
#define ENUM8010_41_TEXT "Ladung Elektro, Quellenpumpenschutz"
#define ENUM8010_83_TEXT "Ladung Elektro, Abtauen"
#define ENUM8009_E0_TEXT "Zünden"
#define ENUM8009_E1_TEXT "Einschwingzeit"
#define ENUM8004_ff_TEXT "Kühlbetrieb reduziert"

And this 2 phrases could be merged to be a single one as "Keine Anforderung". Actually that is what both of the German manuals use for 8006_33 and 801033. The English translation can be then shorted to "No request"_ as well.

#define ENUM8006_33_TEXT "Keine Anforderung"
#define ENUM8010_33_TEXT "Keine Wärmeanforderung"
1coderookie commented 2 years ago

Hi,

This 7 phrases what I cannot find in any English manuals.

#define ENUM8006_32_TEXT "Freigegeben, Verd bereit" 

Released, evap ready

#define ENUM8010_40_TEXT "Ladung Elektro, Notbetrieb"

Charging electric, em operation

#define ENUM8010_41_TEXT "Ladung Elektro, Quellenpumpenschutz"

Charging electric, source prot

#define ENUM8010_83_TEXT "Ladung Elektro, Abtauen"

Charging electric, defrost

#define ENUM8009_E0_TEXT "Zünden"
#define ENUM8009_E1_TEXT "Einschwingzeit"

-> where did you find these 8009ers?

#define ENUM8004_ff_TEXT "Kühlbetrieb reduziert"

Cooling mode Reduced -> but: FF is 255, but the manual says "Kühlbetrieb reduziert" is 285: Bildschirmfoto von 2021-11-15 11-53-30

so it should be 11D, right?

And this 2 phrases could be merged to be a single one as "Keine Anforderung". Actually that is what both of the German manuals use for 8006_33 and 801033. The English translation can be then shorted to "No request"_ as well.

english manuals list them both as "No requisition"

#define ENUM8006_33_TEXT "Keine Anforderung"

No requisition

#define ENUM8010_33_TEXT "Keine Wärmeanforderung"

No requisition

1coderookie commented 2 years ago

@1coderookie

I have found these as new parameters in the LMS14 manual, and they don't have a German translation yet: (...)

I'll try to find them..

GSzabados commented 2 years ago

english manuals list them both as "No requisition"

#define ENUM8006_33_TEXT "Keine Anforderung"

No requisition

#define ENUM8010_33_TEXT "Keine Wärmeanforderung"

No requisition

This is from the Albatros :D

Screenshot_20211115-124010_Drive

But I think I saw the No requisition as well.

GSzabados commented 2 years ago

Cooling mode Reduced -> but: FF is 255, but the manual says "Kühlbetrieb reduziert" is 285: Bildschirmfoto von 2021-11-15 11-53-30

so it should be 11D, right?

Actually I saw that. I might have not recognized yesterday what is going on there. Currently this is in the German for 11d.

#define ENUM8004_11d_TEXT "Schutzbetrieb Kühlen"

And 95 (149) is missing. So it might have been a misread line from the manual. But I cannot explain why 255 is there.

GSzabados commented 2 years ago
#define ENUM8009_E0_TEXT "Zünden"
#define ENUM8009_E1_TEXT "Einschwingzeit"

-> where did you find these 8009ers?

Those are part of the German translation file. I couldn't find them in none of the German manuals either. But they are part of the file for 3 years.

1coderookie commented 2 years ago

No requisition

This is from the Albatros :D

Screenshot_20211115-124010_Drive

But I think I saw the No requisition as well.

So funny - this is from an Albatros manual as well (afterwards I also saw the "no request" expression in another manual).. :D Bildschirmfoto von 2021-11-17 11-50-08 :

fredlcore commented 2 years ago

Just a quick follow-up here: @1coderookie and @GSzabados, are we at a point where I should/could merge this PR or are there still things to do? For now, none of the added translations will actually show up on screen because the ENUM definitions must refer to the translations as well.

GSzabados commented 2 years ago

@fredlcore, the fail of the workflow is due to the EEPROM component. The 2.X version as I can remember has this breaking change. If you run with 1.4, 1.5 or 1.6 it works and it does not produce an error.

All this is just from the top of my head. I am not absolutely sure about the version numbers, but with the old environment what I usedto build BSB-LAN when I set it up in April everything works. If the ESP32 library is updated to 2.X it fails with the EEPROM error.

I built the code to an ESP32 and works for a week or so.

fredlcore commented 2 years ago

The check will be allright in the end, the question is more whether this should/could be merged yet or not, also because the changes are so far only in the langauge file, not in BSB_LAN_defs.h...

GSzabados commented 2 years ago

@fredlcore, I am a bit busy with work related stuff and I cannot really have a final look, but tomorrow I will have probably a few spare hours so I will get back to you tomorrow on it. As I wrote, I am using it for a few weeks and I don't have any issues with it. Indeed it is great to be able to understand what the heater does sometimes.

fredlcore commented 2 years ago

I would have to ask you one more thing, @GSzabados: Could you please remove / comment out all those definements that do not yet have a corresponding definement in LANG_DE.h? That is necessary in order for my script to run that condenses the language files by removing doublettes. Because if you add definements in LANG_EN.h that are actually referenced to a previous entry in LANG_DE.h, it will still consume memory when compiling it for the English language version. If you have only translated definements that are already present in LANG_DE.h, then you can ignore this request. Then the translations will also immediately show up in the webinterface and contrary to what I mentioned earlier, there would be no need add the definements to the various ENUMs. But, as I said, that applies only if only existing definements from LANG_DE.h have been translated. Thanks!

GSzabados commented 2 years ago

@fredlcore, no worries, I will do it.

I've had a look on all the changes what I implemented to the EN lang file. I haven't changed any either in the ENUM or in the German language files. So no new phrases added to the German, and the incorrect assignments are not resolved. And the "No Requisition" has not been re-referenced.

I will do check what you asked and comment it out.

The only thing what I missed is the Burner Statuses.

They must be cross-referenced translations, so I need to add those.

image

My heater shows In operation with 18 (decimal).

GSzabados commented 2 years ago

Could you please remove / comment out all those definements that do not yet have a corresponding definement in LANG_DE.h?

I've commented out those. Sorry for the late reply. l am on a busy project again, and don't have time for anything else.

fredlcore commented 2 years ago

As mentioned in the corresponding issue, version 3.0 will provide proper translations taken from the heater, so user-provided translations are no longer necessary. But thanks a lot for your efforts!