From bbc3e51469d47ec0e8f955d69274d31fd72a87bd Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Tue, 31 Oct 2023 12:02:08 +0100 Subject: [PATCH 1/3] influxdb plugin: convert readme to user_doc --- influxdb/README.md | 86 --------------- influxdb/user_doc.rst | 124 ++++++++++++++++++++++ influxdb/webif/static/img/plugin_logo.png | Bin 0 -> 51487 bytes 3 files changed, 124 insertions(+), 86 deletions(-) delete mode 100755 influxdb/README.md create mode 100644 influxdb/user_doc.rst create mode 100644 influxdb/webif/static/img/plugin_logo.png diff --git a/influxdb/README.md b/influxdb/README.md deleted file mode 100755 index 91f05d339..000000000 --- a/influxdb/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# influxdb - -## Logging to InfluxDB over UDP or HTTP - -Logging items to the time-series database [InfluxDB](https://www.influxdata.com/time-series-platform/) - -This started as a fork of the plugin `influxdata` with the following enhancements: -- proper naming -- specify a name for the measurement instead of falling back to the item's ID -- specify additional tags or fields globally (plugin.yaml) and/or on per-item basis - -The special smarthomeNG attributes `caller`, `source` and `dest` are always logged as tags. - -Only if a measurement name is specified, the item's ID is automatically logged as well (tag `item`) - if you don't specify a measurement-name, the name will fallback to the item's ID which makes the item-tag redundant - -## Proper Logging -Please read the [Key Concepts](https://docs.influxdata.com/influxdb/v1.8/concepts/key_concepts/) and [Schema Design](https://docs.influxdata.com/influxdb/v1.8/concepts/schema_and_data_layout/) - -Especially these: -- [Encode meta data in tags](https://docs.influxdata.com/influxdb/v1.8/concepts/schema_and_data_layout/#encode-meta-data-in-tags) -- [Avoid encoding data in measurement names](https://docs.influxdata.com/influxdb/v1.8/concepts/schema_and_data_layout/#avoid-encoding-data-in-measurement-names) -- [Avoid putting more than one piece of information in one tag](https://docs.influxdata.com/influxdb/v1.8/concepts/schema_and_data_layout/#avoid-putting-more-than-one-piece-of-information-in-one-tag) - -## Setup - -### /etc/influxdb/influxdb.conf - -If you use UDP, you have to explicitly enable the UDP endpoint in influxdb. The UDP endpoint cannot be auth-protected and is bound to a specific database - -``` -[[udp]] - enabled = true - bind-address = ":8089" - database = "smarthome" - # retention-policy = "" -``` - -If you want to use HTTP access no additional configuration is needed as HTTP access to the influxdb is enabled by default. - -### plugin.yaml - -you can setup global tags and fields (JSON encoded) - -```yaml -influxdb: - plugin_name: influxdb - # host: localhost - # udp_port: 8089 - # keyword: influxdb - # value_field: value - # write_http: True - # http_port: 8086 - tags: '{"key": "value", "foo": "bar"}' - fields: '{"key": "value", "foo": "bar"}' -``` - -### items.yaml - -logging into a measurement named `root.some_item`, default tags and tags/fields as specified in plugin.yaml - -```yaml -root: - - some_item: - influxdb: 'true' -``` - -if `keyword` in plugin.yaml is set to `sqlite` this can also be used as a drop-in replacement for sqlite. - -```yaml -root: - - some_item: - sqlite: 'true' -``` - -*recommended*: logging into the measurement `temp` with an additional tag `room` -and default tags (including `item: root.dining_temp`) and tags/fields as specified in plugin.yaml - -```yaml -root: - - dining_temp: - influxdb_name: temp - influxdb_tags: '{"room": "dining"}' -``` diff --git a/influxdb/user_doc.rst b/influxdb/user_doc.rst new file mode 100644 index 000000000..79a218c0a --- /dev/null +++ b/influxdb/user_doc.rst @@ -0,0 +1,124 @@ +.. index:: Plugins; influxdb +.. index:: influxdb + +======== +influxdb +======== + +.. image:: webif/static/img/plugin_logo.png + :alt: plugin logo + :width: 300px + :height: 300px + :scale: 50 % + :align: left + +Konfiguration +============= + +Die Informationen zur Konfiguration des Plugins sind unter :doc:`/plugins_doc/config/influxdb` beschrieben. + +/etc/influxdb/influxdb.conf +--------------------------- + +Wenn UDP verwendet wird, muss der UDP-Endpunkt explizit in influxdb aktiviert werden. +Der UDP-Endpunkt ist nicht auth-geschützt und ist an eine bestimmte Datenbank gebunden. + +.. code-block:: yaml + + [[udp]] + enabled = true + bind-address = ":8089" + database = "smarthome" + # retention-policy = "" + +Wenn Sie den HTTP-Zugang verwenden möchten, ist keine zusätzliche Konfiguration erforderlich, da der +HTTP-Zugriff auf die influxdb standardmäßig aktiviert ist. + +plugin.yaml +----------- + +Es können globale Tags und Felder angegeben werden: + +.. code-block:: yaml + + influxdb: + plugin_name: influxdb + # host: localhost + # udp_port: 8089 + # keyword: influxdb + # value_field: value + # write_http: True + # http_port: 8086 + tags: '{"key": "value", "foo": "bar"}' + fields: '{"key": "value", "foo": "bar"}' + +items.yaml +---------- + +Logging in eine Messung namens ``root.some_item``, Standard-Tags und +Tags/Felder wie in plugin.yaml angegeben + +.. code:: yaml + + root: + some_item: + influxdb: 'true' + +Wenn ``keyword`` in der plugin.yaml auf ``sqlite`` gesetzt wird, kann dies auch +als Ersatz für sqlite verwendet werden. + +.. code:: yaml + + root: + some_item: + sqlite: 'true' + +*empfohlen*: Loggen der Messung ``temp`` mit einem zusätzlichen +Tag ``room`` und Standard-Tags (einschließlich ``item: root.dining_temp``) und +Tags/Felder wie in plugin.yaml angegeben + +.. code:: yaml + + root: + dining_temp: + influxdb_name: temp + influxdb_tags: '{"room": "dining"}' + + +In InfluxDB über UDP oder HTTP loggen +===================================== + +Protokollierung von Elementen in der Zeitseriendatenbank +`InfluxDB `_ + +Dieses Plugin ist ein Fork von ``influxdata`` mit den folgenden +Erweiterungen: + +- korrekte Namensgebung +- Angabe eines Namens für die Messung statt auf die ID des Elements zurückzugreifen +- zusätzliche Tags oder Felder global (plugin.yaml) und/oder pro Element + +Die speziellen smarthomeNG Attribute ``caller``, ``source`` und ``dest`` +werden immer als Tags protokolliert. + +Nur wenn ein Messungsname angegeben wird, wird automatisch auch die ID des Elements +mitprotokolliert (Tag ``item``) - wenn Sie keinen Messungsnamen angeben, +wird der Name auf die ID des Items zurückgreifen, was den Item-Tag +überflüssig macht + +Korrektes Logging +================= + +Bitte lesen Sie die `Key Konzepte `_ +und `Schema Design `_ + +Insbesondere diese: + +- `Metadaten kodieren in Tags `_ +- `Vermeiden Sie die Kodierung von Daten in Messnamen `_ +- Vermeiden Sie mehr als eine Information in einem Tag `_ + +Web Interface +============= + +Das Plugin stellt kein Web Interface zur Verfügung. diff --git a/influxdb/webif/static/img/plugin_logo.png b/influxdb/webif/static/img/plugin_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a605a023cc17d349045e3d7beb57d22e145aeba7 GIT binary patch literal 51487 zcmeFZbyQs2(k~ha1PQ@C3GUvFyEX3aPUG%w!8N!$1c%_k-Ccr9aQEN=UT5!p_Br1h z=e+M5_uVn>KbJ9@wbq<9tLpcgRW)a?Ufp5xvSRNL@eyCWdi7319HjW_6%^g?7yKJY zi@SHUGvt6^C$8c6>J<+9?-!J5_B2Eak))36#W^D(Ne)Won z-_6dz$P(;CWC%7jx8Wr@Yv~{%GB@TWQDc>1lCcv8o0*GyIDnNrWR;CPER8sgN%;AQ zc-*)k3ar6S21IVwRyK}YZoDLa=;eZ(|88a^A^Jna$&!~u@V7xCbs2dgVOs|<5hnu^ zy%7@=fQX%w0l)$_GGqao0FCH~fJ{JUMkW9wfSDcu?#7hG4_D>krc7Ln2ar}!a2x*LN26l`92BzPz{vjwM^ZzYs zZT+{jqmzgW#L8d({#(V4%ISi}Wv<3#!oV~$RW;D5sX9}I_x|2^2) z=x@Vz&JI?8&}3}H2(|)SLu@!gPyzn-)6UG+$=1=#_CJvDclUpx!pYp^KREZh=f8-8 z-OT@k=uU;_&nAkX&*f~Ujf*@8V5mpWWs~|HIq=A!D7(yF_A!8#h6I%ys14vk! zTN{{y8SQLLNr?W5K-kvG)&W8xglA?FqTe&gCGlHM&D_|@jF$w!`kUr|HcNwTO#f&H z09pTPm;W71kXqniZX{vj1a`1W*{)(^4gm!*@jIrtL?HiE!48gp*kuC#hWkEJGKb9XpJV<+`p-U%f9?B?_IEY3wu4NhxVa-FX5Ig)RZ3v{zs{`8 ziT)@6Tn0ve0&+BP0UMM2)oA{2rXRr0WXxm)nSNt7R(5(8LpBb2PIf~`Ah58p8Zxng z4UGVX{}}IT2L8?Hf5`=A02d4MKLY$u+m5y-POb(HU_nzz;Qpf~|1m|s^PLFD!T=RZ{ z&&dSfgsfT2h8#v5ob2rEe^1{3dGh~TIRCR!@@J6zTR8t(EdO`L665dn_s=Y0{C_9V zpVy#2qd@d`2>r1Ja{d2F7RaK=1*y}2SMLA5M*eBj_J5_m{*LTF3YL($)9?EBXQlf$ zrGbxw=MN&R%>PcW|E}p@iTk%U{t)<=oeo6vA5D<$)9=&2_im7jzjuFN8%UBnK=yW$ zM|`laUbSaQfCQD@ppG}-TKDF47TkT?_cHYE=a-9O3KSaCBIufk-hbM8(~m0+4+R%T zj&Mxj?k0rJHbn7$njJwdj(jM18!Ia?s2t(Vr?>qS4Bw<`=*t%4MAPuhA5LzckE${p z+i4enkVqw2johrHu0PV3O6E_Q9m52R=1(mUBSnekR}16fM~NDRFtOlA^&=aYK@K0g zCm{#!z}zV_78iKo-vdzp?|}bpENy9=b7#}vX=VU0o%M~r_VwG1mI&sgEsq>A4h^zR zT$a>_b5u$&6;HZB$BNIg3G>UvMRKsPg9`&gUm>qINnqb2yt&(jjh@I_~|l~zpTS>fKBH_I(=Yo+{YZ#Qy83@YIpCJ zwgRNqsb5%Z_jYb}GM+-_*ukLai4(466)W;=a`8#84@31HTDZQ*M}spZCFE)DqpccS zq*}JJ#s1MuS4Ho5h2`kAo6Bm`W)#n|57w|FhysJrE6 z%748SdW3T0e!k5m#jF!;9p&DYHR!-Q;Ph2yZX6HOUzenS4PC{Ir=_lPYPH3@v8B~) zJZ4F#lzwFd8L3(SGTl6jbf3KMqHV1z%4T>!IYcxb>;FV~2~!a+|v*9vNB&o)Py;zbm3<<4p zGDW+`m1a`MeWl=~R0Qy@Zg%6QxA%oBc^;*Y4lhB8I95FW!pfcn-?uy+UzKv>hi429 zAzsW94q=^8@iHcxSRaXnJs{3PBq97WXI%0AH#XW$8!lE!n?vz?wWNm%=lRm-5dy6> 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 literal 0 HcmV?d00001 From a01ec96d9bb5292af53739c192ee127f2b016784 Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Tue, 31 Oct 2023 12:02:34 +0100 Subject: [PATCH 2/3] influxdb plugin: add super.init method --- influxdb/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/influxdb/__init__.py b/influxdb/__init__.py index 4b3169572..e17952b7b 100755 --- a/influxdb/__init__.py +++ b/influxdb/__init__.py @@ -30,6 +30,7 @@ class InfluxDB(SmartPlugin): ALLOW_MULTIINSTANCE = False def __init__(self, smarthome): + super().__init__() self.logger = logging.getLogger(__name__) self.logger.info('Init InfluxDB') From 8ee2abcb5645aad80dc0ad6dc2d8ce722001e64e Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Tue, 31 Oct 2023 12:02:52 +0100 Subject: [PATCH 3/3] influxdb plugin: bump version to 1.0.3 --- influxdb/__init__.py | 2 +- influxdb/plugin.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/influxdb/__init__.py b/influxdb/__init__.py index e17952b7b..71849f43c 100755 --- a/influxdb/__init__.py +++ b/influxdb/__init__.py @@ -26,7 +26,7 @@ import requests class InfluxDB(SmartPlugin): - PLUGIN_VERSION = "1.0.2" + PLUGIN_VERSION = "1.0.3" ALLOW_MULTIINSTANCE = False def __init__(self, smarthome): diff --git a/influxdb/plugin.yaml b/influxdb/plugin.yaml index 23c81a2aa..d72cc624f 100755 --- a/influxdb/plugin.yaml +++ b/influxdb/plugin.yaml @@ -15,7 +15,7 @@ plugin: #documentation: https://www.smarthomeng.de/user/plugins/influxdb/user_doc.html support: https://knx-user-forum.de/forum/supportforen/smarthome-py/1498207-support-thread-f%C3%BCr-influxdb-plugin - version: 1.0.2 # Plugin version + version: 1.0.3 # Plugin version sh_minversion: 1.1 # minimum shNG version to use this plugin # sh_maxversion: # maximum shNG version to use this plugin (leave empty if latest) multi_instance: False # plugin supports multi instance