LOADING... Ezlo Innovation

Category "Blog"

Ezlo Innovation Joins the Zigbee Alliance

by admin

Smart home innovator partners with leading IoT industry group to further expand device interoperability

Ezlo Innovation, a global leader in the development of smart solutions for homes and businesses, today announced its membership in the Zigbee Alliance – an organization of hundreds of companies creating, maintaining, and delivering open, global standards for the Internet of Things (IoT). Ezlo Innovation joins the Alliance as an Adopter-level member.

According to the Institute of Electrical and Electronics Engineers (IEEE)-based standards of wireless connectivity, the Zigbee protocol is one of the most widely utilized communications specifications for IoT devices. Founded in 2002, the Zigbee Alliance and its nearly 300 members actively maintain and publish Zigbee standards, certify products to help ensure interoperability and promote the adoption of its open standard.

“Our brand promise is that we’ll work with everything,” said Mark Samuel, CEO of Ezlo Innovation. “The user experience is paramount. From onboarding to device setup, everything should be simple. For the industry at large, that’s not currently the case, but our partnership with the Zigbee Alliance is an important step forward in our goal of having things work well together regardless of the underlying technology.”

Gartner forecasts the IoT market will grow to more than 5.8 billion endpoints in 2020, with more than 1.53 billion in the automation and security device segments. Through its partnership with the Zigbee Alliance and other industry groups, Ezlo Innovation aims to usher in a truly seamless IoT experience for all users.

“Markets are converging, and now is the time for organizations to work alongside each other to shape the future of the IoT,” said Ann Olivo-Shaw, Marketing Director of Zigbee Alliance. “This next year will be pivotal, and the Alliance is always improving and building on existing application areas. We welcome Ezlo Innovation to our group of wireless visionaries that are driving meaningful connections throughout the smart home, intelligent building and other digital living backdrops.”

This announcement comes on the heels of Ezlo Innovation’s launch of the PlugHub Energy and Atom smart home hubs, as well as the acquisition of Centralite and recognition as IoT Breakthrough’s “Consumer Product of the Year.” For more information about Ezlo Innovation and its portfolio of products and solutions, please visit www.ezlo.com.

About Ezlo Innovation

Ezlo Innovation delivers best-in-class connected solutions to homes and businesses on a global scale. Its family of brands, which includes Vera, MiOS, FortrezZ, and Centralite, has nearly 50 combined years of experience in the home automation and IoT markets. Ezlo delivers home control products and services both directly to homeowners and through a global dealer network, and their white-labeled B2B solutions are used by businesses across categories like wellness, insurance, security, energy and property management. Ezlo is headquartered in Clifton, New Jersey, with offices in Ukraine, Romania and Colombia. Learn more at www.ezlo.com.

View source version on businesswire.com: https://www.businesswire.com/news/home/20200225005546/en/

Contacts

Media
BLASTmedia for Ezlo Innovation
Cory Ahlersmeyer
ezlo@BLASTmedia.com
317-806-1900 ext. 145

5Mar

Nativescript – Vue.js tutorial – Web

by admin

The following document explains how developers can use Nativescript and Vue to build their own version of the Ezlo mobile app.

Compatible with vue-cli v3

Nativescript is a cross-platform framework which allows developers to write and deploy native mobile apps for iOS and Android from a single codebase.

You can use Angular or Vue to share existing web-based code.

Vue is a progressive framework for building user interfaces. The core library is focused on the view layer. Vue is very easy to pick up and integrate with other libraries or existing projects.

Vue Installation

In order to create a vuejs project you will need to install a couple of packages – VueJs and Vue Cli.

Create a project folder then open your terminal and install VueJs with the following command

NPM

npm install vue

Once installed, next install the second package – Vue Cli

NPM

npm install -g @vue/cli

When both are installed, run the following command:

NPM

vue create name-of-your-application

This will start a wizard which guides you through the configuration of your project.

Choose ‘Manually select features’ to access facilities like Vuex, Router etc.

Select, ‘Babel’ (for poly), ‘Router’, ‘Vuex’, and ‘Linter’.

Select ‘Yes’ for history mode for the router.

History Mode

The default mode for vue-router is hash mode – it uses the URL hash to simulate a full URL so that the page won’t reload when the URL changes.

To get rid of the hash, we use the router’s history mode, which leverages the history.pushStateAPI to achieve URL navigation without a page reload:

Next, choose a linter/ formatter configuration. This is your personal choice, but we recommend Airbnb for most deployments

Next, choose whether you want to place the configuration files (Babel EsLint etc), in dedicated files or all in a single package.json. Again, this is up to you, but we recommend a single .json.

Choose whether you want to save this configuration as a template/preset for future projects. After choosing, the wizard will start to create your project:

After the wizard has installed your project, navigate to it by entering its path in the terminal:

There are two ways to run your Vue project. The first is to run the classic package startup script with the following command:

NPM

npm run serve

