diff --git a/scripts/generate-modbus-register-doc.py b/scripts/generate-modbus-register-doc.py index b2c960fd5..ce8c0010b 100644 --- a/scripts/generate-modbus-register-doc.py +++ b/scripts/generate-modbus-register-doc.py @@ -2,6 +2,10 @@ import fileinput import csv from itertools import groupby +# +# This is used to build the contents of the `Modbus-Entity-Registers.md` file used in the emsesp.org documentation. +# + # static data tag_to_tagtype = { diff --git a/scripts/generate-modbus-register-doc.sh b/scripts/generate-modbus-register-doc.sh index f034f7c65..863ddfb69 100644 --- a/scripts/generate-modbus-register-doc.sh +++ b/scripts/generate-modbus-register-doc.sh @@ -1,5 +1,7 @@ #!/bin/bash +# This is used to build the contents of the `Modbus-Entity-Registers.md` file used in the emsesp.org documentation. + make clean make ARGS=-DEMSESP_STANDALONE echo "test entity_dump" | ./emsesp | python3 ./scripts/strip_csv.py | python3 ./scripts/generate-modbus-register-doc.py diff --git a/scripts/generate_csv_and_headers.sh b/scripts/generate_csv_and_headers.sh new file mode 100755 index 000000000..7d427b48b --- /dev/null +++ b/scripts/generate_csv_and_headers.sh @@ -0,0 +1,56 @@ +#!/bin/sh + +# +# Builds the dump CSV files, modbus headers and documentation. +# To be run before a release with +# sh ./scripts/generate_csv_and_headers.sh +# + +# build dummy modbus_entity_parameters.hpp so it compiles +cat >./src/modbus_entity_parameters.hpp < Modbus::modbus_register_mappings = {}; + +} // namespace emsesp + +// clang-format on + +EOL + +# build emsesp for standalone +make clean +make ARGS=-DEMSESP_STANDALONE + +# dump_entities.csv +rm -f dump_entities.csv +echo "test entity_dump" | ./emsesp | python3 ./scripts/strip_csv.py >dump_entities.csv +ls -al dump_entities.csv + +# dump_telegrams.csv +rm -f dump_telegrams.csv +echo "test telegram_dump" | ./emsesp | python3 ./scripts/strip_csv.py >dump_telegrams.csv +ls -al dump_telegrams.csv + +# generate ./src/modbus_entity_parameters.hpp +rm -f ./src/modbus_entity_parameters.hpp +cat dump_entities.csv | python3 ./scripts/update_modbus_registers.py >./src/modbus_entity_parameters.hpp +ls -al ./src/modbus_entity_parameters.hpp + +# generate doc - Modbus-Entity-Registers.md used in the emsesp.org documentation. +cat dump_entities.csv | python3 ./scripts/generate-modbus-register-doc.py >./docs/Modbus-Entity-Registers.md diff --git a/scripts/update_modbus_registers.py b/scripts/update_modbus_registers.py index 3df1c78f5..5495a9fd6 100644 --- a/scripts/update_modbus_registers.py +++ b/scripts/update_modbus_registers.py @@ -47,6 +47,7 @@ string_sizes = { "thermostat/switchtime1": 16, "thermostat/switchtime2": 16, "thermostat/switchtime": 16, + "thermostat/switchtimeww": 21, "controller/datetime": 25 } @@ -164,6 +165,7 @@ with fileinput.input() as f_input: for row in entities_reader: entity = {} for i, val in enumerate(row): + # print(headers[i] + ": " + val) entity[headers[i]] = val entities.append(entity) @@ -196,8 +198,8 @@ for entity in entities: (-string_sizes[entity_dev_name] // 2) # divide and round up if int(entity["modbus count"]) <= 0: - raise Exception('Entity "' + entity_shortname + - '" does not have a size - string sizes need to be added manually to update_modbus_registers.py') + raise Exception('Entity "' + entity_dev_name + ' (' + entity_shortname + ')' + + '" does not have a size - string sizes need to be added manually to update_modbus_registers.py/string_sizes') # if entity["modbus count"] == "0": # print("ignoring " + entity_dev_name + " - it has a register length of zero")