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:
- wykorzystaniem najnowszych GitHub
https://github.com/telefonicaid/fiware-figway/tree/master/python-IDAS4 skrypty - następujące tutoriale w szczególności http://www.slideshare.net/FI-WARE/fiware-iotidasintroul20v2
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.
Czy próbowałeś użyć innego brokera kontekstu Orion? (na przykład własny). – LeandroGuillen
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? –
To zdecydowanie może być to. Spróbuj użyć najnowszej wersji OCB (0,24 na dzień dzisiejszy). – LeandroGuillen