Alternatively, you can use the integrated dashboard that comes with Vue. Enter the following command to open the dashboard:

NPM

vue ui

 

The Vue Cli dashboard is a smart and easy way to manage your projects. The ‘vue ui’ command mentioned above will open the dashboard interface in a browser:

 

Open the ‘Import’ tab and enter the path to your new project. Select ‘Import this folder’:

Once imported, you can access all of your plugins in the left-hand menu. You can customize your project by adding/removing features.

Launch your project – Click ‘Tasks’ > ‘Serve’ > Click the ‘Run Task’ button:

Once the circle on the right states 100%, click the ‘Open App’ button just above it.

The dashboard gives you a more visual way to view your projects and the ability to search for plugins without going to NPM or the terminal.

Type the following command in the terminal to see your project using a IDE (in this case, Visual Studio code):

NPM

code .

 

Nativescript-Vue Installation

Documentation: https://nativescript-vue.org/en/docs/getting-started/installation/

There are two ways you can install the nativescript-vue package on your project – via the terminal, or by using the VUE UI dashboard.

In the Vue dashboard, click ‘Plugins’ on the left then click ‘Add Plugin’ at top-right of the page:

Search for nativescript’ in the plugins screen:

…then choose the one with the one with this logo:

Click ‘Install’ at bottom of the page to install the plugin.

After installation, a wizard will start that helps you setup your project for nativescript-vue.

Select ‘History mode’ for routers, and choose ‘Dual Native and Web (Default)’ to make the project cross-platform.

Click ‘Finish Installation’

The scaffolding is now complete, and you can open the code in an editor and start work. Use the npm
run
 scripts provided in the plugin to build, serve, debug, and even preview (using the Playground apps) your new web and mobile apps.

To run your project on mobile or web, go to ‘Project tasks’ then select ‘Preview Android’ and/or ‘Preview IOS’. A QR code is generated for the app.

In order to view your live application, you must install two Nativescript apps on your mobile device.

Nativescript Applications

# Use the NativeScript Playground app and scan the QR code to preview the application on your device.

You can install the Playground app from the following locations:

App Store (iOS): https://itunes.apple.com/us/app/nativescript-playground/id1263543946?mt=8&ls=1
Google Play (Android): https://play.google.com/store/apps/details?id=org.nativescript.play

Once installed, scan the QR Code with the Playground application. The app will send a real-time preview of the application to the phone:

In the Vue Dashboard where the QR Code was generated you can see the phone connected to your application.

Log Nativescript

Webpack compilation complete. Watching for file changes.Webpack build done!Start sending initial files for platform android.Successfully sent initial files for platform android. LOG from device OnePlus 6T: ‘{NSVue (Vue: 2.5.22 | NSVue: 2.2.2)} -> CreateElement(nativegridlayout)’ LOG from device OnePlus 6T: ‘{NSVue (Vue: 2.5.22 | NSVue: 2.2.2)} -> CreateElement(nativebutton)’LOG from device OnePlus 6T: ‘{NSVue (Vue: 2.5.22 | NSVue: 2.2.2)} -> CreateElement(NativePage)’LOG from device OnePlus 6T: ‘{NSVue (Vue: 2.5.22 | NSVue: 2.2.2)} -> CreateElement(NativeFrame)’

Every modification to the project will automatically update the preview on your phone.

A look under the hood

The code can be run on both web and mobile, and provides examples of various code sharing strategies you might employ.

For example, look at the files main.js and main.native.js. Since they are the entry point for your mobile and web apps, and probably include separate platform plugins, they are differentiated by naming convention. Any file named *.native.* is rendered only for mobile.

Mount a web app:

Start a NativeScript-Vue app:

Now take a look at App.vue, the single point of entry and the first Vue SFC with shared templates:

If you don’t have much markup, you can easily create a completely shared file with the parts designated per platform. Moreover, in this file you can share one script block between platforms. Each platform will deploy only those methods it supports:

This file shows an example of a forked style which imports only the styles relevant to your platform:

Related links:

  1. https://www.nativescript.org/vue
  2. https://nativescript-vue.org/en/docs/getting-started/playground-tutorial/
  3. https://play.nativescript.org/    – online editor for generating apps
  4. https://vuejs.org/v2/guide/
  5. https://cli.vuejs.org/guide/

 

 

7Feb

Distributed Cloud Architecture: It Shall Not fall

by admin

Mission-critical services

It is said that the strength of a chain is given by the weakest link … this has never been more true than in the world of mission-critical cloud services. 

But what is actually a cloud service? Typically any service made available to users via the Internet from a cloud computing provider’s servers fit this definition. Mission critical cloud services simply have one additional requirement: they have to work no matter what is happening with any underlying server architecture. 

In the following lines we are going to do an anatomy of the cloud services from the perspective of redundancy and failover.

Dreaded Single Point of Failure (SPOF)

Typical architecture of a cloud service consist of several layers:

