Wednesday, June 9, 2021

Smart Cooking with the Multo by CookingPal

My latest blog post, "Smart Cooking with the Multo by CookingPal" was originally published by the good folks at Residential Tech Today Magazine on their web site here:

https://restechtoday.com/smart-cooking-with-the-multo-by-cookingpal/

Below is a copy of the article. 

Not every household is lucky enough to have a family member that is an excellent chef.  A close friend of mine has no fond memories of the meals prepared by her own mother and another has told stories about food she had to endure at when visiting her aunt.

 Carry-out is one solution.  However, paying for restaurant prepared food seven days a week can become very expensive.  

 Meal service plans offer another alternative.  When you consider that there is no food waste (instead of buying a bag full of carrots when you only need two for the recipe or sixteen ounces of spinach when a spinach quiche only requires a fraction of that amount) they are reasonably economical.  This is especially true for meal kits offered by local grocery stores that save you the cost of shipping.  But, meal service plans, even with easy to follow recipes, still require a degree of cooking skill.  If you have trouble adjusting your gas stove to the right level to simmer the simmer the food you are preparing you will end up with something under-cooked or possibly burned.

 In the past I’ve written about a number of smart cooking tools that take some of the guesswork out of cooking including an article that discussed the Hestan Cue and June Smart Oven.  I also wrote a second article on the Meater grilling thermometer.  In summary:

  • The Hestan Cue combines an induction cooktop capable of precise temperature control, pans with built in temperature sensors, and a guided cooking experience with their smart phone app that directly integrates with the cooktop.  The app walks you through the preparation of the food and the cooking process including the control of the exact temperature of the cooktop and timing the cooking process.  But, not everything is prepared in a pan and you have to consider the added costs of the special cookware you need to buy with the temperature sensor built in.
  • The June Smart Oven is one of the most intelligent countertop appliances available.  It is a convection oven, air fryer, roaster, toaster, broiler, and more.  When you place food into the oven a camera inside the oven identifies the food and, a built in touch panel, leads you through the cooking process.   Through the June, smart phone, app, the oven will even notify you when your food is done.  However, while the June Smart Oven offers a wealth of features you still have to do all the food preparation yourself.
  • The Meater is a smart cooking thermometer that can even be used on a BBQ grill or in the oven.  With the Meater app almost anyone can make a perfectly cooked steak or roast because it takes the guess work out of how done your meat is.  But, the Meater can only help you perfectly cook meat on the grill or in the oven.

The Multo, by CookingPal, is a brand new multi-function smart cooking appliance.  It is currently available for preorder and will be available commercially in July.

CookingPals’s goal was to combine as many kitchen appliances as possible into one package so the Multo would not only cook your meal but also handle the preparation.

The Multo can:

·         Cook your meal at a precise temperature for a specific period of time.  The food can be automatically stirred throughout the cooking process

·         Weigh ingredients

·         Knead dough

·         Cook using steam to preserve nutrients in food

·         Mix ingredients

·         Emulsify to make mayonnaise and dressings

·         Chop ingredients from rough to very fine

·         Sauté at a defined temperature while simultaneously stirring the food for even cooking

·         Boil pasta, potatoes, and more

·         Whisk ingredients to make whipped cream, mousse, and more

·         Grate ingredients from course to fine

·         Grind anything from nuts to coffee

In addition, the Multo includes a self cleaning function to help make cleanup faster and easier.

Unboxing the Multo

The first thing to be aware of is that the Multo is a substantial piece of equipment.  It comes in a box that is 26” x 21” x 16” and weights over 35 pounds.

When you open the box the first thing you see are easy to follow instructions for how to unbox the Multo.  First you pull the inner box from the outer shipping box.  After opening the inner box you’ll find the Multo is packaged with molded foam holding it in place and there are two boxes for all the accessories on top of it.

