Supported devices and sensors - Ravi-Pansuriya/Geeky GitHub Wiki

Supported Devices:

Devices Type Geeky Amazon Alexa Google Home
Switch 1 Yes Yes Yes
Outlet 2 Yes Yes Yes
Light 3 Yes Yes Yes
Color Light (RGB) 4 Yes Yes Yes
Air Conditioner 5 Yes No Yes
Thermostat 6 No No No
Fan (Table/Wall) 7 Yes Yes Yes
Ceiling Fan 8 Yes Yes Yes

Supported Sensors:

Sensors Type Geeky Amazon Alexa Google Home
Temperature 101 Yes No No
Humidity 102 Yes No No
Ambient Light 103 Yes No No

Sensors data can only be updated via publishing packet using MQTT client. And only readable via Geeky web panel and mobile app as of now. (Feature to read sensor values by Alexa and Google Home will be added later)

MQTT message format

Geeky has it's own messaging format based on JSON. Every message you publish or receive on subscribe is JSON.

Packet format:

{
	"client": "<client_id>",	// String
	"type": "<device_type>",	// Numeric
	"data": {
		// device controlling params...
	}
}

Example:

{
	"client": "ESP32-1234-PUB",	// Unique client id of device for publishing message
	"type": 1,	// device type
	"data": {
		"power": true	// true -> on, false -> off
	}
}
  • client - is a unique client used to identify which device has published the message and also can be used to prevent unnecessary processing of packet data if device it self is subscribed for same topic.
  • type - indicates the type of device and make easy to parse data according to specified type.
  • data - holds the actual values for controlling the device. i.e. power, temperature, modes etc..

For parsing and generating JSON packet in Arduino we have used ArduinoJson. you can find more details about it here.

Device Data Formats:

1. Switch/Outlet:

"data": {
	"​power​": true 
}

power​ ​(​boolean​​)​ - It defined state of power of device.
true - on (Power on)
false - off (Power off)

All the devices shares power as default parameter

2. Light:

"data": {
	"​power​": true,
	"​brightness​": 100
}

brightness​ ​(​number​​)​ - It is used to adjust brightness.
Min - 0
Max - 100

3. Color Light (RGB):

"data": {
	"​power​": true,
	"​brightness​": 100,
	"mode": 1,
	"​name​": "yellow",
	"​color​": 16776960,
	"​color_temperature​": 2700,
}

brightness​ ​(​number​​)​ - It is used to adjust brightness.
Min - 0
Max - 100

mode​ ​(​number​​)​ - It is used to define which color mode is currently active.
0 - RGB (default)
1 - HSV
2 - White Color Shades

name​ ​(​string​​)​ - Relevant color or temperature name. It’s optional and can have ‘null’ value.

color​ ​(​number​​)​ - RGB/HSV color values as integer.

color_temperature​ ​(​number​​)​ - for color temperature of light(white color shades) in kelvin(K).
Min - 1000
Max - 10000

4. Air Conditioner:

"data": {
	"​power​": true,
	"​temperature​": 27, 
	"​mode​": 0, 
	"​fan_speed​": 0
}

temperature​ ​(​number​​)​ - Temperature value of AC in celsius.
Min - 17
Max - 30

mode​ ​(​number​​)​ - AC modes.
0 - Auto
1 - Cool
2 - Dry
3 - Heat
4 - Fan

fan_speed​ ​(​number​​)​ - AC fan speed.
0 - Auto
1 - Low
2 - Mid
3 - High

5. Thermostat:

// under development (coming soon)

6. Fan (Table/Wall):

"data": {
	"​power​": true,
	"​fan_speed​": 2
}

fan_speed​ ​(​number​​)​ - Table/Wall fan speed.
0 - Off
1 - Low
2 - Mid
3 - High

6. Ceiling Fan:

"data": {
	"​power​": true,
	"​fan_speed​": 60
}

fan_speed​ ​(​number​​)​ - Ceiling fan variable speed.
Min - 0
Max - 100

Sensor Data Formats:

1. Temperature:

"data": {
	"​value​": 28,
	"​unit​": "C"
}

value​ ​(​number​​)​ - Temperature value.

unit​ ​(​string​​)​ - Temperature unit.
C - Celsius
F - Fahrenheit

2. Humidity:

"data": {
	"​value​": 30,
}

value​ ​(​number​​)​ - Humidity value in percentage (​%​​).
Min - 0
Max - 100

3. Ambient Light:

"data": {
	"​value​": 60,
}

value​ ​(​number​​)​ - Ambient light value in percentage (​%​​).
Min - 0 Max - 100

< Prev | Next >

⚠️ **GitHub.com Fallback** ⚠️