Hardware layer

Infrastructure layer

Application layer

Each layer consists of multiple components with specific role for each layer and their malfunction can have various effects from performance penalties to complete failure of the service, in which case the component becomes Single Point of Failure. For mission critical services having any SPOF is not an option.

Rule number one in this context is that anything can and will fail, so rather than trying to design components to never fail (which is proven to be almost impossible), we leave them to fail in a controlled manner and have other components take over their role to sustain the service. 

Monolithic approach versus microservices

A typical monolithic application consists of a large application which includes multiple services deployed on a pair of identical servers behind a load balancer. In such case, although the complexity of the solution will be lower, there are multiple Single Points of Failure: one heavy loaded service can cause overhead on both servers which can lead to lost or delayed messages, failures in hardware or infrastructure layer are not fault-tolerant, database can fail or can have heavy performance penalty which are not acceptable for mission-critical services. 

Scalability is also an issue as large, monolithic applications require more time to prepare and deploy, which hurt the ability to do dynamic scaling depending on load.

A much better approach which also solves all these issues is migration to containerized microservices with automatic scaling, distributed across multiple physical or virtual servers. A spike of the requests to a service cannot cause overhead on the entire server anymore, as the load will be distributed to multiple instances of the service and the cloud manager will actually spawn more instances if needed.

Hardware and infrastructure layers

At the bottom of any cloud service are the machines which provide the processing power for the service as well as network infrastructure needed in order to operate. They can consist of physical machines deployed in data centers or they can be virtual machines from a 3rd party provider. 

Which one is better, which one can fail? Well … remember rule number one: both of them can fail, no matter if there are state-of-the-art physical servers in the most modern data center, or the best 3rd party provider, they can have outages which can become Single Point of Failure for your services.

How do we prevent that? 

The keyword is distribution of the hardware and infrastructure on multiple providers and zones, so even a global event affecting entire data center won’t disrupt the functionality of your service.

Application layer

The software components of your application typically consist from a sum of 3rd party tools and frameworks (like web server, database, messaging queues, storage services etc) glued together by your own custom code. 

How can we make sure they don’t fail? We don’t … we actually allow them to fail, so other components take over their role to perform the job. 

How do we actually do that? The keyword is containerization with automatic management, so our applications are encapsulated in Docker containers and distributed using Kubernetes. 

This assure both automatic scalability of the platform as Kubernetes can run more containers when load is high or stop them when are not needed anymore, allowing better cost control of the infrastructure.

The 3rd party components which we rely upon have their own mechanisms of failover and redundancy built on the same concepts as our entire architecture to assure high availability, scalability and performance.

 

4Feb

Using VueJS/Nativescript for rapid development

by admin

It’s an on-demand world. And for growing businesses, velocity is one of the most important indicators of potential success. This is true at Ezlo, as well. Our innovation pipeline is filled with projects that need attention, and since time is a limited quantity, we are always looking for ways to speed up our development process.

One way we’ve done so recently, is to adopt VueJS/Nativescript for our new mobile application. Our iOS and Android teams were working hard to build features in our current app to support our customers, so we sought a way to support our customers and evolve our platform at the same time. 

Our answer? Nativescript. Nativescript is a complex open source framework developed by Telerik, in which you can build truly native mobile apps with Angular, Vue.js Typescript or Javascript. One of the biggest advantages of this techdnology is that you only need front-end developers that can work with JS libraries, while they familiarize themselves with Nativescript syntax/docs.

By using Nativescript you can write your code for the application just once, with the result being two applications—one for Android and one for iOS. 

Here are the top four reasons why we chose it:

1) The app uses native components which add to the overall performance of the app. NativeScript-Vue lets us access the native APIs, so we are never really constrained by the framework and we can avoid using third-party modules. If we need, we can just dive into the native APIs without leaving our environment and language. And the code-sharing for iOS, Android, and the Web lets us build once without using assistance libraries.

2) With NativeScript + Vue, you can use JS, TS, or Coffeescript for logic, and you can use HTML, Pug, EJS for templates. CSS/SASS/Less/Stylus for styling. 

3)  Vue has its own DevTools, which come in the form of a browser extension. DevTools simplify application debugging and checking the state and hierarchy of components. They allow you to live-edit your app, track custom events, and time-travel debug your app to see previous versions and the changes made. 

4)  The syntax is familiar. Users of Vue.js will be right at home, and others can access Android SDK’s Java classes and iOS SDK’s Obj-C classes directly from Javascript. 

Taken together, these benefits result in a rapid workflow. You don’t have to learn new languages and there’s a preview mode for iOS and Android that remove the need to install emulators in order to see your application in progress. For any issues we did encounter along  the way, we made use of a robust Slack community and online tutorials.  

Our application is currently in progress while our dedicated iOS and Android teams improve the current future set for our customer base. We’ll be building in those features, as well. Stay tuned for an update when everything is complete.