Diethelm,
There's more than one way to achieve this. It really depends on the
architecture you'd prefer to employ.
> In old days (IoTivity) it was possible to have one server (in one surrounding
> application) that starts several devices. Is that possible with
IoTivity lite too?
By "surrounding application", are you suggesting a separate
application that spawns off specific processes as and when? You can do
that with IoTivity-Lite
servers too.
> If not: I started two servers (one and the copy of the executable from the
first).
> When I onboarded the first one successfully onboarding of the second failed.
This could've been because both were pointing at the same storage path
(i.e. the path supplied to oc_storage_config())? That's the path where
all state (credentials,
etc.) are persisted.
> - is it possible to start two or more servers within one application ?
The multi-device server which George cited lets you set up and run
multiple virtual servers within a single application process. Each
virtual server would have its
own set of endpoints/ports.
> - How to organise credentials in that case (persistence, etc...)
When using a multi-device server, all state is automatically organized
by the stack and indexed by virtual server. (For e.g., acl_0 is ACL
for the 0th server, acl_1 for the 1st server, etc.).
They're also loaded back appropriately into the contexts of each
virtual server following a power cycle.
> In general there might be the question:
> If a server application provides two or more devices: then it can only
manage ONE
> credential folder / file ? Is that the design goal?
The (oc_storage_config()) folder is one per application process, and
state is dumped into separate files and managed by the stack.
Thanks,
-Kishen.
--
Kishen Maloor
Intel Corporation
*From: *<iotivity-dev@lists.iotivity.org> on behalf of George Nash
<george.n...@intel.com>
*Date: *Tuesday, December 3, 2019 at 2:18 PM
*To: *"Prof. Dr.-Ing. Diethelm Bienhaus"
<diethelm.bienh...@mni.thm.de>, Clarke Stevens <clarke.stev...@sjrb.ca>
*Cc: *"iotivity-dev@lists.iotivity.org"
<iotivity-dev@lists.iotivity.org>, Sören Fink
<soeren.f...@mni.thm.de>, "thorsten.e...@gmx.de" <thorsten.e...@gmx.de>
*Subject: *Re: [dev] IoTivity lite question
I am no sure about the OTGC but when I use the onboarding_tool that
ships with iotivity-lite I see two device names `My fridge` and `My
thermostat`. With two distinct device ids. We may need to file a bug
against the OTCG for this issue. Has anyone tried OTGC with against a
multiple device sample?
Onboarding must be performed for both devices.
With IoTivity-classic all security information was written to a single
file.
With IoTivity-lite the security information is encoded across multiple
files. Feel free to open up the folder specified in
oc_storage_config(…) you will find many files ( acl_#, cred_#, doxm_#,
keypair_#, pstat_# ) Like IoTivity-classic these files are cbor encoded.
If you are using cloud, introspection, or the update api’s you may
find additional files. All files written to persistent storage by the
iotivity-lite stack will only go to the location specified by
oc_storage_config.
The number appended to the end of the file name is the device that
file is associated with. Device numbering starts with zero `0`.
George
*From:*Prof. Dr.-Ing. Diethelm Bienhaus <diethelm.bienh...@mni.thm.de>
*Sent:* Tuesday, December 3, 2019 12:51 PM
*To:* Clarke Stevens <clarke.stev...@sjrb.ca>; Nash, George
<george.n...@intel.com>
*Cc:* iotivity-dev@lists.iotivity.org; Sören Fink
<soeren.f...@mni.thm.de>; thorsten.e...@gmx.de
*Subject:* Re: [dev] IoTivity lite question
Dear Clarke, dear George,
many thanks for your quick responses.
I'm working in a project with the company BSC which is pushing the
EnOcean spec.
We are preparing some hardware and a gateway for the interop meeting
next week.
I really like the R Pi example. I started some time ago with Rami's
example "IoTivity Development on Raspberry Pi* 3"
I think we will start a server providing ONE device with one to
several resources representing a single EnOcean sensors.
What do you think?
One more question - hopefully I will not bother ;-) - since I have
been not involved in the iotivity lite topic for a longer time.
At the beginning of the security stuff there were cbor files stored
holding the credentials.
Nowadays there are commands like
oc_storage_config("./devicebuilderserver_creds");
oc_storage_config("./devicebuilderserver_creds");
But it seems that e.g. ./devicebuilderserver_creds is displayed as a
folder not a file.
Maybe there is a trick behind that ...
@George:
I just tried the multi_device_server_linux.c
The OTGC app displays two devices - unfortunately with the same name
"My fridge"
Having onboarded the first device an onboarding of the second device
failed.
Was that example tested with the OTGC app and security?
In general there might be the question:
If a server application provides two or more devices: then it can only
manage ONE credential folder / file ? Is that the design goal?
Best regards,
Diethelm
Am 03.12.2019 um 20:53 schrieb Clarke Stevens:
Diethelm,
From your example, I think you may just be building a basic OCF
device with multiple resources (resources in OCF are fairly atomic
and devices contain multiple resources). You might want to look at
the Raspberry Pi examples here that have multiple resources on
daughter boards. I particularly like the Explorer Hat Pro example
because it has both sensors and actuators and there is a nice
tutorial (enclosed). Also, the EnOcean bridge specification should
be available soon. In the mean time, you can see what a bridge
looks like with several other protocols (ZigBee, Z-Wave, U+,
oneM2M, AllJoyn and Bluetooth).
https://github.com/openconnectivity/Sample-Raspberry-Pi-Code
If you actually do need a Device to contain other devices, you can
do that, but it is not as simple.
Thanks,
-Clarke
On Dec 3, 2019, at 12:11 PM, Prof. Dr.-Ing. Diethelm Bienhaus
<diethelm.bienh...@mni.thm.de
<mailto:diethelm.bienh...@mni.thm.de>> wrote:
Hi all,
we are building a gateway for EnOcean sensors. The goal is to
have a device for each physical device like a button or a sensor.
There are EnOcean sensors with e.g. three measurement points
like combined temperature / illuminance / presence.
So we want to provide several devices (with one to n
resources) from our gateway application.
In old days (IoTivity) it was possible to have one server (in
one surrounding application) that starts several devices. Is
that possible with IoTivity lite too?
If so: could some one send me e.g. a link to an example?
Many thanks in advance.
Best regards,
Diethelm
-------- Weitergeleitete Nachricht --------
*Betreff:*
RE: IoTivity lite question
*Datum:*
Tue, 3 Dec 2019 18:49:40 +0000
*Von:*
Rami Alshafi<ralsh...@vtmgroup.com> <mailto:ralsh...@vtmgroup.com>
*An:*
Prof. Dr.-Ing. Diethelm Bienhaus<diethelm.bienh...@mni.thm.de>
<mailto:diethelm.bienh...@mni.thm.de>
Hi,
Yes, I believe it is possible to be accomplished with
IoTivity-lite. I do not know for sure but no one complained
about it being an issue at all and I work with many developers.
Your best bet is to send out your question to the IoTivity
developer mailing list (iotivity-dev@lists.iotivity.org
<mailto:iotivity-dev@lists.iotivity.org>) and one of the
developers will likely respond. The holidays in the US are
coming up so maybe responses will be slower.
Thanks,
-Rami
*From:*Prof. Dr.-Ing. Diethelm Bienhaus
[mailto:diethelm.bienh...@mni.thm.de]
*Sent:*Tuesday, December 3, 2019 8:17 AM
*To:*Rami Alshafi<ralsh...@vtmgroup.com>
<mailto:ralsh...@vtmgroup.com>
*Subject:*IoTivity lite question
Hi Rami,
hopefully you can help us (or push forward our problem):
Using the nice development process (gen.sh -> build.sh ->
run.sh) we could generate a server with the desired resources.
OCF Server name : "server_lite_5821"
Intialize Secure Resources
Register Resource with local path "/humidity"
number of Resource Types: 1
Resource Type: "oic.r.humidity"
Default OCF Interface: "oic.if.a"
Register Resource with local path "/keycardswitch"
number of Resource Types: 1
Resource Type: "oic.r.keycardswitch"
Default OCF Interface: "oic.if.a"
Register Resource with local path "/rockerbutton"
number of Resource Types: 1
Resource Type: "oic.r.button"
Default OCF Interface: "oic.if.a"
Register Resource with local path "/sensor_contact"
number of Resource Types: 1
Resource Type: "oic.r.sensor.contact"
Default OCF Interface: "oic.if.a"
Register Resource with local path "/sensor_presence"
number of Resource Types: 1
Resource Type: "oic.r.sensor.presence"
Default OCF Interface: "oic.if.a"
Register Resource with local path "/temperature"
number of Resource Types: 1
Resource Type: "oic.r.temperature"
Default OCF Interface: "oic.if.a"
Successfully installed PKI certificate
Successfully installed intermediate CA certificate
Successfully installed root certificate
OCF server "server_lite_5821" running, waiting on incoming
connections.
The goal is to have a device for each physical device like a
button or a sensor.
There are EnOcean sensors with e.g. three measurement points:
Light, Temperature and Occupancy Sensor
(A5-08-XX)
Temperature value
Temp Unit (by spec
Temp Range (by TYPE spec)
Illumination value
Illumination range (by type spec)
Occupancy
oic.r.temperature
oic.r.sensor.illuminance
oic.r.sensor.presence
oic.d.sensor
Generic Sensor
So we want to provide several devices (with one to n
resources) from our gateway application.
In old days (IoTivity) it was possible to have one server (in
one surrounding application) that starts several devices. Is
that possible with IoTivity lite too?
If not: I started two servers (one and the copy of the
executable from the first). When I onboarded the first one
successfully onboarding of the second failed.
Our questions:
- is it possible to start two or more servers within one
application ?
- How to organise credentials in that case (persistence, etc...)
Many thanks in advance,
Diethelm
--
----------------------------------------------------------
Prof. Dr.-Ing. Dipl.-Wirt. Ing. Diethelm Bienhaus
Fachgebiet Informatik mit Schwerpunkt Ingenieur-lnformatik
Fachbereich Mathematik, Naturwissenschaften und Informatik
Technische Hochschule Mittelhessen
Wiesenstr. 14 - D-35390 Gießen
--
----------------------------------------------------------
Prof. Dr.-Ing. Dipl.-Wirt. Ing. Diethelm Bienhaus
Fachgebiet Informatik mit Schwerpunkt Ingenieur-lnformatik
Fachbereich Mathematik, Naturwissenschaften und Informatik
Technische Hochschule Mittelhessen
Wiesenstr. 14 - D-35390 Gießen