We will now instantiate obniz.
obniz id is a string. Hyphen '-' is optional, but with just the numbers they can't be accepted.
new Obniz('1234-5678') // OK
new Obniz('12345678') // OK
new Obniz(12345678) // Can't accept
If you connect to obniz which has an access token, provide an option like this
new Obniz('1234-5678', {access_token: 'your token here'})
If obniz id is incorrect, connection will never be established. In nodejs, an error occurs. In HTML, obniz.js shows a prompt message. The user can put in a correct obniz id into it. It shows up only when the format is invalid. If you specify obniz id which doesn't exist, this would never be shown.
When id is correct, obniz.js will try to connect cloud api and onconnect will be called after connection is established.
When obniz Board and the device running obniz.js is expected to be in the same network, obniz.js will try to establish a direct Websocket connection to obniz Board. This is called "local connect". When local connect is avaiable, obniz Board can be controlled with almost all commands without having to go through the cloud. However, the connection to the cloud never gets disconnected even when using local connect. But when cloud connection gets closed, the local connect also gets closed.
The timing onconnect() gets called depends on the availability of local connect. obniz.js will wait a little to establish connection via local connect as much as possible. See the flow below.
The second parameter when instantiating obniz Board is an option.
If obnizOS ver >= 3.0.0, automatically load ObnizHciBLE, and obnizOS ver < 3.0.0 throw unsupported Error,
Target obniz device's connected network information. This could be changed when obniz device connect another netowrk.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
console.log(obniz.connected_network.online_at) // online since in unix time.
}
This let you know connection state to your obniz Board as string value.
var obniz = new Obniz('1234-5678');
console.log(obniz.connectionState) // => === "connecting"
obniz.onconnect = async function() {
console.log(obniz.connectionState) // => === "connected"
}
This lets obniz.js to show logs like communicated jsons and connection logs in console.log.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
obniz.io0.output(true);
}
This variable indicate installed firmware version of target device
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
console.log(obniz.firmware_ver) // ex. "2.0.0"
}
This variable indicate connected hardware identifier of target device
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
console.log(obniz.hw) // ex. "obnizb1"
}
obniz id
Is node.js environment or not.
Device metadata set on obniz cloud.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
console.log(obniz.metadata.description) // value for "description"
}
onclose will be called when disconnected.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
}
obniz.onclose = async function() {
}
Once connection is established, onconnect function will be called.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
}
Operations like turning on/off an io becomes possible only after connection is established, so any operations you want obniz Board to undertake must be written in onconnect
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
obniz.io0.output(true);
}
If an error occurs, the onerror function is called.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
}
obniz.onerror = async function(ob, error) {
console.error(error);
}
Called continuously while obniz device is online. Put your main code inside of onloop and put your setup code inside of onconnect.
onloop will be called after onconnect called. If your funciton set to onconnect return promise, onloop wait until done promise. Even onconnect throws an error onloop will start.
onloop call pingWait()
every time to keep connection data buffer between device to your software clean.
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
}
obniz.onloop = async function() {
}
Receive message. If you want to send message, see Obniz.message
// Example
obniz.onconnect = function() {
var motor = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
motor.angle(0);
obniz.onmessage = function(message, from) {
if (message === "pressed") {
motor.angle(85);
}
};
}
M5StickC device
App Support class
obniz REST api class
obniz.js version
This closes the current connection. You need to set auto_connect to false. Otherwise the connection will be recovered.
var obniz = new Obniz('1234-5678', {
auto_connect: false,
reset_obniz_on_ws_disconnection: false
});
obniz.connect();
obniz.onconnect = async function() {
obniz.io0.output(true);
obniz.close();
}
This closes the current connection. You need to set auto_connect to false. Otherwise the connection will be recovered.
var obniz = new Obniz('1234-5678', {
auto_connect: false,
reset_obniz_on_ws_disconnection: false
});
obniz.connect();
obniz.onconnect = async function() {
obniz.io0.output(true);
await obniz.closeWait();
}
You can connect to obniz Board manually by calling connect() when auto_connect is set to be false.
var obniz = new Obniz('1234-5678', { auto_connect: false });
obniz.connect();
obniz.onconnect = async function() {
obniz.io0.output(true);
}
With this you wait until the connection to obniz Board succeeds.
var obniz = new Obniz('1234-5678');
await obniz.connectWait();
obniz.io0.output(true);
await obniz.closeWait();
var obniz = new Obniz('1234-5678');
await obniz.connectWait({timeout:10}); //timeout 10sec
if(connected){
obniz.io0.output(true);
await obniz.closeWait();
}
If the param auto_connect is set as false, it will try to connect only once and, if unsuccessful, return false.
var obniz = new Obniz('1234-5678',{auto_connect: false});
var connected = await obniz.connectWait(); //try once
if(connected){
obniz.io0.output(true);
await obniz.closeWait();
}
False will be returned when connection is not established within a set timeout.
Calls each of the listeners registered for a given event.
Return an array listing the events for which the emitter has registered listeners.
GET AD module from pin no
It returns unused I2C module.
It returns unused PWM module.
It returns unused SPI module.
It returns unused TCP module.
It returns unused UART module.
It returns setuped I2C module .
Get IO module from pin no
It returns setuped SPI module.
Check the param is valid ad pin no.
Check the param is valid io pin no.
By default, obniz Board resets after disconnection from the cloud. It means the output value and pwm will all stop at that point. But the above function with the argument true can nullify that default setting and change it to "do not reset when offline". This configuration remains as long as obniz Board is on.
// Example
obniz.keepWorkingAtOffline(true);
Return the number of listeners listening to a given event.
Return the listeners registered for a given event.
Send message to obniz clients. If you want receive data, see Obniz.onmessage
// Example
obniz.onconnect = function(){
var button = obniz.wired("Button", {signal:0, gnd:1});
button.onchange = function(){
var targets = [
"1234-1231",
"1234-1232",
"1234-1233",
"1234-1234",
"1234-1235",
"1234-1236",
"1234-1237",
"1234-1238",
"1234-1239",
"1234-1230"];
obniz.message(targets, "pressed");
};
}
destination obniz id
message data
Add a listener for a given event.
Add a one-time listener for a given event.
Ping to obniz device and wait pong response.
If debugprint option enabled, it display ping/pong response time on console.
await obniz.pingWait(); //waiting pong.
start time of measure response time
Unique identifier of ping data
reboot device
obniz.reboot();
Remove all listeners, or those of the specified event.
Remove the listeners of a given event.
Set onloop function. Use onloop property instead. This is deprecated function.
default 100. It mean 100ms interval loop.
This forces the obniz Board to go back to the initial state when the power was just turned on.
// Example
obniz = new Obniz("1234-5678");
obniz.onconnect = function() {
obniz.reset();
}
This lets you change the setting of reset_obniz_on_ws_disconnection
after connection is established.
By default, obniz cloud resets target obniz Board when the all websocket to obniz cloud was closed. It means the output value and pwm will all stop at that point. With the above function, you can nullify these resetting activities. This configuration will remain until target obniz Board gets disconnected. Set this function to false to keep working without any of the websocket connections.
// Example
obniz.resetOnDisconnect(false);
Send json/binary data to obniz Cloud or device.
send data
send option
Sets the execution interval of onLoop function. Changes will be reflected after the next onloop is executed.
interval of execution in milliseconds.
Output pin Vcc and Gnd
Action only with obniz Board 1Y.
Obniz Board sleeps for the value specified in Date type. Sleep for up to 45 days (64800 minutes).
// JavaScript example
let dt = new Date();
dt.setHours(dt.getHours () + 1,0,0,0);
obniz.sleep(dt);
Action only with obniz Board 1Y.
It returns from sleep depending on the pin state of IO0.
// JavaScript example
obniz.sleepIoTrigger (true);
Action only with obniz Board 1Y.
Obniz Board sleeps for the value specified in minutes.
// JavaScript example
obniz.sleepMinute (60); // 60 minutes
up to 64800 minutes(45 days ).
Action only with obniz Board 1Y.
Obniz Board sleeps for the value specified in seconds.
// JavaScript example
obniz.sleepSeconds (60); // 60 seconds
up to 64800 seconds (18 hours).
This pauses obniz Board for a period given in terms of ms (millisecond).
// Javascript Example
led.on();
obniz.wait(1000); // led ON 1sec.
led.off();
This method pauses only obniz Board, not JavaScript.
// Javascript Example
var time = new Date();
led.on();
obniz.wait(1000); // led ON 1sec.
led.off();
console.log((new Date()).getTime() - time.getTime()) // 0 or very few ms. not 1000ms.
However, when you call this method together with the await function, JavaScript will pause for the given period in ms.
// Javascript Example
var time = new Date();
led.on();
await obniz.wait(1000); // led ON 1sec.
led.off();
console.log((new Date()).getTime() - time.getTime()) // => about 1000
Register Parts class
Parts class
param for parts
Get parts class.
string
Generated using TypeDoc
obniz class is the abstract version of obniz Board hardware within JavaScript. types
By providing obniz id and instantiating it, you can control obniz Board and the connected parts without the details of websocket api.
obnizOS version and obniz.js version
obniz cloud compare your obniz.js version and target device obnizOS version. If your js sdk major number is below from OS version (eg obniz.js is 2.0.0 and obnizOS is 3.0.0) then obniz cloud will alert when connection established. It will work somehow but some functions looses compatibility.
one device from two program
obniz cloud accept multiple websocket connection from multiple obniz.js at same time. every commands from obniz.js will passed to a device and every command from a device will be dispatched to every obniz.js connected to the cloud.
But If one of obniz.js established a connection to a device, then target device will send datas only via local connect. So other connected obniz.js only can send datas and never receive datas from a device.
If you'd like to receive, you need to specify
local_connect: false
at all of obniz.js to disable local connect.