https://github.com/ankraft/onem2m-jupyter-notebooks
A couple of Jupyter notebooks to explain how to create, access and manage oneM2M resources
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.1%) to scientific vocabulary
Keywords
Repository
A couple of Jupyter notebooks to explain how to create, access and manage oneM2M resources
Basic Info
- Host: GitHub
- Owner: ankraft
- License: bsd-3-clause
- Language: Python
- Default Branch: master
- Size: 3.24 MB
Statistics
- Stars: 5
- Watchers: 3
- Forks: 11
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
oneM2M Jupyter Notebooks
This repository contains a number of Jupyter Notebooks that give a practical introduction to programmatically interacting with a oneM2M CSE. The notebooks explain how to access a CSE, add and update resources, and more.

Installation and Configuration
[!Caution] Python 3.12 is not fully supported yet. Please stick to version 3.10.x or 3.11.x for the moment.
oneM2M Notebooks and Python Packages
- Download or clone this repository to a local directory.
Install the necessary Python packages with the following command. You might want to consider to use a virtual environment, such as pyenv to keep your system installation clean.
pip3 install -r requirements.txt
Configuration
Note
Changing these configurations is only necessary when you run your own CSE and Notification Server instead the one provided with the notebooks.
Please change the configuration in the file config.py according to your setup.
CSE Configuration
- cseRN : The resource name of the CSE.
- host : The URL of the CSE we want to connect to in the examples in the notebooks.
- defaultOriginator : Originator ID to access the CSE.
- upperTester : The full URL to access the CSE's Upper Tester interface , or None if not defined.
Notification Server Configuration
- notificationURLBase : The base URL for the Notification Server.
- notificationPort : The port for Notification Server.
Proxy Configuration
(Only necessary if your CSE / Notification Server can only be reached through a proxy server)
- httpProxy : URL of your local network's http proxy server, or None.
- httpsProxy : URL of your local network's https proxy, or None.
oneM2M CSE
The notebooks have been tested with the ACME oneM2M CSE.
These notebooks include the CSE runtime in the directory tools/ACME. It needs to be started via the separate notebook start-cse.ipynb
Notification Server
The Notification server is a separate notebook start-notificationServer.ipynb that implements a simple notification server. The executable script can be found here: tools/NotificationServer/NotificationServer.py .
Running the Notebooks
The local installation of Jupyter Notebooks can be run with one of the following commands:
Running with Jupyter Labs (preferred):
jupyter lab --NotebookApp.token='' __START__.ipynbRunning with Jupyter Notebook (classic):
jupyter notebook --NotebookApp.token='' __START__.ipynb
A web page with the start-up notebook opens from which you can select the exercises.
Some browsers are not able to connect to the kernel service. See the following Troubleshooting section.
Troubleshooting
When you open a notebook in your web browser you might get an error message about a "failed connection". In this case you might try another browser. When starting the Jupyter Notebook server you see a message in the console with a URL that you can paste in a browser, for example: http://localhost:8888/?token=<a long token> .
If you run the Jupyter Notebook server without authentication token (see the --NotebookApp.token option above), just use, for example http://localhost:8888 .
If you enabled the authentication token (which is the default for Jupyter) then you must use this URL including the token, because this authenticates the connection to the local Jupiter Notebook server.
Working with the Exercises
You can run the notebooks in any order. Each notebook has an init cell that initializes the notebook and creates the oneM2M resource structure for the exercises. Please execute this code cell when starting with a notebook and before executing any of the other code cells.
You may always execute the first code cell of a notebook again to re-initialize the resource tree.
CSE & Notification Server Notebooks
- start-cse.ipynb
This notebook runs a local CSE inside the a notebook. It is required for all the examples in the notebooks. - start-notificationServer.ipynb
Notebook for receiving notifications. This must be run before working with the notebook 06-notifications-server.ipynb.
oneM2M Notebooks & Exercises
- 01-introduction.ipynb
An introduction that demonstrates how to retrieve the root <CSEBase> resource. - 02-basic-resources.ipynb
This notebook shows your how to create and work with the basic oneM2M resources: <AE>, <Container> and <ContentInstance>. - 03-discovery.ipynb
How do you search for resources in a CSE?. - 04-groups.ipynb
Group resources together and send requests to a group instead of each single resource. - 05-accesscontrol.ipynb
Control access to resources with Access Control Policies. - 06-notifications.ipynb
Subscribe to changes of resources and receive notifications. - 07-flexcontainer.ipynb
What are <FlexContainer> resources and how to use them?
Running online with Binder
The oneM2M Jupyter notebooks can be run online with binder.
License
These Notebooks are available under the BSD 3-Clause License.
Owner
- Name: Andreas Kraft
- Login: ankraft
- Kind: user
- Location: Berlin, Germany
- Repositories: 29
- Profile: https://github.com/ankraft
GitHub Events
Total
- Watch event: 2
- Delete event: 6
- Push event: 10
- Pull request review event: 2
- Pull request event: 12
- Fork event: 2
- Create event: 8
Last Year
- Watch event: 2
- Delete event: 6
- Push event: 10
- Pull request review event: 2
- Pull request event: 12
- Fork event: 2
- Create event: 8