Bhairava Transmission Schema

As stated by the owner, 6 October 2026. Revised 17 October 2026: navigation node, nodes may be combined, no location on fixedread or statechange; navigation for every tenant type, stored readings and changes take the latest navigation position.

Tenant

transmission
  @ts
  tenants
    tenant
      @type              Fleet | Facility | Company
      @variant
      @name
      @group
      tags
      location
      path
      meta

      at least one of these four, alone or combined, as the client chooses
      notification
      fixedread
      statechange
      navigation

Navigation

navigation              any tenant type: where the tenant is (a moving vehicle or a fixed site); the only place a location is sent with data
  location               mandatory
    @lat                 mandatory
    @lng                 mandatory
  path                   optional, the trip path
    stops
      @name
      @lat
      @lng
      @sequence

FixedRead

fixedread
  @type                  state
  @variant               sensor
  @con                   transmission time
  meta                   no location: position goes in navigation

  entities               array of entity, batch of up to 500
    entity
      @variant           controller | sensor
      @con               capture time
      name               the name set on the sensor
      group              absolute location path, down to the controller
      meta               sensor / controller properties received in the packet
      PRESENTVALUE       45 / {unit}   only the value if the unit is not found
      STATUS             active | inactive   in place of PRESENTVALUE
      impact
      actor

Notification

notification            does not batch
  message
  severity               info | warning | danger | severe
  @con
  location               set to the tenant location
  meta                   the alarm contents

  entities
    entity
      name               the name set on the sensor
      group              absolute location path, down to the controller
      meta               sensor / controller properties received in the packet
      impact
  actors

StateChange

statechange
  @type
  @variant
  @con
  @currency
  meta                   no location: position goes in navigation

  changerecord
    entities
      @variant
      name
      group
      changeType
      changeVolume
      changeAmount
      meta
      impactEntities
        @variant
        @type
        name
        changeType
        changeVolume
        changeAmount
    entityManager
      @type
      @variant
      name
      changeType
      changeAmount
    actors
      @type
      @variant
      name
      changeType
      changeAmount

Validation

Every transmission is checked by Queen before it is stored or sent to the dashboard. A transmission that fails any rule is rejected with the error codes shown on the right.

Each node present is validated and stored on its own. notification, statechange and navigation are sent to the dashboard as received; fixedread is never sent to the dashboard raw: it is stored, and the sensor change feed sends the sensors that changed.

transmission
  tenants                at least one tenant                       NO_TENANTS

tenant
  @name                  required                                  TENANT_NAME_REQUIRED
  @type                  Fleet | Facility | Company                TENANT_TYPE_REQUIRED, TENANT_TYPE_INVALID
                         Fixed is still accepted as the old name for Company
  @variant               required                                  TENANT_VARIANT_REQUIRED
  node                   at least one of notification, fixedread,  NODE_REQUIRED
                         statechange, navigation; any combination
  location               an address, or lat and lng                LOCATION_INCOMPLETE
  lat, lng               lat -90 to 90, lng -180 to 180            LAT_OUT_OF_RANGE, LNG_OUT_OF_RANGE
  path stops             lat and lng in range                      LAT_OUT_OF_RANGE, LNG_OUT_OF_RANGE

notification            never balanced
  message                required                                  MESSAGE_REQUIRED
  severity               info | warning | danger | severe          SEVERITY_REQUIRED, SEVERITY_INVALID
  @con                   positive epoch milliseconds               CON_INVALID
  location               same rules as the tenant location         LOCATION_INCOMPLETE
  entity name            required                                  ENTITY_NAME_REQUIRED
  impact name            required                                  IMPACT_NAME_REQUIRED
  actor name             required                                  ACTOR_NAME_REQUIRED

fixedread               never balanced
  @con                   positive epoch milliseconds               CON_INVALID
  location               not allowed                               LOCATION_NOT_ALLOWED
  entities               1 to 500                                 FIXEDREAD_ENTITIES_REQUIRED, FIXEDREAD_TOO_MANY
  entity name            required                                  ENTITY_NAME_REQUIRED
  PRESENTVALUE, STATUS   one of the two                            VALUE_REQUIRED
  STATUS                 active | inactive                         STATUS_INVALID
  impact name            required                                  IMPACT_NAME_REQUIRED
  actor name             required                                  ACTOR_NAME_REQUIRED

statechange
  @type                  transaction | change | transition |       TYPE_REQUIRED, TYPE_INVALID
                         notification
  @variant               required                                  VARIANT_REQUIRED
  @con                   positive epoch milliseconds               CON_INVALID
  location               not allowed                               LOCATION_NOT_ALLOWED
  entity name            required                                  ENTITY_NAME_REQUIRED
  entityManager name    required                                  MANAGER_NAME_REQUIRED
  actor name             required                                  ACTOR_NAME_REQUIRED

navigation              never balanced
  location               required, with lat and lng                NAV_LOCATION_REQUIRED
  lat, lng               lat -90 to 90, lng -180 to 180            LAT_OUT_OF_RANGE, LNG_OUT_OF_RANGE
  path stops             optional; lat and lng in range            LAT_OUT_OF_RANGE, LNG_OUT_OF_RANGE

balancing             statechange only, except @type notification
                         GROWTH counts plus, DECAY counts minus, tolerance 0.005
                         impactEntities are never part of the balance
  with entities          entityManager required                    MANAGER_REQUIRED
                         entityManager = signed entity total       MANAGER_MISMATCH
                         entityManager + actors = 0                ACTORS_UNBALANCED
  without entities       actors, if any, net to zero                ACTORS_UNBALANCED
                         no entities and no actors is valid (movement)