Processo de Inicialização - Bootstrap Process
O que é o processo de inicialização?
1.
2.
3.
4.
Detalhes técnicos
Anúncio do Gateway
1.
POST para /devices
gatewayUri
dentro da função GatewayFunction
.Embora nenhuma classe de dispositivo tenha sido anunciada ainda, entende-se implicitamente que esta
GatewayFunction
é obrigatória e, portanto, é esperada no dispositivo que representa o gateway. Outras funções podem ser incluídas nesta primeira etapa.Então ao receber a requisição, se bem sucedida, o CMS cria um endereço único
gatewayAdress
e envia junto do seu endereço cmsAdress
como payload JSON de sua resposta a requisição.Ambos os endereços devem ser um UUID válido (não nulo).
2.
POST para /device-classes?clientAddress=<gatewayAddress>
3.
PATCH para /devices/<gatewayAddress>?clientAddress=<gatewayAddress>
GatewayFunction
para o dispositivo que a está implementado. Essa requisição deve incluir o atributo gatewayUri
dentro da função GatewayFunction
, para que o CMS saiba para onde enviar as requisições.4.
PATCH /devices/<gatewayAddress>?clientAddress=<cmsAddress>
GatewayFunction
. A requisição deve incluir o endereço TALQ do CMS.Anúncio de Serviços
POST
para o endpoint /services?clientAddress=<gatewayAddress>
. O clientAddress
é o UUID gerado na etapa anterior.Request URL: https://<cmsUri>/services?clientAddress=110a8321-e34c-112p5-b567-566655648453
Request Method: POST
Status Code: "201 OK"
Request Header: {
“talq-api-version”: “2.6.0”,
}
Request Content: [
{
"name": "ControlService",
"maximumCalendars": 100,
"maximumPrograms": 300,
"maxProgramsPerCalendar": 30,
"maxSwitchPointsPerProgram": 10,
"dayOffset": 0,
…
},
{
"name": "groupManagementService",
"maximumNumberOfGroups": 20,
"maximumGroupSize": 40
},
…
]
Anúncio de Classe de Dispositivo
POST
para o endpoint /device-classes?clientAddress=<gatewayAddress>
. Se tudo der certo o CMS valida os dados e responde com HTTP 201 Created
.Se o gateway não tiver mais classes para anunciar, ele deve enviar uma lista vazia para informar que o processo inicialização terminou.
Request URL: https://<cmsUri>/device-classes?clientAddress=110a8321-e34c-112p5-b567-566655648453
Request Method: POST
Status Code: "201 OK"
Request Header: {
“talq-api-version”: “2.6.0”,
}
Request Content: [
{
"name": "<deviceClassName>"
"functions": [
{
"name": "BasicFunction",
"attributes":[
{
"name": "displayName"
},
{
"name": "assetId"
},
…
]
},
{
"name": "LampActuatorFunction",
"attributes":[
{
"name": "lampTypeId"
},
{
"name": "maintenanceFactor",
"minValue": 0
"maxValue": 100
},
{
"name": "maintenancePeriod",
"unit": "Hours"
},
…
]
}
]
},
…
]
Se por algum motivo um dispositivo mudar sua classe de dispositivo, a API permite essa mudança enviando uma requisição
PATCH/PUT
ao CMS.Referências
https://github.com/TALQ-consortium/TALQ_specification. Acesso em: 13 mar. 2025
Modified at 2025-03-13 18:27:16