schema_device-2.0.yml 4.33 KB
schema;schema_component_attributes:
  type: map
  required: True
  mapping:
    attribute:
      type: map
      required: True
      mapping:
        key:
          type: str
          required: True
        # is_* are False by default
        is_editable:
          type: bool
        is_container:
          type: bool
        is_enum:
          type: bool
        value:
          type: any
          required: True
        liminf:
          type: number
        limsup:
          type: number
        label:
          type: any
        unit:
          type: any
        description:
          type: any
        placeholder:
          type: str

schema;schema_component_output_data:
  type: map
  required: False
  mapping:
    data:
      type: map
      required: False
      mapping:
        key: # e.g. link with Json keys
          type: any
          required: True
        category: # general category of the sensor (official list)
          type: str
          required: True
        external: # internal/external of the building (information)
          type: bool
        monitoring_name: # Monitoring unique value (official list)
          type: str
        quality: # float 0 to 1
            type: float
        time_sampling: # period (s) to record in the history database
            type: float          
        label: # Label for web display
          type: str
        value_type: # value format for web display
          type: any 
        unit: # Unit for web display
          type: str 
        description: # for the web display
            type: str
            
schema;schema_capability:
  type: map
  required: True
  mapping: 
    component:
      type: str
      required: True
    attributes:
      type: seq
      required: False # True if we're not using default values
      seq:
        - include : schema_component_attributes
    output_data:
      type: seq
      required: False # True if we're not using default values
      seq:
        - include : schema_component_output_data


# old version
# schema;schema_capability:
#   type: map
#   required: True
#   mapping:
   
schema;schema_capabilities:
  type: seq
  sequence:
    - type: map
      mapping:
        CAPABILITY:
          include: schema_capability

schema;schema_device:
  type: map
  required: True
  mapping:
    generic:
      type: str
      required: False
    inventory_label:
      type: str
      required: True
    manufacturer:
      type: str
      required: False
    model: 
      type: str
      required: False
    description: 
      type: str
      required: False
    sn: 
      type: text
      required: True
    power:
      type: map
      required: False
      mapping:
        voltage:
          type: float
        intensity: 
          type: float
        socket:
          type: str
    hostname:
      type: str
    virtual_machine:
      type: bool
    network_interfaces:
      type: seq
      sequence:
        - type: str
    connector:
      type: map
      
      mapping:
        input:
          type: str
          
        output:
          type: str

    comm:
      type: map
      required: False
      mapping:
        supports:
          type: seq
          required: False
          sequence:
            - type: str
        languages:
          type: seq
          required: False
          sequence:
            - type: str
        support:
          type: str
          required: False
        language:
          type: str
          required: False
        tcp_port:
          type: int
          required: False
          
    os: 
      type: str
      
    os_version: 
      type: str
      
    protocol:
      type: map
      
      mapping:
        transport:
          type: str
          
        langage: 
          type: str
          
        read: 
          type: bool
            
        write: 
          type: bool
            
    CAPABILITIES:
      include: schema_capabilities
      required: True
    ATTACHED_DEVICES:
      type: seq
      sequence:
        - type: map
          mapping:
            file:
              type: str

type: map
mapping:
    schema:
        type: str
        required: True
    DEVICE:
      include: schema_device