Пользовательские свойства: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «Расширения Ключ-АСТРОМ позволяют отправлять пользовательские свойства отслеживаемой т...»)
 
 
Строка 1: Строка 1:
'''''[[Расширения]] / [[Расширения#.D0.A0.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B0|Разработка]] / Расширения / Пользовательские свойства'''''
Расширения Ключ-АСТРОМ позволяют отправлять пользовательские свойства отслеживаемой технологии как на уровне устройства, так и на уровне группы устройств. Свойство имеет форму пары ключ-значение, где оба являются строками.
Расширения Ключ-АСТРОМ позволяют отправлять пользовательские свойства отслеживаемой технологии как на уровне устройства, так и на уровне группы устройств. Свойство имеет форму пары ключ-значение, где оба являются строками.



Текущая версия на 17:44, 4 сентября 2024

Расширения / Разработка / Расширения / Пользовательские свойства

Расширения Ключ-АСТРОМ позволяют отправлять пользовательские свойства отслеживаемой технологии как на уровне устройства, так и на уровне группы устройств. Свойство имеет форму пары ключ-значение, где оба являются строками.

Чтобы отправить свойство, используйте метод report_property(key="Key", value="Value") :

group.report_property(key='Group version', value="0.5")

или

node.report_property(key='Device version', value="2.3")

В следующем примере представлен полный код расширения:

import json

import requests

from ruxit.api.base_plugin import RemoteBasePlugin

import logging

logger = logging.getLogger(__name__)

class DemoPluginRemote(RemoteBasePlugin):

    def initialize(self, **kwargs):

        config = kwargs['config']

        logger.info("Config: %s", config)

        self.url = config["url"]

    def query(self, **kwargs):

        # Collect stats

        stats = json.loads(requests.get(self.url).content.decode())

        # Create group - provide group id used to calculate unique entity id in astromkey

        #   and display name for UI presentation

        group = self.topology_builder.create_group(identifier="DemoGroup",

                                                   group_name="ActiveGate Demo Group")

        # report group custom property - any string-string values pair. It is added to device group metadata displayed in astromkey UI

        group.report_property(key='Group custom property: version', value=stats['version'])

        logger.info("1. Group custom property")

        # Create node - provide node id used to calculate unique entity id in astromkey

        #   and display name for UI presentation

        node = group.create_element(identifier="DemoNode",

                                    element_name="ActiveGate Demo Node")

        logger.info("Topology: group name=%s, node name=%s", group.name, node.name)

        # report property - any string-string values pair. It is added to device metadata displayed in astromkey UI

        node.report_property(key='Device custom property: version', value=stats['version'])

        logger.info("2. Device custom property")

Никаких особых правок в plugin.jsonфайле не требуется.

См. пример пользовательских свойств, сообщаемых на уровне группы устройств и устройств:

Модуль плагина АктивногоШлюза ограничивает объем данных (настраиваемые свойства и слишком длинные строки), отправляемых на сервер Ключ-АСТРОМ. Ограничение установлено на уровне 100 пользовательских свойств, отправленных в течение 24 часов. Строка ключа одного свойства не может содержать более 50 символов. Строка значения одного свойства не может быть длиннее 140 символов. Свойства сообщаются в пакетах, длина одного пакета не может превышать 5120 символов.