The Multo comes with

  1. User Manual
  2. Safety Guide and Warranty Booklet
  3. Multo Main Unit with 3.1 qt Mixing Bowl (used for mixing and cooking)
  4. Blade for the Mixing Bowl
  5. Butterfly Wisk
  6. Simmering Basket
  7. Mixing Bowl Lid with Seal and Measuring Cup
  8. Shallow and Deep Steaming Trays with Seal and Lid
  9. Touch Panel Hub with Stand and Charging Cable (plugs into USB port on the back of the main unit
  10. Spatula
  11. Power Cord

The Safety Guide and Warranty Booklet contains a typical long list of warnings including the risk of electrical shock, fire hazard, scalding risk, injury risk, health risk, burn risk, etc.  Many of these are self evident because you are working with a motorized cooking appliance.  However, there is some good information to be aware of such as:

  • Using the hook on the spatula to remove the hot simmering basket to avoid scalding
  • Making sure there is enough water in the mixing bowl when steaming food to avoid damaging the Multo (during steaming 8.5 oz. of water can evaporate in just 15 minutes)
  • Reminding homeowners to wash the Multo before using it to remove oils and contaminants leftover from the manufacturing process
  • And much more

The user manual is easy to understand and provides a good introduction to the setup and use of the Multo. 

Setup

Setting up the Multo was relatively simple.  The first decision that needs to be made is where to place it in a kitchen.  The main unit has a footprint of approximately 10-1/2” wide x 15” deep and weighs almost 15 pounds with the mixing bowl installed.  At this size and weight it is not something you are going to want to move around constantly.  The manual also warns against placing the Multo on a stovetop or near other hot surfaces. 

With the main unit in place the setup of the hub is very simple.  The first step is to charge it.  The included USB cable can be plugged into a port in the back of the main unit.  However, one thing you need to keep in mind is that when the main unit is turned off, power to the USB port is also cut off.

The manual recommends charging the hub for 3 hours before use.  Once the charging process is complete the hub will guide you through the process of connecting it to your home’s WiFi network and pairing it with the Multo’s main unit. 

Once the connection process is complete, a short safety video is shown.  Then you will need to acknowledge that you have read the manual, read the safety instruction booklet, and viewed the safety video.  Finally you will be walked through a tutorial on the operation of the Multo using the hub.  When that is complete, you are ready to start cooking.

Guided Cooking

Guided cooking allows a less experienced chef to successfully cook dishes that they would otherwise never consider or possibly fail in an attempt to make.  The Multo will walk you through the entire cooking process of both preparing the ingredients and cooking the meal; performing much of the work for you. 

The process begins with the selection of a recipe.  The Multo hub makes it easy to browse the recipes available on the device and to filter the recipes to help with your decision making.  For example, why look at all the recipes available if you only want to make a main dish and only have 30 minutes to prepare it. 

I was testing an early evaluation unit of the Multo.  At the time of this writing the guided cooking choices consisted of:

  • 15 Main Course Recipes (Mushroom Risotto, Butter Chicken with Steamed Naan, Pasta Alfredo…)
  • 10 Recipes for Sauces, Dips, and Spreads (Creamy Hummus, Mango Chutney, Thai Chili Sauce…)
  • 10 Side Dish Recipes (Potato Gratin, Mushroom and Creamy Polenta, Sautéed French Beans with Crispy Bacon…)
  • 10 Soup Recipes (Red Curry Butternut Squash Soup, Lobster Bisque, Coconut Corn Chowder…)
  • 10 Smoothies, Drinks, and Shakes Recipes (Apricot Fizz, Dragon fruit Berry Smoothie, Pineapple Tequila Sunrise…)
  • 5 Breakfast Recipes (Mixed Berry French Toast, Huevos Rancheros with Pico de Gallo, Green Chile Smothered Breakfast Burritos…)
  • 10 Baked Treat Recipes (Wholegrain Bread, Paleo Chocolate Cake, Apple Cake with Cinnamon…)
  • 10 Dessert Recipes (Maple Pecan Ice Cream, Butterscotch Budino with Salted Carmel and Whipped Cream…)
  • 5 Basic Recipes (Rice, Potatoes, Garlic Oil…)

This is an adequate, especially for a brand new product, but not extensive list of recipes.  It is important to know that CookingPal has committed to adding five new recipes each month to the Multo.  In addition, you need to remember that these are just the guided recipes.  The Multo can be used in manual mode to help prepare any recipe you want.

One other thing to remember is that not every one of the above recipes is cooked in the Multo.  For example, the rye and wheat bread recipes are prepared in the Multo and then baked in an oven. 

Once you have chosen a dish, the first screen you see shows you the ingredients required and a summary of the cooking steps.  You can easily adjust the number of servings for the recipe so you can add the correct amounts to your shopping list. 

When you are ready to prepare your chosen dish you simply press the “Start Cooking” button on the screen.  There is then an individual screen for each step of the cooking process.  These screens include:

  • Written Instructions
  • A Looping Video the Demonstrates the Actions Needed to be Performed
  • A Time Estimate of How Long it Will Take to Perform the Step
  • Images of the Ingredients Used During the Step
  • Buttons to Operate the Multo, if Required

For example, one step in the mushroom risotto recipe is to clean the mushrooms and then chop them in the Multo.  The video shows the process of washing the mushrooms and placing them in the Multo’s mixing bowl.  On screen buttons control the Multo’s turbo chopping function.  When the button to chop the mushrooms is pressed, the chopping time is automatically controlled by the Multo. 

We (my wife, an excellent home cook, assisted me with this article) tried a number of the recipes.  The Multo, with only a few exceptions, did an excellent job.  The recipes were easy to follow and the results were delicious. We wouldn’t hesitate to serve a dish created in the Multo to guests.

I do want to mention that some of these recipes require quite a few ingredients and while the Multo can make the process of cooking a meal easier it can’t necessarily shorten it.  For example, the lobster bisque recipe uses 19 ingredients and the estimated cooking time is one hour and forty minutes.  Other recipes take far less time.  The New Orleans-style BBQ Shrimp is estimated to only take 19 minutes.  Some of the filtering options for choosing a recipe are the level of experience required to prepare the dish (Beginner, Intermediate, or Expert) and the time required to make it.

Attention to Detail

It shows that the design team at CookingPal paid close attention to the details in the design of the Multo.  Here are a few examples:

  • While the hub has includes a very nice touch screen it also includes a large knob.  In guided cooking mode twisting the knob will move you forward and backward between the steps required to make the recipe and pressing the knob will activate the button to initiate a cooking step.  This allows you to operate the Multo when your hands are dirty without smearing your dirty fingers on the touch screen
  • If you get sidetracked during the cooking process the hub may go to sleep to save battery life.  However, when you wake it up it won’t have lost your place.  You can pick up the recipe right where you left off.
  • The various parts of the Multo fit together perfectly and, when necessary, seal perfectly.
  • The spatula provided with the Multo includes a small hook for safely removing the hot simmer basket from the mixing bowl during cooking.
  • The feet of the Multo include suction cups to make sure the Multo won’t slide on the countertop during the cooking process.

It is also clear that safety was a primary concern during the design of the Multo. For example, there are safety interlocks to make sure that the cover to the mixing bowl is locked in place whenever cooking is taking place or the blades are being used for chopping ingredients.

Hands on with the Multo

The Multo’s guided cooking mode does an excellent job walking you through the process of preparing a recipe.  We prepared a number of dishes including:

  • New Orleans Style BBQ Shrimp
  • Butter Chicken with Steamed Naan
  • Mushroom Risotto
  • Mushrooms and Creamy Polenta
  • Maple Pecan Ice Cream
  • And more

Like any good recipe each one requires a reasonably substantial list of ingredients.  For example, the New Orleans Style BBQ Shrimp recipe requires:

  1. Shrimp (in shell)
  2. Baguette
  3. Lemon Juice
  4. Fresh Parsley (Chopped)
  5. Beer (Brown Ale)
  6. Chicken Broth
  7. Cayenne Pepper
  8. Black Pepper
  9. Salt
  10. Sweet Paprika
  11. Rosemary
  12. Thyme
  13. Softened Unsalted Butter
  14. Garlic

In spite of the long list of ingredients the recipe is estimated to only take 19 minutes to prepare and is considered a beginner level recipe.  Be aware that even using guided cooking there is a learning curve to working with the Multo.  Don’t expect your first few recipes to go as quickly as the time estimations.

The steps for preparing the recipe are very straight forward:

  1. Take out all the ingredients
  2. Peel the garlic, add it to the Multo’s mixing bowl, and use the Multo to chop it
  3. Add the butter and spices to the Multo’s mixing bowl and use the Multo to sauté the garlic
  4. Add the shrimp to the mixing bowl and use the Multo to cook the shrimp.  Remove the shrimp from the mixing bowl when cooking is complete
  5. Add the broth and beer to the mixing bowl.  Use the Multo to cook the mixing bowls contents into a sauce
  6. Add the shrimp back into the mixing bowl to coat the shrimp with the sauce
  7. Serve the shrimp with the baguette

The Multo makes this very straight forward.  The person preparing the recipe doesn’t have to be concerned with, for example, how long to cook the shrimp or what temperature to cook them at.  All of those details are handled by the Multo.

It is important to know that while the Multo will chop, mix, and perform the same functions as other kitchen appliances, for exactly this reason it may not save time in the preparation of a meal.  There are times in recipes where you need to perform a step to prepare or cook a portion of a recipe.  After that step is complete you need to clean the Multo’s mixing bowl before moving on with the next step in the cooking process.  If you were preparing / cooking with several appliances and a selection of pots and pans you would just grab a clean pan and move forward; washing the dirty one at a later stage of the cooking process when you were waiting for cooking to complete. 

One other thing to note is that cooking on a stove top or in the Multo can produce cooking fumes when, for example, sautéing onions and garlic.  On a stove top this is easily handled by the vent hood installed above the stove.  Since it is not recommended that you located the Multo on the stove top, or near a hot surface, this is more of a problem with the Multo. 

Finally, with the mixing blade at bottom of the Multo’s mixing bowl, it can be challenging to scoop out food as the blades of the mixing blade get in the way of reaching the bottom of the bowl with the included spatula.  You can easily remove the mixing blade but this leaves a hole in the bottom of the mixing bowl that can cause its own problems when the mixing bowl is full of food.  A stand mixer solves this issue by having the mixing tools come in from the top of a bowl and the head of the mixer tilts back when the mixing process is done.  A food processor has a tube that rises out of the bottom of the bowl so the blade can be removed without having a hole at the bottom of the bowl that food can fall through.  I’m not sure that there is a perfect solution for this problem for the Multo but it is something to be aware of if you are considering purchasing one.

Our One Cooking Failure

Out of all the guided cooking recipes we tried the one that let us down was butter chicken with steamed Naan.  The butter chicken was delicious; the problem was the Naan.  First, during the preparation of the Naan the yogurt didn’t add enough moisture to the flour to create proper dough.  A quick Internet search found that most Naan recipes added water and oil to the flour.  Adding these additional ingredients created dough with the right consistency.  Then, when we steamed the dough, it didn’t cook through properly and the center was still gooey.  Our belief is that this was because we live in the mountains and the Multo doesn’t compensate for high altitude cooking where water boils at a lower temperature.  The steamed chicken in the recipe was well cooked because my wife suspected there might be a problem and seared the chicken before steaming it to assure it was cooked properly (nobody wants to get sick from undercooked poultry).  So, while the butter chicken was really delicious the Naan simply needed more cooking time and, for some reason, the preparation of the dough, as specified by the recipe, didn’t come out right.

The Multo should either (1) include a setting to specify your altitude so it can adjust the cooking times or (2) give you the option of increasing or decreasing the cooking time if you notice that something requires more or less cooking time than the default offered by the guided cooking recipe.

Once we understood that the Multo didn’t adjust cooking times for altitude we were able to work around the issue by, for example, cooking the spaghetti for the spaghetti bolognaise in a pot on our induction cooktop instead of performing that step of the recipe in the Multo.  Doing this also speeded up the time needed to make the dish because cooking the spaghetti could be done in parallel with the sauce instead of sequentially. 

Manual Operation of the Multo

While I’ve focused most of this article on the guided cooking capabilities of the Multo, it is also a useful tool for an experienced cook.  For example, making a sauce for a special dish typically requires a great deal of attention to constantly stir the sauce while it is cooking.  Otherwise you run a high risk of the sauce being ruined.  In manual mode, the Multo can hold at a constant temperature and do all the stirring for you; freeing you up to focus on the other aspects of the meal you are preparing. 

The Multo offers several different cooking modes:

  • Knead
  • Steam
  • Sauté
  • Scale
  • Keep Warm
  • Manual
  • Clean

Most of these are self explanatory.  However, manual mode is interesting because it allows you to specify the cooking temperature, a countdown timer, blade speed, and blade direction.  By adjusting the blade speed and direction you can use the blade to either puree a soup while you are cooking it or simply stir a sauce.  The steam mode only gives you the option of setting a countdown timer and the sauté mode allows you choose the cooking temperature and the time for the timer. 

Smart Phone App

I had an opportunity to try a very early version of a smart phone app for the Multo.  The app allowed you to search through the guided cooking recipes but didn’t, at the time I tried it, allow you to control the Multo.  That part of the app is still under development. 

The app was very easy to use and had a very similar experience to using the hub.  My only complaint was that it was locked in portrait mode.  On an iPad I couldn’t use the app with the iPad sideways which would better match the experience of the hub. 

If CookingPal does add the ability to control the Multo from the smart phone app I could see them offering a less expensive version of the Multo that doesn’t include the hub.  The Multo is not inexpensive and this might broaden its appeal to younger buyers who aren’t yet experienced cooks.

Suggestions for Improvement

While the Multo did an excellent job there are ways we believe the product could be improved.  This isn’t surprising with a brand new product that is just being introduced to the market. 

  1. The hub could easily be dropped and broken in a kitchen.  A silicone cover would be an inexpensive addition and provide some protection from bumps.
  2. It would be nice if tapping on an ingredient in a recipe would offer substitution suggestions with the exact amount needed in case you don’t have that specific ingredient on hand and would still like to make a recipe.  For example, a recipe may call for a sprig of rosemary but you only have a jar of dried rosemary.  Or, you don’t have any rosemary and would like to find a spice with a similar flavor. 
  3. During guided cooking there are small images of ingredients used in that step in the upper right portion of the hub’s screen that show the amount needed of each ingredient.  From a visual perspective this looks nice on the screen.  However, some of the images are very difficult to tell apart; such as trying to differentiate between a sprig of rosemary and a sprig of Thyme when different amounts of each spice are needed.  The amounts should simply be part of the text that describes the guided cooking step or the name of the ingredient needs to be included with the image.  My wife took to writing down a list of ingredients with the quantities required for each one before starting the guided cooking process to work around this. 
  4. When previewing the steps necessary to make a recipe the description of what is involved in a step is shortened so it fits into a single line of text on the hub.  In many cases this process makes it very challenging to understand what is involved in following a recipe. The smart phone app allowed you to easily view the details of steps required to make a recipe.  This same functionality needs to be incorporated into the Hub.
  5. It would be nice if there was a button at the end of a recipe to initiate the keep warm function.
  6. During a guided cooking step, while the Multo is cooking, you can’t look ahead in the recipe to help prepare for the next step.  If you try to move forward it prompts you if you want to cancel the cooking.  You should always be able to move forward to help prepare for upcoming steps in the guided cooking process. 

An option to look back at previous steps would also be helpful.  For example, the recipe specifies 1-1/2 teaspoons of a spice.  In one step you add 1 teaspoon and in a later step the recipe simply says to add the rest of the spice.  If you are measuring as you go, you probably don’t remember how much spice was specified and how much you previously added. 

  1. At the end of recipes are tips for preparing it; such as using white wine in the preparation of risotto if children aren’t going to be eating it.  It would be nice if these tips were included in the beginning of the recipe so you could leverage them when making the dish instead of having to wait until next time.
  2. One thing that is very confusing when choosing manual cooking mode is the option for clockwise or counterclockwise movement of the blade.  Unless you know which side of the blade is sharpened for chopping, and which side isn’t, the choice of direction doesn’t tell the owner what the action of the blade is going to accomplish.  It would be much simpler if the options were, for example, “chop” and “stir”
  3. A great addition to the Multo would be for CookingPal to partner with companies that offer meal kits and create guided cooking recipes for kits that people have delivered to their homes.  This would make it even simpler for people to prepare great meals using the Multo.
  4. The only actual problem we ran into using the Multo was that periodically the hub would lose its connection to either my WiFi network or the Multo main unit.  This never happened during guided cooking.  It seemed to only happen when powering up the hub after it had been powered off to save the battery when it wasn’t being used.  It wasn’t an issue to reestablish communications but I expect that Multo will be able to resolve this problem with some more testing before the product is released.
  5. For the experienced cook it would be nice if there was an advanced mode that added the ability to jump into any cooking mode from any guided cooking step so the experienced cook could make adjustments to the recipe and then return to where they left off in the guided cooking experienced.  To keep the UI simple this would only be available if advanced mode was enabled in the settings. 

Conclusions

While you can’t broil a steak or grill hamburgers and hotdogs in the Multo, it can perform more of the tasks required for cooking than any other smart cooking appliance I have seen.  A beginner cook could skip buying other appliances, such as a mixer, blender, and food processor, and simply use the Multo when they are just learning to cook.  Later, as they gain experience cooking and want to expand their horizons they could pick and choose the appliances they want based on their specific needs instead of having, for example, a food processor that takes up space in a kitchen cabinet and never gets used.

For the advanced cook, the Multo can be operated in manual mode and save effort creating recipes by being able to alleviate the necessity to continuously stir sauces or dishes like risotto; making the cooks life easier.

Wednesday, May 26, 2021

Testing Out Jasco Smart Lighting for ‘No Neutral Wire’ Older Homes

 My latest blog post, "Testing Out Jasco Smart Lighting for ‘No Neutral Wire’ Older Homes" was originally published by the good folks at Residential Tech Today Magazine on their web site here:

https://restechtoday.com/testing-out-jasco-smart-lighting-for-no-neutral-wire-older-homes/

Below is a copy of the article. 

Older homes have been left behind in the smart home revolution.  Yes, the owner of an older home could install a smart thermostat.  But, when it comes to lighting they were at a distinct disadvantage because when older homes were wired the electricians didn’t install neutral wires in all the electrical boxes where light switches are located in the home.  Since the smart dimmers and switches that have been available on the market all required a neutral wire to function, an owner of an older home was pretty much out of luck.

To understand the issue requires a little bit of understanding of basic electricity.  Electricity moves along wires in the home that form a continuous loop or, in electrical terms, a circuit.  The wires that form a circuit in a home are called the hot wire and the neutral wire.

  1. Electricity arrives at the home from the electrical grid at the circuit breaker panel.
  2. Travels through a “hot” wire to an electrical device (I’ll use a light bulb as an example throughout this article)
  3. Flows back to the circuit breaker panel through a “neutral” wire. 
  4. Completes the circuit and flows back to the electrical grid. 

Any time the flow of electricity through this circuit is interrupted, by a switch being turned off or a circuit breaker tripping, the flow of electricity stops and the light bulb being powered goes off.

So, why is it important for there to be a neutral wire in an electrical box where a switch is installed?  A smart switch/dimmer needs to consume a small amount of power.  So, consider the circuit.  As was common in older homes a hot wire would enter the electrical box where the switch was located and connect to the switch.  A second hot wire (since the wire hadn’t reached the light being powered yet) would exit the electrical box and go through the wall to a light fixture and a light bulb.  The second connection to the light bulb was a neutral wire that completed the circuit back to the circuit breaker panel. 



So, this is the problem.  If the smart/dimmer is sitting in the electrical box and needs to consume a small amount of power to operate, when it is turned off it breaks the circuit.  With the circuit broken, just like the light bulb loses power and turns off, so does the smart switch. 

In a modern home, with a neutral wire in the electrical box with the:

  1. Power flows to the smart switch/dimmer through the hot wire
  2. When the smart switch/dimmer is turned on it allows power to flow to the light bulb
  3. When power is turned off power is cut to the light bulb but the smart switch/dimmer itself can continue to consume the small amount of electricity it needs to operate by using the circuit created by the hot wire going to it and the neutral wire in the electrical box which would also be connected to another terminal on the switch/dimmer.


The only alternative for people in smart homes that wanted a smart lighting system was to replace all their bulbs with smart bulbs.  Smart bulbs have their place in lamps but I don’t believe they are the best solution for light fixtures in a home that are controlled with wall mounted switches.  In this case they work fine until a house guest, who doesn’t understand the system, turns off a light switch and cuts power to the smart bulb.  This results in the smart bulb becoming very dumb.  Then a smart home routine to turn on pathway lights when a homeowner arrives home at night doesn’t function and in the dark a homeowner could trip and be injured.



Jasco has just come to the rescue of people who own older homes with their new Enbrighten In-Wall No-Neutral Smart Dimmer.  This dimmer doesn’t require a neutral wire and with Jasco’s patented SimpleWire technology it doesn’t even care how the two wires in the electrical box are connected to the dimmer as it automatically detects which wire goes to the circuit breaker panel and which wire connects to the light bulb. 

Jasco has taken a modern spin on an old technology to accomplish this.  Back in 1980s, which I refer to as the dark ages of smart home technology, smart home dimmers were based on a technology called X10.  X10 dimmers didn’t require a neutral wire and operated by running a tiny amount of electricity through the bulb; even when it was turned off.  This gave the X10 dimmer enough energy to operate but not enough to visibly turn on the bulb. 

Modern smart switches have required too much electrical power for their operation to do this without lighting up today’s low power LED bulbs.  The latest Z-Wave 700 Series chipset used in the Enbrighten In-Wall No-Neutral Smart Dimmer have reduced power requirements of the dimmer to the point where this doesn’t happen.

Jasco has included a number of additional features that make the Enbrighten In-Wall No-Neutral Smart Dimmer homeowner friendly; especially for homeowners of older homes

  • Electrical boxes for wall switches in older homes are typically not as deep as the boxes used in modern homes.  This can make fitting a smart dimmer into one problematic.  Jasco’s patented QuickFit technology reduces the depth of the dimmer by up to 20% compared to previous Z-Wave models.
  • Each dimmer ships with changeable white and light almond rocker style paddles and trim. Optional kits are available to change the dimmer’s visible plastic to black, brown, or ivory.
  • The Enbrighten In-Wall No-Neutral Smart Dimmer can be used in three-way and four-way circuits with Jasco add-on switches

It is important to mention that the Enbrighten In-Wall No-Neutral Smart Dimmer is a Z-Wave dimmer so you will need a compatible Z-Wave hub, such as a Hubitat Elevation Hub or a SmartThings hub from Samsung. 

Hands on with the Enbrighten In-Wall No-Neutral Smart Dimmer

Disclaimer: Consult a licensed electrician if you have any questions regarding your home's circuitry, and be sure to refer to your local building codes before doing electrical work.

The Jasco Enbrighten In-Wall No-Neutral Smart Dimmer was very easy to work with. Because it doesn’t require a neutral wire and because of Jasco’s patented SimpleWire technology, it is as easy to replace an existing light switch with this smart dimmer as it would be to replace an existing switch with a dumb one.  You turn off the circuit breaker and just connect the two black colored hot wires in the electrical box to the black terminals on the dimmer.  Then you connect the ground wire to the dimmer.  Just like with a dumb switch, you can’t mistakenly reverse the hot wire connections to the dimmer because the Enbrighten In-Wall No-Neutral Smart Dimmer automatically detects which one connects back to your circuit breaker panel and which one connects to the light bulb. 

Connecting the dimmer to a Z-Wave network was also very simple.  After installing the dimmer in an electrical box, turning the circuit breaker back on, and placing the Z-Wave hub into acquire mode; pressing either the top or bottom rocker places the dimmer into Z-Wave pairing mode.  If the hub supports it, the Jasco Enbrighten In-Wall No-Neutral Smart Dimmer can also be paired using the QR code on the dimmer.  I simply pressed the dimmer’s rocker and it was immediately acquired by my Hubitat Elevation hub. 

One, very minor, issue was that I had to tell the hub that the newly acquired device was a “Generic Z-Wave Smart Dimmer” as it didn’t recognize the Jasco dimmer natively.  However, once that was done the Hubitat Elevation hub was able to fully control the dimmer.  Other hubs may, or may not, exhibit this issue.

Manual operation of the dimmer is also very simple.  To turn on the connected light bulb simply press and release the top rocker.  To turn off the connected light bulb simply press and release the bottom rocker.  Pressing and holding the top rocker raises the dim level of the connected bulb and pressing and holding the bottom rocker lowers it.

Finally, for safety the dimmer includes an air gap switch that fully cuts the flow of electricity to the bulb.  It is recommended that you disconnect the air gap switch when you change light bulbs so you can’ accidentally touch the contacts of the lighting fixture and receive an electrical shock. 

However, it is important to understand that an air gap switch isn’t a substitute for turning off the circuit breaker when doing electrical work.  I have seen situations in an older home where an electrician ran the hot wire directly to the lighting fixture and installed a switch on the neutral wire going back to the circuit breaker panel.    Turning off the switch still interrupts the circuit and causes the bulb to turn off.  However if you turned off the air gap switch, started doing electrical work at the lighting fixture, and accidentally touched the hot wire and the ground wire in the electrical box at the same time; you would receive a shock. 

One thing to be aware of with the Jasco Enbrighten In-Wall No-Neutral Smart Dimmer is that if power is lost, for example from a power outage, when the power comes back on the dimmer will revert to the same state it was previously in.  So, if the dimmer is turned on and power is lost, if the power company restores power to your home at 2am the light connected to the dimmer will suddenly turn on.  If this happens to be a light in your bedroom then you are going to have a rude 2am wakeup call. 

Areas for Improvement

Especially since I once owned an older home I’m very familiar with the challenges of trying to make it smart.  The Jasco Enbrighten In-Wall No-Neutral Smart Dimmer is an excellent solution for homes where not all, or none, of the electrical boxes have neutral wires.  However, there are a few ways I think it could be improved.

  1. It would be very nice if there was an easy way to configure the dimmer to turn off when power is restored instead of returning to the state the dimmer was in when power was lost.  Jasco has told me that the majority of their customers want the light to come back on when power is restored so they know that the power outage is over.  However, no parent wants their children, especially a baby, woken up in the middle of the night.  It would be nice if Jasco simply made the power restore operation of the dimmer adjustable by the homeowner.
  2. Jasco currently only manufactures a no-neutral required dimmer.  They don't have a switch with this technology that is capable of controlling, for example, a bathroom fan, and other devices that only have an on/off state.  It would be very helpful for owners of older homes if they would add this to their product lineup.  This is a very challenging problem to solve as some switched devices can be damaged by running a low amount of power through them.

Conclusion

Jasco has really thought through the requirements of homeowners of older homes that want to make their home’s lighting smart.  They have eliminated the need for a neutral wire and decreased the depth of the switch so it should fit into the smaller electrical boxes common in older homes.  The Jasco Enbrighten In-Wall No-Neutral Smart Dimmer is an excellent solution for anyone considering making their older home’s lighting smart.

Wednesday, May 12, 2021

A Template for Writing a Crestron Home Extension Driver

 My latest blog post, "A Template for Writing a Crestron Home Extension Driver" was originally published by the good folks at Residential Tech Today Magazine on their web site here:

https://restechtoday.com/a-template-for-writing-a-crestron-home-extension-driver/

Below is a copy of the article. 

Writing drivers for Crestron Home is a challenging undertaking.  I wouldn’t describe the process of learning to write a driver as going through a learning curve as much as I would describe it as a learning cliff.  Without the help of Daniel Berlin and Oliver Hall, Managing Director at Ultamation, I don’t know if I would have made it through the process.  Both were very generous with their time and showed an incredible amount of patience answering my questions.  Oliver Hall’s company, Ultamation, is offering consulting assistance for organizations that need help developing drivers for Crestron Home.  More info on that can be found here.

Why is it so hard?

Before explaining how to write a driver for Crestron Home, it is important to understand why it is so challenging.  Crestron has invested a lot of time and effort into the development of online documentation for writing Crestron Home drivers.  I’m sure the documentation Crestron has created works very well for their internal development team; who are all experienced C# programmers.  However, I believe it is lacking in a number of ways when used by a Crestron programmer working for a CSP or dealer. 

First, it is written for people with computer science degrees and more specifically education in object oriented programming.  Many people working for Crestron dealers work their way up from being an installer to becoming a Crestron programmer.  For many years these people have been successful in programming Crestron systems in SimplWindows and Simpl+. When it comes to learning to write drivers in C# using Microsoft Visual Studio, Crestron appears to be drawing a line in the sand and saying “if you don’t have an educational background in computer programming then don’t go here”.  I say this because the documentation isn’t written for beginning C# programmers.  It is riddled with the jargon of object oriented programming making it exceeding difficult for anyone without a computer science degree to understand it.

Second, the number of code snippets (short coding examples) in the documentation that show exactly what the documentation is trying to explain to the reader is limited, or at least a bit challenging to find.  Crestron has invested in writing a full set of sample drivers that you need to dig into to see how anything is done.  Unfortunately, the samples are challenging to use as a learning tool. First, they include very few comments that explain how the code functions. Again, Crestron assumes that the person trying to read through the sample drivers already has a strong background in C# and their class library so the function of the code is simply self evident.  Second, Crestron tried to pack so much functionality into sample drivers they wrote (I worked primarily with the two extension drivers included in the samples) that figuring out what code is relevant for the specific piece of functionality you are trying to implement can be very difficult; especially with a lack of comments in the code.

The API Reference documentation is an even worse example of this.  The API that Crestron has created for writing drivers is very extensive.  However, I haven’t found a single code snippet anywhere in the API Reference.  Compare this to Microsoft’s .net documentation where code snippets are almost everywhere and provide a clear picture of how to use an API call. 

Development of the user interface (UI) for a driver where data could be displayed for the user, or the user might enter data that affects how the driver operates, is very different than a Crestron programmer who has been using SimplWindows and VTProe to develop Crestron systems is used to.  In the documentation there are welcome examples of how to define the user interface for a Crestron Home driver in the XML file where the UI is specified.  In fact, the documentation includes examples of the XML statements to define each different UI element (checkbox, text entry field, etc.).  However, there aren’t any examples showing how the C# code in your driver needs to be written to interact with the UI elements.  Those are hidden away in another section of the documentation.  Without a photographic memory you won’t remember where you saw these code examples and put the two together.  C# code snippets should be included with each XML UI example or, at a minimum, hyperlinks to take the reader to where the C# examples are located.

If this doesn’t deter you from taking on the challenge of writing drivers for Crestron Home, I have created a template that can serve as the starting point for a new extension driver based on the first driver that I wrote.  I won’t promise that everything about the template is perfect as it is based on my current level of understanding of writing drivers for Crestron Home.  However, I have used it as the basis for creating additional drivers and it does work.

The remainder of this article looks at the structure of a Crestron Home extension driver and includes code snippets from the template I created to explain how to write a driver from scratch.  In the resources section of the article is a link to my GitHub where you can download the template.

I do have to apologize to the C# purists out there that I am a firm believer in white space when it comes to coding.  For example, today norm for naming something in programming is thisIsTheNameOfSomething.  I find that things named using this format make code much more challenging to read and therefore much more challenging to understand. 

Imagine if you were trying to read the novel War and Peace by Leo Tolstoy and all 1225 pages of the novel looked like this:

“WeCanKnowOnlyThatWeKnowNothing.AndThatIsTheHighestDegreeOfHumanWisdom.”

On today’s large computer monitors pixels are not an endangered species that need to be preserved so as an alternative I name things in my code using the format This_Is_The_Name_Of_Something; which I personally find makes it much more legible and have been using since I started writing software professionally in the 1970s.  Old habits are hard to change or possibly I’ve just become stodgy.

What kind of driver do you want to write?

There isn’t just one kind of driver for Crestron home.  There are different driver types depending on the type of equipment your driver will interface with.  Crestron natively supports the development of drivers for A/V Receivers, A/V Switchers, Bluray Players, Cable Boxes, Flat Panel Displays, Pool Controllers, Projectors, Security Systems, and Video Servers.

If the device you want to create a driver for doesn’t fit into the above categories then you either need to write a Platform driver or an Extension driver.

An Extension device would be any device that is outside of the above list where there would be a simple one-to-one relationship between the device and a driver to communicate with it.  Examples could be a weather station or an outdoor air quality monitor. 

A platform driver can be viewed as a specialized type of extension device.  For example, say you wanted to write a driver for a new kind of smart relay.  You might have twenty of these relays scattered around in different rooms of a house.  So, in Crestron home you would want to have a user interface for each relay in the rooms where the relays were physically located.  In addition, the relays all communicate their status back to the Crestron processor so you need a common block of code that manages this communication and then passes the status of a relay to the code module in the room where the relay is located.  Devices of this type require a “platform driver” to be written.

This article is going to focus on how to develop an extension driver.

The three layers of an extension driver

The top layer of your driver is the fundamental driver class.  This driver must extend AExtensionDevice and for a cloud connected device (as shown in the template) ICloudConnected.  The code for this is as follows:

namespace Home_Extension_Template

{

       public class Device_Name : AExtensionDevice, ICloudConnected

       {

}

}

The Home_Extension_Template class then instantiates the transport and protocol layers of the driver (creates objects of the transport and protocol class type), integrate with the driver’s UI, accept triggers configured in the Actions & Events section of Crestron Home, and trigger Crestron Home sequences.

The transport class is the second layer of the driver.  According to the documentation it sets the communications settings for the driver.  In the case of a cloud connected device this doesn’t amount to much.  However, it is important that the transport layer does the following so the driver will function properly.

namespace Home_Extension_Template

{

public class Home_Extension_Template_Transport : ATransportDriver

{

public Device_Name_Transport()

{

                     IsEthernetTransport = true;

                     IsConnected = true;

}

}

}

Finally, the protocol layer is where the work to communicate with your cloud connected device is all done.  The protocol layer sends commands and receives responses from your device. 

namespace Home_Extension_Template

{

public class Home_Extension_Template_Protocol : ABaseDriverProtocol, IDisposable

{

public Device_Name_Protocol(Device_Name_Transport transport, byte id) : base(transport, id)

              {

                     Transport = transport;

              }

}

}

More on the functionality of the protocol layer will be shown later in the article.

Additional required files

There are three additional files that are required in a driver:

  1. JSON Data File
  2. UI Definitions File
  3. Language Translations File

The JSON Data File contains general information about your driver including the devices it supports, information about the communications settings required to communicate with your device, and a specification of the user interface that will be displayed when the driver is added to a room by the installer including settings, such as a device ID or IP Address, needed by your driver to communicate with your device.  A good example of a JSON data file is shown in the template.

The UI Definitions File defines the UI (in XML) that the homeowner will see and use to interact with your driver.  For example, in the driver I wrote to integrate a WeatherFlow Tempest Smart Weather System with a Crestron Home system I included a UI to display weather data to the homeowner and to allow the homeowner to enable triggers that could drive sequences for events such as rain and high wind.  For example, a text display field in the UI is defined as follows:

<textdisplay id="DisplayTextID" title="^DisplayTextLabel" line1label="{DisplayText}"/>

“^DisplayTextLabel” tells the system to obtain the text to display from the UI Translations file so your driver can be translated into multiple languages.  {DisplayText} is the text element that will be displayed for the user.  Since it is surrounded by {} the system knows that the actual text will be supplied by the C# code in your driver as follows:

private const string Display_Text_Key = "DisplayText";

private PropertyValue<string> Display_Text_Property;

Display_Text_Property = CreateProperty<string>(new PropertyDefinition(Display_Text_Key, null, DevicePropertyType.String));

Display_Text_Property.Value = “your text here”;

The Language Translation File includes all the text strings for the UI.  Multiple translation files can be included with your driver, each for a different language.  Entries in a language translation file take the form:

"DisplayTextLabel": "This is some text"

Polling

In many cases a driver needs to periodically poll a device or cloud service to obtain data from the device.  Crestron makes this easy to accomplish.  First in your base driver class you will need the inherited methods Connect() and Disconnect().  These methods should call methods in your Protocol class Start() and Stop() as shown below:

public override void Connect()

{

       base.Connect();

       Connected = true;

Protocol.Start();

}

public override void Disconnect()

{

       Protocol.Stop();

       base.Disconnect();

       Connected = false;

}

Then in your protocol class the Start() and Stop() methods are coded as follows:

public void Start()

{

       PollingInterval = 60000;//60 seconds in ms

       EnableAutoPolling = true;

}

public void Stop()

{

       EnableAutoPolling = false;

}

When EnableAutoPolling is set to true, and the PollingInterval is set to a time period in milliseconds, an inherited method called Poll() will be called repeatedly at the polling interval.  It is important to know that Poll will not be called after EnableAutoPolling is set to true until the polling interval has expired.  So, if you polling interval is 10 minutes and you don’t want the user to have to wait to see data from the connected device you are going to need to first gather data from the device and then enable auto polling to continue data collection starting 10 minutes later.  The poll method needs to be defined in your driver as follows:

protected override void Poll()

{

}

One important thing to understand is that polling is dependent on the Crestron Home processor believing that the driver is connected to the device.  If you haven’t, for example, set “Connected = true;” your polling method will never be called.  So, unless the system thinks your driver is connected to your device / cloud service, even if you will actually be connecting and disconnecting to it within your polling routine, your driver won’t work.

Sequences and Events

An extension driver can be written to participate in Crestron Home sequences and to create events.  Sequences are the Crestron Home equivalent of a SimplWindows Stepper symbol.  Through a sequence a series of actions can be triggered in a program at, for example, a specific time. 

Events are triggered by a driver and can trigger other actions in a Crestron Home program; including a sequence.

Providing entry points in your program that can be triggered by a sequence is simple. In the code snippet shown below a method named “Sequence_Triggered_Method” can be called from a sequence.  In the Actions & Events dialogs Sequence_Triggered_Method will be given the screen name from the driver’s translation file defined by the keyword “SequenceTriggeredMethodLabel”.

[ProgrammableOperation("^SequenceTriggeredMethodLabel")]

public void Sequence_Triggered_Method()

{

       //Do Something

}

Again, "^SequenceTriggeredMethodLabel” will pull the actual text displayed from your language translation file.

An Event that can be used to trigger a sequence in a Crestron Home system is defined as follows in a driver.

[ProgrammableEvent]

public event EventHandler Event_ID;

Then the event can be triggered through the following code:

var Event = Event_ID;

Event?.Invoke(this, new EventArgs());

Additional Tricks and Caveats

There are a few other things that are important to understand and may save you time and frustration in your effort to learn to write an extension driver for Crestron Home.

  • When you download and install the Certified Driver SDK from the Crestron web site you should install it into a directory that doesn’t include the SDK version.  For example, “C:\Crestron_SDK”.  Then when Crestron releases an update to the SDK you can simply overwrite the version you have been using and all the references in you driver projects will now point to the new SDK.  Otherwise you will have to delete all the SDK references in your Visual Studio projects and add them again.
  • Liberally placing Log statements throughout the code for a driver is exceedingly helpful for debugging. I personally start every method and finish every method with Log statements that tell you where you are in the code in the code when it executes.  This has greatly helped me with debugging.  You can wrap these statements in regions so they can easily be hidden and won’t distract you from the functionality of your method.  Here is an example:

       public void My_Method()

       {

              #region Debug Message

              Log("Project Name – Method Name – Start");

              #endregion Debug Message

              //Do Stuff Here

              #region Debug Message

              Log("Project Name – Method Name – Finish");

              #endregion Debug Message

       }

  • If you create a driver from scratch make sure you tell Visual Studio that the translation, UiDefinition, and JSON Data files should be copied to the Output directory and included in your project.  Visual Studio will not do this by default and your project won’t run on your processor without them.
  • If you are creating an extension driver for a cloud connected device then the CommunicationType should be set to 5 in your driver’s JSON data file.  This is the proper setting for a cloud connected device but a value of 5 is not shown in the documentation.
  • If you’ve specified UserAttributes in your driver’s JSON file to create a user interface where an installer must enter data required for your driver to connect to the device you are interfacing with, such as an IP address, security token, etc., then this trick can save you time during testing.  Enter your device’s data in the DefaultValue fields of the UserAttributes so you don’t have to reenter them each time you upload a new version of the driver for testing.
  • When testing a driver you need to make sure that the old driver is fully deleted from you Crestron Home installation before adding the new version of the driver to the system.  So, you need to use the Crestron Home Setup App to remove the driver from the room you installed it in.  Then you need to back your way out of the room the driver was in, back out of the home setup app in general, wait 2 minutes, and reboot the processor to try and make sure that your system has fully synchronized with the change.  At that point you can use the Toolbox File Manager tool to delete the driver package from your Crestron Home system, use the File Manager tool to upload the new version of the driver to your Crestron Home system, and issue a toolbox console command to reboot your Crestron Home system a second time.  Once the processor has finished rebooting the new version of the driver will be available in the Crestron Home Setup app for installation into a room in Crestron Home.  It is all too easy to screw this up or rush the process and then the driver can get stuck in the room  If this happens you will have to fully reset your Crestron Home system to get things straightened out.  It is helpful to have a dedicated Crestron Home system for driver development as you will probably have to factory reset the system more often than you would like.  I wasn’t waiting 2 minutes and rebooting my processor after removing the driver from my system.  Sometimes it would work fine without these steps but other times I ran into problems and had to factory reset my Crestron Home processor.  I spoke to Crestron about the issue and they told me to include the 2 minute wait followed by a processor reboot in my development process. 
  • You must remember to enter the command “enableprogramcmd” in the Toolbox Text Console for the Crestron Home system to display log messages in the Toolbox Text Console window so you can debug your driver.  If you reset your processor you’ll have to remember to enter this command again.

Resources

  • The Crestron driver development documentation can be found here.
  • The latest version of the Crestron Drivers SDK can be found on the above web site resources page here.
  • The extension driver template can be downloaded from my GitHub here: https://github.com/jbasen/Crestron-Home-Extension-Driver-Template.  Unfortunately, because the solution folder for a Crestron Home project is so large I am only able to add the source files to Github instead of a zip file of the entire solution.    

Areas for Improvement

Besides the issues I outlined in the beginning of this article on the documentation and code samples that Crestron has produced, there are a few additional ways that Crestron could improve the process of creating drivers for Crestron Home. 

To load your driver onto a Crestron Home processor you need to:

·         Use the Crestron Home Setup App to remove any old versions of the driver that have been loaded into rooms on your Crestron Home processor.

·         Wait two minutes

·         Use Toolbox to reboot your processor

·         Use Crestron Toolbox File Manager to delete your driver off of the processor

·         Use Toolbox File Manager to load the new version of your driver onto the processor

·         Use Toolbox to reboot your processor.

·         Use the Crestron Home Setup App to add the driver into a room on the processor

First, this process is way too time consuming; especially the time you sit around waiting for the processor to reboot.  Second, if you make a mistake, like forgetting to use the Crestron Home Setup App to remove the driver from a room before you use toolbox to delete it off the processor, you are probably going to need to factory reset your processor to correct the problem.  Crestron needs to improve the workflow to make it faster and less prone to mistakes by:

  1. Allow the process to be automated with a script
  2. Create a console command to force the processor to delete the driver without having to wait two minutes followed by a reboot of the processor
  3. Create a console command that would make a driver uploaded to the processor available for use in the Crestron Home Setup App without having to go through the slow process of rebooting the processor a second time

Summary

Crestron does a good job of documenting the process of installing the driver SDK, creating a driver project in Visual Studio, and side loading the drive to your Crestron Home processor.  Where the documentation falls down is the lack of C# code snippets to help less experienced programmers come up to speed quickly.  Hopefully the template I created and the content of this article will help people over the remainder of the learning cliff required to write their first extension driver.