Module Integration Guides
Building a custom client
Connecting to Bytebeam cloud
5 min
download the device auth json file we use tls mutual authentication to connect a device to the cloud mutual authentication means that both the server and the client authenticate each other before the connection is setup three files are required for this authentication to happen correctly ca certificate this file is used by the device to authenticate the server certificate and hence the server client certificate this file is used by the device to authenticate itself to the server client private key this file is also used by the device to authenticate itself to the server bytebeam provides a single json file that contains the contents of these three files you can download the json file by provisioning a device docid\ otlg85yo zz3hecvknnyb this should give you a file like the below { "project id" "demo", "broker" "cloud bytebeam io", "port" 8883, "device id" "2", "authentication" { "ca certificate" " begin certificate \nmiifszcca5ugawibagiuewlv4kbmkkagfmddtlu7sms+/bmwdqyjkozihvcnaqel\nbqawytelmakga1uebhmcve4xnza1bgnvbaomlkfnzw5jzsboyxrpb25hbgugzgug\nq2vydglmawnhdglvbibfbgvjdhjvbmlxdwuxgtaxbgnvbammefr1blrydxn0ifjv\nb3qgq0ewhhcnmtkwndi2mdg1nzu2whcnndqwndi2mdg1nzu2wjbhmqswcqydvqqg\newjutje3mduga1uecgwuqwdlbmnlie5hdglvbmfszsbkzsbdzxj0awzpy2f0aw9u\nievszwn0cm9uaxf1ztezmbcga1ueawwqvhvuvhj1c3qgum9vdcbdqtccaiiwdqyj\nkozihvcnaqebbqadggipadccagocggibampn0/y9bfpddca61ygubutb9yocfvdz\nn56ey+hz2vygqu8ftpklhzmmmidqfgbu7dtzhrx1w4ei8nlz1kmksmwb60kspqxd\n2jqdoow05tdenx37jk0bbjbu2pwarzw5rzzjjqrnmpa+tkbuimvnkwfgzc3gdogf\nvwpiupp6q9p+7fuadmj2/uqdhyvy7bg7negfj7/boce7sbbdvtfmtqdhuazb1ymz\ngoxrljfxyqnlc/m4+qku3fznz8k/9yosrxqzbwun/dadgjh8kcwawjertiaahdof\nli/lqckleitdcssjh7up2dl3rxislgbcx5kdpp73lad9ukgawqmdrviwvshbhlnu\nr8a83yfub9tgyv7seg7aaah0gxuppqjbi9dkxt/con3ys7qc0lh4zr8grur5kiy2\ney8ftpkdso8mdhz/yv3a/zaqpre38806jg60hzc/glkmjnwb1sjxvj8agil6qeib\nmlespvlfe/zdeikzjuxivtzxi11mwh0/rviizz1wtazqmcxci/m4weeicb9puisg\njwbuffyrbvinljvrs5ynzwuioyasdxxu5mzmzl+qvigaakyt5ipcglnpsz7ofzwb\n7i9ezx/skeiblyrilz0qix32nrzfnkhsla4kuiwsvxakpcvcfdvdxsdovsc9qnyw\n5/yeya1e0wcxagmbaagjyzbhmb0ga1uddgqwbbqgmpsfu33x9ati04y+oxnztpde\nitapbgnvhrmbaf8ebtadaqh/mb8ga1udiwqymbaafaaamx9tffh1pmjthj6hc1m0\n90qhma4ga1uddweb/wqeawibbjanbgkqhkig9w0baqsfaaocageaqgvutt0vyb+z\nxid2bkewhpml0425yaa/l/vsj4hxyxt968pk21vvhl26v9hr7lxpuhbi87mp0zyu\nqekhdvneixcwsqxi/5e/s7fdao74gshcznxtr18unh1yea32gam56q6xkrm4t+v4\nfstveutgfbve7pi1he4+z7/fxxttbucoqgryydz2vyj/0adqp2rt8jennya/u8eh\n22wv5psymsnuk8qccmne+3tjeuprahphanltke8pjkcfwrjpadbgnjhh/pqaulxp\nxou3mqz4dwex1xazufhsce96qp1bwgvuxpvoks7/b9dpfhggipeztdmyu65xxbzn\ndfly7wyjz4sfdzmabbsssfcp61cpabbjnhzi+l/wm9vbd8tmpn3pm0mbkrarhtg5\nxc0ygyupjcb31yleqtyefpslbei0vxf/shyz03fjuc9spaq/3d2gu68zngowyi7b\nnv2uql1g52kadogddizmmezj4gzsqk/ryxhv5yjiqfdczgyffoxnnidf9ql7v/yq\ncvgwjvrdjas6oz/v4jxh+xtgbzrb0l9zzvcg+ztnemzoje6azb0qmqzz8mwvumzh\nu/2qeitbcy6vvr/co5jybott0gfmdcx2v+ithsivng3raz3r2ovehjn7wazmmujj\nd9qdriuevsjai1jtkd5ogwdxfa2dk5o=\n end certificate ", "device certificate" " begin certificate \nmiieozccbemgawibagiqtij3hrzsgjuulnledrdcptakbggqhkjopqqdajcbjzel\nmakga1uebhmcr0ixgzazbgnvbagtekdyzwf0zxigtwfuy2hlc3rlcjeqma4ga1ue\nbxmhu2fszm9yzdeymbyga1uechmpu2vjdglnbybmaw1pdgvkmtcwnqydvqqdey5t\nzwn0awdvievdqybeb21haw4gvmfsawrhdglvbibtzwn1cmugu2vydmvyienbmb4x\ndti0mdmwnzawmdawmfoxdti1mdmwnzizntk1ovowftetmbega1ueaxmkz2l0ahvi\nlmnvbtbzmbmgbyqgsm49agegccqgsm49aweha0iabaro/ho9xdky1qh9magjoukw\nmxtb05jgrulkcimvbukb3zhexvcdyoicrhembffxozhwkqvmognlo/lw215x3pgj\nggl+miic+jafbgnvhsmegdawgbt2hqo7eybhbh0oqgss0u7mzht7rjadbgnvhq4e\nfgquo2g/ndr1rztk76zopzq9xm56zj8wdgydvr0paqh/baqdageamawga1udeweb\n/wqcmaawhqydvr0lbbywfayikwybbquhawegccsgaqufbwmcmekga1udiarcmeaw\nnaylkwybbagymqecagcwjtajbggrbgefbqccaryxahr0chm6ly9zzwn0awdvlmnv\nbs9dufmwcaygz4emaqibmigebggrbgefbqcbaqr4mhywtwyikwybbquhmakgq2h0\ndha6ly9jcnquc2vjdglnby5jb20vu2vjdglnb0vdq0rvbwfpblzhbglkyxrpb25t\nzwn1cmvtzxj2zxjdqs5jcnqwiwyikwybbquhmaggf2h0dha6ly9vy3nwlnnly3rp\nz28uy29tmiibgaykkwybbahweqieagscaxaeggfsawoadwdpevbu1s58r/ohw9lp\nlpvpgnfnsrax7kwb0lt3zsw7caaaay4wovazaaaeawbimeyciqd7onz/2oo8vgaw\nwrqrsbqbzqh0hrhmlm11oempg1fnawihakwc0q7z+mxdvyv/6ov7f/i0h/aachsc\nii/qjcecraopahyaoumk5exvva2bfjjtr2d3u9ecw4su1ytegyzeuvckr+caaago\nfjrv+aaabamarzbfaieayupeivamk0c8bvvpf0qbisfoewy5xjqkqoe8evmu4w8c\nigaiiuzjxbflhpkqcsa7uzy24y/b6xznktuw/ne5q5hcahcatnwjj1yaemm4w2zu\n3z9s6x3w4i4bjwnasfpkswkaod8aaagofjrv9waabamasdbgaiea+8ovqzpgrf31\nulbsce8ktcufvsirt7zwsqexlia09tuciqdcb7xn97aedmbkxibdm5kz9gjvryof\n9skd5/4gneomwzalbgnvhreehjacggpnaxrodwiuy29tgg53d3cuz2l0ahvilmnv\nbtakbggqhkjopqqdagniadbfaiearu2mcpr0enwcwnudey0a/rgzxrfrrm+6xfze\nszhyzewcibq4tuebcgapv7xvatrkdvdi/b4m36uyej1ggyjsiesa\n end certificate ", "device private key" " begin rsa private key \nmiievgibadanbgkqhkig9w0baqefaascbkgwggskageaaoibaqdngprsdj+74i9/\n9lu+3d2xm4qionudkmqiuhrdxregycjg36kkezc3s6iuh50ousayuybsd8syrmfa\nshwtw0p2wa9kiccxbdlpwlbnri7p/prj1pnidtgnjhjrhtvdupecyos037nuyyrw\npm+yhxhp2xtrtr77xrpbydchaymyndfsbyvdxxspsxdi5bv+21myah6wmrlhcrmy\nbk/1uhcjnit6ujbzh7u9tlbs6almdk5qmlyw+tmtrkqyzstctwgf0q36qq1bk7ut\ntmml46zznzbt4ugwvzqmuyn4k6u0q9rxd4zzhhxrpojxmnabkzwucq9kh17ydqk/\nkz25x0hxagmbaaecggebajqkdzk7qsa7ep9vnr7yv4uspvmiccud3qfjgfhc7gw4\nzzttr2hrfxumqwtntswojp/qhs1iulienyewzps/okxr7ydc6ushj8rkzeooiget\nx9vi5euir7clhu3f156ckk3ieb7kfkdehxv899cuggkloqxfeiwkzbqjpr2e5+cq\npculd+xfmiym2ndkkq0kssznyosrjnsjylk80frtskc+uvdy2ajweg8cy2h4h5tv\n3fmwkdrosou/pesp8lbkd4hcsddufrsoz24oeosf3mpjqbipojdtbsx5amip4ev7\ndw16ql1zktnjo/6kb2k3qlhe3eqoxqqacl2levxyctecgyea53hqnzsk93p+hemr\n7zpn/yxxslyuuduy3yoqmuuxruipuzcymmd2nrmrkmgvbpnqjrgnr/5uoncygcwz\nbblbfsibpqcyize19pqirj8hkeqkc2cfuzlpwjojpdv4m4jl8df1r3ptmsc7ba1p\nwdqsxhrxhblu4nard0te94c3gvucgyea4t1dj3unqyk18hrkbuars+61kpkmwgql\nwutyuustbohuo3cjtnvqujdwg0uv4cuiipjtdakfhec5yosatvpvhxzvrvlvxigg\nlgsgmczzkf97pbkt8vk7ixv1fwrqlnesc+/8llxfuztvkbksygszq1yikdxvztbf\n4dtzczan2g0cgybjncv/q8umgkeh2wiomkbqaxk4mhekykglxqc+juizuqc54eaw\nj8z8uvj+zp6xnq+hahnn5hvdod+643odyyy3xgx5zkaw0qig6j6ql7o3kimupty8\npygnfdlrf5aqkxpfyvxwm4c5r+vncyu2el2zc5d3lxe2x6cv/6yuxmvf2qkbgqda\n3xv29jl7zogbttyyoltvmrhem5x/al5d1ahkl5oxz1bssdrtlo7z2glbuqub5zfw\nzjlslz7g3ztgwfjb5q/mmifpnibususdxdpq3rsn2vdydk9mb0w5hfrrxfxr9xos\nfyoqdupjtumbykn0aj9jwfd4ohfrimch1i3xcvkr0qkbgatjhk1skxpnnntd1mbl\nljxhy5jmqy1pxwno+xledmsnx3omrk7c2kmfuk2lg2nzm/2zvnlmpvkkhv88df3c\nw85urmfh9z3dq5xrnzjd+8tedm/7dz8meqj4n+ooil8ihlkn9e7ctk4o3sms5/cn\n337i+fudgb8no+kv6ptsa6kd\n end rsa private key " } } note the certificates and keys in the above file and rest of this guide are fake and won't actually work you have to use the json file downloaded from the provisioning guide above let us extract the ca certificate , device certificate and device private key into three files we will connect to bytebeam cloud using these files and mqttx note the "\n" characters in the strings when extracting these into individual files we need to replace them with newlines here is how the three files would look like ca certificate pem begin certificate miifszcca5ugawibagiuewlv4kbmkkagfmddtlu7sms+/bmwdqyjkozihvcnaqel bqawytelmakga1uebhmcve4xnza1bgnvbaomlkfnzw5jzsboyxrpb25hbgugzgug q2vydglmawnhdglvbibfbgvjdhjvbmlxdwuxgtaxbgnvbammefr1blrydxn0ifjv b3qgq0ewhhcnmtkwndi2mdg1nzu2whcnndqwndi2mdg1nzu2wjbhmqswcqydvqqg ewjutje3mduga1uecgwuqwdlbmnlie5hdglvbmfszsbkzsbdzxj0awzpy2f0aw9u ievszwn0cm9uaxf1ztezmbcga1ueawwqvhvuvhj1c3qgum9vdcbdqtccaiiwdqyj kozihvcnaqebbqadggipadccagocggibampn0/y9bfpddca61ygubutb9yocfvdz n56ey+hz2vygqu8ftpklhzmmmidqfgbu7dtzhrx1w4ei8nlz1kmksmwb60kspqxd 2jqdoow05tdenx37jk0bbjbu2pwarzw5rzzjjqrnmpa+tkbuimvnkwfgzc3gdogf vwpiupp6q9p+7fuadmj2/uqdhyvy7bg7negfj7/boce7sbbdvtfmtqdhuazb1ymz goxrljfxyqnlc/m4+qku3fznz8k/9yosrxqzbwun/dadgjh8kcwawjertiaahdof li/lqckleitdcssjh7up2dl3rxislgbcx5kdpp73lad9ukgawqmdrviwvshbhlnu r8a83yfub9tgyv7seg7aaah0gxuppqjbi9dkxt/con3ys7qc0lh4zr8grur5kiy2 ey8ftpkdso8mdhz/yv3a/zaqpre38806jg60hzc/glkmjnwb1sjxvj8agil6qeib mlespvlfe/zdeikzjuxivtzxi11mwh0/rviizz1wtazqmcxci/m4weeicb9puisg jwbuffyrbvinljvrs5ynzwuioyasdxxu5mzmzl+qvigaakyt5ipcglnpsz7ofzwb 7i9ezx/skeiblyrilz0qix32nrzfnkhsla4kuiwsvxakpcvcfdvdxsdovsc9qnyw 5/yeya1e0wcxagmbaagjyzbhmb0ga1uddgqwbbqgmpsfu33x9ati04y+oxnztpde itapbgnvhrmbaf8ebtadaqh/mb8ga1udiwqymbaafaaamx9tffh1pmjthj6hc1m0 90qhma4ga1uddweb/wqeawibbjanbgkqhkig9w0baqsfaaocageaqgvutt0vyb+z xid2bkewhpml0425yaa/l/vsj4hxyxt968pk21vvhl26v9hr7lxpuhbi87mp0zyu qekhdvneixcwsqxi/5e/s7fdao74gshcznxtr18unh1yea32gam56q6xkrm4t+v4 fstveutgfbve7pi1he4+z7/fxxttbucoqgryydz2vyj/0adqp2rt8jennya/u8eh 22wv5psymsnuk8qccmne+3tjeuprahphanltke8pjkcfwrjpadbgnjhh/pqaulxp xou3mqz4dwex1xazufhsce96qp1bwgvuxpvoks7/b9dpfhggipeztdmyu65xxbzn dfly7wyjz4sfdzmabbsssfcp61cpabbjnhzi+l/wm9vbd8tmpn3pm0mbkrarhtg5 xc0ygyupjcb31yleqtyefpslbei0vxf/shyz03fjuc9spaq/3d2gu68zngowyi7b nv2uql1g52kadogddizmmezj4gzsqk/ryxhv5yjiqfdczgyffoxnnidf9ql7v/yq cvgwjvrdjas6oz/v4jxh+xtgbzrb0l9zzvcg+ztnemzoje6azb0qmqzz8mwvumzh u/2qeitbcy6vvr/co5jybott0gfmdcx2v+ithsivng3raz3r2ovehjn7wazmmujj d9qdriuevsjai1jtkd5ogwdxfa2dk5o= \ end certificate device certificate pem begin certificate miieozccbemgawibagiqtij3hrzsgjuulnledrdcptakbggqhkjopqqdajcbjzel makga1uebhmcr0ixgzazbgnvbagtekdyzwf0zxigtwfuy2hlc3rlcjeqma4ga1ue bxmhu2fszm9yzdeymbyga1uechmpu2vjdglnbybmaw1pdgvkmtcwnqydvqqdey5t zwn0awdvievdqybeb21haw4gvmfsawrhdglvbibtzwn1cmugu2vydmvyienbmb4x dti0mdmwnzawmdawmfoxdti1mdmwnzizntk1ovowftetmbega1ueaxmkz2l0ahvi lmnvbtbzmbmgbyqgsm49agegccqgsm49aweha0iabaro/ho9xdky1qh9magjoukw mxtb05jgrulkcimvbukb3zhexvcdyoicrhembffxozhwkqvmognlo/lw215x3pgj ggl+miic+jafbgnvhsmegdawgbt2hqo7eybhbh0oqgss0u7mzht7rjadbgnvhq4e fgquo2g/ndr1rztk76zopzq9xm56zj8wdgydvr0paqh/baqdageamawga1udeweb /wqcmaawhqydvr0lbbywfayikwybbquhawegccsgaqufbwmcmekga1udiarcmeaw naylkwybbagymqecagcwjtajbggrbgefbqccaryxahr0chm6ly9zzwn0awdvlmnv bs9dufmwcaygz4emaqibmigebggrbgefbqcbaqr4mhywtwyikwybbquhmakgq2h0 dha6ly9jcnquc2vjdglnby5jb20vu2vjdglnb0vdq0rvbwfpblzhbglkyxrpb25t zwn1cmvtzxj2zxjdqs5jcnqwiwyikwybbquhmaggf2h0dha6ly9vy3nwlnnly3rp z28uy29tmiibgaykkwybbahweqieagscaxaeggfsawoadwdpevbu1s58r/ohw9lp lpvpgnfnsrax7kwb0lt3zsw7caaaay4wovazaaaeawbimeyciqd7onz/2oo8vgaw wrqrsbqbzqh0hrhmlm11oempg1fnawihakwc0q7z+mxdvyv/6ov7f/i0h/aachsc ii/qjcecraopahyaoumk5exvva2bfjjtr2d3u9ecw4su1ytegyzeuvckr+caaago fjrv+aaabamarzbfaieayupeivamk0c8bvvpf0qbisfoewy5xjqkqoe8evmu4w8c igaiiuzjxbflhpkqcsa7uzy24y/b6xznktuw/ne5q5hcahcatnwjj1yaemm4w2zu 3z9s6x3w4i4bjwnasfpkswkaod8aaagofjrv9waabamasdbgaiea+8ovqzpgrf31 ulbsce8ktcufvsirt7zwsqexlia09tuciqdcb7xn97aedmbkxibdm5kz9gjvryof 9skd5/4gneomwzalbgnvhreehjacggpnaxrodwiuy29tgg53d3cuz2l0ahvilmnv btakbggqhkjopqqdagniadbfaiearu2mcpr0enwcwnudey0a/rgzxrfrrm+6xfze szhyzewcibq4tuebcgapv7xvatrkdvdi/b4m36uyej1ggyjsiesa \ end certificate device private key pem begin rsa private key miievgibadanbgkqhkig9w0baqefaascbkgwggskageaaoibaqdngprsdj+74i9/ 9lu+3d2xm4qionudkmqiuhrdxregycjg36kkezc3s6iuh50ousayuybsd8syrmfa shwtw0p2wa9kiccxbdlpwlbnri7p/prj1pnidtgnjhjrhtvdupecyos037nuyyrw pm+yhxhp2xtrtr77xrpbydchaymyndfsbyvdxxspsxdi5bv+21myah6wmrlhcrmy bk/1uhcjnit6ujbzh7u9tlbs6almdk5qmlyw+tmtrkqyzstctwgf0q36qq1bk7ut tmml46zznzbt4ugwvzqmuyn4k6u0q9rxd4zzhhxrpojxmnabkzwucq9kh17ydqk/ kz25x0hxagmbaaecggebajqkdzk7qsa7ep9vnr7yv4uspvmiccud3qfjgfhc7gw4 zzttr2hrfxumqwtntswojp/qhs1iulienyewzps/okxr7ydc6ushj8rkzeooiget x9vi5euir7clhu3f156ckk3ieb7kfkdehxv899cuggkloqxfeiwkzbqjpr2e5+cq pculd+xfmiym2ndkkq0kssznyosrjnsjylk80frtskc+uvdy2ajweg8cy2h4h5tv 3fmwkdrosou/pesp8lbkd4hcsddufrsoz24oeosf3mpjqbipojdtbsx5amip4ev7 dw16ql1zktnjo/6kb2k3qlhe3eqoxqqacl2levxyctecgyea53hqnzsk93p+hemr 7zpn/yxxslyuuduy3yoqmuuxruipuzcymmd2nrmrkmgvbpnqjrgnr/5uoncygcwz bblbfsibpqcyize19pqirj8hkeqkc2cfuzlpwjojpdv4m4jl8df1r3ptmsc7ba1p wdqsxhrxhblu4nard0te94c3gvucgyea4t1dj3unqyk18hrkbuars+61kpkmwgql wutyuustbohuo3cjtnvqujdwg0uv4cuiipjtdakfhec5yosatvpvhxzvrvlvxigg lgsgmczzkf97pbkt8vk7ixv1fwrqlnesc+/8llxfuztvkbksygszq1yikdxvztbf 4dtzczan2g0cgybjncv/q8umgkeh2wiomkbqaxk4mhekykglxqc+juizuqc54eaw j8z8uvj+zp6xnq+hahnn5hvdod+643odyyy3xgx5zkaw0qig6j6ql7o3kimupty8 pygnfdlrf5aqkxpfyvxwm4c5r+vncyu2el2zc5d3lxe2x6cv/6yuxmvf2qkbgqda 3xv29jl7zogbttyyoltvmrhem5x/al5d1ahkl5oxz1bssdrtlo7z2glbuqub5zfw zjlslz7g3ztgwfjb5q/mmifpnibususdxdpq3rsn2vdydk9mb0w5hfrrxfxr9xos fyoqdupjtumbykn0aj9jwfd4ohfrimch1i3xcvkr0qkbgatjhk1skxpnnntd1mbl ljxhy5jmqy1pxwno+xledmsnx3omrk7c2kmfuk2lg2nzm/2zvnlmpvkkhv88df3c w85urmfh9z3dq5xrnzjd+8tedm/7dz8meqj4n+ooil8ihlkn9e7ctk4o3sms5/cn 337i+fudgb8no+kv6ptsa6kd \ end rsa private key connect using mqttx now open mqttx and click on + new connection to create a new connection fill in the name, client id, host, port as shown below for the certificate field select "ca or self signed certificates" and upload the files we have extracted above select mqtt 3 1 1 as the protocol version in the advanced settings click on the connect button on the top right and you should see a successful connection any errors need to be fixed before proceeding further with the guide building this into your sdk now that we have understood how to connect to bytebeam you can implement this programatically in your client you can follow the below steps the first step towards building a client is figuring out how to implement mqtt mqtt org has a list of client libraries for various operating systems and langauges if you are using a gsm modem in at command mode it is possible that your modem comes built in with mqtt commands as well once you have figured out an mqtt implementation, you can write code to connect using the certificates and private key downloaded from cloud note that we support only tls 1 2 and above most modern systems support this version also note that bytebeam expects each device to present a unique mqtt client id you can do this by constructing the client id as "client \<tenant id> \<device id>" make sure to handle disconnections and reconnect as required