Tutorial explaining how to publish -- on your own gateway -- IoT data/services thanks to the O-MI/O-DF reference implementation (using Script Shell in that case), and potentially later on making them available to the bIoTope service marketplace; see e.g. https://www.youtube.com/watch?v=OueY3o-Rf_4
Async Professional is a comprehensive communications toolkit for Embarcadero Delphi®, C++Builder®, and ActiveX environments. It provides direct access to serial ports, TAPI, and the Microsoft Speech API. It supports faxing, terminal emulation, VOIP, and more.
Al Mannarino will guide you through installing the following versions into Delphi XE and C++Builder XE.
This document outlines the steps to install and configure Oracle Business Intelligence 10g and integrate it with Oracle E-Business Suite 11i. It includes pre-install tasks like applying required patches, creating an inventory directory and running rootpre.sh. The main steps are running the installer to create an Oracle home, configure ports, provide mail server details and set the ias_admin password. Post-installation, it describes copying the DBC file from E-Business to BI, changing the server name in httpd.conf and setting ownership of the DBC file. TNS entries are also created to connect BI to the E-Business database.
The document provides instructions on using the Force.com Migration Tool to migrate metadata between a local directory and a Salesforce organization. It discusses installing the tool, setting up the build files with connection information and targets, constructing a project manifest, retrieving metadata from an org, and deploying it to another org. The tool allows automating repetitive deployment tasks through its use of Ant scripts.
MINCS - containers in the shell script (Eng. ver.)Masami Hiramatsu
This document provides an overview and demonstration of MINCS, a set of shell scripts that implement minimal Linux containers without using Docker or other container runtimes. It begins by explaining key container concepts like namespaces, then demonstrates how MINCS uses namespaces, overlay filesystems, and other Linux features to implement containerization functionality with just shell scripts. It shows the various MINCS scripts like minc, marten and minc-exec, and how they work together to setup namespaces, manage container images and run commands in containers. The document concludes by discussing potential future improvements and known limitations, emphasizing that containers can be built with existing Linux tools and that shell scripts are very capable.
The presentation summarizes the OPUS library management system. It includes sections on the basic identity and objectives of a typical library system, an introduction to OPUS, and its future perspectives. It also presents the entity relationship diagram and data flow of OPUS, showing how users and administrators can interact with the system to search for books, issue books, register users, and more. The goal of OPUS is to provide easy, secure access to library books and services for both users and administrators.
This document outlines specifications for an AP mass upload program in SAP. It describes uploading vendor payment data from an Excel file, with each row creating a debit or credit note. Key elements include an input screen to select the file, rows to upload, and an execution button. The output would display document numbers. Technical details cover using function modules to import the Excel data, populate internal tables, validate fields, and use batch input to post the documents. Test scenarios are provided to validate uploading data and handling errors.
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docxfelicidaddinwoodie
15LLP108_Demo4_LedBlinking.pdf
1. Introduction
In Demo3, we have learned how to read sensor values of light, temperature and humidity of a node
and output these values to the console. In this demonstration, we will use the code from Demo3 and
learn how to turn on/off the LEDs and make them blinking regularly on the sensor node XM1000,
meanwhile to count how many times the LED has blinked and output the count to the console.
2. Timer
In order to make the blue LED on the XM1000 sensor node to blink in every half second (i.e. On 0.5S
and Off 0.5S), we also need a timer. Follow the instructions in Demo3 for configure and reset a timer.
We aslo need to create an infinite while() loop so that it runs our functions repeatedly, such as
counting the times the LED has blinked, output the counter’s value and actually turn on or off the
LEDs to make it blinking.
Please follow timer and while() loop structure in Demo3.
3. LED Blinking
To get access to the LED functionalities in Contiki, we need to include the LED header file in the
source code:
#include "leds.h" // file is in directory /home/user/contiki/core/dev
After the process begin, we have to initialise the LEDs on the sensor node by calling the following
function:
leds_init(); // Initialise the LEDs
And finally we can turn on, off, or blink the LEDs by the following functions:
void leds_on(unsigned char leds);
void leds_off(unsigned char leds);
void leds_toggle(unsigned char leds);
void leds_invert(unsigned char leds);
For example, if you want to blink the Blue LED, yon need to call the toggle function as:
void leds_toggle(LEDS_BLUE); // Toggle the blue LED
4. Exercise
Modify the program from Demo3 with periodic timer to make the BLUE led blinking in every half
second, also to count the blinking times and output the counted number to the console.
Can your change the code so that the BLUE LED is lighted for 1 second and off for 0.5 second
periodically?
15LLP108 – Internet of Things and Applications
Lab Session 2: Demo 4 – LED Blinking
Prepared by Xiyu Shi
5. Source code
Here is the source code for reference
#include "contiki.h"
#include "leds.h"
#include <stdio.h> /* for printf() */
static struct etimer timer;
/*____________________________________________________*/
PROCESS(led_blinking_process, "LED Blinking Process");
PROCESS(LED_process, "LED process");
AUTOSTART_PROCESSES(&LED_process);
/*____________________________________________________*/
PROCESS_THREAD(LED_process, ev, data)
{
static int count = 0;
PROCESS_BEGIN();
etimer_set(&timer, CLOCK_CONF_SECOND/2); // 0.5S timer
leds_init(); // intialise the LEDs
while(1) {
PROCESS_WAIT_EVENT_UNTIL(ev==PROCESS_EVENT_TIMER); // wait for timer event
count++; // count the blinking times
process_start(&led_blinking_process, NULL); // to blink the BLUE Led
printf("Count: %d\n", count); // output the counte ...
Anypoint Studio allows users to automatically generate HTML documentation for their Mule application projects with a single click. The documentation contains graphical representations and XML code for each flow and component in the project. The user can specify a location to save the generated index.html file, which can then be viewed in a web browser. The documentation includes any descriptions added to components using the "doc:name" attribute. This provides a simple way to document Mule applications and projects within Anypoint Studio.
Async Professional is a comprehensive communications toolkit for Embarcadero Delphi®, C++Builder®, and ActiveX environments. It provides direct access to serial ports, TAPI, and the Microsoft Speech API. It supports faxing, terminal emulation, VOIP, and more.
Al Mannarino will guide you through installing the following versions into Delphi XE and C++Builder XE.
This document outlines the steps to install and configure Oracle Business Intelligence 10g and integrate it with Oracle E-Business Suite 11i. It includes pre-install tasks like applying required patches, creating an inventory directory and running rootpre.sh. The main steps are running the installer to create an Oracle home, configure ports, provide mail server details and set the ias_admin password. Post-installation, it describes copying the DBC file from E-Business to BI, changing the server name in httpd.conf and setting ownership of the DBC file. TNS entries are also created to connect BI to the E-Business database.
The document provides instructions on using the Force.com Migration Tool to migrate metadata between a local directory and a Salesforce organization. It discusses installing the tool, setting up the build files with connection information and targets, constructing a project manifest, retrieving metadata from an org, and deploying it to another org. The tool allows automating repetitive deployment tasks through its use of Ant scripts.
MINCS - containers in the shell script (Eng. ver.)Masami Hiramatsu
This document provides an overview and demonstration of MINCS, a set of shell scripts that implement minimal Linux containers without using Docker or other container runtimes. It begins by explaining key container concepts like namespaces, then demonstrates how MINCS uses namespaces, overlay filesystems, and other Linux features to implement containerization functionality with just shell scripts. It shows the various MINCS scripts like minc, marten and minc-exec, and how they work together to setup namespaces, manage container images and run commands in containers. The document concludes by discussing potential future improvements and known limitations, emphasizing that containers can be built with existing Linux tools and that shell scripts are very capable.
The presentation summarizes the OPUS library management system. It includes sections on the basic identity and objectives of a typical library system, an introduction to OPUS, and its future perspectives. It also presents the entity relationship diagram and data flow of OPUS, showing how users and administrators can interact with the system to search for books, issue books, register users, and more. The goal of OPUS is to provide easy, secure access to library books and services for both users and administrators.
This document outlines specifications for an AP mass upload program in SAP. It describes uploading vendor payment data from an Excel file, with each row creating a debit or credit note. Key elements include an input screen to select the file, rows to upload, and an execution button. The output would display document numbers. Technical details cover using function modules to import the Excel data, populate internal tables, validate fields, and use batch input to post the documents. Test scenarios are provided to validate uploading data and handling errors.
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docxfelicidaddinwoodie
15LLP108_Demo4_LedBlinking.pdf
1. Introduction
In Demo3, we have learned how to read sensor values of light, temperature and humidity of a node
and output these values to the console. In this demonstration, we will use the code from Demo3 and
learn how to turn on/off the LEDs and make them blinking regularly on the sensor node XM1000,
meanwhile to count how many times the LED has blinked and output the count to the console.
2. Timer
In order to make the blue LED on the XM1000 sensor node to blink in every half second (i.e. On 0.5S
and Off 0.5S), we also need a timer. Follow the instructions in Demo3 for configure and reset a timer.
We aslo need to create an infinite while() loop so that it runs our functions repeatedly, such as
counting the times the LED has blinked, output the counter’s value and actually turn on or off the
LEDs to make it blinking.
Please follow timer and while() loop structure in Demo3.
3. LED Blinking
To get access to the LED functionalities in Contiki, we need to include the LED header file in the
source code:
#include "leds.h" // file is in directory /home/user/contiki/core/dev
After the process begin, we have to initialise the LEDs on the sensor node by calling the following
function:
leds_init(); // Initialise the LEDs
And finally we can turn on, off, or blink the LEDs by the following functions:
void leds_on(unsigned char leds);
void leds_off(unsigned char leds);
void leds_toggle(unsigned char leds);
void leds_invert(unsigned char leds);
For example, if you want to blink the Blue LED, yon need to call the toggle function as:
void leds_toggle(LEDS_BLUE); // Toggle the blue LED
4. Exercise
Modify the program from Demo3 with periodic timer to make the BLUE led blinking in every half
second, also to count the blinking times and output the counted number to the console.
Can your change the code so that the BLUE LED is lighted for 1 second and off for 0.5 second
periodically?
15LLP108 – Internet of Things and Applications
Lab Session 2: Demo 4 – LED Blinking
Prepared by Xiyu Shi
5. Source code
Here is the source code for reference
#include "contiki.h"
#include "leds.h"
#include <stdio.h> /* for printf() */
static struct etimer timer;
/*____________________________________________________*/
PROCESS(led_blinking_process, "LED Blinking Process");
PROCESS(LED_process, "LED process");
AUTOSTART_PROCESSES(&LED_process);
/*____________________________________________________*/
PROCESS_THREAD(LED_process, ev, data)
{
static int count = 0;
PROCESS_BEGIN();
etimer_set(&timer, CLOCK_CONF_SECOND/2); // 0.5S timer
leds_init(); // intialise the LEDs
while(1) {
PROCESS_WAIT_EVENT_UNTIL(ev==PROCESS_EVENT_TIMER); // wait for timer event
count++; // count the blinking times
process_start(&led_blinking_process, NULL); // to blink the BLUE Led
printf("Count: %d\n", count); // output the counte ...
Anypoint Studio allows users to automatically generate HTML documentation for their Mule application projects with a single click. The documentation contains graphical representations and XML code for each flow and component in the project. The user can specify a location to save the generated index.html file, which can then be viewed in a web browser. The documentation includes any descriptions added to components using the "doc:name" attribute. This provides a simple way to document Mule applications and projects within Anypoint Studio.
The document provides instructions for installing OBIEE 11g, including prerequisites like having Oracle 11g already installed, running the Repository Creation Utility to set up schemas, and configuring the weblogic domain. It also describes loading a sample SalesApp repository and verifying the change in the NQSConfig.ini file. The document concludes by providing contact details for the company iWare Logic that specializes in Oracle applications and technologies.
The document provides instructions for integrating third-party applications as "Click and Install Apps" with the HCnix control panel. It describes the XML file structure needed to define installation and uninstallation instructions. The XML file must specify general information about the application, requirements, user input properties, and sets of actions for installing and uninstalling files, databases, and other application components. Specific actions explained include copying, creating, removing, and renaming files, searching/replacing text, creating/removing virtual directories, and executing SQL commands.
This document outlines specifications for a GL mass upload module in an ERP system. It will allow users to upload multiple GL postings from an Excel template. The upload process will include input screens to select the file and define the row range. It will output document numbers for each uploaded row. Technical details describe using internal tables to store the data and calling BDC to perform the actual postings. Test scenarios are provided to validate error handling and normal processing.
News web app which gives updated news. The news is been fetched from the different news website. This project is made by using Flask framework and python.
The Source code is available at: https://github.com/prateek-code-22/News-App
If you find it useful add STAR to it.
Thanks :)
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...James Gallagher
Have you ever thought that your organisation could be utilising IBM Connections more? The session will demonstrate the highly flexible and integratable component that is the IBM Connections' Activity Stream. The stream can be integrated into different IBM products such as IBM Notes and IBM WebSphere Portal but is also an Open Social Gadget and therefore can run within any OpenSocial container such as Apache Shindig. This stream is based on an open standard and the content within does not have to be from Connections alone. One business partner integrated Atlassian JIRA and Confluence content into the Activity Stream. This presentation explains and demonstrates how to utilise this functionality in your organisation.
This document provides an overview of Symfony2, a PHP framework that includes reusable components and libraries, configuration, and an MVC architecture. It discusses installing Symfony2, creating an application bundle, defining a data model with Doctrine ORM, loading initial data with fixtures, adding routing and templates, and testing applications. The document also mentions additional Symfony bundles that can provide useful features like user management, administration interfaces, and pagination.
This document provides instructions for creating and simulating a counter design using the Xilinx ISE design suite. It describes how to start ISE, create a new project, add a VHDL source file to define the counter module, generate a testbench waveform to simulate the design, and view the simulation results. Key steps include using language templates to add behavioral code to the counter, initializing timing settings for the testbench, and generating expected output values to create a self-checking testbench.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. It allows users to generate an HTML-based documentation file with a single click. The documentation generator plugin extracts information from code comments and attributes to document each flow, element, and component in the project. Developers can add descriptive text in doc:name attributes to include explanations of components that will appear in the generated documentation.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. It allows users to generate an HTML-based documentation file with a single click. The documentation generator plugin extracts information from code comments and attributes to document each flow, element, and component in the project. Developers can add descriptive text in doc:name attributes to include explanations of components that will appear in the generated documentation.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. It allows users to generate an HTML-based documentation file with a single click. The documentation generator plugin extracts information from doc:name attributes added to components in the Mule configuration file. It produces documentation containing graphical and code views of all flows in the project.
Oracle business intelligence enterprise edition 11guzzal basak
This document provides instructions for installing an interim patch for Oracle Business Intelligence Enterprise Edition 11g. It includes prerequisites for installing the patch such as downloading the latest version of OPatch. The instructions cover unzipping the patch file, setting environment variables, running OPatch to apply the patch, and verifying successful installation. Post-installation steps include starting services. Deinstallation instructions are also provided in case issues arise after installing the patch.
APIs are must nowadays. We'll see how API Platform can help us bringing functional api platforms into production quickly. We will identify the key concepts of the framework, we will understand how to instruct it according to our needs and how it naturally integrates into the Symfony ecosystem.
The document discusses how Anypoint Studio can automatically generate documentation for Mule projects. It has a built-in documentation generator plugin that allows users to export project documentation as HTML files with details about each flow, element, and code attributes. The document provides an example of adding descriptions to components using doc:name attributes, then generating documentation that includes both graphical and XML representations of the flows and components.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click. It documents each flow, element, and attribute in the project. Developers can add descriptions to components using the doc:name attribute, and these will appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's flows and configurations.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML report of all flows, elements, and code including attributes and descriptions provided in doc:name tags. Users select a folder location and the documentation is generated, containing both graphical and XML representations of all flows and components in the project. This simplifies the process of documenting Mule applications within the IDE.
Anypoint Studio has a built-in feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click that describes each flow, element, and attribute in the project. Developers can add descriptive text to components using the "doc:name" attribute, which will then appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's configuration.
Anypoint Studio has a built-in feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click that describes each flow, element, and attribute in the project. Developers can add descriptive text to components using the "doc:name" attribute, which will then appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's configuration.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click. It documents each flow, element, and attribute in the project. Developers can add descriptions to components using the doc:name attribute, and these will appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's flows and configurations.
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfFlorence Consulting
Quattordicesimo Meetup di Milano, tenutosi a Milano il 23 Maggio 2024 dalle ore 17:00 alle ore 18:30 in presenza e da remoto.
Abbiamo parlato di come Axpo Italia S.p.A. ha ridotto il technical debt migrando le proprie APIs da Mule 3.9 a Mule 4.4 passando anche da on-premises a CloudHub 1.0.
The document provides instructions for installing OBIEE 11g, including prerequisites like having Oracle 11g already installed, running the Repository Creation Utility to set up schemas, and configuring the weblogic domain. It also describes loading a sample SalesApp repository and verifying the change in the NQSConfig.ini file. The document concludes by providing contact details for the company iWare Logic that specializes in Oracle applications and technologies.
The document provides instructions for integrating third-party applications as "Click and Install Apps" with the HCnix control panel. It describes the XML file structure needed to define installation and uninstallation instructions. The XML file must specify general information about the application, requirements, user input properties, and sets of actions for installing and uninstalling files, databases, and other application components. Specific actions explained include copying, creating, removing, and renaming files, searching/replacing text, creating/removing virtual directories, and executing SQL commands.
This document outlines specifications for a GL mass upload module in an ERP system. It will allow users to upload multiple GL postings from an Excel template. The upload process will include input screens to select the file and define the row range. It will output document numbers for each uploaded row. Technical details describe using internal tables to store the data and calling BDC to perform the actual postings. Test scenarios are provided to validate error handling and normal processing.
News web app which gives updated news. The news is been fetched from the different news website. This project is made by using Flask framework and python.
The Source code is available at: https://github.com/prateek-code-22/News-App
If you find it useful add STAR to it.
Thanks :)
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...James Gallagher
Have you ever thought that your organisation could be utilising IBM Connections more? The session will demonstrate the highly flexible and integratable component that is the IBM Connections' Activity Stream. The stream can be integrated into different IBM products such as IBM Notes and IBM WebSphere Portal but is also an Open Social Gadget and therefore can run within any OpenSocial container such as Apache Shindig. This stream is based on an open standard and the content within does not have to be from Connections alone. One business partner integrated Atlassian JIRA and Confluence content into the Activity Stream. This presentation explains and demonstrates how to utilise this functionality in your organisation.
This document provides an overview of Symfony2, a PHP framework that includes reusable components and libraries, configuration, and an MVC architecture. It discusses installing Symfony2, creating an application bundle, defining a data model with Doctrine ORM, loading initial data with fixtures, adding routing and templates, and testing applications. The document also mentions additional Symfony bundles that can provide useful features like user management, administration interfaces, and pagination.
This document provides instructions for creating and simulating a counter design using the Xilinx ISE design suite. It describes how to start ISE, create a new project, add a VHDL source file to define the counter module, generate a testbench waveform to simulate the design, and view the simulation results. Key steps include using language templates to add behavioral code to the counter, initializing timing settings for the testbench, and generating expected output values to create a self-checking testbench.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. It allows users to generate an HTML-based documentation file with a single click. The documentation generator plugin extracts information from code comments and attributes to document each flow, element, and component in the project. Developers can add descriptive text in doc:name attributes to include explanations of components that will appear in the generated documentation.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. It allows users to generate an HTML-based documentation file with a single click. The documentation generator plugin extracts information from code comments and attributes to document each flow, element, and component in the project. Developers can add descriptive text in doc:name attributes to include explanations of components that will appear in the generated documentation.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. It allows users to generate an HTML-based documentation file with a single click. The documentation generator plugin extracts information from doc:name attributes added to components in the Mule configuration file. It produces documentation containing graphical and code views of all flows in the project.
Oracle business intelligence enterprise edition 11guzzal basak
This document provides instructions for installing an interim patch for Oracle Business Intelligence Enterprise Edition 11g. It includes prerequisites for installing the patch such as downloading the latest version of OPatch. The instructions cover unzipping the patch file, setting environment variables, running OPatch to apply the patch, and verifying successful installation. Post-installation steps include starting services. Deinstallation instructions are also provided in case issues arise after installing the patch.
APIs are must nowadays. We'll see how API Platform can help us bringing functional api platforms into production quickly. We will identify the key concepts of the framework, we will understand how to instruct it according to our needs and how it naturally integrates into the Symfony ecosystem.
The document discusses how Anypoint Studio can automatically generate documentation for Mule projects. It has a built-in documentation generator plugin that allows users to export project documentation as HTML files with details about each flow, element, and code attributes. The document provides an example of adding descriptions to components using doc:name attributes, then generating documentation that includes both graphical and XML representations of the flows and components.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click. It documents each flow, element, and attribute in the project. Developers can add descriptions to components using the doc:name attribute, and these will appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's flows and configurations.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML report of all flows, elements, and code including attributes and descriptions provided in doc:name tags. Users select a folder location and the documentation is generated, containing both graphical and XML representations of all flows and components in the project. This simplifies the process of documenting Mule applications within the IDE.
Anypoint Studio has a built-in feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click that describes each flow, element, and attribute in the project. Developers can add descriptive text to components using the "doc:name" attribute, which will then appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's configuration.
Anypoint Studio has a built-in feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click that describes each flow, element, and attribute in the project. Developers can add descriptive text to components using the "doc:name" attribute, which will then appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's configuration.
Anypoint Studio has a feature to automatically generate documentation for Mule projects. The documentation plugin allows users to generate an HTML-based documentation with a single click. It documents each flow, element, and attribute in the project. Developers can add descriptions to components using the doc:name attribute, and these will appear in the generated documentation. The documentation is saved as an index.html file in a selected folder, displaying both graphical and XML representations of the project's flows and configurations.
Similar to How to publish IoT data/services from your own IoT environment (Scriptshell) (20)
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfFlorence Consulting
Quattordicesimo Meetup di Milano, tenutosi a Milano il 23 Maggio 2024 dalle ore 17:00 alle ore 18:30 in presenza e da remoto.
Abbiamo parlato di come Axpo Italia S.p.A. ha ridotto il technical debt migrando le proprie APIs da Mule 3.9 a Mule 4.4 passando anche da on-premises a CloudHub 1.0.
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
3. Tutorial: How to build an external agent with Node-red
for publishing (Create) &
Updating (Update) the state of a Philips Hue Light using
the O-MI reference implementation (via SHELL scripts)
3
4. bIoTope 4
Prerequisites
1 computer Windows ou Linux/MAC with the following tools installed or
directory downloaded:
• the O-MI reference implementation: https://github.com/AaltoAsia/O-MI
✦ direct URL: https://github.com/AaltoAsia/O-MI/releases/tag/0.6.4 (choose “o-mi-node-0.6.4.zip”)
=> Note: Java 1.8 is required.
• Shell scripts: https://github.com/jrobert-github/O-MI_Shell_Agent
• JSON parser library JQ: https://stedolan.github.io/jq/download/
5. Build the O-DF Service Tree related to the Philips
Hue light using the
O-MI reference implementation (via SHELL scripts)
5
6. Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
6
1. Start your O-MI node
To start the O-MI ref. implem., run the corresponding startup script from the bin directory for your OS:
• Windows: double-click on the file o-mi-node.bat in the bin/ directory
• Unix and Mac: open a terminal, and run the file o-mi-node in the bin/ directory (Might be needed to add
the Write access to the directory: chmod +x)
Exemple for Mac
7. 7
2. Launch the reference implementation in your favorite browser at the following
URL: http://localhost:8080/html/webclient/index.html
Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
8. 8
the postal address of the Object named “JeremysHouse”
the Object related to the Smart Light (Philips Hue Light in our case)
the state of the light’s brightness (Philips Hue Light’s property)
value: "Specify the brightness of the light” (for human understanding)
Two Metadata: range of accepted Values & additional Documentation
the state of the light (on or off)
value: "Switch on/off the light"
3. Add the O-DF structure related to the Philips Hue light
The following O-DF structure will be created — using — by following the guidelines given in the
next slides:
Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
9. 9
Postal address value
Light’s brightness state
"Specify the brightness…
Range of Values &
Documentation
Light state (on or off)
"Switch on/off the light"
=
3. Add the O-DF structure related to the Philips Hue light
A. Inside the “agent” directory, edit the file: define_odf.sh as follows; Understanding the matching between the O-DF tree
(right picture) and the Shell script (left picture) should be straightforward
Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
Every time you’ll see a red dashed
frame, it means that you need to adapt
the code depending on your application
and the underlying infrastructure
(technologies, network configuration…)
10. 10
Postal address value
Light’s brightness state
"Specify the brightness…
Range of Values &
Documentation
Light state (on or off)
"Switch on/off the light"
=
3. Add the O-DF structure related to the Philips Hue light
A. Inside the “agent” directory, edit the file: define_odf.sh as follows; Understanding the matching between the O-DF tree
(right picture) and the Shell script (left picture) should be straightforward
Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
11. 11
3. Add the O-DF structure related to the Philips Hue light
A. Inside the “agent” directory, edit the file: define_odf.sh as follows; Understanding the matching between the O-DF tree
(right picture) and the Shell script (left picture) should be straightforward
B. Edit the file: define_omi.sh to configure the O-MI node that you’re going to update with your “service list/tree”
NOTE:
In this demo, everything is done locally. If you
want to use the O-MI write request on remote
O-MI reference implementations, you will need
to specify/add the write access rights to a
configuration file in the O-MI reference
implementation (See Appendix A).
Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
12. 12
3. Add the O-DF structure related to the Philips Hue light
A. Inside the “agent” directory, edit the file: define_odf.sh as follows; Understanding the matching between the O-DF tree
(right picture) and the Shell script (left picture) should be straightforward
B. Edit the file: define_omi.sh to configure the O-MI node that you’re going to update with your “service list/tree”
C. Inside the “bin” directory, execute the following script: ./create_odf.sh
• If you go to your O-MI ref. implem. webpage and click on “Read All” again, you should now see the“service list/
tree” (cf. below screenshot)
Build the O-DF Service Tree related to the Philips Hue light using the
O-MI reference implementation (via SHELL scripts)
13. Creation of the “External agent”
for updating and listening the
state of the smart light
13
14. Creation of the “External agent” for updating
and listening the state of the smart light
14
1. Write/Update the OMI node (i.e., InfoItem) with the current state of the light
Hue API
O-MI/O-DF
15. 15
1. Write/Update the OMI node (i.e., InfoItem) with the current state of the light
A. Inside the “agent” directory, edit the file: define_values.sh as below (technology-/platform-dependent);
Creation of the “External agent” for updating
and listening the state of the smart light
Note:
This file defines how to access the Philips Hug Light’s API to retrieve the
real-time light values (brightness, on…) => the two data items being
retrieved — API’s output being a JSON — are “state.on” and “state.bri”.
Then, we update with the retrieved values the “SmartLight_values” variable
(i.e. InfoItems named “On” and “Brightness” in our Service tree).
Hue API
16. 16
Hue API
O-MI/O-DF
Creation of the “External agent” for updating
and listening the state of the smart light
1. Write/Update the OMI node (i.e., InfoItem) with the current state of the light
A. Inside the “agent” directory, edit the file: define_values.sh as below (technology-/platform-dependent);
B. Inside the “bin” directory, the following script: ./update_ref_implem.sh can
• Without argument/parameter:
✦ Every time you execute the command, the O-MI ref. implem., or the corresponding InfoItems to be more precise
(“Brightness” & “ON”), will be updated with the real-time light values;
✦ (UNIX only): you can add the following line to the “crontab” file, which in this specific case will update the values
every 10min.
- */10 * * * * /<File_Path>/update_ref_implem.sh> /dev/null
• With argument/parameter:
✦ If you execute the following command, the O-MI ref. implem., or the corresponding InfoItems to be more precise
(“Brightness” & “ON”), will be updated based on the requested period, which is specified as input parameter/
argument (in second; 50s in the below example);
- ./update_ref_implem.sh 50
Every time the state of the Philips Hue Light is “crawled/checked”, the O-MI
ref. implem., or the corresponding InfoItems to be more precise (named
“Brightness” & “ON” in our O-DF Service Tree), will be updated accordingly!
17. 2. "Listen" if any change occurs on the OMI ref. implem. so as to propagate it up
to the Smart Hue light
17
O-MI/O-DF
Hue API
Sylvain sends an O-MI Write request to
turn Smart bulb OFF!
NOTE: Sylvain is not aware of and
doesn’t have to care about what Smart
Bulb technology Jérémy is using as
backend platform (the Write message
will remain the same!!)
External actor
(Sylvain)
Our Node-Red agent will update the
state as requested (if Sylvain has the
sufficient access rights)
Creation of the “External agent” for updating
and listening the state of the smart light
Jérémy’sIoTenvironment
18. 18
Creation of the “External agent” for updating
and listening the state of the smart light
1. "Listen" the modification of the OMI node to modify the state of the light
A. Inside the “bin” directory, the following script: ./update_device can
• Without argument/parameter:
✦ Every time you execute the command, the device (smart light), or the corresponding properties to be more precise
(“bri” & “on”), will be updated with the value specified inside the O-MI Read response;
• With argument/parameter:
✦ If you execute the following command, the device (smart light), or the corresponding InfoItems to be more precise
(“bri” & “on”), will be updated based on the requested period, which is specified as input parameter/argument;
- ./update_device.sh 50
Creation of the “External agent” for updating
and listening the state of the smart light
O-MI/O-DF
Jérémy’sIoTenvironment
To note: Ideally, the “event-based” subscription mechanism supported by O-MI should be used so as to listen and update the device’s values when
a change occurs (i.e., we would only need to perform the command: ./update_device).
19. 19
Creation of the “External agent” for updating
and listening the state of the smart light
Creation of the “External agent” for updating
and listening the state of the smart light
Hue API
O-MI/O-DF
Jérémy’sIoTenvironment
To note: Ideally, the “event-based” subscription mechanism supported by O-MI should be used so as to listen and update the device’s values when
a change occurs (i.e., we would only need to perform the command: ./update_device).
1. "Listen" the modification of the OMI node to modify the state of the light
A. Inside the “bin” directory, the following script: ./update_device can
• Without argument/parameter:
✦ Every time you execute the command, the device (smart light), or the corresponding properties to be more precise
(“bri” & “on”), will be updated with the value specified inside the O-MI Read response;
• With argument/parameter:
✦ If you execute the following command, the device (smart light), or the corresponding InfoItems to be more precise
(“bri” & “on”), will be updated based on the requested period, which is specified as input parameter/argument;
- ./update_device.sh 50
20. 20
Standardised Service Description & Messaging Interfaces (O-MI/O-DF)
Smart City
●
●✇
●
●●
●✇
●
●
●●●
A Bottle
Bank
●● ●●
Shopping Center
✈ ❍
●
School
●
SchoolBus
●
●
Manufacturer
●✇
●
●
●✇
●
●
●✇
●
●
✙
✚
●●
●●
H
●●●
A
Landfill site
Information-as-a-
Service
O
-M
Inode
URL
1
bIoTope Service Marketplace: IoTBnB
$
http://85.171.192.185
Join the bIoTope ecosystem
and Share amazing services &
IoT data with our members