UNPKG

node-red-contrib-google-smarthome

Version:

Lets you control Node-Red via Google Assistant or the Google Home App

378 lines (377 loc) 13 kB
[ { "id": "5c6f1fc4968d51be", "type": "function", "z": "1797c1fc2aa93477", "name": "Return Result", "func": "let msg1 = {};\nlet msg2 = {};\nlet msg3 = {};\n\nlet downloadSpeed = Number(parseFloat(msg.payload.download.bandwidth / 125000).toFixed(2));\nlet uploadSpeed = Number(parseFloat(msg.payload.upload.bandwidth / 125000).toFixed(2));\n\nlet timestamp = (new Date(Date.now()).getTime()) / 1000;\n\nmsg1.topic = \"NetworkControl\";\nmsg1.payload =\n{\n \"status\": \"SUCCESS\",\n \"networkDownloadSpeedMbps\": downloadSpeed,\n \"networkUploadSpeedMbps\": uploadSpeed,\n \"followUpToken\": flow.get (\"networkTestRouterToken\")\n};\n\nmsg2.topic = \"networkSpeedTestInProgress\";\nmsg2.payload = false;\n\nmsg3.payload = \n{ \n \"lastNetworkDownloadSpeedTest\" : {\n \"downloadSpeedMbps\": downloadSpeed,\n \"unixTimestampSec\": timestamp,\n \"status\": \"SUCCESS\" \n },\n \n \"lastNetworkUploadSpeedTest\" : {\n \"uploadSpeedMbps\": uploadSpeed, \n \"unixTimestampSec\": timestamp, \n \"status\": \"SUCCESS\" \n }\n} \n\nreturn [[msg1,msg2,msg3]];", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 4880, "wires": [ [ "c66e2e522e6b8821" ] ] }, { "id": "9e9726329eed8743", "type": "function", "z": "1797c1fc2aa93477", "name": "Start Test", "func": "let msg1 = {};\nlet msg2 = {};\n\nflow.set(\"networkTestRouterToken\", msg.params.followUpToken);\n\nmsg1.topic = msg.topic;\nmsg1.payload = \"on\";\n\nmsg2.topic = \"networkSpeedTestInProgress\";\nmsg2.payload = true;\n \nreturn [msg1,msg2];", "outputs": 2, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 860, "y": 4880, "wires": [ [ "97a8c4139c8286e4" ], [ "c66e2e522e6b8821" ] ] }, { "id": "c66e2e522e6b8821", "type": "google-device", "z": "1797c1fc2aa93477", "client": "", "name": "Testrouter", "nicknames": "", "topic": "speedtest/cmd", "online": true, "room_hint": "Test Room", "device_type": "NETWORK", "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": false, "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": true, "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": true, "supports_network_upload_speedtest": true, "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": 650, "y": 4880, "wires": [ [ "9e9726329eed8743" ] ] }, { "id": "18500ff8b9360845", "type": "comment", "z": "1797c1fc2aa93477", "name": "READ ME", "info": "In this example it is assumed that the Network\nSpeed Test from OOKLA will be used.\nThis is the same Network Speed Test, \nthat is used by the Node-RED contrib node.\nhttps://flows.nodered.org/node/node-red-contrib-speedtest\n\nIt will present both for the download and upload speed\nthe bandwidth in bytes per second.\nSee: https://github.com/ddsol/speedtest.net#data", "x": 400, "y": 4820, "wires": [] }, { "id": "ef67f96cb30c15fc", "type": "comment", "z": "1797c1fc2aa93477", "name": "READ ME", "info": "It is assumed that the command to **start** the\nNetwork Speed Test will be a **msg.payload = \"on\"**,\nwith a **msg.topic = \"speedtest/cmd**\".", "x": 860, "y": 4820, "wires": [] }, { "id": "97a8c4139c8286e4", "type": "debug", "z": "1797c1fc2aa93477", "name": "Output to Network Test", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1090, "y": 4880, "wires": [] }, { "id": "ebde3e935514357e", "type": "inject", "z": "1797c1fc2aa93477", "name": "Test Results", "props": [ { "p": "payload.download.bandwidth", "v": "24985069", "vt": "num" }, { "p": "payload.upload.bandwidth", "v": "26297282", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 210, "y": 4880, "wires": [ [ "5c6f1fc4968d51be" ] ] } ]