87 lines
3.1 KiB
JavaScript
87 lines
3.1 KiB
JavaScript
import * as Blockly from 'blockly/core';
|
|
import { getColour } from '../helpers/colour';
|
|
|
|
/**
|
|
* MQTT Blocks
|
|
*/
|
|
|
|
Blockly.Blocks["sensebox_mqtt_setup"] = {
|
|
init: function () {
|
|
|
|
//this.setTooltip(Blockly.Msg.senseBox_wifi_);
|
|
this.setHelpUrl('');
|
|
this.setColour(getColour().mqtt);
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.senseBox_mqtt_init)
|
|
.appendField(new Blockly.FieldDropdown([["Adafruit IO", 'adafruitio'], ["DIOTY", 'dioty'], ["Other Service", 'custom']]), "service");
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.senseBox_mqtt_server)
|
|
.appendField(new Blockly.FieldTextInput("Server"), "server");
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.senseBox_mqtt_port)
|
|
.appendField(new Blockly.FieldTextInput("Port"), "port");
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.senseBox_mqtt_username)
|
|
.appendField(new Blockly.FieldTextInput("Username"), "username");
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.senseBox_mqtt_password, "passwordmsg")
|
|
.appendField(new Blockly.FieldTextInput("Password"), "password");
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.senseBox_mqtt_init_tooltip);
|
|
},
|
|
onchange: function (e) {
|
|
let service = this.getFieldValue('service');
|
|
switch (service) {
|
|
case 'adafruitio':
|
|
this.getField('server').setValue("io.adafruit.com");
|
|
this.getField('port').setValue("1883");
|
|
this.getField('passwordmsg').setValue("Adafruit IO Key");
|
|
break;
|
|
case 'dioty':
|
|
this.getField('server').setValue("mqtt.dioty.co");
|
|
this.getField('port').setValue("1883");
|
|
this.getField('passwordmsg').setValue(Blockly.Msg.senseBox_mqtt_password);
|
|
break;
|
|
|
|
case "custom":
|
|
break;
|
|
default:
|
|
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
Blockly.Blocks["sensebox_mqtt_publish"] = {
|
|
init: function () {
|
|
this.setColour(getColour().mqtt);
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.senseBox_mqtt_publish);
|
|
this.appendValueInput('value')
|
|
.setCheck(null)
|
|
.appendField('Feed/Topic')
|
|
.appendField(new Blockly.FieldTextInput('Name'), 'publishfeed');
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setTooltip(Blockly.Msg.senseBox_mqtt_publish_tooltip);
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks["sensebox_mqtt_subscribe"] = {
|
|
init: function () {
|
|
this.setColour(getColour().mqtt);
|
|
this.appendDummyInput()
|
|
.appendField(Blockly.Msg.sensebox_mqtt_subscribe);
|
|
this.appendDummyInput()
|
|
.appendField(new Blockly.FieldTextInput('Feedname'), 'subscribefeed');
|
|
this.setOutput(true, null);
|
|
}
|
|
};
|
|
|