OOCSI clients
The power of the OOCSI system comes from the clients that we have built over the years. Some client exist as libraries that can be installed directly from the programming environment, some other clients can be downloaded. All clients distributions contain examples that show how to get started and communicate data over the OOCSI network.
The OOCSI ecosystem relies on its clients that connect different platforms and programming languages to the OOCSI networking platform. Historically, OOCSI started as a Java implementation of client and server. That’s why the Java, Android and Processing client support is the best and most feature complete till now. Below, you can find links to all client libraries.
Processing
OOCSI is available as a Processing library directly from within the Processing Environment. You can install it by using the Processing library manager; search for “oocsi” and click install, done. The OOCSI for Processing source code is available on GitHub as well.
Java, Android
OOCSI is available on the Java platform since its start. That includes the Android platform and several other languages that base on the JVM platform such as Clojure, Groovy, Scala, Kotlin, JRuby and Jython. For all these, the OOCSI Java client library is available as oocsi-client.jar. The source code is managed in the same GitHub repository as the OOCSI server code. More information on using the Java OOCSI client.
Arduinos, ESPs, and other embedded platforms
To use OOCSI from an embedded device such as ESP32 or ESP8266, you can use the Arduino IDE and install the OOCSI-ESP library directly from the Arduino Library Manager. If you are using Platform.IO, same thing: import the library via a dependency directly–no need for a manual install anymore.
Python & Micropython
To use OOCSI from Python, there is an OOCSI Python package that can installed using pip install oocsi
. The package distribution and source code are available from the oocsi-python GitHub repository.
If you would like to use OOCSI with Micropython on an embedded platform, we have a special distribution for that, too: OOCSI for Micropython.
JavaScript (HTML/websocket)
To use OOCSI from websites or mobile webviews, the OOCSI JavaScript library connection can be used. This library connects to an OOCSI server via the websocket protocol and allows for communication with all other OOCSI clients by means of JSON-formatted messages. A short introduction is explains how to use the library and the examples show it in the context of an interactive website.
JavaScript (Node.js)
To use OOCSI from Node.js, the OOCSI JavaScript library connection can be used. Install with npm install oocsi
. This library connects to an OOCSI server via the websocket protocol and allows for communication with all other OOCSI clients by means of JSON-formatted messages. This is same to the HTML/websocket connection above.
HTTP API: Using OOCSI from web browser or command line
Sometimes you want things to be really simple, and using OOCSI from the web browser or command line is taking this principle to the max. It’s as easy as … read on.
MQTT bridge
The MQTT bridge is implemented as an example and available from the Processing distribution examples.
Client support overview
 | Java, Android, Processing | JavaScript (Web, Node.js) | Python/MicroPython | Arduino/ESP (embedded) | MQTT bridge |
---|---|---|---|---|---|
Connecting | y | y | y | y | y |
Sending direct messages | y | y | y | y | y |
Receiving direct messages | y | y | y | y | y |
Sending channel messages | y | y | y | y | y |
Receiving channel messages | y | y | y | y | y |
Call-response messages | y | y | y | - | - |
Nested JSON messages | y | y | y | y | y |
Delayed and retained messages | y | y | y | y | y |
High-level functions | Â | Â | Â | Â | Â |
OOCSI variables | y | y | y | - | - |
Constellation | y | - | - | - | - |
Synchronization | y | - | - | - | - |
Negotiation | y | - | - | - | - |