<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Building Philips MasterConnect on BLE and Zigbee Protocols | Infinum</title>
		<atom:link href="https://infinum.com/blog/philips-masterconnect-innovation-iot/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/philips-masterconnect-innovation-iot/</link>
		<description>Building digital products</description>
		<lastBuildDate>Wed, 29 Apr 2026 14:21:05 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>34067https://infinum.com/uploads/2023/02/MasterConnect_IoT_blogpost.webp</url>
				</image>
				<title>Building Philips MasterConnect on BLE and Zigbee Protocols</title>
				<link>https://infinum.com/blog/philips-masterconnect-innovation-iot/</link>
				<pubDate>Tue, 14 Feb 2023 14:02:43 +0000</pubDate>
				<dc:creator>Goran Brlas</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=34067</guid>
				<description>
					<![CDATA[<p>How we managed complex hardware-software interactions in an enterprise-level IoT lighting system Philips MasterConnect using BLE and Zigbee.</p>
<p>The post <a href="https://infinum.com/blog/philips-masterconnect-innovation-iot/">Building Philips MasterConnect on BLE and Zigbee Protocols</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-174"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	During our years-long cooperation with <a href="https://www.signify.com/global" target="_blank" rel="noreferrer noopener">Signify</a> on the <a href="https://www.lighting.philips.co.uk/oem-emea/products/connected-lighting/masterconnect" target="_blank" rel="noreferrer noopener">Philips MasterConnect system</a>, we’ve built multiple mobile applications that bring this industry-leading <a href="https://infinum.com/custom-iot-solutions/">smart lighting system</a> to life.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-97"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-24-text js-typography block-highlighted-text__typography'
	data-id='es-96'
	>
	<a href="https://infinum.com/work/philips-masterconnect-iot-lighting/" target="_blank" rel="noreferrer noopener"><strong>The Philips MasterConnect app</strong></a><strong> is the core tool for setting up and configuring smart lighting networks in commercial buildings. The app is straightforward and easy to use, but at the same time, it manages very complex hardware-software interactions.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-100"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-98">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-99'
	>
	The whole system, consisting of smart wireless switches, sensors, and luminaires from Signify’s MasterConnect line, is built on Bluetooth Low Energy (BLE) and Zigbee protocols. Since it utilizes technologies that come with phones we use every day, there’s no need to use any additional devices during installation, as was the case with older connected lighting systems.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-103"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-101">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-102'
	>
	While <a href="https://infinum.com/work/philips-masterconnect-iot-lighting/" target="_blank" rel="noreferrer noopener">our case study</a> of this project provides an overview of the system features, this blog post will give you a view of how things work under the hood. We will focus on how BLE and Zigbee enabled us to build this product and cover some of the app’s high-end features in more detail.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<a	class="card-simple js-card-simple card-simple--is-ad block-card__card-simple card-simple--has-link js-card-simple-link card-simple__content-align--left"
	data-id="es-104"
	 target='_blank' rel='noopener noreferrer' href='https://infinum.com/iot-implementation/'>

	
	
	<div class="card-simple__content">
		<div class="card-simple__heading-wrap">
			<h2	class='typography typography--size-24-text js-typography card-simple__heading'
	data-id='es-105'
	>
	From strategy to deployment, we cover all aspects of IoT development lifecycle. <strong>Download our Guide to Successful IoT Implementation</strong>.</h2>		</div>

		<button	class="btn btn--color-infinum btn--size-small btn--width-default btn__icon-position--right card-simple__btn js-block-card-btn js-card-simple-link"
	data-id="es-107"
	 tabindex='-1'>
		<div class="btn__inner">
					<div	class='typography typography--size-none js-typography btn__label'
	data-id='es-108'
	>
	Learn more</div>		
		<i
	class="icon btn__icon icon--size-16 icon--scale-100"
	 aria-hidden='true' data-name='arrow-right-16' data-id='es-109'>
	<svg fill='none' height='16' viewBox='0 0 17 16' width='17' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g stroke='currentColor' stroke-width='2'><path d='m.5 7.99999 14 .00001'/><path d='m9.23352 2.7251 5.97848 5.97852'/><path d='m9.23352 13.2744 5.97848-5.9785'/></g></svg></i>	</div>
	</button>	</div>
</a>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-111">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-112'
	>
	Bluetooth Low Energy &amp; Zigbee making magic</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-115'
	>
	The two wireless communication protocols that make the magic in the MasterConnect system happen are <a href="https://www.bluetooth.com/learn-about-bluetooth/tech-overview/" target="_blank" rel="noreferrer noopener">Bluetooth Low Energy (BLE)</a> and <a href="https://en.wikipedia.org/wiki/Zigbee" target="_blank" rel="noreferrer noopener">Zigbee</a>. The backbone of Internet of Things, they have been revolutionizing the way we interact with our devices for the past few years.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-117">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-118'
	>
	As its name suggests, BLE is a wireless communication technology created to be low-power and efficient. It is a version of the popular Bluetooth technology specifically designed for IoT devices. While Bluetooth Classic only supports point-to-point communication, BLE provides additional communication options such as broadcasting and meshing, enabling connectivity between devices in a network that supports this type of communication.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-120">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-121'
	>
	Similar to BLE, Zigbee is a wireless communication protocol specifically designed for low-power, low-data-rate applications. Zigbee efficiently transmits messages that are small in size, while its design allows devices to run on batteries for years, making this technology a great choice for systems that need to be installed in hard-to-reach locations or need to operate without frequent maintenance.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-125"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-123">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-124'
	>
	Both protocols have something in common – the ability to efficiently configure devices into large-scale networks that require zero maintenance. Since our system is fully scalable and adapts to buildings of various sizes, this was exactly what we needed to ensure network reliability in any scenario.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-126">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-127'
	>
	It might seem surprising that we’ve chosen two protocols so similar in nature. However, to support different types of communication taking place in the system, we needed both. Our smartphones have been supporting BLE pretty much since its release as part of the Bluetooth 4.0 standard, but they don’t support Zigbee, whose mesh networking is perfect for light connectivity.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-130"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-24-text js-typography block-highlighted-text__typography'
	data-id='es-129'
	>
	<strong>The lighting industry paved the way to Zigbee standardization, with Signify as one of the key advocates. The MasterConnect system was one of the first ones to launch with the newly standardized protocol. </strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-133"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-131">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-132'
	>
	To work around this limitation for mobile, we modeled the system so that our apps communicate with devices using BLE, and then the devices communicate between themselves using Zigbee. That’s the high-level overview, but let’s roll up our sleeves and get a bit lower.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-136"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-134">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-135'
	>
	Achieving seamless hardware-software interaction</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-139"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-137">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-138'
	>
	When setting up a lighting system, installers first need to physically install all of the devices in their respective places in a building. Once that’s done, they use the Philips MasterConnect app to configure the system.<br />
<br />
The app guides the installers through each phase of the setup – from creating projects and groups to discovering and commissioning lights, sensors, or switches into those projects. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-142"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-140">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-141'
	>
	Let’s go over some of those steps in a bit more detail.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-145"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-143">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-144'
	>
	Device discovery</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-148"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-146">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-147'
	>
	All BLE devices need to follow something called the <a href="https://www.bluetooth.com/bluetooth-resources/intro-to-bluetooth-generic-access-profile-gap/" target="_blank" rel="noreferrer noopener">Generic Access Profile (GAP) guidelines</a>, which dictate how they need to advertise data to other devices. This could be a blog post on its own (like our article on <a href="https://infinum.com/blog/bluetooth-beacons/" target="_blank" rel="noreferrer noopener">Bluetooth Beacons</a>), but in short, the devices advertise information about them with a certain frequency. We could say that they yell something along the lines of “Hey, I’m here, my name is X. I am a light and I support Y features”. This allows us to filter out the devices that are a part of our system and present only them to the installers.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-151"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-149">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-150'
	>
	To make things even easier for the installers, we implemented an innovative solution to solve the problem of identifying specific devices in a room where there are hundreds of them. We decided to use torches (not the fire kind, the ones that produce light). Installers just need to point an everyday pocket torch at a light, and the onboard sensor will pick up the spike in the detected brightness. This will cause the device advertisement to change in a way that enables us to identify it and automatically start communicating with it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-154"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-152">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-153'
	>
	Communicating with devices</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-157"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-155">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-156'
	>
	Once we have discovered all the lights we need, we have to connect to each of them before we can make them a part of our network. We do this by following the <a href="https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt" target="_blank" rel="noreferrer noopener">Generic ATTribute Profile (GATT) guidelines</a>, which specify how a device can support various features using services and characteristics.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-160"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-158">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-159'
	>
	<strong>Services</strong> are used to break up data into logical entities and contain specific chunks of data called characteristics. A service can have one or more characteristics, and each service distinguishes itself from other services with a unique numeric ID called a UUID.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-163"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-161">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-162'
	>
	<strong>Characteristics</strong> are the lowest-level concept in GATT transactions, and they encapsulate a single data point that can be either read from or written to.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-166"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-164">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-165'
	>
	In short, if you want to get some specific information from a device, you need to read the data from a characteristic that holds it. Alternatively, if you want to write some data to a device in order to tell it to do something, you need to write to a characteristic that is connected to that behavior.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-169"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-167">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-168'
	>
	Creating and configuring a network</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-172"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-170">
	<p	class='typography typography--size-20-text-roman js-typography block-paragraph__paragraph'
	data-id='es-171'
	>
	Now that we know how to discover a device and how to communicate with it, we need to bring Zigbee into the picture. Zigbee enables us to arrange devices into groups, which allows us to use group addressing to communicate with multiple devices at the same time.&nbsp;</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-177"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-175"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-176">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2023/02/MasterConnect_IoT_inarticle_image_1-1400x818.webp				media='(max-width: 699px)'
				type=image/webp								height="818"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2023/02/MasterConnect_IoT_inarticle_image_1-2400x1401.webp				media='(max-width: 1199px)'
				type=image/webp								height="1401"
												width="2400"
				 />
												<img
					src="https://infinum.com/uploads/2023/02/MasterConnect_IoT_inarticle_image_1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1600"
															width="2740"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			by organizing devices into groups, it&#8217;s easy to apply settings to a whole area		</figcaption>
	</figure></div></div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-263"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-178">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-181"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-179">
	<p	class='typography typography--size-20-text-roman js-typography block-paragraph__paragraph'
	data-id='es-180'
	>
	Since our phones don’t support Zigbee, we can’t send Zigbee messages directly to devices. That would be too easy. We’ve found a workaround by creating a Zigbee message on the app side that tells the device which group it will be a part of, and then send that message to the device over BLE. After receiving the message, the device firmware processes it and executes the appropriate actions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-182">
	<p	class='typography typography--size-20-text-roman js-typography block-paragraph__paragraph'
	data-id='es-183'
	>
	After that, configuring devices is rather straightforward. First, the installer uses the intuitive app UI to configure how the devices should behave in the desired setup. The array of options is quite extensive here – from changing the brightness and color temperature to configuring occupancy sensing and matching the lighting with the human circadian rhythm. All the various properties are then converted into appropriate Zigbee messages that we send to a device using BLE.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-187"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-185">
	<p	class='typography typography--size-20-text-roman js-typography block-paragraph__paragraph'
	data-id='es-186'
	>
	Once a device receives those messages, it configures itself and relays the messages throughout the device network using Zigbee. This eliminates the need to be close to all the devices and provides significant time savings in large-scale setups.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-190"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-188">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-189'
	>
	The setup is complete, now off to the cloud</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-193"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-191">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-192'
	>
	Once a system is configured, installers can back up all the necessary project data in the cloud, making it easy to share access between multiple installers. System maintenance can then also be transferred to the building manager or a person in a similar role, thus removing the need to hire installers for small maintenance work or system monitoring, e.g., reading the energy consumption report. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-196"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-194">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-195'
	>
	An additional benefit of backing up data in the cloud is that it can always serve as a safety net. In case something happens to the phone that configured the system, or there’s a need to revert to earlier settings, it’s easy to restore the original configuration.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-199"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-197">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-198'
	>
	Secure communication via Bluetooth</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-202"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-200">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-201'
	>
	Philips MasterConnect systems are installed in public buildings, which means that security was a top priority for us.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-205"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-203">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-204'
	>
	Whenever two devices communicate over BLE, they usually exchange bytes of data that both of them know how to process. Let’s use a simple example of turning a light on. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-208"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-206">
	<p	class='typography typography--size-20-text-roman js-typography block-paragraph__paragraph'
	data-id='es-207'
	>
	To achieve this, the app needs to:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-211"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-209">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-210'
	>
	establish a connection to the light,</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-214"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-212">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-213'
	>
	create a message containing the command bytes,</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-217"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-215">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-216'
	>
	write those bytes to the appropriate characteristic (explained above).</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-220"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-218">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-219'
	>
	The light needs to:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-223"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-221">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-222'
	>
	receive the message,</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-226"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-224">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-225'
	>
	establish a connection to the light, convert it into something its firmware can process,</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-229"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--dot bullet__color--infinum block-bullet__bullet" data-id="es-227">
			<div class="bullet__dot"></div>
		<div class="bullet__content">
		<p	class='typography typography--size-20-text-roman js-typography bullet__paragraph'
	data-id='es-228'
	>
	tell the hardware to turn on.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-232"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-230">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-231'
	>
	If you look at the list of steps, you might see a potential problem here that applies to any kind of unsecured traffic – it can be sniffed and captured by various third-party tools like <a href="https://www.wireshark.org/" target="_blank" rel="noreferrer noopener">Wireshark</a> and used maliciously. We needed to find a way to shield the data we were sending between devices. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-235"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-233">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-234'
	>
	We came up with something similar to how <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security" target="_blank" rel="noreferrer noopener">Transport Layer Security (TLS)</a> works with HTTPS traffic but applied to BLE &#8211; TLS over the BLE layer, one might call it. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-238"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-236">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-237'
	>
	To increase security, we added an additional part to the process of establishing connections between the app and the lights – <a href="https://en.wikipedia.org/wiki/Authenticated_Key_Exchange" target="_blank" rel="noreferrer noopener">Authenticated Key Exchange (AKE)</a>. It is a method used to establish secure communication between two parties that ensures only authorized parties can exchange keys and share messages.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-241"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-239">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-240'
	>
	AKE typically involves the use of a &#8220;shared secret&#8221; that is known only to the two parties involved in the communication. This shared secret is used to create a unique key that is then used to encrypt all following communication. The key is exchanged between the parties securely, ensuring that it is not intercepted or tampered with during the exchange.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-244"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-242">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-243'
	>
	After this authentication is done, the messages between the app and the devices are encrypted and, if needed, fragmented as well, to ensure they can be properly exchanged.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-247"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-245">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-246'
	>
	Doing this was no small feat, but making sure our systems can’t be tampered with makes it all worth it.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-250"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-248">
	<h2	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-249'
	>
	Daylight-utilizing and human-centric</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-253"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-251">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-252'
	>
	Having covered the technical know-how, let’s move on to some elegant features. The system consists of more than just luminaires; we also have sensors and switches that integrate seamlessly. In case someone wants to push their setup to a higher level, there is also an option to add gateway support. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-255"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-highlighted-text">
	<p	class='typography typography--size-24-text js-typography block-highlighted-text__typography'
	data-id='es-254'
	>
	<strong>These functionalities enable us to increase the scope of features we bring to the market and make buildings more efficient – from cutting down the time and effort required to service the network and maximizing energy savings to creating a comfortable and adjustable environment for the people using the setups.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-258"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-256">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-257'
	>
	I’d like to highlight two of those features: daylight-utilizing and human-centric lighting. They work hand-in-hand to increase the occupants’ well-being.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-261"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-259">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-260'
	>
	Daylight-utilizing works in combination with sensors that detect the level of daylight in the room and adjust the lighting accordingly, reducing unnecessary costs. Growing up, we all probably had our parents telling us to turn off the lights because nobody needs them and we are just wasting electricity (and we probably stubbornly argued otherwise). Having LED luminaires that can be configured to emit less light, saving power and creating a pleasant mood using natural light, would have helped in such situations.</p></div>	</div>
</div>
</div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-266"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-264"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-265">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2023/02/MasterConnect_IoT_inarticle_image_2-1400x818.webp				media='(max-width: 699px)'
				type=image/webp								height="818"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2023/02/MasterConnect_IoT_inarticle_image_2-2400x1401.webp				media='(max-width: 1199px)'
				type=image/webp								height="1401"
												width="2400"
				 />
												<img
					src="https://infinum.com/uploads/2023/02/MasterConnect_IoT_inarticle_image_2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1600"
															width="2740"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Occupancy sensors allow for maximum energy efficiency		</figcaption>
	</figure></div></div>		</div>
	</div>

<div
	class="wrapper"
	data-id="es-293"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-267">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-270"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-268">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-269'
	>
	Human-centric lighting directly correlates with our human circadian rhythm. Think of it as an internal biological clock that regulates our sleep-wake cycle and other physiological processes to match the external environment, ensuring that we are alert during the day and sleepy at night. You might have guessed it, light is a key factor in regulating that behavior.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-273"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-271">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-272'
	>
	To help improve occupants’ well-being, tunable white luminaires from the Philips MasterConnect line can be configured to match the human circadian rhythm – they will emit blue light during the morning and change to warmer, less intense colors as the day passes.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-276"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-274">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-275'
	>
	Pretty cool, right?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-279"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-277">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-278'
	>
	The future is looking bright</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-282"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-280">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-281'
	>
	If you thought that we would do a blog post on lighting systems without a single pun about light, you probably didn’t read that many of our blog posts.&nbsp;&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-285"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-283">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-284'
	>
	We’ve shed some light on the inner workings of the Philips MasterConnect system – from the protocols used, hardware-software interaction, and security, all the way to benefits for people occupying the buildings and using the lights.&nbsp;</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-288"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-286">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-287'
	>
	Philips MasterConnect is not a standard <a href="https://infinum.com/custom-iot-solutions/">IoT system</a>. It is the result of years of innovation on all sides – hardware, firmware, cloud, and mobile. And we’re just getting started. The future is looking bright.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-291"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-289">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-290'
	>
	<em>To find out what else we can do in the Internet of Things realm, check out our <a href="https://infinum.com/custom-iot-solutions/" target="_blank" rel="noreferrer noopener">IoT solutions page</a>.</em></p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/philips-masterconnect-innovation-iot/">Building Philips MasterConnect on BLE and Zigbee Protocols</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>