diff --git a/agent_based/vzlogger.py b/agent_based/vzlogger.py index 5a58833b1aa771a9ed023a18c4f9d4dc303a964f..4beb8c99e7063e45ad1fa385539774375e63f881 100644 --- a/agent_based/vzlogger.py +++ b/agent_based/vzlogger.py @@ -61,7 +61,7 @@ def _render_electrical_power(value: float) -> str: def _render_meter_reading(value: float) -> str: - return f'{value:.0f} kWh' + return f'{value/1000:.0f} kWh' def _yield_channel_details(channel: VzLoggerChannel) -> CheckResult: @@ -153,7 +153,7 @@ def check_vzlogger(item: str, params: Mapping[str, any], section: Dict[str, VzLo yield from _yield_channel_value( value=channel.value, label=item[8:], - metric=item, + metric=params['channel_type'], render_func=_render_voltage, levels_upper=params.get('levels_upper'), level_lower=params.get('levels_lower'), @@ -164,7 +164,7 @@ def check_vzlogger(item: str, params: Mapping[str, any], section: Dict[str, VzLo yield from _yield_channel_value( value=channel.value, label=item[17:], - metric=item, + metric='power', render_func=_render_electrical_power, levels_upper=params.get('levels_upper'), level_lower=params.get('levels_lower'), @@ -172,9 +172,9 @@ def check_vzlogger(item: str, params: Mapping[str, any], section: Dict[str, VzLo elif params['channel_type'] == 'meter_reading': yield from _yield_channel_value( - value=(channel.value/1000), + value=channel.value, label=item[14:], - metric=item, + metric=params['channel_type'], render_func=_render_meter_reading, levels_upper=params.get('levels_upper'), level_lower=params.get('levels_lower'), diff --git a/packages/vzlogger b/packages/vzlogger index 968c233c86c13e25166bc1331d1e8f4fef5054c5..b2d6f921ccc9875c44756ae7f14639e6464c5c6c 100644 --- a/packages/vzlogger +++ b/packages/vzlogger @@ -8,7 +8,8 @@ 'checks': ['agent_vzlogger'], 'gui': ['wato/check_parameters/agent_vzlogger.py', 'wato/check_parameters/vzlogger.py'], - 'lib': ['python3/cmk/special_agents/agent_vzlogger.py']}, + 'lib': ['python3/cmk/special_agents/agent_vzlogger.py'], + 'web': ['plugins/metrics/vzlogger.py']}, 'name': 'vzlogger', 'title': 'vzlogger', 'version': '0.0.1-230806', diff --git a/vzlogger-0.0.1-230806.mkp b/vzlogger-0.0.1-230806.mkp index a20a01098ade212717113dd1c61e8dc6b241d33f..fe69bf37218a67deca16ec893818c78f6dd4381d 100644 Binary files a/vzlogger-0.0.1-230806.mkp and b/vzlogger-0.0.1-230806.mkp differ diff --git a/web/plugins/metrics/vzlogger.py b/web/plugins/metrics/vzlogger.py new file mode 100644 index 0000000000000000000000000000000000000000..e073120b8b3102eebfcf73d4d581391053792faf --- /dev/null +++ b/web/plugins/metrics/vzlogger.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright (C) 2019 tribe29 GmbH - License: GNU General Public License v2 +# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and +# conditions defined in the file COPYING, which is part of this source code package. + +from cmk.gui.i18n import _ +from cmk.gui.plugins.metrics.utils import ( + metric_info, + perfometer_info, +) + +metric_info['meter_reading'] = { + 'title': _('Meter reading'), + 'unit': 'wh', + 'color': '41/a', +} + + +perfometer_info.append({ + 'type': 'logarithmic', + 'metric': 'meter_reading', + 'half_value': 50000000.0, # 50MWh + 'exponent': 4, +})