/* * This file is part of Domodroid. * * Domodroid is Copyright (C) 2011 Pierre LAINE, Maxime CHOFARDET * * Domodroid is free software: you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * Domodroid is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * Domodroid. If not, see <http://www.gnu.org/licenses/>. */ package activities; import android.content.Context; import org.domogik.domodroid13.R; public class Graphics_Manager { public static int Icones_Agent(String usage, int state) { usage = adapt_usage(usage); switch (state) { case 0: //Called for Off or Room //reorder by usage name for easy update switch (usage) { case "air_conditionning": return R.drawable.usage_air_off; case "appliance": return R.drawable.usage_appliance_off; case "battery": return R.drawable.usage_battery_off; case "bluetooth": return R.drawable.usage_bluetooth_off; case "christmas_tree": return R.drawable.usage_christmas_tree_off; case "computer": return R.drawable.usage_computer_off; case "cron": return R.drawable.usage_cron_off; case "door": return R.drawable.usage_door_off; case "electricity": return R.drawable.usage_electricity_off; case "lowbeam": return R.drawable.usage_lowbeam_off; case "highbeam": return R.drawable.usage_highbeam_off; case "headlight": return R.drawable.usage_headlight_off; case "heating": return R.drawable.usage_heating_off; case "light": return R.drawable.usage_light_off; case "mirror": return R.drawable.usage_mirror_off; case "motion": return R.drawable.usage_motion_off; case "music": return R.drawable.usage_music_off; case "nanoztag": return R.drawable.usage_nanoztag_off; case "portal": return R.drawable.usage_portal_off; case "scene": return R.drawable.usage_scene_off; case "security_camera": return R.drawable.usage_security_cam_off; case "server": return R.drawable.usage_server_off; case "socket": return R.drawable.usage_appliance_off; case "shutter": return R.drawable.usage_shutter_off; case "telephony": return R.drawable.usage_telephony_off; case "temperature": return R.drawable.usage_temperature_off; case "tv": return R.drawable.usage_tv_off; case "ventilation": return R.drawable.usage_ventilation_off; case "water": return R.drawable.usage_water_off; case "water_tank": return R.drawable.usage_water_tank_off; case "window": return R.drawable.usage_window_off; //room case "bathroom": return R.drawable.room_bathroom; case "bedroom": return R.drawable.room_bedroom; case "garage": return R.drawable.room_garage; case "kidsroom": return R.drawable.room_kidsroom; case "kitchen": return R.drawable.room_kitchen; case "office": return R.drawable.room_office; case "tvlounge": return R.drawable.room_tvlounge; case "usage": return R.drawable.logo; case "unknow": return R.drawable.unknown; //area case "area": return R.drawable.area_area; case "attic": return R.drawable.area_attic; case "basement": return R.drawable.area_basement; case "basement2": return R.drawable.area_basement2; case "garage2": return R.drawable.area_garage2; case "garden": return R.drawable.area_garden; case "ground_floor": return R.drawable.area_ground_floor; case "ground_floor2": return R.drawable.area_ground_floor2; case "first_floor": return R.drawable.area_first_floor; case "first_floor2": return R.drawable.area_first_floor2; case "second_floor": return R.drawable.area_second_floor; case "second_floor2": return R.drawable.area_second_floor2; case "house": return R.drawable.house; case "map": return R.drawable.map; default: return R.drawable.usage_default_off; } case 1: //For median value (50%) //reorder by usage name for easy update switch (usage) { case "air_conditionning": return R.drawable.usage_air_50; case "appliance": return R.drawable.usage_appliance_50; case "battery": return R.drawable.usage_battery_50; //todo add bluetooth 50 case "christmas_tree": return R.drawable.usage_christmas_tree_50; case "computer": return R.drawable.usage_computer_50; case "cron": return R.drawable.usage_cron_50; case "door": return R.drawable.usage_door_50; case "electricity": return R.drawable.usage_electricity_50; case "heating": return R.drawable.usage_heating_50; case "light": return R.drawable.usage_light_50; case "mirror": return R.drawable.usage_mirror_50; case "music": return R.drawable.usage_music_50; case "nanoztag": return R.drawable.usage_nanoztag_50; case "portal": return R.drawable.usage_portal_50; case "scene": return R.drawable.usage_scene_50; case "security_camera": return R.drawable.usage_security_cam_50; case "server": return R.drawable.usage_server_50; case "socket": return R.drawable.usage_appliance_50; case "shutter": return R.drawable.usage_shutter_50; case "telephony": return R.drawable.usage_telephony_50; case "temperature": return R.drawable.usage_temperature_50; case "tv": return R.drawable.usage_tv_50; case "ventilation": return R.drawable.usage_ventilation_50; case "water": return R.drawable.usage_water_50; case "water_tank": return R.drawable.usage_water_tank_50; case "window": return R.drawable.usage_window_50; //room case "bathroom": return R.drawable.room_bathroom; case "bedroom": return R.drawable.room_bedroom; case "garage": return R.drawable.room_garage; case "kidsroom": return R.drawable.room_kidsroom; case "kitchen": return R.drawable.room_kitchen; case "office": return R.drawable.room_office; case "tvlounge": return R.drawable.room_tvlounge; case "usage": return R.drawable.logo; case "unknow": return R.drawable.unknown; //area case "area": return R.drawable.area_area; case "attic": return R.drawable.area_attic; case "basement": return R.drawable.area_basement; case "basement2": return R.drawable.area_basement2; case "garage2": return R.drawable.area_garage2; case "garden": return R.drawable.area_garden; case "ground_floor": return R.drawable.area_ground_floor; case "ground_floor2": return R.drawable.area_ground_floor2; case "first_floor": return R.drawable.area_first_floor; case "first_floor2": return R.drawable.area_first_floor2; case "second_floor": return R.drawable.area_second_floor; case "second_floor2": return R.drawable.area_second_floor2; case "house": return R.drawable.house; case "map": return R.drawable.map; default: return R.drawable.usage_default_50; } case 2: //For on //reorder by usage name for easy update switch (usage) { case "air_conditionning": return R.drawable.usage_air_on; case "appliance": return R.drawable.usage_appliance_on; case "battery": return R.drawable.usage_battery_on; case "bluetooth": return R.drawable.usage_bluetooth_on; case "christmas_tree": return R.drawable.usage_christmas_tree_on; case "computer": return R.drawable.usage_computer_on; case "cron": return R.drawable.usage_cron_on; case "door": return R.drawable.usage_door_on; case "electricity": return R.drawable.usage_electricity_on; case "heating": return R.drawable.usage_heating_on; case "lowbeam": return R.drawable.usage_lowbeam_on; case "highbeam": return R.drawable.usage_highbeam_on; case "headlight": return R.drawable.usage_headlight_on; case "light": return R.drawable.usage_light_on; case "mirror": return R.drawable.usage_mirror_on; case "motion": return R.drawable.usage_motion_on; case "music": return R.drawable.usage_music_on; case "nanoztag": return R.drawable.usage_nanoztag_on; case "portal": return R.drawable.usage_portal_on; case "scene": return R.drawable.usage_scene_on; case "security_camera": return R.drawable.usage_security_cam_on; case "server": return R.drawable.usage_server_on; case "socket": return R.drawable.usage_appliance_on; case "shutter": return R.drawable.usage_shutter_on; case "telephony": return R.drawable.usage_telephony_on; case "temperature": return R.drawable.usage_temperature_on; case "tv": return R.drawable.usage_tv_on; case "ventilation": return R.drawable.usage_ventilation_on; case "water": return R.drawable.usage_water_on; case "water_tank": return R.drawable.usage_water_tank_on; case "window": return R.drawable.usage_window_on; //room case "bathroom": return R.drawable.room_bathroom; case "bedroom": return R.drawable.room_bedroom; case "garage": return R.drawable.room_garage; case "kidsroom": return R.drawable.room_kidsroom; case "kitchen": return R.drawable.room_kitchen; case "office": return R.drawable.room_office; case "tvlounge": return R.drawable.room_tvlounge; case "usage": return R.drawable.logo; case "unknow": return R.drawable.unknown; //area case "area": return R.drawable.area_area; case "attic": return R.drawable.area_attic; case "basement": return R.drawable.area_basement; case "basement2": return R.drawable.area_basement2; case "garage2": return R.drawable.area_garage2; case "garden": return R.drawable.area_garden; case "ground_floor": return R.drawable.area_ground_floor; case "ground_floor2": return R.drawable.area_ground_floor2; case "first_floor": return R.drawable.area_first_floor; case "first_floor2": return R.drawable.area_first_floor2; case "second_floor": return R.drawable.area_second_floor; case "second_floor2": return R.drawable.area_second_floor2; case "house": return R.drawable.house; case "map": return R.drawable.map; default: return R.drawable.usage_default_on; } case 3: //For undefined //reorder by usage name for easy update switch (usage) { case "air_conditionning": return R.drawable.usage_air_undefined; case "appliance": return R.drawable.usage_appliance_undefined; case "battery": return R.drawable.usage_battery_undefnied; case "bluetooth": return R.drawable.usage_bluetooth_undefined; case "christmas_tree": return R.drawable.usage_christmas_tree_undefined; case "computer": return R.drawable.usage_computer_undefined; case "cron": return R.drawable.usage_cron_undefined; case "door": return R.drawable.usage_door_undefined; case "electricity": return R.drawable.usage_electricity_undefined; case "heating": return R.drawable.usage_heating_undefined; case "light": return R.drawable.usage_light_undefined; case "mirror": return R.drawable.usage_mirror_undefined; case "music": return R.drawable.usage_music_undefined; case "nanoztag": return R.drawable.usage_nanoztag_undefined; case "portal": return R.drawable.usage_portal_undefined; case "scene": return R.drawable.usage_scene_undefined; case "security_camera": return R.drawable.usage_security_cam_undefined; case "server": return R.drawable.usage_server_undefined; case "socket": return R.drawable.usage_appliance_undefined; case "shutter": return R.drawable.usage_shutter_undefined; case "telephony": return R.drawable.usage_telephony_undefined; case "temperature": return R.drawable.usage_temperature_undefined; case "tv": return R.drawable.usage_tv_undefined; case "ventilation": return R.drawable.usage_ventilation_undefined; case "water": return R.drawable.usage_water_undefined; case "water_tank": return R.drawable.usage_water_tank_undefined; case "window": return R.drawable.usage_window_undefined; //room case "bathroom": return R.drawable.room_bathroom; case "bedroom": return R.drawable.room_bedroom; case "garage": return R.drawable.room_garage; case "kidsroom": return R.drawable.room_kidsroom; case "kitchen": return R.drawable.room_kitchen; case "office": return R.drawable.room_office; case "tvlounge": return R.drawable.room_tvlounge; case "usage": return R.drawable.logo; case "unknow": return R.drawable.unknown; //area case "area": return R.drawable.area_area; case "attic": return R.drawable.area_attic; case "basement": return R.drawable.area_basement; case "basement2": return R.drawable.area_basement2; case "garage2": return R.drawable.area_garage2; case "garden": return R.drawable.area_garden; case "ground_floor": return R.drawable.area_ground_floor; case "ground_floor2": return R.drawable.area_ground_floor2; case "first_floor": return R.drawable.area_first_floor; case "first_floor2": return R.drawable.area_first_floor2; case "second_floor": return R.drawable.area_second_floor; case "second_floor2": return R.drawable.area_second_floor2; case "house": return R.drawable.house; case "map": return R.drawable.map; default: return R.drawable.usage_default_undefined; } } return R.drawable.icon; } public static String Names_Agent(Context context, String usage) { //Use to translate value in current language //For example if an a room is named kitchen, //in French The text display will be cuisine int resId; String result = usage; String packageName = context.getPackageName(); String search = usage; if (search.equals("air conditioning")) search = "conditioning"; resId = context.getResources().getIdentifier(search, "string", packageName); if (resId != 0) { try { result = context.getString(resId); } catch (Exception e) { result = usage; } } return result; } public static int Names_conditioncodes(Context context, int code) { //used to get the translate text from yahoo weather infocode. try { //wi_yahoo_ return context.getResources().getIdentifier("wi_yahoo_" + code, "string", context.getPackageName()); //return context.getResources().getIdentifier("info" + code, "string", context.getPackageName()); } catch (Exception e) { return R.string.info48; } } public static int Map_Agent(String usage, int state) { usage = adapt_usage(usage); switch (state) { case 0: //reorder by usage name for easy update /* * TODO add missing usage * air_conditionning * heating * mirror * motion * music * nanoztag * portal * scene * shutter * water * window */ /* try{ return context.getResources().getIdentifier("map_usage_"+usage+"_off", "drawable", context.getPackageName()); } catch (Exception e){ return R.drawable.map_led_off; } */ switch (usage) { case "appliance": return R.drawable.map_usage_appliance_off; case "battery": return R.drawable.map_usage_battery_off; case "christmas_tree": return R.drawable.map_usage_christmas_tree_off; case "computer": return R.drawable.map_usage_computer_off; case "cron": return R.drawable.map_usage_cron_off; case "door": return R.drawable.map_usage_door_off; case "electricity": return R.drawable.map_usage_electricity_off; case "light": return R.drawable.map_usage_light_off; case "security_camera": return R.drawable.map_usage_security_cam_off; case "server": return R.drawable.map_usage_server_off; case "socket": return R.drawable.map_usage_appliance_off; case "telephony": return R.drawable.map_usage_telephony_off; case "temperature": return R.drawable.map_usage_temperature; case "tv": return R.drawable.map_usage_tv_off; case "ventilation": return R.drawable.map_usage_ventilation_off; case "water_tank": return R.drawable.map_usage_water_tank; default: return R.drawable.map_led_off; } case 1: //reorder by usage name for easy update switch (usage) { case "appliance": return R.drawable.map_usage_appliance_on; case "battery": return R.drawable.map_usage_battery_on; case "christmas_tree": return R.drawable.map_usage_christmas_tree_on; case "computer": return R.drawable.map_usage_computer_on; case "cron": return R.drawable.map_usage_cron_on; case "door": return R.drawable.map_usage_door_on; case "electricity": return R.drawable.map_usage_electricity_on; case "light": return R.drawable.map_usage_light_on; case "security_camera": return R.drawable.map_usage_security_cam_on; case "server": return R.drawable.map_usage_server_on; case "socket": return R.drawable.map_usage_appliance_on; case "telephony": return R.drawable.map_usage_telephony_off; case "temperature": return R.drawable.map_usage_temperature; case "tv": return R.drawable.map_usage_tv_on; case "ventilation": return R.drawable.map_usage_ventilation_on; case "water_tank": return R.drawable.map_usage_water_tank; default: return R.drawable.map_led_on; } } return R.drawable.map_led_off; } private static String adapt_usage(String usage) { if (usage != null) { //todo adapt for 0.4 and + use final dt_type (open_close) for example to simplify. usage = usage.toLowerCase(); //Dt_type are in table table_feature in column device_feature_model_id before first "." //information are in json device_types sensor and command name of each plugin //So a lot of things to look at //BLUEZ "available" if (usage.equals("available") || usage.contains("bluez")) usage = "bluetooth"; //CID "callerid", "name", "blacklisted", "blacklist" if (usage.contains("callerid")) usage = "telephony"; //DAIKCODE "set_power", "set_setpoint", "set_mode", "set_vertical_swing", "set_horizontal_swing", //"set_speedfan", "set_powerfull", "set_silent", "set_home_leave", "set_sensor", //"set_start_time", "set_stop_time", "power", "vertical_swing", "horizontal_swing", "powerfull" //"silent", "home_leave", "sensor", "setpoint", "setmode", "speedfan", "starttime", "stoptime" if (usage.contains("swing") || usage.contains("fan")) usage = "ventilation"; //DISKFREE "get_total_space", "get_percent_used", "get_free_space", "get_used_space" if (usage.contains("diskfree") || usage.equals("get_total_space") || usage.equals("get_percent_used") || usage.equals("get_free_space") || usage.equals("get_used_space")) usage = "server"; //GENERIC "temperature", "humidity", "rgb_color", "rgb_command", "osd_command", "osd_text", "osd_row", "osd_column", "osd_delay" // "set_rgb_color", "send_text", "pressure", "co2", "tvoc", "insolation", //GEOLOC "position_degrees" //HUE "light", "brightness", "reachable", // "Set brightness", "Set ON", "Send alert" //IPX800 "state", "input", "count" //IRTRANS "send_bintimings", "send_raw", "send_hexa", "code_ir","ack_ir_cmd" //K8056 "sensor_switch_relay", "cmd_switch_relay" //KARTOTZ "send_msg", "wakeup", "sleep", "left_ear", "right_ear", "msg_status", "error_send" //MIRROR if (usage.equals("present")) usage = "nanoztag"; if (usage.equals("activated")) usage = "mirror"; //MQTT "sensor_temperature", "sensor_humidity", "sensor_battery", "sensor_luminosity","sensor_pressure" //"sensor_power", "sensor_energy", "sensor_water", "sensor_count", "sensor_uv", "sensor_windspeed" //"sensor_rainfall", "sensor_outflow", "sensor_voltage", "sensor_current", "command_mqtt_onoff", // "command_mqtt_string", "sensor_mqtt_temperature", "sensor_mqtt_humidity", "sensor_mqtt_number", // "sensor_mqtt_onoff", "sensor_mqtt_openclose", "sensor_mqtt_string" if (usage.equals("sensor_battery")) usage = "battery"; if (usage.contains("power") || usage.contains("energy") || usage.contains("voltage") || usage.equals("sensor_current")) usage = "electricity"; if (usage.equals("sensor_rainfall") || usage.equals("sensor_water")) usage = "water"; //NABAZTAG "send_msg", "wakeup", "sleep", "left_ear", "right_ear", "msg_status", "error_send" //NOTIFY "msg_status", "error_send" //NUTSERVE "test_battery_start", "test_battery_start_deep", "ups_status", "ups_event", "input_voltage", "output_voltage" //"battery_voltage", "battery_charge", "ack_command", //ONEWIRE "temperature", "humidity", "serial", "gpio", if (usage.equals("test_battery_start") || usage.equals("test_battery_start_deep") || usage.equals("battery_voltage") || usage.equals("battery_charge")) usage = "battery"; if (usage.contains("thermometer")) usage = "temperature"; //ONEWIRED "1-wire_cmd_output, "1-wire temperature", "1-wire humidity", "1-wire luminosity", "1-wire pressure", // "1-wire voltage", "1-wire counter", "1-wire counter diff", "1-wire input", "1-wire output" // "onewire output switch cmd", "onewire temperature", "onewire humidity", "onewire luminosity", "onewire pressure", // "onewire voltage", "onewire counter", "onewire counter diff", "onewire input switch", "onewire input openclose", // "onewire output switch", //PING "ping" if (usage.contains("ping")) usage = "computer"; //PLCBUS "set_level_bin", "level_bin" //RFXBNZ "sensor_temperature", "sensor_humidity", "sensor_battery", "sensor_luminosity", "sensor_pressure", "sensor_power" // "sensor_energy", "sensor_water", "sensor_count", "sensor_uv", "sensor_windspeed", "sensor_rainfall", "sensor_outflow" // "sensor_voltage", "sensor_current", "sensor_homeeasy_switch", "sensor_homeeasy_openclose", "sensor_x10_switch" // "sensor_ati_remote", "sensor_generic" // SONOS "send play", "send stop", "toggle mute", "send vol up", "send vol down", "send next", "send previous" // "bass", "volume", "treble", "loudness", "state", "play_mode", "current_title", "current_stream", "current_radio_show", "current_album", "current_creator", "current_duration" if (usage.equals("bass") || usage.equals("volume") || usage.equals("treble") || usage.equals("loudness") || usage.equals("play_mode") || usage.equals("current_title") || usage.equals("current_stream") || usage.equals("current_radio_show") || usage.equals("current_album") || usage.equals("current_creator") || usage.equals("current_duration")) usage = "music"; if (usage.equals("send play") || usage.equals("send stop") || usage.equals("toggle mute") || usage.equals("send vol up") || usage.equals("send vol down") || usage.equals("send next") || usage.equals("send previous")) usage = "music"; // SCRIPT "sensor_script_action", "sensor_script_onoff", "sensor_script_info_number","sensor_script_info_temperature", // "sensor_script_info_humidity", "sensor_script_info_binary", "sensor_script_info", "sensor_script_info_switch", // "sensor_script_info_openclose", "sensor_script_info_string", // "run_script_info", "cmd_script_action", "cmd_script_onoff" if (usage.contains("openclose")) usage = "door"; if (usage.contains("script")) usage = "scene"; //TELEINFO "adco", "optarif", "isousc", "base", "iinst", "imax", "motdetat", "hchc", "hchp" //"ptec", "papp", "hhphc", "iinst1", "iinst2", "iinst3", "imax1", "imax2", "imax3", "adps" //"ejphn", "ejphpm", "pejp", "bbrhcjb", "bbrhpjb", "bbrhcjw", "bbrhpjw", "bbrhcjr", "bbrhpjr" if (usage.contains("teleinfo") || usage.equals("adco") || usage.equals("optarif") || usage.equals("isousc") || usage.equals("base") || usage.equals("iinst") || usage.equals("imax") || usage.equals("motdetat") || usage.equals("hchc") || usage.equals("hchp") || usage.equals("ptec") || usage.equals("papp") || usage.equals("hhphc") || usage.equals("iinst1") || usage.equals("iinst2") || usage.equals("iinst3") || usage.equals("imax1") || usage.equals("imax2") || usage.equals("imax3") || usage.equals("adps") || usage.equals("ejphn") || usage.equals("ejphpm") || usage.equals("pejp") || usage.equals("bbrhcjb") || usage.equals("bbrhpjb") || usage.equals("bbrhcjw") || usage.equals("bbrhpjw") || usage.equals("bbrhcjr") || usage.equals("bbrhpjr") ) usage = "electricity"; //rainhour if (usage.equals("rainforecastlocation") || usage.equals("rainforecastdate") || usage.equals("rainforecasttxt") || usage.startsWith("rainlevel") || usage.equals("raininhour") || usage.equals("heavyraininhour")) usage = "humidity"; // RFXBNZ "temperature", "humidity", "battery", "luminosity", "pressure", "power", "energy", "water", "windspeed", "rainfall", "outflow", // "voltage", "current", "homeeasy S_switch", "homeeasy_openclose", "x10_switch", "ati_remote", "generic" //RFXCOM "temperature", "humidity", "battery", "rssi", "switch_lighting_2", "rssi_lighting_2","open_close", "rssi_open_close", "smoke" if (usage.equals("battery")) usage = "battery"; if (usage.contains("lighting")) usage = "light"; if (usage.contains("open_close")) usage = "door"; //VDEVICE "set_virtual_number", "set_virtual_binary", "set_virtual_string","set_virtual_temperature", // "set_virtual_humidity", "set_virtual_percent", "set_virtual_switch", "set_virtual_openclose", // "set_virtual_startstop", sensor are same as commands that's easier for this part. if (usage.contains("video")) usage = "security_camera"; //VELBUS "level_bin", "level_range", "temp", "power", "energy", "input", "set_level_range", "set_level_bin" if (usage.equals("temp")) usage = "temperature"; //WEATHER "current_barometer_value", "current_feels_like", "current_humidity", "current_last_updated", "current_station", "current_temperature" //"current_text", "current_code", "current_visibility","current_wind_direction", "current_wind_speed", "current_sunrise", "current_sunset" //"forecast_0_day", "forecast_0_temperature_high", "forecast_0_temperature_low", "forecast_0_condition_text", "forecast_0_condition_code" //"forecast_1_day", "forecast_1_temperature_high", "forecast_1_temperature_low", "forecast_1_condition_text", "forecast_1_condition_code" //"forecast_2_day", "forecast_2_temperature_high", "forecast_2_temperature_low", "forecast_2_condition_text", "forecast_2_condition_code" //"forecast_3_day", "forecast_3_temperature_high", "forecast_3_temperature_low", "forecast_3_condition_text", "forecast_3_condition_code" //"forecast_4_day","forecast_4_temperature_high", "forecast_4_temperature_low","forecast_4_condition_text","forecast_4_condition_code" if (usage.contains("temperature") || usage.equals("current_feels_like")) usage = "temperature"; if (usage.contains("humidity")) usage = "water"; //TODO change this on with a sun up and down icon if (usage.contains("current_sunrise") || usage.equals("current_sunset")) usage = "cron"; //WOL "wol" "Wake on Lan" if (usage.equals("wol")||usage.equals("wake on lan")) usage = "computer"; //Yi if (usage.equals("yi")) usage = "security_camera"; if (usage.contains("motion")) usage = "motion"; // ZWAVE "ctrl_status", "node_status", "power_failure", "switch_state", "tamper_sensor" // "energy", "power", "switch_state", "energy", "energy_k", "power", "opening_sensor", // "power_applied", "battery_level", "low_battery", "tamper_event", "temperature_c", // "temperature-k", "temperature_f", "battery_level", "humidity", "relative_humidity" // "level", "motion_sensor_level", "luminance", "sensor_alarm", "thermostat_setpoint" // "binary_sensor", "motion_sensor_binary", "status", "power_m", "power_k", "energy_m" // "energy_previous_reading", "energy_previous_reading_m", "energy_previous_reading_k" // "energy_production_k", "instant_energy_production_k", "total_energy_production_k" // "energy_production_today-k", "total_production_time_k", "counter", "indicator_str" // "locked_state", "alarm_str_report", "power_management_alarm", "smoke_alarm", // "carbonmonoxide_alarm", "carbondioxide_alarm", "heat_alarm", "flood_alarm" // "fan_mode", "fan_state", "thermostat_mode", "thermostat_operating_state", "thermostat-setpoint-c" // "thermostat-setpoint-f", "thermostat-setpoint-k", "toggle_switch_binary", "increase", // "decrease", "bright", "dim", if (usage.equals("battery_level") || usage.equals("battery-level") || usage.equals("low_battery") || usage.equals("low-battery")) usage = "battery"; if (usage.contains("thermostat")) usage = "temperature"; if (usage.contains("opening_sensor") || usage.contains("opening.sensor") || usage.contains("opening-sensor") || usage.contains("door-window-sensor")) usage = "door"; //Xee if (usage.equals("high_beam_status")) usage = "lowbeam"; if (usage.equals("low_beam_status")) usage = "headlight"; if (usage.equals("head_light_status")) usage = "highbeam"; return usage; } else { return ""; } } }