From 86efe5bce407350bd65576cb5fb5241465d8e324 Mon Sep 17 00:00:00 2001 From: Mario Coray Date: Tue, 7 Sep 2021 10:33:03 +0200 Subject: [PATCH 1/5] backend: rename reader to meter (code only) --- .../smartmeter_datacollector_configurator/configurator.py | 8 ++++---- backend/smartmeter_datacollector_configurator/dto.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/smartmeter_datacollector_configurator/configurator.py b/backend/smartmeter_datacollector_configurator/configurator.py index 9a6ffd7..75e09ca 100644 --- a/backend/smartmeter_datacollector_configurator/configurator.py +++ b/backend/smartmeter_datacollector_configurator/configurator.py @@ -1,7 +1,7 @@ import configparser import logging -from .dto import ConfigDto, LoggerSinkDto, MqttSinkDto, ReaderDto, SinkType +from .dto import ConfigDto, LoggerSinkDto, MeterDto, MqttSinkDto, SinkType CA_FILE_NAME = "ca.crt" CONFIG_FILE_NAME = "datacollector.ini" @@ -18,7 +18,7 @@ def retrieve_config(config_dir: str) -> ConfigDto: dto = ConfigDto() for sec in parser.sections(): if sec.startswith("reader"): - dto.readers.append(ReaderDto.parse_obj( + dto.meters.append(MeterDto.parse_obj( dict(parser.items(sec)) )) elif sec.startswith("sink"): @@ -42,10 +42,10 @@ def retrieve_config(config_dir: str) -> ConfigDto: def write_config_from_dto(config_dir: str, config: ConfigDto) -> None: parser = configparser.ConfigParser() - for i, reader in enumerate(config.readers): + for i, meter in enumerate(config.meters): sec_name = f"reader{i}" parser.add_section(sec_name) - parser[sec_name] = reader.dict(exclude_none=True) + parser[sec_name] = meter.dict(exclude_none=True) sinks = (config.mqtt_sink, config.logger_sink) for i, sink in enumerate(sinks): if not sink: diff --git a/backend/smartmeter_datacollector_configurator/dto.py b/backend/smartmeter_datacollector_configurator/dto.py index bc705f5..5dfefeb 100644 --- a/backend/smartmeter_datacollector_configurator/dto.py +++ b/backend/smartmeter_datacollector_configurator/dto.py @@ -7,7 +7,7 @@ LOGGER_LEVEL = ["DEBUG", "INFO", "WARNING", "ERROR", "FATAL", "CRITICAL"] -class ReaderType(str, Enum): +class MeterType(str, Enum): LGE450 = "lge450" @@ -23,8 +23,8 @@ class Config: use_enum_values = True -class ReaderDto(BaseModel): - type: ReaderType +class MeterDto(BaseModel): + type: MeterType port: str key: Optional[str] @@ -82,7 +82,7 @@ def name_not_empty(cls, val: str): class ConfigDto(BaseModel): log_level: str = "WARNING" - readers: List[ReaderDto] = [] + meters: List[MeterDto] = [] mqtt_sink: Optional[MqttSinkDto] logger_sink: Optional[LoggerSinkDto] From 28ad3acf997673515ffb55fc749157ae0aa7c3d6 Mon Sep 17 00:00:00 2001 From: Mario Coray Date: Tue, 7 Sep 2021 10:39:04 +0200 Subject: [PATCH 2/5] frontend: rename reader to meter (code only) --- .../src/components/Configurator.vue | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue index 1d2364a..0c9bf6c 100644 --- a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue +++ b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue @@ -39,14 +39,14 @@

Smart Meters

- Smart Meter + Smart Meter
@@ -81,7 +81,7 @@ export default { data() { return { loggerLevel: "WARNING", - readers: [], + meters: [], loggerSink: null, mqttSink: null, credentials: null, @@ -92,23 +92,23 @@ export default { this.USERNAME = "admin"; }, methods: { - addReader() { - this.readers.push({ - id: this.getReaderId(), + addMeter() { + this.meters.push({ + id: this.getMeterId(), config: {}, }); }, - getReaderId() { - if (this.readers.length == 0) { + getMeterId() { + if (this.meters.length == 0) { return 1; } - return Math.max(...this.readers.map((r) => r.id)) + 1; + return Math.max(...this.meters.map((r) => r.id)) + 1; }, - updateReader(index, newConfig) { - this.readers[index].config = newConfig; + updateMeter(index, newConfig) { + this.meters[index].config = newConfig; }, - removeReader(index) { - this.readers.splice(index, 1); + removeMeter(index) { + this.meters.splice(index, 1); }, checkCredentials(action, message = null) { if (!this.credentials) { @@ -137,7 +137,7 @@ export default { }, resetConfig() { this.loggerLevel = "WARNING"; - this.readers = []; + this.meters = []; this.loggerSink = null; this.mqttSink = null; }, @@ -278,7 +278,7 @@ export default { }, extractConfig(cfg) { this.loggerLevel = cfg["log_level"] || "WARNING"; - this.readers = cfg["readers"].map((r, index) => { + this.meters = cfg["meters"].map((r, index) => { return { id: index, config: r }; }); this.mqttSink = cfg["mqtt_sink"] || null; @@ -287,7 +287,7 @@ export default { packConfig() { return { log_level: this.loggerLevel, - readers: this.readers.map((r) => r.config), + meters: this.meters.map((r) => r.config), mqtt_sink: this.mqttSink, logger_sink: this.loggerSink, }; From 567ea284270d152022e66cc60a214a1a69b8cde6 Mon Sep 17 00:00:00 2001 From: Mario Coray Date: Tue, 7 Sep 2021 11:03:40 +0200 Subject: [PATCH 3/5] frontend: clarify passwords --- .../src/components/Configurator.vue | 16 +++++++++------- .../src/components/PasswordModal.vue | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue index 0c9bf6c..d4b4219 100644 --- a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue +++ b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue @@ -12,12 +12,14 @@ >Restart Data Collector Restart Demo - Change Password + + +
From b91d73a95edfb10a06a40ea063bdae27e2bb693b Mon Sep 17 00:00:00 2001 From: Mario Coray Date: Tue, 7 Sep 2021 13:14:19 +0200 Subject: [PATCH 4/5] frontend: restart data collector after deploying config --- .../src/components/Configurator.vue | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue index d4b4219..d812371 100644 --- a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue +++ b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue @@ -2,16 +2,27 @@
- Load Configuration - Deploy Configuration - Restart Data Collector - Restart Demo + + + + + + The Data Collector service will be restarted.", confirmText: "Upload", type: "is-warning", hasIcon: true, @@ -220,6 +232,9 @@ export default { duration: 4000, }); }) + .then(() => { + this.restartDatacollector(); + }) .catch((error) => { const message = this.parseError(error); this.$buefy.toast.open({ @@ -331,4 +346,8 @@ export default { }; - + From df78aa187d2ce24f36494537743b8391d295a8af Mon Sep 17 00:00:00 2001 From: Mario Coray Date: Tue, 7 Sep 2021 13:55:41 +0200 Subject: [PATCH 5/5] frontend: add footer with links; rework URL generation --- .../src/App.vue | 12 +++++++++++- .../src/components/Configurator.vue | 12 ++++++------ .../src/components/SmartMeter.vue | 4 ++-- .../src/utils.js | 17 ++++++++++++----- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/frontend/smartmeter-datacollector-configurator/src/App.vue b/frontend/smartmeter-datacollector-configurator/src/App.vue index e9525e0..701bee3 100644 --- a/frontend/smartmeter-datacollector-configurator/src/App.vue +++ b/frontend/smartmeter-datacollector-configurator/src/App.vue @@ -9,17 +9,27 @@
+
diff --git a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue index d812371..32ee77e 100644 --- a/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue +++ b/frontend/smartmeter-datacollector-configurator/src/components/Configurator.vue @@ -84,7 +84,7 @@