From 1e3b40861bf8a597a233d1baefd862f14195a5c0 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sun, 6 Aug 2023 21:29:46 +0200
Subject: [PATCH] update project

---
 agent_based/vzlogger.py         |  10 +++++-----
 packages/vzlogger               |   3 ++-
 vzlogger-0.0.1-230806.mkp       | Bin 4907 -> 5290 bytes
 web/plugins/metrics/vzlogger.py |  25 +++++++++++++++++++++++++
 4 files changed, 32 insertions(+), 6 deletions(-)
 create mode 100644 web/plugins/metrics/vzlogger.py

diff --git a/agent_based/vzlogger.py b/agent_based/vzlogger.py
index 5a58833..4beb8c9 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 968c233..b2d6f92 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
GIT binary patch
literal 5290
zcmaKvcQhLg*T=Qms#&Fq7O_fe*DfkGtHi98P{azg_pYk8YF4X8YDDc4trdGk5PNSS
zwzeo@L=btO=Y8JyJ-@%+zrN?*bI-Zwe*d`la{=+!slFc$J6@*jym0lKS4<g#k?D|C
zRt14hkYcAY?dO@g8$AY0(`%*TZIIhq>bJ4CdY7Tt)uTwfCzXm;udmR4=*CX5N#%9f
zI~Mt)f|)MUw$}_>ABMipAJsX(Izc&pipduykN$E|gfm=QRV@JMhmwVn#I;Mw-LY(H
zsfHJieDcArRdoCweKkbU)l~GM<2v`uR=kWToW^zKD!L2KD(I(d8C2sL@5=OXr-zYM
zVXtzcDS7_K`opcPGg_-_H=E8e^h3iTorh9%pLrXYLN)=dQ}%K$iLvgff>4#mD$Tx<
z)~nKc5-UKlRzk4jl~EFuODsiHbR{NmN!WNv?G$Rxx5vuJ@FQHZf=eb*#U0vh6fj_U
z70SXZqt@d8n1`A(;mUElwdKR0rBhJ<%$;SF{BD|+$TJ5uw*Cu1-xwGkdMT`HhaPOF
zupIJ-u2fW%mPzY@Obx%=AS+K7O1A>Kka$y5Vz4mCzsHX~Z*K2S0UE&5p~zjD1Fx!P
z444kK_UXdt4Zi@YzJ&-(|1b-SclfIj@9j)bYwzsTZyub`bE*GalQSxFN)rv;tq(FC
zl9~G9rF~AENbDSNrFO78yiKOlcbR1$iRK4pnG(ilAi+2gxl`*~2<ypt?Ge$IBJnG7
zwN7!50yv^j5lT-ZePxyS$rRqxHu1C<VSRJ6Rc=AxyX-EH%L|AP-E3PZHz<a#{z!1S
zF%pHO)&-LY+ILXR{j*MtpHjq5ojzAxreXmesq~~a3EXZ73%V6;Iu}+kG1Wp7+ciaP
zs<1OQMLiAM`P}C|T*;|^H6FP^);8+Z*EW({>los%I>v!3qJlgH-aOpqezPBO%w)_g
z&j9v5dq0|kUsUA_m-%vK_=(oZ-f5&%2cC_L-_`GC9i!Zc8Z!y|KyCwa>aXGVEe9hb
z6@ME}oC6rO$pRS^bOk=FhXmX1<qvoaqgi-CiZoUsr(<N3nAm?r_K@|8OoO)`D4!6i
zooSM`5QgBdVmFc=79QR5wP}ziI;c7UTS)D%R#ZQ>(<$n+=eWT_wtYt~_rdHBvZ{8%
zgqR~vj@WQ2pxLQx78e^!+NWRDyrfiqaRUy!lTQS;b22PhprftZcO;hx{fRfaa!dUC
ztnvCIzhdjLYOq?!UnPdTx8JU2lMQfkUgG(7gIuDO?!$2oJTj?p;b(LepX}aN53v8p
z_MdeV?d+5YL%iqNt*Yx-t7^X!vSHhAuc%s5&4}{5<0NNu>H*<9Z1Bo`;H(r5SI}Tr
z@RY>OFtuMaT%=;Zr}s29Y}PNNvo4~Gwh?Vlw@T*!gd0<rPHLay649THwnO}BO#~!M
zk2;Y3h_NgCC-;c<GFR?0UF&Oc@9Df&3!#7$s!k9Q=c}n1qno1r#0CYn^|6V7A~6Gg
zpY_v`JiUI*BLhvkFQ7P4=-6D8#TTlTTjpq%ftCUtsd)QxbI<*ZTI6ge{KIU*!UvYG
z6(#M`DDQ8}<-grPcHlSLxz|iG+jH$No*q44f6X!HA`?}}cFn?CrJKZO=upgGKHvDR
zw*641q&Fy6y~{{4=o^Nq72B#m$#u_lt-3H!z%>C)NQ;<w8UAMypT1nIgy{?39^R?A
zakqEk*QNe=!?LX3sQ$;ofY2D>w5_hj#+<1_^$DZTufQow-_}e%8VkbIr4sAf{NVsW
z-p1;}<7G@gyB$_^>RQ}X`BVc<bb7<dI!HRU8IW(Ge(q^R%PD_>IGTQf-o|~Lb(J^_
zDXR+b25JM=K^xYc$cRhysQa0X7D(06UhSLAvY{6vrDC>S`C`Km?}mYR*$|kCo~d*b
zD5B@mg0(%LoY|fCT(xbWC<N`hSJw{aw8&D3XrA^>5X!eGM$Z*tKgc3FPp3(U;hXu*
zEwJ(pHfuedG3E62d#VYOsjjP1!B?-TCe+QWSc)69A}eM3=}0FHy%b!5KrnaX8U+6i
ziZFt$SBgustNl?nUn2w;5gYBpm89!1xO;vMGX*UDF+=8kGTX*6YL|cdA1Cpsl4~Qr
zB+idLPZe<vFlWi|-3m;258?1u1{{Qky)lakYlbfg0mXMu)H_Ec9%+pJEE{O}QqK{1
ziP;P{<*9Y~Z=3f!^G{KR8Y{Y2VJ(l&w@L=Bq&mcJ(r3G#w8^uFoPeIKM=xy_jQ_!X
zxQ9<|i;B-v8fUSVt9);^e$`ZC*q7gQ;;W@GD(819_K%Ky8C$7p@bH%awba6i2bB$1
z*=!~sNV8cPIXwvI(_Tg<4IpK89?|Nkxw4z(=LuqZ6FStDI;#=EU%^Etx5Ox+i-Uaz
zK|LQ>zQuiiu(|i3nyWb2J)^%PH51993QvRF_qrKxB1Q5$P)WI&^-)69$};ypYpeFR
zPx`=d>BYHbX21x&<*i;*g#`Ln+*{eMPGW_srp~3U`;AxKIwo7Yreuaf@+{`xrv`e?
zGNv_q1V=qrd6~H&+p++KzyTTIY{!H5-VPY78+jPv%uSS1%iJA1cqg<lR)yd7$n?N^
zf<keHv_jLhVC+(9)L;l+r>wNrJTTELB1?91@%=-*>XW*4GXe7txch|3sGToqm(J+u
zog9=6^S12kr2`cE&A>uSx+%1}7qc7Cj#tamKuu%j$)`=|vD3YcbOkS9OO$ib7K-f!
zroQb7H`5e5NWfjF@X>@)A(?^g!<XwpU|V<J8MTHX-8v~$?T4$a^SYw9UUW^AxtZZU
z`iKlA70Zb~ATERbwn_`u85;wuP0M~Z8|w|(7rL!8l#d(f?BE!kG_@NNAa1z%$F-RX
zQRQC1K5}mwbV@y7JY>3lDw7;cQy-XqK^3ih+9z%O8@<ZqVk(#GSnH8LcsItxX_C84
z?WY;7FE>$b#}*FhD$U^W8=AnpG0;yklU}?NPxE?!>AWy3M>`8_CUN@@NLGE%lS<hf
zWp6)mL`u;sM>UW<*?-JMCxp8@sFFXA*;YMTa(r=c1+f(pK8T(O=zJV>>|*$s+En>{
z7Qn~K)aP&VnF1~*7s<bj47K9V*;p5w4Aa?f_o2aB&an_AKxcK9_t>31Y-WoJt%Tn#
zEWR0)>NoH9$kqV~8=Ah$1fd8Hea(c@o5n)3#@_`?%q>fc#zWP4nXg~D9QEYiqRv_n
z`B%Y@j69?4Y*A*n5_>2Id?VZX7e|}6q%irD$m7sewGGOn9MF43iub56WjLlCkE8gN
z9XJp0DF-<rUzOXLvTJNK*VkINP5Pz}+%jAQJ#W4%r4LfjKY~z6`iC+-{YSt5Y5Py%
zp(6CmJl&woW`dI5uTe<MCuy$`j0gBN$}Cm}SayNHEP88RAZ|ppMNu}pXUERMqT&Qp
z?lP?md|c{eRapNfISB!YDjDuK5$j3b1+bNYbTek*Um~RjF+LjoKKwk`6-c%dRl?q0
zS#`(}Gh0a3WqEB;?oi$j6zURGH1((HLBr?F=?B^p!62T5GkI-rAX-#!wj&8kn-g7`
znBC_omf4N-*La?&ArK$_WrGoWXU%kWWT>A843z*`bY)I=`W3`k@&xB$ry2z7Ui@>m
z|MU5Ok{z}To8QkovVn;3Pn6Ayr~7!o6$^6~uF@WnkmgSq#`MOYauodwMD(bm=>a7R
zq)knrgkL{r9HyN6UBVOh*t({^E&88fUu`^mX<n@vEP1Gbq_Jj4M<R8)=x#qu#9x9p
zck+&eNaX?+hH<3(n708h<zU9sK1X+4S3*(ke}ObU1W|3;KJe2&eP5QpR9wpDR&k@r
z>j0HUH~-|^MC9=@J_Olu6?_^r%wOVq{21{Ln)S|h2#ZE4Ic=a>wFWTZ93tqJc(lk$
z*gemcefak}nQJ>H$qywojJv9<bq6HYwdV)lTMTEo6nC`L_E&w-lh&N~*{#PrxlO01
zpUj_%MFJABPgf1ZZ$p;t=8d`z+KFcVI2>c0&2q4w$7;%8=}V@Xh0htkb_J4C!#~vA
zs9>_q;ZaE`V4&vp>xZJHiF(~df@&Q=VHth5UulH3mNJ%t6uwAmeA8l|zl|pEVzRbC
zJOTBft!oXD-#mDn+?r=_lfUdm>V~U?^1@3&s9@&8gDSA(1y9Vm{4T}TZ4>WCK_rB&
z&Rs;xs^;wiT_}`;%}5GrAj%^5GG1bRmzetmcp?FcqGLVfS%vo_B=dOv--uF3BCq#7
zE4VB6s%HWhyd0J6e6?=Gmvj|3T<*<}&>MT{X}*_|iL?<4k5Et^`ORy6J1KQ+=ci_t
z@u;$^%UWMqK^wh*gI81DiGd@aDUXE@b^AG_)?3Cp*f_PouJQij_otR@mOhf2V?<E}
z=ZA*&mbzK7mk0c&B?Rq~JwV8qCHXs?MZD-9Zvj6);?K9f<;L`2T)x*`AG_UO@Z7d)
z7|1QbN1`K`{*}d#O<JqB;&wImf0tl7JAZ=fIGOD^#$~&2v>6Ee&9%1nmGkR9*8O@~
zt)=bj&hZ|B?7_ydkHBQ%zVsE-;)5o|O~Or^H%o->`j5ZCXD&C7yH1wNUb$~)Eu0fu
z83Y4DYzBx5%Yi>bT5gSUdE9``^}a6Jxpsg=6PliDndV_K?@@cDm)?)F-?o8X8d7m<
z@kY9SGd*JT;43*m?`%)#W?r&ygTFGN7g`+Aw@0{Iw#`qWlHd2d)9t)IEITu`0JOu_
zsCdM`T}1J|49jZGF8vou18iDHYRluk`p)VLPQ0rxhPp{zhBN(fMzdy!-TwJz!cWOt
zIBiDsTeLd8%sKbh;w2IgHiah4qCd7or;rBschpF}{)qmIrDI#-_mTSOUq6<sRE#)<
zY-4%@LQ=i7wlB~yOg^`1(@W$X$+Mxe0~7b1h)vrtbo!5BD9{odo6yIo&=#0{s@SVo
z4({}f3Cktr&(x=&#33!uOXH6$67S-j=Kc+h9WMf&3E5Q%dDFyo0s9aj%FJxF6jJ>z
zH8z^%#=7=U4S*mUC~|B?9$(nr2<p9JnT&(S7E{{_vD@Y{EcP1Vr8^swl<KSN+?&zT
zyiE76i8v~1yGCA|vPZXQN4zeI-o0S@vrH#1-XlWKKsUb7L2#lkBVMIe^y;hN!XAoA
zU9V^x<`Q;`aA=xF7ouK67p8_zbrXWVCgWGY!+*mVIKycVQL%o}J~KO-Wsk4V@np3e
zGq|)xDC2j2%klr`RQ&e}<9VbKw9i2X(xj-8B2}+U&{H(RB77_ZQb?f&xk02zP<M1G
z1)Ccr%k`Op)p&glyhxy6p9_VHg8bk@u5bC4QzhT6pGAdR+^&O&h_AF2s~D_opZ@Eq
ztHzuA^FVG^+&X`Q6Q<tiOnklVn)X^e`jN3J_l(Vcm6SYE>#sF|NtEE>f}grh?AX`n
zYWS%X)c3T)Y+8ZgrR_eu$3{`oXlHS;&u^(o*k}mODX<gDGB|Khsm`FWApMSdIbq=m
z*(02ty5*%IxCzE}H)3C;K0?A#oR%N-v-zH<15_u~%gJ*>U?K2pBh%P%7&-r$WF!K2
zj8u#|ycm79>o|gV-N>1}2A62%Zmdz^Rs6O29ePXfQi4KN{Im^P6m3!DW22CF?padF
z)M+Oz`<}cK6;gIitZgb6z&xG4IfCon`?bi;32aR|OgtOLuH6iDu;=>tcj42;zQY!_
zAkx=Ynv+u)V{FS2NBld!RC)CKBv|Dyr!W@NOJ=`V8g;E$p5Zvut*2Z`1UMA`{Yib%
z@qE0)wyw|i*>+c9{^0WTx~zimp5wuzGuvaKy@nHa0T~EGcsfr^S~=67G%Ka;^(JEY
z!g3{dLr1T>^H&4AOy}ax_IBblnDa$H5b`UoZdXP{JwiF)m1<+|JLoX5kr^MfEd~xB
zsssl&H#uH(UCBuC;a}i;yS%B5Gv1woJLw6Ra)3BJ>2&q0A{tRL#(SjD{LMZnD76=6
zXkcATS_-XMmjdR{VL%|kL+`j$hvzBREr-05wAeQ8dB6MK3CzpzW%Ey$-V&qeI@)B7
z{Qy0Jj;+TU!W*daXZ@{jF*?oUxO&;PNkvAS9k<9!8gG=p$V&t|=<NtehFgVazrI~#
zE|R7>JwA5ta)g2<v#;&Xy=`gnF{ObxPMb;k)YI2y95!~3lvo1kI!tc<3qAQPhk`W-
zLOQP)Oz<SWxHl!D@ycA;5dPJ+#g>Qz_4C^ed8dhun4Yc&?6>TdtY5`;%htl^Sd2WQ
z{cFy)g+hy$k>`CbIzF)&s@)-HQp*R$)X4A4k6Cd13q21!V0z_`+p?Wq>$8?lnco@x
z_y`uF0@u7YaPZJ}Y>@Kn=apVISAOQulH0E>;gtkpR*-G$s{vGfk#Ng9C6Uj@yGNTh
zEvK}7{bco|KM@&V78dmClSd0dc&9h=i6JFKC43~M1+ws2GfuOS$$^^`Afne$e7oGT
zkTfUu+<g)LTMo700U@jv{FCzjLmw3D`jvQW$OY`<IS_F9k76!Hu9ds8?YP(W?g5^I
z5+TL0c7O-Gu|CA+Uu68dgm^@89FE>o@*TFI9Y+Ms<W2*jypQNr6`{a#c3^dM1X%+i
z?PLBi7(*YaA*#C<7QUZKJbm*UjxQ2t-DBuWLfZ)Ga23bn>$58anQhmFRUp^_0=L~u
zn%330py-pK#iRW_0BNVS<Tq)4obrmaQ7q8}X*e#m_Te|+XMxe$WA_JcoOLK|c3)t_
zonUU?yC(db(*{`7dJ8eyJ^4<&ZF1?c+2&=M{^rV>_CKrzImbKMNpoM|p$82tcXCdt
zNpq9B5$iu@qu4bwWd8sl$sdvcsB0YN9KQI`YTdnN#`{zdbR5nR6}XcCcfaR6HPnzi
zE81_>H@q3;h@5I1-C7CT^4UEqP8D25VA?lT<^8WP<`KXAFFyar*#9?DkD^c~DHwTD
Iaa^MMFW_X8t^fc4

literal 4907
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
OaR@q>gm6$eIR6LN1HO^~

diff --git a/web/plugins/metrics/vzlogger.py b/web/plugins/metrics/vzlogger.py
new file mode 100644
index 0000000..e073120
--- /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,
+})
-- 
GitLab