node-red-contrib-google-smarthome
Version:
Lets you control Node-Red via Google Assistant or the Google Home App
399 lines (358 loc) • 37.4 kB
HTML
<script type="text/x-red" data-help-name="google-device1">
<p>A Google Smart Home Device.</p>
<h3>Inputs</h3>
<dl class="message-properties">
<dt>payload
<span class="property-type">object | string | boolean</span>
</dt>
<dd>Changes to apply to the device status (and send to Google Smart Home).</dd>
</dl>
<h3>Output</h3>
<dl class="message-properties">
<dt>payload
<span class="property-type">object | string | boolean</span>
</dt>
<dd>The status of the device after executing a command received from Google Smart Home.</dd>
</dl>
<h3>Device Types</h3>
<dl class="message-properties">
<p>See the <a target="_blank" href="https://developers.google.com/assistant/smarthome/guides">online documentation</a>
for more information on Smart Home Device Types.</p>
<ul>
<li><b>Air conditioning unit</b>: Air conditioning units are similar to thermostats, but do not support heating and may not support setting temperature targets.</li>
<li><b>Air cooler</b>: Air coolers are devices that allow temperature cooling and humidity control. These devices are typically more lightweight and portable than air conditioners, and have a water tank attached. Air coolers may not support heating or setting exact temperatures. Interactions with air coolers may include changing the fan speed and humidity setting.</li>
<li><b>Air freshener</b>: Air fresheners can be turned on and off and may allow adjusting various modes.</li>
<li><b>Air purifier</b>: Air purifiers are devices that may be turned on and off, report air filter cleanliness and air filter lifetime, and be adjusted to various mode settings.</li>
<li><b>Audio-Video receiver</b>: Device that takes audio input (for example, HDMI, optical, and RCA) and outputs sound to one or more speakers.</li>
<li><b>Awning</b>: Awnings are retractable and can opened and closed. They can be installed indoors or outdoors.</li>
<li><b>Bathtub</b>: Bathtubs can be filled and drained, possibly to particular levels if the bathtub supports it.</li>
<li><b>Bed</b>: Interactions with beds may include adjusting various modes and setting scenes.</li>
<li><b>Blender</b>: Interactions with blenders may include starting and stopping, setting a timer, setting cooking modes or food presets, or adjusting other various settings.</li>
<li><b>Blinds</b>: Blinds can be opened and closed, and various types of blinds are supported such as venetian (opens in one direction), panel or vertical (may open either left or right), and top-down bottom-up (may open either up or down). Some blinds may have slats that can be rotated.</li>
<li><b>Boiler</b>: Boilers can be turned on and off, and may support adjusting temperature.</li>
<li><b>Camera</b>: Cameras are complex and features will vary significantly between vendors. Over time, cameras will acquire many traits and attributes describing specific capabilities, many of which may interact with the video/audio stream in special ways, such as sending a stream to another device, identifying what's in the stream, replaying feeds, etc.</li>
<li><b>Carbon monoxide detector</b>: Carbon monoxide detectors may report whether carbon monoxide is currently detected, whether the carbon monoxide level is high, and the current carbon monoxide level in parts per million.</li>
<li><b>Charger</b>: Interactions with chargers may include starting and stopping charging, and checking the current charge level, capacity remaining, and capacity until full values.</li>
<li><b>Closet</b>: Closets can be opened and closed, potentially in more than one direction.</li>
<li><b>Coffee Maker</b>: Interactions with coffee makers may include turning them on and off, adjusting cooking modes and food presets, adjusting the target temperature, and adjusting various non-cooking mode settings.</li>
<li><b>Cooktop</b>: Interactions with cooktops may include turning them on and off, starting and stopping, setting a timer, adjusting cooking modes and food presets, and adjusting various non-cooking mode settings.</li>
<li><b>Curtain</b>: Curtains can be opened and closed, potentially in more than one direction. For example, curtains with two sections may open either to the left or to the right.</li>
<li><b>Dehumidifier</b>: Dehumidifiers are devices that remove moisture from the air. They can be turned on and off, report and adjust target humidity, and may have various adjustables modes or fan speed settings.</li>
<li><b>Dehydrator</b>: Interactions with dehydrators may include starting and stopping, setting a timer, adjusting cooking modes or food presets, or adjusting other various settings.</li>
<li><b>Dishwasher</b>: Dishwashers can have start and stop functionality independent from being on or off (some washers have separate power buttons, and some do not). Some can be paused and resumed while washing. Dishwashers also have various modes and each mode has its own related settings. These are specific to the dishwasher and are interpreted in a generalized form.</li>
<li><b>Door</b>: Door can be opened and closed, potentially in more than one direction.</li>
<li><b>Doorbell</b>: Doorbells can let people know someone is at the door. This device can send notifications and stream video if it has the corresponding capability.</li>
<li><b>Drawer</b>: Drawers can be opened and closed, potentially in more than one direction.</li>
<li><b>Dryer</b>: Dryers have start and stop functionality independent from being on or off. Some can be paused and resumed while drying. Dryers also have various modes and each mode has its own related settings. These are specific to the dryer and are interpreted in a generalized form.</li>
<li><b>Fan</b>: Fans can typically be turned on and off and have speed settings. Some fans may also have additional supported modes, such as fan direction/orientation (for example, a wall unit may have settings to adjust whether it blows up or down).</li>
<li><b>Faucet</b>: Faucets can dispense liquids in various quantities and presets. Faucets may have various modes and each mode has its own related settings. These are specific to the faucet and are interpreted in a generalized form.</li>
<li><b>Fireplace</b>: Fireplaces can be turned on and off, and may have adjustable modes.</li>
<li><b>Freezer</b>: Freezers are temperature-managing devices which may be adjusted to various mode settings, and may allow temperature monitoring.</li>
<li><b>Fryer</b>: Interactions with fryers may include starting and stopping, setting a timer, adjusting cooking modes or food presets, or adjusting other various settings.</li>
<li><b>Garage</b>: Garage doors can open, close, and detect an open state. They can also indicate if an object has obstructed the path of the door while closing or if the door is locked and therefore cannot be controlled.</li>
<li><b>Gate</b>: Gates can be opened and closed, potentially in more than on direction.</li>
<li><b>Grill</b>: Interactions with grills may include turning them on and off, starting and stopping, setting a timer, adjusting cooking modes and food presets, and adjusting various non-cooking mode settings.</li>
<li><b>Heater</b>: Heaters are similar to thermostats but do not support cooling and may not support setting temperature targets.</li>
<li><b>Hood</b>: Oven and range hoods can be turned on and off, may have adjustable modes, and may have adjustable fan speeds.</li>
<li><b>Humidifier</b>: Humidifiers are devices that add moisture to the air. They can be turned on and off, report and adjust target humidity, and may have various adjustable modes or fan speed settings.</li>
<li><b>Kettle</b>: Kettles are devices that boil water. Interactions with kettles may include turning them on and off, adjusting the target temperature, and perhaps adjusting various mode settings.</li>
<li><b>Light</b>: Light devices can be turned on and off. They may have additional features, such as dimming and the ability to change color.</li>
<li><b>Lock</b>: Locks can lock, unlock, and report a locked state.</li>
<li><b>Microwave</b>: Interactions with microwaves may include starting and stopping, setting a timer, adjusting cooking modes and food presets, and adjusting non-cooking modes.</li>
<li><b>Mop</b>: Interactions with mops may include starting, stopping, pausing cleaning, docking, checking the current cleaning cycle, locating the mop, or adjusting various modes. Some mops may support cleaning specific zones in the home.</li>
<li><b>Mower</b>: Interactions with mowers may include starting, stopping and pausing mowing, docking, checking the current cycle, locating the mower, and adjusting various modes.</li>
<li><b>Multicooker</b>: Interactions with multicookers may include starting and stopping, setting a timer, or and adjusting non-cooking modes.</li>
<li><b>Network</b>: Represents a group of router nodes or a mesh network controlled as one entity rather than as individual devices. The network device may reboot, update its software, and have modes to handle Quality of Service (QoS) controls and parental restrictions. The device can perform operations such as enabling the guest network, and reporting network-specific information such as the current internet throughput rates.</li>
<li><b>Outlet</b>: Outlet, a basic device in Smart Home, has binary modes on/off only.</li>
<li><b>Oven</b>: Interaction with ovens involves the ability to bake or broil at certain temperatures. The physical temperature inside the oven differs as the oven is heating, so this may also be monitored. The oven has a cook time that limits the duration of baking.</li>
<li><b>Pergola</b>: Pergolas (an outdoor garden structure) can be opened and closed, potentially in more than one direction. For example, some pergolas with a canvas may open either to the LEFT or RIGHT.</li>
<li><b>Pet feeder</b>: Interactions with pet feeders may include dispensing pet food or water in various quantities and presets.</li>
<li><b>Pressure cooker</b>: Interactions with pressure cookers may include starting and stopping, setting a timer, adjusting cooking modes or food presets, or adjusting other various settings.</li>
<li><b>Radiator</b>: Radiators can be turned on and off and may allow adjusting various modes.</li>
<li><b>Refrigerator</b>: Refrigerators are temperature-managing devices which may have various modes/settings.</li>
<li><b>Remote control</b>: Media remotes are used to control media devices. Examples of this device type include hubs, universal remotes, and media controllers.</li>
<li><b>Router</b>: Routers can reboot, update their software, have modes to handle Quality of Service (QoS) controls and parental restrictions, and perform network specific operations (such as enabling the guest network and reporting network specific information such as the current internet throughput rates).</li>
<li><b>Scene</b>: In the case of scenes, the type maps 1:1 to the trait, as scenes don't combine with other traits to form composite devices. Scenes should always have user-provided names. Each scene is its own virtual device, with its own name(s).</li>
<li><b>Security system</b>: Security systems can be armed and disarmed. They can be armed at multiple security levels (for example, home and away) and they can report information about certain sensors, such as a sensor that detects motion or an open window.</li>
<li><b>Sensor</b>: A single sensor can serve multiple functions, such as monitoring both temperature and humidity. Sensors may report either or both quantitative—for example, carbon monoxide and smoke level measured at parts per million—and qualitative measurements (such as whether air quality is healthy or unhealthy).</li>
<li><b>Settop</b>: Interactions with Multichannel Video Programming Distributor (MVPD) and set-top-box devices may include controlling media playback.</li>
<li><b>Shower</b>: Showers can be turned on and off and may support adjusting temperature.</li>
<li><b>Shutter</b>: Shutters can be opened and closed, potentially in more than one direction. Some shutters may have slats that can be rotated.</li>
<li><b>Smoke detector</b>: Smoke detectors can report whether smoke is currently detected, whether the smoke level is high, and the current smoke level in parts per million.</li>
<li><b>Soundbar</b>: An all-in-one audio device that is often used in conjunction with a TV and has a bar form factor.</li>
<li><b>Sousvide</b>: Interactions with sous vides may include starting and stopping, setting a timer, adjusting cooking modes or food presets, or adjusting other various settings.</li>
<li><b>Speaker</b>: This device is a connected speaker that does not split audio into separate channels (for example, between two left and right devices).</li>
<li><b>Sprinkler</b>: Sprinklers can start and stop (or turn on and off). They may also support timers and/or schedules.</li>
<li><b>Stand mixer</b>: Interactions with stand mixers may include turning mixers on and off, starting and stopping the mixer, adjusting cooking modes or food presets, or adjusting various non-cooking mode settings.</li>
<li><b>Streaming box</b>: This device enables streaming services for media and music, often used in conjunction with a display such as a TV. This devices is powered from a constant source, separate from the display device itself.</li>
<li><b>Streaming soundbar</b>: This device is a combination of speaker and streaming stick or box. This device provides a streaming experience in addition to soundbar capabilities.</li>
<li><b>Streaming stick</b>: This device has a small stick-like form factor that is usually powered by a USB or HDMI cable connected to a display such as a TV.</li>
<li><b>Switch</b>: Switch, a basic device in Smart Home, can be turned on and off.</li>
<li><b>Thermostat</b>: Thermostats are temperature-managing devices, with set points and modes. This separates them from heaters and AC units which may only have modes and settings (for example, high/low) vs a temperature target.</li>
<li><b>Television</b>: Television devices combine a tuner, display, and loudspeakers for the purpose of viewing and hearing media. Examples include smart TV devices.</li>
<li><b>Vacuum</b>: Vacuums may have functions such as starting, stopping, and pausing cleaning, docking, checking the current cleaning cycle, locating the vacuum, or adjusting various modes. Some vacuums may support cleaning specific zones in the home.</li>
<li><b>Valve</b>: Valves can be opened and closed.</li>
<li><b>Washer</b>: Washers can have start and stop functionality independent from being on or off (some washers have separate power buttons, and some do not). Some can be paused and resumed while washing. Washers also have various modes and each mode has its own related settings. These are specific to the washer and are interpreted in a generalized form.</li>
<li><b>Water heater</b>: Water heaters are devices used to heat water. They may turn on and off and adjust water temperature.</li>
<li><b>Water purifier</b>: Water purifiers are devices that may be turned on and off, report water filter cleanliness and filter lifetime, and be adjusted to various mode settings.</li>
<li><b>Water softener</b>: Water softeners are devices that may be turned on and off, report water filter cleanliness and filter lifetime, and be adjusted to various mode settings.</li>
<li><b>Window</b>: Windows can be opened and closed, optionally with sections that open in different directions, and may also be locked and unlocked.</li>
<li><b>Yogurt maker</b>: Interactions with yogurt makers may include starting and stopping, setting a timer, adjusting cooking modes or food presets, or adjusting other various settings.</li>
</ul>
</dl>
<h3>Device Traits</h3>
<dl class="message-properties">
<p>See the <a target="_blank" href="https://developers.google.com/assistant/smarthome/traits">online documentation</a>
for more information on Smart Home Device Traits.</p>
<ul>
<li><b>AppSelector</b>: This trait belongs to devices that support media applications, typically from third parties.</li>
<li><b>ArmDisarm</b>: This trait supports arming and disarming as used in, for example, security systems.</li>
<li><b>Brightness</b>: Absolute brightness setting is in a normalized range from 0 to 100 (individual lights may not support every point in the range based on their LED configuration).</li>
<li><b>CameraStream</b>: This trait belongs to devices which have the capability to stream video feeds to third party screens, Chromecast-connected screens, or smartphones. By and large, these are security cameras or baby cameras. But this trait also applies to more complex devices which have a camera on them (for example, video-conferencing devices or a vacuum robot with a camera on it).</li>
<li><b>Channel</b>: This trait belongs to devices that support TV channels on a media device.</li>
<li><b>ColorSetting</b>: This trait applies to devices, such as smart lights, that can change color or color temperature.</li>
<li><b>Cook</b>: This trait belongs to devices that can cook food according to various food presets and supported cooking modes.</li>
<li><b>Dispense</b>: This trait belongs to devices that support dispensing a specified amount of one or more physical items. For example, a dog treat dispenser may dispense a number of treats, a faucet may dispense cups of water, and a pet feeder may dispense both water and pet food.</li>
<li><b>Dock</b>: This trait is designed for self-mobile devices that can be commanded to return for charging.</li>
<li><b>EnergyStorage</b>: This trait belongs to devices that can store energy in a battery and potentially recharge, or devices that can charge another device. The trait supports starting and stopping charging, and checking the current charge level, capacity remaining, and capacity until full values.</li>
<li><b>FanSpeed</b>: This trait belongs to devices that support setting the speed of a fan (that is, blowing air from the device at various levels, which may be part of an air conditioning or heating unit, or in a car), with settings such as low, medium, and high.</li>
<li><b>Fill</b>: This trait applies to devices that support being filled, such as a bathtub.</li>
<li><b>HumiditySetting</b>: This trait belongs to devices that support humidity settings such as humidifiers and dehumidifiers.</li>
<li><b>InputSelector</b>: Trait for devices that can change media inputs. These inputs can have dynamic names per device, and may represent audio or video feeds, hardwired or networked.</li>
<li><b>LightEffects</b>: This trait belongs to devices that can support complex lighting commands to change state, such as looping through various colors.</li>
<li><b>Locator</b>: This trait is used for devices that can be "found". This includes phones, robots (including vacuums and mowers), drones, and tag-specific products that attach to other devices.</li>
<li><b>LockUnlock</b>: This trait belongs to any devices that support locking and unlocking, and/or reporting a locked state.</li>
<li><b>MediaState</b>: This trait is used for devices which are able to report media states.</li>
<li><b>Modes</b>: This trait belongs to any devices with an arbitrary number of "n-way" modes in which the modes and settings for each mode are arbitrary and unique to each device or device type. Each mode has multiple possible settings, but only one can be selected at a time; a dryer cannot be in "delicate," "normal," and "heavy duty" mode simultaneously. A setting that simply can be turned on or off belongs in the Toggles trait.</li>
<li><b>NetworkControl</b>: This trait belongs to devices that support reporting network data and performing network specific operations.</li>
<li><b>ObjectDetection</b>: This trait belongs to devices that can detect objects or people and send a notification to the user. For example, it can be used for doorbells to indicate that a person (named or unnamed) rang the doorbell, as well as for cameras and sensors that can detect movement of objects or people approaching.</li>
<li><b>OnOff</b>: The basic on and off functionality for any device that has binary on and off, including plugs and switches as well as many future devices.</li>
<li><b>OpenClose</b>: This trait belongs to devices that support opening and closing, and in some cases opening and closing partially or potentially in more than one direction. For example, some blinds may open either to the left or to the right. In some cases, opening certain devices may be a security sensitive action which can require two-factor authentication authentication. See Two-factor authentication.</li>
<li><b>Reboot</b>: This trait belongs to devices that support rebooting, such as routers. The device needs to support rebooting as a single action.</li>
<li><b>Rotation</b>: This trait belongs to devices that support rotation, such as blinds with rotatable slats.</li>
<li><b>RunCycle</b>: This trait represents any device that has an ongoing duration for its operation which can be queried. This includes, but is not limited to, devices that operate cyclically, such as washing machines, dryers, and dishwashers.</li>
<li><b>SensorState</b>: This trait covers both quantitative measurement (for example, air quality index or smoke level) and qualitative state (for example, whether the air quality is healthy or whether the smoke level is low or high).</li>
<li><b>Scene</b>: In the case of scenes, the type maps 1:1 to the trait, as scenes don't combine with other traits to form composite devices.</li>
<li><b>SoftwareUpdate</b>: This trait belongs to devices that support software updates such as a router. Optionally, these devices may report the time of the last successful update.</li>
<li><b>StartStop</b>: Starting and stopping a device serves a similar function to turning it on and off. Devices that inherit this trait function differently when turned on and when started. Unlike devices that simply have an on and off state, some devices that can start and stop are also able to pause while performing operation.</li>
<li><b>StatusReport</b>: This trait reports the current status or state of a specific device or a connected group of devices.</li>
<li><b>TemperatureControl</b>: Trait for devices (other than thermostats) that support controlling temperature, either within or around the device. This includes devices such as ovens and refrigerators.</li>
<li><b>TemperatureSetting</b>: This trait covers handling both temperature point and modes.</li>
<li><b>Timer</b>: The Timer trait represents a timer on a device, primarily kitchen appliances such as ovens and microwaves, but not limited to them.</li>
<li><b>Toggles</b>: This trait belongs to any devices with settings that can only exist in one of two states. These settings can represent a physical button with an on/off or active/inactive state, a checkbox in HTML, or any other sort of specifically enabled/disabled element.</li>
<li><b>TransportControl</b>: This trait supports media devices which are able to control media playback (for example, resuming music that's paused).</li>
<li><b>Volume</b>: This trait belongs to devices which are able to change volume (for example, setting the volume to a certain level, mute, or unmute).</li>
</ul>
</dl>
<h3>Details</h3>
<h4>Node Properties - Google SmartHome Settings</h4>
<p><code>SmartHome</code> Configuration node.</p>
<p><code>Name</code> Name used by Google Smart Home.</p>
<p><code>Nicknames</code> Comma separated list of additional names for the device. Optional.</p>
<h4>Node Properties - Node-RED Settings</h4>
<p><code>Topic</code> Topic used by this node when sending updates from Google Smart Home.</p>
<p><code>Room hint</code> Room of the device. Optional, can be changed in the app.</p>
<p><code>Device Type</code> The device type. See the <a target="_blank" href="https://developers.google.com/assistant/smarthome/guides">online documentation</a>
for more information on Smart Home Device Types</p>
<p><code>Filter incoming messages by topic</code> If enabled, incoming messages will managed only if the message topic starts with the node topic.</p>
<p><code>Pass Through</code> If enabled, incoming messages will be passed onto the output. Be careful with this setting.</p>
<p><code>Persistent state</code> If enabled, the updated state will be included in the set_state message.</p>
<p><code>Show trait</code> Choose to show the selected, recommended or all traits.</p>
<p><code>Online</code> The initial online state.</p>
<p><code>Advanced settings</code> Shows the advanced settings. Don't modify them unless You know what you are doing.</p>
<h4>Input Message</h4>
<p>If the <code>msg.topic</code> is one of the device states name the <code>msg.payload</code> must be the new value telling the new state of the device.</p>
<p>If the <code>msg.topic</code> doesn't match any of the device state's name the <code>msg.payload</code> must be an object with the new status of the device where every property must match a device state name telling the new state of the device.</p>
<p>E.g: if the <code>msg.topic</code> is <code>on</code> then the <code>msg.payload</code> must be boolean telling the new state of the device.</p>
<dl class="message-properties">
<dt>
{
"topic": "on",
"payload": true
}
</dt>
</dl>
<dd><code>true</code> sets device to on, <code>false</code> sets device to off.</dd>
<p/>
<p>E.g: if the <code>msg.topic</code> is <code>color</code> then the <code>msg.payload</code> must be an object telling the new color of the device light.</p>
<dl class="message-properties">
<dt>
{
"topic": "color",
"payload": {
"temperatureK": 2000
}
}
</dt>
</dl>
<dd><code>2000</code> sets the device light to warm white.</dd>
<p/>
<p>It is possible to set both status using the following payload:</p>
<dl class="message-properties">
<dt>
{
"topic": "",
"payload": {
"on": true,
"color": {
"temperatureK": 2000
}
}
}
</dt>
</dl>
<p/>
<p>The following topic values are special treatments:</p>
<p>If <code>msg.topic</code> is <code>AvailableApplications</code> and the <code>msg.payload</code> is a string or a json object, the applications list is saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the applications to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableApplications</code> and the <code>msg.payload</code> is not defined, the applications list is loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the applications from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableChannels</code> and the <code>msg.payload</code> is a string or a json object, the available channel are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the channels to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableChannels</code> and the <code>msg.payload</code> is not defined, the available channel are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the channels from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>SupportedDispenseItems</code> and the <code>msg.payload</code> is a string or a json object, the supported dispense items are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the Supported Dispense Items to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>SupportedDispenseItems</code> and the <code>msg.payload</code> is not defined, the supported dispense items are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the Supported Dispense Items from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>SupportedDispensePresets</code> and the <code>msg.payload</code> is a string or a json object, the supported dispense presets are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the Supported Dispense Items to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>SupportedDispensePresets</code> and the <code>msg.payload</code> is not defined, the supported dispense presets are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the Supported Dispense Items from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableFanSpeeds</code> and the <code>msg.payload</code> is a string or a json object, the available fan speeds are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the fan speeds to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableFanSpeeds</code> and the <code>msg.payload</code> is not defined, the available fan speeds are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the fan speeds from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableFillLevels</code> and the <code>msg.payload</code> is a string or a json object, the available fill levels are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the fill levels to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableFillLevels</code> and the <code>msg.payload</code> is not defined, the available fill levels are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the fill levels from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableFoodPresets</code> and the <code>msg.payload</code> is a string or a json object, the available food presets are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the food presets to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableFoodPresets</code> and the <code>msg.payload</code> is not defined, the available food presets are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the food presets from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableInputs</code> and the <code>msg.payload</code> is a string or a json object, the available inputs are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the inputs to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableInputs</code> and the <code>msg.payload</code> is not defined, the available inputs are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the inputs from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableModes</code> and the <code>msg.payload</code> is a string or a json object, the available modes are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the modes to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableModes</code> and the <code>msg.payload</code> is not defined, the available modes are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the modes from the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableToggles</code> and the <code>msg.payload</code> is a string or a json object, the available toggles are saved to the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">string | json</span>
</dt>
<dd>Save the traits to the file.</dd>
</dl>
<p>If <code>msg.topic</code> is <code>AvailableToggles</code> and the <code>msg.payload</code> is not defined, the available toggles are loaded from the file.</p>
<dl class="message-properties">
<dt>payload
<span class="property-type">undefined</span>
</dt>
<dd>Load the toggles from the file.</dd>
</dl>
<p><b>Note 1:</b> <code>msg.topic</code> does not have to be exactly as shown above. You can use <code>/</code> as
a delimiter and as long as the last part of the topic matches one of the described topics all is good.
For example, <code>a/msg/topic/online</code> will be broken down into multiple parts and only the last part,
<code>online</code>, will be tested for a match.</p>
<p><b>Note 2:</b> If you set the online state to <code>false</code> then Google Smart Home is not going to be
able to control the device.</p>
<h4>Output Messages</h4>
<p>Unless <code>Pass Through</code> is enabled, these messages are emitted when Google Smart Home wants to control the device.</p>
<h3>References</h3>
<p><a href="https://developers.google.com/assistant/smarthome/guides" target="_new">Smart Home Device Types</a>.</p>
<p><a href="https://developers.google.com/assistant/smarthome/traits" target="_new">Smart Home Device Traits</a>.</p>
<p><a href="https://www.npmjs.com/package/node-red-contrib-google-smarthome" target="_new">Node Information</a>.</p>
</script>