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);
 | |
|     }
 | |
| };
 | |
| 
 |