node-red-contrib-google-smarthome
Version:
Lets you control Node-Red via Google Assistant or the Google Home App
393 lines • 12.6 kB
JSON
[
{
"id": "3790fb054dd9aa5a",
"type": "google-device",
"z": "ba4ea2f93145cb4f",
"client": "",
"name": "Frontdoor",
"nicknames": "Voordeur",
"topic": "LockUnlock",
"online": true,
"room_hint": "Corridor",
"device_type": "LOCK",
"trait_appselector": false,
"trait_channel": false,
"trait_inputselector": false,
"trait_mediastate": false,
"trait_onoff": false,
"trait_transportcontrol": false,
"trait_modes": false,
"trait_volume": false,
"trait_toggles": false,
"trait_brightness": false,
"trait_colorsetting": false,
"appselector_file": "applications_<id>.json",
"appselector_type": "str",
"channel_file": "channels_<id>.json",
"channel_type": "str",
"inputselector_file": "inputs_<id>.json",
"inputselector_type": "str",
"command_only_input_selector": false,
"ordered_inputs": false,
"support_activity_state": false,
"support_playback_state": false,
"command_query_onoff": "",
"supported_commands": [
"CAPTION_CONTROL",
"NEXT",
"PAUSE",
"PREVIOUS",
"RESUME",
"SEEK_RELATIVE",
"SEEK_TO_POSITION",
"SET_REPEAT",
"SHUFFLE",
"STOP"
],
"volume_max_level": 100,
"volume_can_mute_and_unmute": true,
"volume_default_percentage": 40,
"level_step_size": 1,
"command_only_volume": false,
"command_only_brightness": false,
"command_only_colorsetting": false,
"color_model": "temp",
"temperature_min_k": 2000,
"temperature_max_k": 9000,
"modes_file": "modes_<id>.json",
"modes_type": "str",
"command_query_modes": "",
"toggles_file": "toggles_<id>.json",
"toggles_type": "str",
"command_query_toggles": "",
"trait_camerastream": false,
"hls": "",
"hls_app_id": "",
"dash": "",
"dash_app_id": "",
"smooth_stream": "",
"smooth_stream_app_id": "",
"progressive_mp4": "",
"progressive_mp4_app_id": "",
"webrtc": "",
"webrtc_offer": "",
"webrtc_ice_servers": "",
"webrtc_ice_servers_type": "str",
"auth_token": "",
"topic_filter": false,
"passthru": false,
"persistent_state": true,
"trait_scene": false,
"scene_reversible": true,
"trait_timer": false,
"trait_temperaturesetting": false,
"max_timer_limit_sec": 86400,
"command_only_timer": false,
"available_thermostat_modes": [
"off",
"heat",
"cool",
"on",
"heatcool",
"auto",
"fan-only",
"purifier",
"eco",
"dry"
],
"min_threshold_celsius": 0,
"max_threshold_celsius": 40,
"thermostat_temperature_unit": "C",
"buffer_range_celsius": 2,
"command_query_temperaturesetting": "",
"trait_temperaturecontrol": false,
"tc_min_threshold_celsius": 0,
"tc_max_threshold_celsius": 40,
"tc_temperature_step_celsius": 1,
"tc_temperature_unit_for_ux": "C",
"tc_command_query_temperaturecontrol": "",
"trait_humiditysetting": false,
"min_percent": 0,
"max_percent": 100,
"command_query_humiditysetting": "",
"trait_dock": false,
"trait_locator": false,
"trait_lockunlock": true,
"trait_reboot": false,
"trait_openclose": false,
"discrete_only_openclose": false,
"open_direction": [],
"command_query_openclose": "",
"trait_startstop": false,
"pausable": false,
"available_zones": [],
"trait_runcycle": false,
"trait_softwareupdate": false,
"trait_rotation": false,
"supports_degrees": true,
"supports_percent": true,
"rotation_degrees_min": 0,
"rotation_degrees_max": 360,
"supports_continuous_rotation": false,
"command_only_rotation": false,
"trait_lighteffects": false,
"default_sleep_duration": 1800,
"default_wake_duration": 1800,
"supported_effects": [
"colorLoop",
"sleep",
"wake"
],
"trait_statusreport": false,
"trait_cook": false,
"supported_cooking_modes": [],
"food_presets_file": "foodPresets_<id>.json",
"food_presets_type": "str",
"trait_fanspeed": false,
"reversible": false,
"supports_fan_speed_percent": false,
"fan_speeds_ordered": false,
"command_only_fanspeed": false,
"available_fan_speeds_file": "availableFanSpeeds_<id>.json",
"available_fan_speeds_type": "str",
"trait_sensorstate": false,
"sensor_states_supported": [],
"arm_levels_ordered": false,
"trait_fill": false,
"available_fill_levels_file": "availableFillLevels_<id>.json",
"available_fill_levels_type": "str",
"supports_fill_percent": false,
"ordered_fill_levels": true,
"trait_armdisarm": false,
"available_arm_levels_file": "availableArmLevels_<id>.json",
"available_arm_levels_type": "str",
"trait_energystorage": false,
"is_rechargeable": false,
"query_only_energy_storage": false,
"energy_storage_distance_unit_for_ux": "",
"trait_dispense": false,
"supported_dispense_items_file": "supportedDispenseItems_<id>.json",
"supported_dispense_items_type": "str",
"supported_dispense_presets_file": "supportedDispensePresets_<id>.json",
"supported_dispense_presets_type": "str",
"trait_networkcontrol": false,
"supports_enabling_guest_network": false,
"supports_disabling_guest_network": false,
"supports_getting_guest_network_password": false,
"network_profiles": [],
"supports_enabling_network_profile": false,
"supports_disabling_network_profile": false,
"supports_network_download_speedtest": false,
"supports_network_upload_speedtest": false,
"trait_objectdetection": false,
"show_trait": "selected",
"advanced_settings": true,
"ct_appselector": "",
"ct_armdisarm": "",
"ct_brightness": "",
"ct_camerastream": "",
"ct_channel": "",
"ct_colorsetting": "",
"ct_cook": "",
"ct_dispense": "",
"ct_dock": "",
"ct_energystorage": "",
"ct_fanspeed": "",
"ct_fill": "",
"ct_humiditysetting": "",
"ct_inputselector": "",
"ct_lighteffects": "",
"ct_locator": "",
"ct_lockunlock": "",
"ct_mediastate": "",
"ct_modes": "",
"ct_networkcontrol": "",
"ct_objectdetection": "",
"ct_onoff": "",
"ct_openclose": "",
"ct_reboot": "",
"ct_rotation": "",
"ct_runcycle": "",
"ct_scene": "",
"ct_sensorstate": "",
"ct_softwareupdate": "",
"ct_startstop": "",
"ct_statusreport": "",
"ct_temperaturecontrol": "",
"ct_temperaturesetting": "",
"ct_timer": "",
"ct_toggles": "",
"ct_transportcontrol": "",
"ct_volume": "",
"pin_appselector": "",
"pin_armdisarm": "",
"pin_brightness": "",
"pin_camerastream": "",
"pin_channel": "",
"pin_colorsetting": "",
"pin_cook": "",
"pin_dispense": "",
"pin_dock": "",
"pin_energystorage": "",
"pin_fanspeed": "",
"pin_fill": "",
"pin_humiditysetting": "",
"pin_inputselector": "",
"pin_lighteffects": "",
"pin_locator": "",
"pin_lockunlock": "",
"pin_mediastate": "",
"pin_modes": "",
"pin_networkcontrol": "",
"pin_objectdetection": "",
"pin_onoff": "",
"pin_openclose": "",
"pin_reboot": "",
"pin_rotation": "",
"pin_runcycle": "",
"pin_scene": "",
"pin_sensorstate": "",
"pin_softwareupdate": "",
"pin_startstop": "",
"pin_statusreport": "",
"pin_temperaturecontrol": "",
"pin_temperaturesetting": "",
"pin_timer": "",
"pin_toggles": "",
"pin_transportcontrol": "",
"pin_volume": "",
"x": 640,
"y": 2080,
"wires": [
[
"2487410e7a53853f"
]
]
},
{
"id": "2487410e7a53853f",
"type": "function",
"z": "ba4ea2f93145cb4f",
"name": "Function Out Lock/Unlock",
"func": "flow.set(\"lockUnlockFrontDoorToken\", msg.params.followUpToken);\n\nif (msg.params.lock === true) {\n msg.payload = \"lock\";\n }\n else if (msg.params.lock === false) {\n msg.payload = \"unlock\";\n }\nreturn msg",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 890,
"y": 2080,
"wires": [
[
"fced2d0cf32230c0"
]
]
},
{
"id": "5fe4212bb24696b9",
"type": "function",
"z": "ba4ea2f93145cb4f",
"name": "Return Result",
"func": "msg.topic = \"LockUnlock\";\nif (msg.payload === \"closed\") {\nmsg.payload =\n {\n \"status\": \"SUCCESS\",\n \"isLocked\": true,\n \"followUpToken\": flow.get (\"lockUnlockFrontDoorToken\")\n };\n} else if (msg.payload === \"open\") {\n msg.payload =\n {\n \"status\": \"SUCCESS\",\n \"isLocked\": false,\n \"followUpToken\": flow.get (\"lockUnlockFrontDoorToken\")\n }\n}\nreturn msg",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 420,
"y": 2080,
"wires": [
[
"3790fb054dd9aa5a"
]
]
},
{
"id": "ba11fb082de4fb94",
"type": "inject",
"z": "ba4ea2f93145cb4f",
"name": "Closed",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "closed",
"payloadType": "str",
"x": 230,
"y": 2060,
"wires": [
[
"5fe4212bb24696b9"
]
]
},
{
"id": "bf7cb03f868a0ba1",
"type": "inject",
"z": "ba4ea2f93145cb4f",
"name": "Open",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "open",
"payloadType": "str",
"x": 230,
"y": 2100,
"wires": [
[
"5fe4212bb24696b9"
]
]
},
{
"id": "fced2d0cf32230c0",
"type": "debug",
"z": "ba4ea2f93145cb4f",
"name": "debug 250",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1130,
"y": 2080,
"wires": []
},
{
"id": "6f58cb0e3be809a8",
"type": "comment",
"z": "ba4ea2f93145cb4f",
"name": "READ ME",
"info": "It is assumed that the response from the device\n(Frontdoor) in case of a **closed door** returns a \n**msg.payload = \"closed\"**\nIn case of an **open door** the device responds with\n**msg.payload = \"open\"**.",
"x": 400,
"y": 2020,
"wires": []
},
{
"id": "adeae0e6c1ee3618",
"type": "comment",
"z": "ba4ea2f93145cb4f",
"name": "READ ME",
"info": "It is assumed that the command to the device\n(Frontdoor) in case you want **to close** the\nFrondoor has to be **msg.payload = \"lock\"**\nIn case you want **to open** the Frontdoor the command\nhas to be **msg.payload = \"unlock\"**.",
"x": 840,
"y": 2020,
"wires": []
}
]