Lorawan-stack: Visão geral do gateway único

Criado em 6 mar. 2019  ·  7Comentários  ·  Fonte: TheThingsNetwork/lorawan-stack

Resumo:
O console precisa de uma página de visão geral para gateways, complementar às nossas páginas de visão geral para aplicativos e dispositivos. Veja também #26.

A página de visão geral deve conter:

  • informações básicas como id, nome, descrição, data de criação
  • informações de status (visto pela última vez)
  • a localização dos gateways (antena)
  • número de mensagens enviadas/recebidas
  • plano de frequência
  • informações de hardware (marca, modelo, intensidade do sinal, firmware)
  • privacidade (gateway público/privado)

Implicitamente, trabalhar na visão geral também conterá:

  • visualização pai do gateway (com barra lateral, contêiner de migalhas de pão)

Por que nós precisamos disso?
As páginas de visão geral de nossas entidades servem como acesso rápido às informações mais importantes em baixa profundidade de cliques.

O que já existe?
Os endpoints de API correspondentes. Para referência, um exemplo de resposta GET /gateways/{gateway_ids.gateway_id} do registro do gateway:

{
  "ids": {
    "gateway_id": "string",
    "eui": "string"
  },
  "created_at": "2019-03-06T08:55:43.727Z",
  "updated_at": "2019-03-06T08:55:43.727Z",
  "name": "string",
  "description": "string",
  "attributes": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "contact_info": [
    {
      "contact_type": "CONTACT_TYPE_OTHER",
      "contact_method": "CONTACT_METHOD_OTHER",
      "value": "string",
      "public": true,
      "validated_at": "2019-03-06T08:55:43.727Z"
    }
  ],
  "version_ids": {
    "brand_id": "string",
    "model_id": "string",
    "hardware_version": "string",
    "firmware_version": "string"
  },
  "gateway_server_address": "string",
  "auto_update": true,
  "update_channel": "string",
  "frequency_plan_id": "string",
  "antennas": [
    {
      "gain": 0,
      "location": {
        "latitude": 0,
        "longitude": 0,
        "altitude": 0,
        "accuracy": 0,
        "source": "SOURCE_UNKNOWN"
      },
      "attributes": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }
  ],
  "status_public": true,
  "location_public": true,
  "schedule_downlink_late": true,
  "enforce_duty_cycle": true,
  "downlink_path_constraint": "DOWNLINK_PATH_CONSTRAINT_NONE"
}

O que está faltando?

  • Discussão rápida sobre o que precisa estar lá (está faltando alguma coisa)
  • Wireframes e/ou screendesigns
  • Implementação

Como você se propõe a implementar isso?
Complementar à implementação do nosso aplicativo.

O que você pode fazer sozinho e em que precisa de ajuda?
Eu gostaria de acompanhar com um wireframe rápido, assim que tiver algumas informações sobre os requisitos.

console discuss in progress

Comentários muito úteis

Eu manteria simples; ID, EUI, nome, descrição e plano de frequência.

Bom seria mostrar um indicador online pressionando o GS e verificando as estatísticas de conexão. Se 200 <= status < 300 está conectado, se 404 não está conectado e qualquer outra coisa é um erro. Esta é uma chamada por entrada mostrada, mas vale a pena e é barato servir do GS, pois vem da memória.

Todos 7 comentários

Acho que precisamos de algumas informações aqui em breve sobre o que mostrar na página de visão geral do gateway.
cc @htdvisser @johanstokking

Eu manteria simples; ID, EUI, nome, descrição e plano de frequência.

Bom seria mostrar um indicador online pressionando o GS e verificando as estatísticas de conexão. Se 200 <= status < 300 está conectado, se 404 não está conectado e qualquer outra coisa é um erro. Esta é uma chamada por entrada mostrada, mas vale a pena e é barato servir do GS, pois vem da memória.

de https://github.com/TheThingsNetwork/lorawan-stack/issues/26#issue -404416151

exibir estatísticas de conexão por gateway (se o gateway_server_address corresponder à configuração da API do Gateway Server do console atual)

e

Bom seria mostrar um indicador online pressionando o GS e verificando as estatísticas de conexão. Se 200 <= status < 300 está conectado, se 404 não está conectado e qualquer outra coisa é um erro.

Devemos concordar com o que mostramos ao usuário.

deixei
gtw_gs_address ser o endereço do servidor gateway configurado para o gateway
console_gs_address ser o endereço do servidor gateway do cluster atual passado para o console

  1. Se maior ou igual a 200 e menor que 300, então é connected
  2. se 404
    2.1 se gtw_gs_address ou console_gs_address == empty -> status unknown . isso pode acontecer se o endereço do servidor gateway não estiver presente no cluster atual ou o endereço não foi adicionado ao criar o gateway, ou ambos.
    2.2 se gtw_gs_address == console_gs_address -> status disconnected
    2.3 se gtw_gs_address != console_gs_address -> o gateway is not managed by this console
  3. qualquer outra coisa -> o status do gateway é unknown , a página Visão geral do gateway exibe um erro

IU:
connected (1)
Screenshot 2019-05-06 at 11 46 17

unknown (2.1)
Screenshot 2019-05-06 at 11 46 52

disconnected (2.2)
Screenshot 2019-05-06 at 11 44 50

not this console (2.3)
Screenshot 2019-05-06 at 11 53 11

@johanstokking @htdvisser @kschiffer

Eu usaria uma lógica diferente para o indicador de conectividade. Deve começar com o endereço do servidor gateway, e não com a requisição ao GS (porque não faz sentido chamar um GS que já sabemos que não atende ao gateway):

  • Se console.gateway_server_address estiver vazio, então o recurso está completamente desabilitado
  • Se gateway.gateway_server_address estiver vazio, então:

    1. assumir console.gateway_server_address mas também mostrar a mensagem

    2. o recurso está desabilitado para este gateway e mostra a mensagem

  • Se gateway.gateway_server_address não for igual a console.gateway_server_address , o recurso será desabilitado para este gateway e mostrará a mensagem

Eu também mudaria um pouco a mensagem. Estamos tentando informar ao usuário que o gateway selecionado não está atribuído ao servidor de gateway no cluster do console atual. Ainda é possível ler/escrever coisas do gateway que está no servidor de identidade e não no servidor de gateway (basicamente tudo que não seja estado de conectividade e tráfego)

Eu também mudaria um pouco a mensagem.

Qual seria a mensagem?

Eu concordo com @htdvisser no pedido.

Então temos cinco estados:

  • Se console.gateway_server_address for igual gateway.gateway_server_address , então aperte o GS:



      1. Conectado se 200 <= status < 300





      1. Não conectado se 404





      1. Erro caso contrário



  • De outra forma



      1. Desconhecido Se gateway.gateway_server_address estiver vazio; o gateway não é provisionado





      1. Caso contrário, outro cluster (ou seja, os endereços diferem)



Eu também mudaria um pouco a mensagem.

Qual seria a mensagem?

De qualquer forma, não sei se a parte superior é um bom local para exibir a notificação. Para ter uma mensagem significativa, provavelmente precisamos de um texto mais longo que não ficará bem ali. Eu diria que Unknown ou Other Cluster como status é suficiente e devemos procurar outro lugar para informar o usuário sobre detalhes posteriormente.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

adriansmares picture adriansmares  ·  9Comentários

thinkOfaNumber picture thinkOfaNumber  ·  4Comentários

johanstokking picture johanstokking  ·  8Comentários

kschiffer picture kschiffer  ·  4Comentários

johanstokking picture johanstokking  ·  5Comentários