2015-10-04 7 views
5

To pytanie jest bardzo podobne do Missing attributes on Orion CB Entity when registering device through IDAS, ale nie znalazłem tam ostatecznej odpowiedzi.Fizyka: brak atrybutów obserwacji w CB Oriona zarejestrowanych/wysłanych przez IDAS UltraLight

staram FiWare dostać UL2.0 poprzez IDAS do Orion CB pracujący w env Fiware-Lab:

Mam konto laboratorium FI-WARE z wygenerowanym tokenem. Dostosowany plik config.ini:

[user] 
# Please, configure here your username at FIWARE Cloud and a valid Oauth2.0 TOKEN for your user (you can use get_token.py to obtain a valid TOKEN). 
username=MY_USERNAME 
token=MY_TOKEN 

[contextbroker] 
host=130.206.80.40 
port=1026 
OAuth=no 
# Here you need to specify the ContextBroker database you are querying. 
# Leave it blank if you want the general database or the IDAS service if you are looking for IoT devices connected by you. 
# fiware_service= 
fiware_service=bus_auto 
fiware-service-path=/ 

[idas] 
host=130.206.80.40 
adminport=5371 
ul20port=5371 
OAuth=no 
# Here you need to configure the IDAS service your devices will be sending data to. 
# By default the OpenIoT service is provided. 
# fiware-service=fiwareiot 
fiware-service=bus_auto 
fiware-service-path=/ 
#apikey=4jggokgpepnvsb2uv4s40d59ov 
apikey=4jggokgpepnvsb2uv4s40d59ov 

[local] 
#Choose here your System type. Examples: RaspberryPI, MACOSX, Linux, ... 
host_type=MACOSX 
# Here please add a unique identifier for you. Suggestion: the 3 lower hexa bytes of your Ethernet MAC. E.g. 79:ed:af 
# Also you may use your e-mail address. 
host_id=a0:11:00 

użyłem szablonu SENSOR_TEMP, dodając 'protokół' pole (PDI-jota-Ultralight, który jako pierwszy problemu natknąłem się):

{ 
"devices": [ 
    { "device_id": "DEV_ID", 
     "entity_name": "ENTITY_ID", 
     "entity_type": "thing", 
     "protocol": "PDI-IoTA-UltraLight", 
     "timezone": "Europe/Amsterdam", 
"attributes": [ 
     { "object_id": "otemp", 
      "name": "temperature", 
      "type": "int" 
     } ], 
"static_attributes": [ 
     { "name": "att_name", 
      "type": "string", 
      "value": "value" 
     } 
     ] 
     } 
    ] 
    } 

teraz Mogę zarejestrować urządzenie w porządku. Jak

python RegisterDevice.py SENSOR_TEMP NexusPro Temp-Otterlo 

i zobaczyć go w wykazie urządzeń:

python ListDevices.py 

mogę wysłać Obserwacje jak

python SendObservation.py Temp-Otterlo 'otemp|17' 

Ale w ContextBroker widzę Entity ale nigdy pomiary, na przykład

python GetEntity.py Temp-Otterlo 

Daje

* Asking to http://130.206.80.40:1026/ngsi10/queryContext 
* Headers: {'Fiware-Service': 'bus_auto', 'content-type': 'application/json', 'accept': 'application/json', 'X-Auth-Token': 'NULL'} 
* Sending PAYLOAD: 
{ 
    "entities": [ 
     { 
      "type": "", 
      "id": "Temp-Otterlo", 
      "isPattern": "false" 
     } 
    ], 
    "attributes": [] 
} 

... 

* Status Code: 200 
* Response: 
{ 
    "contextResponses" : [ 
    { 
     "contextElement" : { 
     "type" : "thing", 
     "isPattern" : "false", 
     "id" : "Temp-Otterlo", 
     "attributes" : [ 
      { 
      "name" : "TimeInstant", 
      "type" : "ISO8601", 
      "value" : "2015-10-03T14:04:44.663133Z" 
      }, 
      { 
      "name" : "att_name", 
      "type" : "string", 
      "value" : "value", 
      "metadatas" : [ 
       { 
       "name" : "TimeInstant", 
       "type" : "ISO8601", 
       "value" : "2015-10-03T14:04:44.663500Z" 
       } 
      ] 
      } 
     ] 
     }, 
     "statusCode" : { 
     "code" : "200", 
     "reasonPhrase" : "OK" 
     } 
    } 
    ] 
} 

dostaję TimeInstant przypisują dziwnie. Próbowałem grać z ustawieniami .ini jak fiware-service = fiwareiot, ale bez skutku. Nie mam pomysłów. Dokumentacja w katalogu. dla IDAS4 jest mowa o obserwacjach, które mają być wysłane do portu 8002 i ustawieniu usługi "OpenIoT", ale to również się nie udało.

Każda pomoc doceniona.

+0

Czy próbowałeś użyć innego brokera kontekstu Orion? (na przykład własny). – LeandroGuillen

+0

Nie, jeszcze nie, również dlatego, że może to być powszechny problem (patrz http://stackoverflow.com/questions/31051501/missing-attributes-on-orion-cb-entity-when-register-device-through-idas). Może np. wersja OCB ma znaczenie? –

+0

To zdecydowanie może być to. Spróbuj użyć najnowszej wersji OCB (0,24 na dzień dzisiejszy). – LeandroGuillen

Odpowiedz

0

Powinieneś uruchomić "python SendObservation.py NexusPro" otemp | 17 '"zamiast" python SendObservation.py Temp-Otterlo "otemp | 17'".

Powodem jest to, że wykonujesz obserwację w kierunku południowym, a następnie użyj DEV_ID.

Podmiot nie zawiera atrybutu do momentu otrzymania obserwacji, więc jest to normalne, że nie można go zobaczyć. Po wypróbowaniu powyższego, wszystko powinno działać.

Pozdrawiam,

+0

Wypróbował również identyfikator urządzenia, ale ten sam wynik: brak wartości w Podmiocie za pośrednictwem CB. –

Powiązane problemy