diff --git a/application/src/main/data/images/names.json b/application/src/main/data/images/names.json index e9fd7c362c..e51dc621f2 100644 --- a/application/src/main/data/images/names.json +++ b/application/src/main/data/images/names.json @@ -1,556 +1,556 @@ { - "air_quality.png" : "Air quality - image", - "air_quality_card.png" : "Air quality index card - image", - "air_quality_card_with_background#background_image.png" : "Air quality index card with background - background image", - "air_quality_card_with_background.png" : "Air quality index card with background - image", - "air_quality_chart_card.png" : "Air quality index chart card - image", - "air_quality_chart_card_with_background#background_image.png" : "Air quality index chart card with background - background image", - "air_quality_chart_card_with_background.png" : "Air quality index chart card with background - image", - "alarm_count.png" : "Alarm count - image", - "alarm_widgets.alarms_table.png" : "Alarms table - image", - "alarm_widgets.png" : "Alarm widgets - image", - "analogue_gauges.analogue_compass.png" : "Compass - image", - "analogue_gauges.png" : "Analogue gauges - image", - "analogue_gauges.radial_gauge_canvas_gauges.png" : "Radial gauge - image", - "analogue_gauges.speed_gauge_canvas_gauges.png" : "Speed gauge - image", - "analogue_gauges.temperature_gauge_canvas_gauges.png" : "Thermometer scale - image", - "analogue_gauges.temperature_radial_gauge_canvas_gauges.png" : "Temperature radial gauge - image", - "battery_level.png" : "Battery level - image", - "cards.aggregated_value_card.png" : "Value and chart card - image", - "cards.attributes_card.png" : "Attributes card - image", - "cards.dashboard_state_widget.png" : "Dashboard state widget - image", - "cards.entities_hierarchy.png" : "Entities hierarchy - image", - "cards.entities_table.png" : "Entities table - image", - "cards.horizontal_value_card.png" : "Horizontal value card - image", - "cards.html_card.png" : "HTML Card - image", - "cards.html_value_card.png" : "HTML Value Card - image", - "cards.label_widget#background_image.svg" : "Label widget - background image", - "cards.label_widget.png" : "Label widget - image", - "cards.markdown_card.png" : "Markdown/HTML Card - image", - "cards.png" : "Cards - image", - "cards.qr_code.png" : "QR Code - image", - "cards.simple_card.png" : "Simple card - image", - "cards.timeseries_table.png" : "Timeseries table - image", - "cards.value_card.png" : "Value card - image", - "charts.bars.png" : "Bars - image", - "charts.basic_timeseries.png" : "Timeseries Line Chart - image", - "charts.doughnut_chart_js.png" : "Doughnut - image", - "charts.pie.png" : "Pie - Flot - image", - "charts.pie_chart_js.png" : "Pie - Chart.js - image", - "charts.png" : "Charts - image", - "charts.polar_area_chart_js.png" : "Polar Area - image", - "charts.radar_chart_js.png" : "Radar - image", - "charts.state_chart.png" : "State Chart - image", - "charts.timeseries_bars_flot.png" : "Timeseries Bar Chart - image", - "co2_card.png" : "CO2 card - image", - "co2_card_with_background#background_image.png" : "CO2 card with background - background image", - "co2_card_with_background.png" : "CO2 card with background - image", - "co2_chart_card.png" : "CO2 chart card - image", - "co2_chart_card_with_background#background_image.png" : "CO2 chart card with background - background image", - "co2_chart_card_with_background.png" : "CO2 chart card with background - image", - "control_widgets.knob_control.png" : "Knob Control - image", - "control_widgets.led_indicator.png" : "Led indicator - image", - "control_widgets.persistent_table.png" : "Persistent RPC table - image", - "control_widgets.png" : "Control widgets - image", - "control_widgets.round_switch.png" : "Round switch - image", - "control_widgets.rpc_debug_terminal.png" : "RPC debug terminal - image", - "control_widgets.rpc_remote_shell.png" : "RPC remote shell - image", - "control_widgets.rpcbutton.png" : "RPC Button - image", - "control_widgets.slide_toggle_control.png" : "Slide Toggle Control - image", - "control_widgets.switch_control.png" : "Switch Control - image", - "control_widgets.update_attributes.png" : "Update device attribute - image", - "count_widgets.png" : "Count widgets - image", - "date.date_range_navigator.png" : "Date-range-navigator - image", - "date.png" : "Date - image", - "digital_gauges.digital_bar.png" : "Digital horizontal bar - image", - "digital_gauges.digital_speedometer.png" : "Digital speedometer - image", - "digital_gauges.digital_thermometer.png" : "Digital thermometer - image", - "digital_gauges.digital_vertical_bar.png" : "Digital vertical bar - image", - "digital_gauges.gauge_justgage.png" : "Gauge - image", - "digital_gauges.horizontal_bar_justgage.png" : "Horizontal bar - image", - "digital_gauges.lcd_bar_gauge.png" : "LCD bar gauge - image", - "digital_gauges.lcd_gauge.png" : "LCD gauge - image", - "digital_gauges.mini_gauge_justgage.png" : "Mini gauge - image", - "digital_gauges.neon_gauge_justgage.png" : "Neon gauge - image", - "digital_gauges.png" : "Digital gauges - image", - "digital_gauges.simple_gauge_justgage.png" : "Simple gauge - image", - "digital_gauges.simple_neon_gauge_justgage.png" : "Simple neon gauge - image", - "digital_gauges.vertical_bar_justgage.png" : "Vertical bar - image", - "doughnut.png" : "Doughnut - image", - "edge_widgets.edges_overview.png" : "Edge Quick Overview - image", - "edge_widgets.png" : "Edge widgets - image", - "entity_admin_widgets.asset_admin_table.png" : "Asset admin table - image", - "entity_admin_widgets.device_admin_table.png" : "Device admin table - image", - "entity_admin_widgets.png" : "Entity admin widgets - image", - "entity_count.png" : "Entity count - image", - "entity_widgets.png" : "Entity widgets - image", - "flooding_level_card.png" : "Flooding level card - image", - "flooding_level_card_with_background#background_image.png" : "Flooding level card with background - background image", - "flooding_level_card_with_background.png" : "Flooding level card with background - image", - "flooding_level_chart_card.png" : "Flooding level chart card - image", - "flooding_level_chart_card_with_background#background_image.png" : "Flooding level chart card with background - background image", - "flooding_level_chart_card_with_background.png" : "Flooding level chart card with background - image", - "flooding_level_progress_bar.png" : "Flooding level progress bar - image", - "flooding_level_progress_bar_with_background#background_image.png" : "Flooding level progress bar with background - background image", - "flooding_level_progress_bar_with_background.png" : "Flooding level progress bar with background - image", - "gateway_widgets.attributes_card.png" : "Gateway events - image", - "gateway_widgets.config_form_latest.png" : "Gateway configuration (Single device) - image", - "gateway_widgets.gateway_configuration.png" : "Gateway Configuration - image", - "gateway_widgets.gateway_connectors.png" : "Gateway connectors - image", - "gateway_widgets.gateway_custom_statistics.png" : "Gateway custom statistics - image", - "gateway_widgets.gateway_general_chart_statistics.png" : "Gateway general chart statistics - image", - "gateway_widgets.gateway_general_configuration.png" : "Gateway general configuration - image", - "gateway_widgets.gateway_logs.png" : "Gateway logs - image", - "gateway_widgets.png" : "Gateway widgets - image", - "gateway_widgets.service_rpc.png" : "Service RPC - image", - "gpio_widgets.basic_gpio_control.png" : "Basic GPIO Control - image", - "gpio_widgets.gpio_panel.png" : "Basic GPIO Panel - image", - "gpio_widgets.png" : "GPIO widgets - image", - "gpio_widgets.raspberry_pi_gpio_control.png" : "Raspberry Pi GPIO Control - image", - "gpio_widgets.raspberry_pi_gpio_panel.png" : "Raspberry Pi GPIO Panel - image", - "ground_temperature_card.png" : "Ground temperature card - image", - "ground_temperature_card_with_background#background_image.png" : "Ground temperature card with background - background image", - "ground_temperature_card_with_background.png" : "Ground temperature card with background - image", - "ground_temperature_chart_card.png" : "Ground temperature chart card - image", - "ground_temperature_chart_card_with_background#background_image.png" : "Ground temperature chart card with background - background image", - "ground_temperature_chart_card_with_background.png" : "Ground temperature chart card with background - image", - "home_page_widgets.dashboards.png" : "Dashboards - image", - "home_page_widgets.documentation_links.png" : "Documentation links - image", - "home_page_widgets.getting_started.png" : "Getting started - image", - "home_page_widgets.png" : "Home page widgets - image", - "home_page_widgets.quick_links.png" : "Quick links - image", - "home_page_widgets.usage_info.png" : "Usage info - image", - "horizontal_2_1_elliptical_tank.png" : "Horizontal 2:1 elliptical tank - image", - "horizontal_air_quality_card.png" : "Horizontal air quality index card - image", - "horizontal_air_quality_card_with_background#background_image.png" : "Horizontal air quality index card with background - background image", - "horizontal_air_quality_card_with_background.png" : "Horizontal air quality index card with background - image", - "horizontal_capsule_tank.png" : "Horizontal capsule tank - image", - "horizontal_co2_card.png" : "Horizontal CO2 card - image", - "horizontal_co2_card_with_background#background_image.png" : "Horizontal CO2 card with background - background image", - "horizontal_co2_card_with_background.png" : "Horizontal CO2 card with background - image", - "horizontal_cylinder_tank.png" : "Horizontal cylinder tank - image", - "horizontal_dish_ends_tank.png" : "Horizontal dish ends tank - image", - "horizontal_doughnut.png" : "Horizontal doughnut - image", - "horizontal_ellipse_tank.png" : "Horizontal ellipse tank - image", - "horizontal_flooding_level_card.png" : "Horizontal flooding level card - image", - "horizontal_flooding_level_card_with_background#background_image.png" : "Horizontal flooding level card with background - background image", - "horizontal_flooding_level_card_with_background.png" : "Horizontal flooding level card with background - image", - "horizontal_ground_temperature_card.png" : "Horizontal ground temperature card - image", - "horizontal_ground_temperature_card_with_background#background_image.png" : "Horizontal ground temperature card with background - background image", - "horizontal_ground_temperature_card_with_background.png" : "Horizontal ground temperature card with background - image", - "horizontal_humidity_card.png" : "Horizontal humidity card - image", - "horizontal_humidity_card_with_background#background_image.png" : "Horizontal humidity card with background - background image", - "horizontal_humidity_card_with_background.png" : "Horizontal humidity card with background - image", - "horizontal_illuminance_card.png" : "Horizontal illuminance card - image", - "horizontal_illuminance_card_with_background#background_image.png" : "Horizontal illuminance card with background - background image", - "horizontal_illuminance_card_with_background.png" : "Horizontal illuminance card with background - image", - "horizontal_leaf_wetness_card.png" : "Horizontal leaf wetness card - image", - "horizontal_leaf_wetness_card_with_background#background_image.png" : "Horizontal leaf wetness card with background - background image", - "horizontal_leaf_wetness_card_with_background.png" : "Horizontal leaf wetness card with background - image", - "horizontal_noise_level_card.png" : "Horizontal noise level card - image", - "horizontal_noise_level_card_with_background#background_image.png" : "Horizontal noise level card with background - background image", - "horizontal_noise_level_card_with_background.png" : "Horizontal noise level card with background - image", - "horizontal_oval_tank.png" : "Horizontal oval tank - image", - "horizontal_pm10_card.png" : "Horizontal PM10 card - image", - "horizontal_pm10_card_with_background#background_image.png" : "Horizontal PM10 card with background - background image", - "horizontal_pm10_card_with_background.png" : "Horizontal PM10 card with background - image", - "horizontal_pm2_5_card.png" : "Horizontal PM2.5 card - image", - "horizontal_pm2_5_card_with_background#background_image.png" : "Horizontal PM2.5 card with background - background image", - "horizontal_pm2_5_card_with_background.png" : "Horizontal PM2.5 card with background - image", - "horizontal_pressure_card.png" : "Horizontal pressure card - image", - "horizontal_pressure_card_with_background#background_image.png" : "Horizontal pressure card with background - background image", - "horizontal_pressure_card_with_background.png" : "Horizontal pressure card with background - image", - "horizontal_radon_level_card.png" : "Horizontal radon level card - image", - "horizontal_radon_level_card_with_background#background_image.png" : "Horizontal radon level card with background - background image", - "horizontal_radon_level_card_with_background.png" : "Horizontal radon level card with background - image", - "horizontal_rainfall_card.png" : "Horizontal rainfall card - image", - "horizontal_rainfall_card_with_background#background_image.png" : "Horizontal rainfall card with background - background image", - "horizontal_rainfall_card_with_background.png" : "Horizontal rainfall card with background - image", - "horizontal_snow_depth_card.png" : "Horizontal snow depth card - image", - "horizontal_snow_depth_card_with_background#background_image.png" : "Horizontal snow depth card with background - background image", - "horizontal_snow_depth_card_with_background.png" : "Horizontal snow depth card with background - image", - "horizontal_soil_moisture_card.png" : "Horizontal soil moisture card - image", - "horizontal_soil_moisture_card_with_background#background_image.png" : "Horizontal soil moisture card with background - background image", - "horizontal_soil_moisture_card_with_background.png" : "Horizontal soil moisture card with background - image", - "horizontal_solar_radiation_card.png" : "Horizontal solar radiation card - image", - "horizontal_solar_radiation_card_with_background#background_image.png" : "Horizontal solar radiation card with background - background image", - "horizontal_solar_radiation_card_with_background.png" : "Horizontal solar radiation card with background - image", - "horizontal_temperature_card.png" : "Horizontal temperature card - image", - "horizontal_temperature_card_with_background#background_image.png" : "Horizontal temperature card with background - background image", - "horizontal_temperature_card_with_background.png" : "Horizontal temperature card with background - image", - "horizontal_uv_index_card.png" : "Horizontal UV Index card - image", - "horizontal_uv_index_card_with_background#background_image.png" : "Horizontal UV Index card with background - background image", - "horizontal_uv_index_card_with_background.png" : "Horizontal UV Index card with background - image", - "horizontal_vibration_card.png" : "Horizontal vibration card - image", - "horizontal_vibration_card_with_background#background_image.png" : "Horizontal vibration card with background - background image", - "horizontal_vibration_card_with_background.png" : "Horizontal vibration card with background - image", - "horizontal_visibility_card.png" : "Horizontal visibility card - image", - "horizontal_visibility_card_with_background#background_image.png" : "Horizontal visibility card with background - background image", - "horizontal_visibility_card_with_background.png" : "Horizontal visibility card with background - image", - "horizontal_volatile_organic_compounds_card.png" : "Horizontal volatile organic compounds card - image", - "horizontal_volatile_organic_compounds_card_with_background#background_image.png" : "Horizontal volatile organic compounds card with background - background image", - "horizontal_volatile_organic_compounds_card_with_background.png" : "Horizontal volatile organic compounds card with background - image", - "horizontal_wind_speed_card.png" : "Horizontal wind speed card - image", - "horizontal_wind_speed_card_with_background#background_image.png" : "Horizontal wind speed card with background - background image", - "horizontal_wind_speed_card_with_background.png" : "Horizontal wind speed card with background - image", - "html_widgets.png" : "HTML widgets - image", - "humidity_card.png" : "Humidity card - image", - "humidity_card_with_background#background_image.png" : "Humidity card with background - background image", - "humidity_card_with_background.png" : "Humidity card with background - image", - "humidity_chart_card.png" : "Humidity chart card - image", - "humidity_chart_card_with_background#background_image.png" : "Humidity chart card with background - background image", - "humidity_chart_card_with_background.png" : "Humidity chart card with background - image", - "humidity_progress_bar.png" : "Humidity progress bar - image", - "humidity_progress_bar_with_background#background_image.png" : "Humidity progress bar with background - background image", - "humidity_progress_bar_with_background.png" : "Humidity progress bar with background - image", - "illuminance_card.png" : "Illuminance card - image", - "illuminance_card_with_background#background_image.png" : "Illuminance card with background - background image", - "illuminance_card_with_background.png" : "Illuminance card with background - image", - "illuminance_chart_card.png" : "Illuminance chart card - image", - "illuminance_chart_card_with_background#background_image.png" : "Illuminance chart card with background - background image", - "illuminance_chart_card_with_background.png" : "Illuminance chart card with background - image", - "illuminance_progress_bar.png" : "Illuminance progress bar - image", - "illuminance_progress_bar_with_background#background_image.png" : "Illuminance progress bar with background - background image", - "illuminance_progress_bar_with_background.png" : "Illuminance progress bar with background - image", - "indoor_co2_card.png" : "Indoor CO2 card - image", - "indoor_co2_card_with_background#background_image.png" : "Indoor CO2 card with background - background image", - "indoor_co2_card_with_background.png" : "Indoor CO2 card with background - image", - "indoor_co2_chart_card.png" : "Indoor CO2 chart card - image", - "indoor_co2_chart_card_with_background#background_image.png" : "Indoor CO2 chart card with background - background image", - "indoor_co2_chart_card_with_background.png" : "Indoor CO2 chart card with background - image", - "indoor_environment.png" : "Indoor Environment - image", - "indoor_horizontal_co2_card.png" : "Indoor horizontal CO2 card - image", - "indoor_horizontal_co2_card_with_background#background_image.png" : "Indoor horizontal CO2 card with background - background image", - "indoor_horizontal_co2_card_with_background.png" : "Indoor horizontal CO2 card with background - image", - "indoor_horizontal_humidity_card.png" : "Indoor horizontal humidity card - image", - "indoor_horizontal_humidity_card_with_background#background_image.png" : "Indoor horizontal humidity card with background - background image", - "indoor_horizontal_humidity_card_with_background.png" : "Indoor horizontal humidity card with background - image", - "indoor_horizontal_illuminance_card.png" : "Indoor horizontal illuminance card - image", - "indoor_horizontal_illuminance_card_with_background#background_image.png" : "Indoor horizontal illuminance card with background - background image", - "indoor_horizontal_illuminance_card_with_background.png" : "Indoor horizontal illuminance card with background - image", - "indoor_horizontal_pm10_card.png" : "Indoor horizontal PM10 card - image", - "indoor_horizontal_pm10_card_with_background#background_image.png" : "Indoor horizontal PM10 card with background - background image", - "indoor_horizontal_pm10_card_with_background.png" : "Indoor horizontal PM10 card with background - image", - "indoor_horizontal_pm2_5_card.png" : "Indoor horizontal PM2.5 card - image", - "indoor_horizontal_pm2_5_card_with_background#background_image.png" : "Indoor horizontal PM2.5 card with background - background image", - "indoor_horizontal_pm2_5_card_with_background.png" : "Indoor horizontal PM2.5 card with background - image", - "indoor_horizontal_temperature_card.png" : "Indoor horizontal temperature card - image", - "indoor_horizontal_temperature_card_with_background#background_image.png" : "Indoor horizontal temperature card with background - background image", - "indoor_horizontal_temperature_card_with_background.png" : "Indoor horizontal temperature card with background - image", - "indoor_humidity_card.png" : "Indoor humidity card - image", - "indoor_humidity_card_with_background#background_image.png" : "Indoor humidity card with background - background image", - "indoor_humidity_card_with_background.png" : "Indoor humidity card with background - image", - "indoor_humidity_chart_card.png" : "Indoor humidity chart card - image", - "indoor_humidity_chart_card_with_background#background_image.png" : "Indoor humidity chart card with background - background image", - "indoor_humidity_chart_card_with_background.png" : "Indoor humidity chart card with background - image", - "indoor_humidity_progress_bar.png" : "Indoor humidity progress bar - image", - "indoor_humidity_progress_bar_with_background#background_image.png" : "Indoor humidity progress bar with background - background image", - "indoor_humidity_progress_bar_with_background.png" : "Indoor humidity progress bar with background - image", - "indoor_illuminance_card.png" : "Indoor illuminance card - image", - "indoor_illuminance_card_with_background#background_image.png" : "Indoor illuminance card with background - background image", - "indoor_illuminance_card_with_background.png" : "Indoor illuminance card with background - image", - "indoor_illuminance_chart_card.png" : "Indoor illuminance chart card - image", - "indoor_illuminance_chart_card_with_background#background_image.png" : "Indoor illuminance chart card with background - background image", - "indoor_illuminance_chart_card_with_background.png" : "Indoor illuminance chart card with background - image", - "indoor_illuminance_progress_bar.png" : "Indoor illuminance progress bar - image", - "indoor_illuminance_progress_bar_with_background#background_image.png" : "Indoor illuminance progress bar with background - background image", - "indoor_illuminance_progress_bar_with_background.png" : "Indoor illuminance progress bar with background - image", - "indoor_pm10_card.png" : "Indoor PM10 card - image", - "indoor_pm10_card_with_background#background_image.png" : "Indoor PM10 card with background - background image", - "indoor_pm10_card_with_background.png" : "Indoor PM10 card with background - image", - "indoor_pm10_chart_card.png" : "Indoor PM10 chart card - image", - "indoor_pm10_chart_card_with_background#background_image.png" : "Indoor PM10 chart card with background - background image", - "indoor_pm10_chart_card_with_background.png" : "Indoor PM10 chart card with background - image", - "indoor_pm2_5_card.png" : "Indoor PM2.5 card - image", - "indoor_pm2_5_card_with_background#background_image.png" : "Indoor PM2.5 card with background - background image", - "indoor_pm2_5_card_with_background.png" : "Indoor PM2.5 card with background - image", - "indoor_pm2_5_chart_card.png" : "Indoor PM2.5 chart card - image", - "indoor_pm2_5_chart_card_with_background#background_image.png" : "Indoor PM2.5 chart card with background - background image", - "indoor_pm2_5_chart_card_with_background.png" : "Indoor PM2.5 chart card with background - image", - "indoor_simple_co2_chart_card.png" : "Indoor simple CO2 chart card - image", - "indoor_simple_co2_chart_card_with_background#background_image.png" : "Indoor simple CO2 chart card with background - background image", - "indoor_simple_co2_chart_card_with_background.png" : "Indoor simple CO2 chart card with background - image", - "indoor_simple_humidity_chart_card.png" : "Indoor simple humidity chart card - image", - "indoor_simple_humidity_chart_card_with_background#background_image.png" : "Indoor simple humidity chart card with background - background image", - "indoor_simple_humidity_chart_card_with_background.png" : "Indoor simple humidity chart card with background - image", - "indoor_simple_illuminance_chart_card.png" : "Indoor simple illuminance chart card - image", - "indoor_simple_illuminance_chart_card_with_background#background_image.png" : "Indoor simple illuminance chart card with background - background image", - "indoor_simple_illuminance_chart_card_with_background.png" : "Indoor simple illuminance chart card with background - image", - "indoor_simple_pm10_chart_card.png" : "Indoor simple PM10 chart card - image", - "indoor_simple_pm10_chart_card_with_background#background_image.png" : "Indoor simple PM10 chart card with background - background image", - "indoor_simple_pm10_chart_card_with_background.png" : "Indoor simple PM10 chart card with background - image", - "indoor_simple_pm2_5_chart_card.png" : "Indoor simple PM2.5 chart card - image", - "indoor_simple_pm2_5_chart_card_with_background#background_image.png" : "Indoor simple PM2.5 chart card with background - background image", - "indoor_simple_pm2_5_chart_card_with_background.png" : "Indoor simple PM2.5 chart card with background - image", - "indoor_simple_temperature_chart_card.png" : "Indoor simple temperature chart card - image", - "indoor_simple_temperature_chart_card_with_background#background_image.png" : "Indoor simple temperature chart card with background - background image", - "indoor_simple_temperature_chart_card_with_background.png" : "Indoor simple temperature chart card with background - image", - "indoor_temperature_card.png" : "Indoor temperature card - image", - "indoor_temperature_card_with_background#background_image.png" : "Indoor temperature card with background - background image", - "indoor_temperature_card_with_background.png" : "Indoor temperature card with background - image", - "indoor_temperature_chart_card.png" : "Indoor temperature chart card - image", - "indoor_temperature_chart_card_with_background#background_image.png" : "Indoor temperature chart card with background - background image", - "indoor_temperature_chart_card_with_background.png" : "Indoor temperature chart card with background - image", - "indoor_temperature_progress_bar.png" : "Indoor temperature progress bar - image", - "indoor_temperature_progress_bar_with_background#background_image.png" : "Indoor temperature progress bar with background - background image", - "indoor_temperature_progress_bar_with_background.png" : "Indoor temperature progress bar with background - image", - "input_widgets.device_claiming_widget.png" : "Device claiming widget - image", - "input_widgets.markers_placement_google_maps.png" : "Markers Placement - Google Maps - image", - "input_widgets.markers_placement_image_map#map_image.svg" : "Markers Placement - Image Map - map image", - "input_widgets.markers_placement_image_map.png" : "Markers Placement - Image Map - image", - "input_widgets.markers_placement_openstreetmap.png" : "Markers Placement - OpenStreetMap - image", - "input_widgets.png" : "Input widgets - image", - "input_widgets.update_boolean_timeseries.png" : "Update boolean timeseries - image", - "input_widgets.update_double_timeseries.png" : "Update double timeseries - image", - "input_widgets.update_integer_timeseries.png" : "Update integer timeseries - image", - "input_widgets.update_json_attribute.png" : "Update JSON attribute - image", - "input_widgets.update_location_timeseries.png" : "Update location timeseries - image", - "input_widgets.update_multiple_attributes.png" : "Update Multiple Attributes - image", - "input_widgets.update_server_boolean_attribute.png" : "Update server boolean attribute - image", - "input_widgets.update_server_date_attribute.png" : "Update server date attribute - image", - "input_widgets.update_server_double_attribute.png" : "Update server double attribute - image", - "input_widgets.update_server_image_attribute.png" : "Update server image attribute - image", - "input_widgets.update_server_integer_attribute.png" : "Update server integer attribute - image", - "input_widgets.update_server_location_attribute.png" : "Update server location attribute - image", - "input_widgets.update_server_string_attribute.png" : "Update server string attribute - image", - "input_widgets.update_shared_boolean_attribute.png" : "Update shared boolean attribute - image", - "input_widgets.update_shared_date_attribute.png" : "Update shared date attribute - image", - "input_widgets.update_shared_double_attribute.png" : "Update shared double attribute - image", - "input_widgets.update_shared_image_attribute.png" : "Update shared image attribute - image", - "input_widgets.update_shared_integer_attribute.png" : "Update shared integer attribute - image", - "input_widgets.update_shared_location_attribute.png" : "Update shared location attribute - image", - "input_widgets.update_shared_string_attribute.png" : "Update shared string attribute - image", - "input_widgets.update_string_timeseries.png" : "Update string timeseries - image", - "input_widgets.web_camera_input.png" : "Photo camera input - image", - "leaf_wetness_card.png" : "Leaf wetness card - image", - "leaf_wetness_card_with_background#background_image.png" : "Leaf wetness card with background - background image", - "leaf_wetness_card_with_background.png" : "Leaf wetness card with background - image", - "leaf_wetness_chart_card.png" : "Leaf wetness chart card - image", - "leaf_wetness_chart_card_with_background#background_image.png" : "Leaf wetness chart card with background - background image", - "leaf_wetness_chart_card_with_background.png" : "Leaf wetness chart card with background - image", - "leaf_wetness_progress_bar.png" : "Leaf wetness progress bar - image", - "leaf_wetness_progress_bar_with_background#background_image.png" : "Leaf wetness progress bar with background - background image", - "leaf_wetness_progress_bar_with_background.png" : "Leaf wetness progress bar with background - image", - "liquid_level_tanks.png" : "Liquid level - image", - "maps_v2.google_maps#marker_image_1.png" : "Google Map - marker image 1", - "maps_v2.google_maps#marker_image_2.png" : "Google Map - marker image 2", - "maps_v2.google_maps#marker_image_3.png" : "Google Map - marker image 3", - "maps_v2.google_maps#marker_image_4.png" : "Google Map - marker image 4", - "maps_v2.google_maps.png" : "Google Map - image", - "maps_v2.here_map#map_image.svg" : "HERE Map - map image", - "maps_v2.here_map#marker_image_1.png" : "HERE Map - marker image 1", - "maps_v2.here_map#marker_image_2.png" : "HERE Map - marker image 2", - "maps_v2.here_map#marker_image_3.png" : "HERE Map - marker image 3", - "maps_v2.here_map#marker_image_4.png" : "HERE Map - marker image 4", - "maps_v2.here_map.png" : "HERE Map - image", - "maps_v2.image_map#map_image.svg" : "Image Map - map image", - "maps_v2.image_map#marker_image_1.png" : "Image Map - marker image 1", - "maps_v2.image_map#marker_image_2.png" : "Image Map - marker image 2", - "maps_v2.image_map#marker_image_3.png" : "Image Map - marker image 3", - "maps_v2.image_map#marker_image_4.png" : "Image Map - marker image 4", - "maps_v2.image_map.png" : "Image Map - image", - "maps_v2.openstreetmap#marker_image_1.png" : "OpenStreet Map - marker image 1", - "maps_v2.openstreetmap#marker_image_2.png" : "OpenStreet Map - marker image 2", - "maps_v2.openstreetmap#marker_image_3.png" : "OpenStreet Map - marker image 3", - "maps_v2.openstreetmap#marker_image_4.png" : "OpenStreet Map - marker image 4", - "maps_v2.openstreetmap.png" : "OpenStreet Map - image", - "maps_v2.png" : "Maps - image", - "maps_v2.route_map#marker_image_1.png" : "Route Map - Google - marker image 1", - "maps_v2.route_map#marker_image_2.png" : "Route Map - Google - marker image 2", - "maps_v2.route_map#marker_image_3.png" : "Route Map - Google - marker image 3", - "maps_v2.route_map.png" : "Route Map - Google - image", - "maps_v2.route_map_openstreetmap#marker_image_1.png" : "Route Map - OpenStreet - marker image 1", - "maps_v2.route_map_openstreetmap#marker_image_2.png" : "Route Map - OpenStreet - marker image 2", - "maps_v2.route_map_openstreetmap#marker_image_3.png" : "Route Map - OpenStreet - marker image 3", - "maps_v2.route_map_openstreetmap.png" : "Route Map - OpenStreet - image", - "maps_v2.route_map_tencent_maps#marker_image_1.png" : "Route Map - Tencent - marker image 1", - "maps_v2.route_map_tencent_maps#marker_image_2.png" : "Route Map - Tencent - marker image 2", - "maps_v2.route_map_tencent_maps#marker_image_3.png" : "Route Map - Tencent - marker image 3", - "maps_v2.route_map_tencent_maps.png" : "Route Map - Tencent - image", - "maps_v2.tencent_maps#marker_image_1.png" : "Tencent Map - marker image 1", - "maps_v2.tencent_maps#marker_image_2.png" : "Tencent Map - marker image 2", - "maps_v2.tencent_maps#marker_image_3.png" : "Tencent Map - marker image 3", - "maps_v2.tencent_maps#marker_image_4.png" : "Tencent Map - marker image 4", - "maps_v2.tencent_maps.png" : "Tencent Map - image", - "maps_v2.test.png" : "Trip Animation - image", - "navigation_widgets.navigation_card.png" : "Navigation card - image", - "navigation_widgets.navigation_cards.png" : "Navigation cards - image", - "navigation_widgets.png" : "Navigation widgets - image", - "noise_level_card.png" : "Noise level card - image", - "noise_level_card_with_background#background_image.png" : "Noise level card with background - background image", - "noise_level_card_with_background.png" : "Noise level card with background - image", - "noise_level_chart_card.png" : "Noise level chart card - image", - "noise_level_chart_card_with_background#background_image.png" : "Noise level chart card with background - background image", - "noise_level_chart_card_with_background.png" : "Noise level chart card with background - image", - "outdoor_environment.png" : "Outdoor Environment - image", - "pm10_card.png" : "PM10 card - image", - "pm10_card_with_background#background_image.png" : "PM10 card with background - background image", - "pm10_card_with_background.png" : "PM10 card with background - image", - "pm10_chart_card.png" : "PM10 chart card - image", - "pm10_chart_card_with_background#background_image.png" : "PM10 chart card with background - background image", - "pm10_chart_card_with_background.png" : "PM10 chart card with background - image", - "pm2_5_card.png" : "PM2.5 card - image", - "pm2_5_card_with_background#background_image.png" : "PM2.5 card with background - background image", - "pm2_5_card_with_background.png" : "PM2.5 card with background - image", - "pm2_5_chart_card.png" : "PM2.5 chart card - image", - "pm2_5_chart_card_with_background#background_image.png" : "PM2.5 chart card with background - background image", - "pm2_5_chart_card_with_background.png" : "PM2.5 chart card with background - image", - "pressure_card.png" : "Pressure card - image", - "pressure_card_with_background#background_image.png" : "Pressure card with background - background image", - "pressure_card_with_background.png" : "Pressure card with background - image", - "pressure_chart_card.png" : "Pressure chart card - image", - "pressure_chart_card_with_background#background_image.png" : "Pressure chart card with background - background image", - "pressure_chart_card_with_background.png" : "Pressure chart card with background - image", - "pressure_progress_bar.png" : "Pressure progress bar - image", - "pressure_progress_bar_with_background#background_image.png" : "Pressure progress bar with background - background image", - "pressure_progress_bar_with_background.png" : "Pressure progress bar with background - image", - "progress_bar.png" : "Progress bar - image", - "radon_level_card.png" : "Radon level card - image", - "radon_level_card_with_background#background_image.png" : "Radon level card with background - background image", - "radon_level_card_with_background.png" : "Radon level card with background - image", - "radon_level_chart_card.png" : "Radon level chart card - image", - "radon_level_chart_card_with_background#background_image.png" : "Radon level chart card with background - background image", - "radon_level_chart_card_with_background.png" : "Radon level chart card with background - image", - "rainfall_card.png" : "Rainfall card - image", - "rainfall_card_with_background#background_image.png" : "Rainfall card with background - background image", - "rainfall_card_with_background.png" : "Rainfall card with background - image", - "rainfall_chart_card.png" : "Rainfall chart card - image", - "rainfall_chart_card_with_background#background_image.png" : "Rainfall chart card with background - background image", - "rainfall_chart_card_with_background.png" : "Rainfall chart card with background - image", - "rectangle_tank.png" : "Rectangle tank - image", - "signal_strength.png" : "Signal strength - image", - "simple_air_quality_chart_card.png" : "Simple air quality index chart card - image", - "simple_air_quality_chart_card_with_background#background_image.png" : "Simple air quality index chart card with background - background image", - "simple_air_quality_chart_card_with_background.png" : "Simple air quality index chart card with background - image", - "simple_co2_chart_card.png" : "Simple CO2 chart card - image", - "simple_co2_chart_card_with_background#background_image.png" : "Simple CO2 chart card with background - background image", - "simple_co2_chart_card_with_background.png" : "Simple CO2 chart card with background - image", - "simple_flooding_level_chart_card.png" : "Simple flooding level chart card - image", - "simple_flooding_level_chart_card_with_background#background_image.png" : "Simple flooding level chart card with background - background image", - "simple_flooding_level_chart_card_with_background.png" : "Simple flooding level chart card with background - image", - "simple_ground_temperature_chart_card.png" : "Simple ground temperature chart card - image", - "simple_ground_temperature_chart_card_with_background#background_image.png" : "Simple ground temperature chart card with background - background image", - "simple_ground_temperature_chart_card_with_background.png" : "Simple ground temperature chart card with background - image", - "simple_humidity_chart_card.png" : "Simple humidity chart card - image", - "simple_humidity_chart_card_with_background#background_image.png" : "Simple humidity chart card with background - background image", - "simple_humidity_chart_card_with_background.png" : "Simple humidity chart card with background - image", - "simple_illuminance_chart_card.png" : "Simple illuminance chart card - image", - "simple_illuminance_chart_card_with_background#background_image.png" : "Simple illuminance chart card with background - background image", - "simple_illuminance_chart_card_with_background.png" : "Simple illuminance chart card with background - image", - "simple_leaf_wetness_chart_card.png" : "Simple leaf wetness chart card - image", - "simple_leaf_wetness_chart_card_with_background#background_image.png" : "Simple leaf wetness chart card with background - background image", - "simple_leaf_wetness_chart_card_with_background.png" : "Simple leaf wetness chart card with background - image", - "simple_noise_level_chart_card.png" : "Simple noise level chart card - image", - "simple_noise_level_chart_card_with_background#background_image.png" : "Simple noise level chart card with background - background image", - "simple_noise_level_chart_card_with_background.png" : "Simple noise level chart card with background - image", - "simple_pm10_chart_card.png" : "Simple PM10 chart card - image", - "simple_pm10_chart_card_with_background#background_image.png" : "Simple PM10 chart card with background - background image", - "simple_pm10_chart_card_with_background.png" : "Simple PM10 chart card with background - image", - "simple_pm2_5_chart_card.png" : "Simple PM2.5 chart card - image", - "simple_pm2_5_chart_card_with_background#background_image.png" : "Simple PM2.5 chart card with background - background image", - "simple_pm2_5_chart_card_with_background.png" : "Simple PM2.5 chart card with background - image", - "simple_pressure_chart_card.png" : "Simple pressure chart card - image", - "simple_pressure_chart_card_with_background#background_image.png" : "Simple pressure chart card with background - background image", - "simple_pressure_chart_card_with_background.png" : "Simple pressure chart card with background - image", - "simple_radon_level_chart_card.png" : "Simple radon level chart card - image", - "simple_radon_level_chart_card_with_background#background_image.png" : "Simple radon level chart card with background - background image", - "simple_radon_level_chart_card_with_background.png" : "Simple radon level chart card with background - image", - "simple_rainfall_chart_card.png" : "Simple rainfall chart card - image", - "simple_rainfall_chart_card_with_background#background_image.png" : "Simple rainfall chart card with background - background image", - "simple_rainfall_chart_card_with_background.png" : "Simple rainfall chart card with background - image", - "simple_snow_depth_chart_card.png" : "Simple snow depth chart card - image", - "simple_snow_depth_chart_card_with_background#background_image.png" : "Simple snow depth chart card with background - background image", - "simple_snow_depth_chart_card_with_background.png" : "Simple snow depth chart card with background - image", - "simple_soil_moisture_chart_card.png" : "Simple soil moisture chart card - image", - "simple_soil_moisture_chart_card_with_background#background_image.png" : "Simple soil moisture chart card with background - background image", - "simple_soil_moisture_chart_card_with_background.png" : "Simple soil moisture chart card with background - image", - "simple_solar_radiation_chart_card.png" : "Simple solar radiation chart card - image", - "simple_solar_radiation_chart_card_with_background#background_image.png" : "Simple solar radiation chart card with background - background image", - "simple_solar_radiation_chart_card_with_background.png" : "Simple solar radiation chart card with background - image", - "simple_temperature_chart_card.png" : "Simple temperature chart card - image", - "simple_temperature_chart_card_with_background#background_image.png" : "Simple temperature chart card with background - background image", - "simple_temperature_chart_card_with_background.png" : "Simple temperature chart card with background - image", - "simple_uv_index_chart_card.png" : "Simple UV Index chart card - image", - "simple_uv_index_chart_card_with_background#background_image.png" : "Simple UV Index chart card with background - background image", - "simple_uv_index_chart_card_with_background.png" : "Simple UV Index chart card with background - image", - "simple_value_and_chart_card.png" : "Simple Value and chart card - image", - "simple_vibration_chart_card.png" : "Simple vibration chart card - image", - "simple_vibration_chart_card_with_background#background_image.png" : "Simple vibration chart card with background - background image", - "simple_vibration_chart_card_with_background.png" : "Simple vibration chart card with background - image", - "simple_visibility_chart_card.png" : "Simple visibility chart card - image", - "simple_visibility_chart_card_with_background#background_image.png" : "Simple visibility chart card with background - background image", - "simple_visibility_chart_card_with_background.png" : "Simple visibility chart card with background - image", - "simple_volatile_organic_compounds_chart_card.png" : "Simple volatile organic compounds chart card - image", - "simple_volatile_organic_compounds_chart_card_with_background#background_image.png" : "Simple volatile organic compounds chart card with background - background image", - "simple_volatile_organic_compounds_chart_card_with_background.png" : "Simple volatile organic compounds chart card with background - image", - "simple_wind_speed_chart_card.png" : "Simple wind speed chart card - image", - "simple_wind_speed_chart_card_with_background#background_image.png" : "Simple wind speed chart card with background - background image", - "simple_wind_speed_chart_card_with_background.png" : "Simple wind speed chart card with background - image", - "snow_depth_card.png" : "Snow depth card - image", - "snow_depth_card_with_background#background_image.png" : "Snow depth card with background - background image", - "snow_depth_card_with_background.png" : "Snow depth card with background - image", - "snow_depth_chart_card.png" : "Snow depth chart card - image", - "snow_depth_chart_card_with_background#background_image.png" : "Snow depth chart card with background - background image", - "snow_depth_chart_card_with_background.png" : "Snow depth chart card with background - image", - "soil_moisture_card.png" : "Soil moisture card - image", - "soil_moisture_card_with_background#background_image.png" : "Soil moisture card with background - background image", - "soil_moisture_card_with_background.png" : "Soil moisture card with background - image", - "soil_moisture_chart_card.png" : "Soil moisture chart card - image", - "soil_moisture_chart_card_with_background#background_image.png" : "Soil moisture chart card with background - background image", - "soil_moisture_chart_card_with_background.png" : "Soil moisture chart card with background - image", - "soil_moisture_progress_bar.png" : "Soil moisture progress bar - image", - "soil_moisture_progress_bar_with_background#background_image.png" : "Soil moisture progress bar with background - background image", - "soil_moisture_progress_bar_with_background.png" : "Soil moisture progress bar with background - image", - "solar_radiation_card.png" : "Solar radiation card - image", - "solar_radiation_card_with_background#background_image.png" : "Solar radiation card with background - background image", - "solar_radiation_card_with_background.png" : "Solar radiation card with background - image", - "solar_radiation_chart_card.png" : "Solar radiation chart card - image", - "solar_radiation_chart_card_with_background#background_image.png" : "Solar radiation chart card with background - background image", - "solar_radiation_chart_card_with_background.png" : "Solar radiation chart card with background - image", - "status_indicators.png" : "Status indicators - image", - "tables.png" : "Tables - image", - "temperature_card.png" : "Temperature card - image", - "temperature_card_with_background#background_image.png" : "Temperature card with background - background image", - "temperature_card_with_background.png" : "Temperature card with background - image", - "temperature_chart_card.png" : "Temperature chart card - image", - "temperature_chart_card_with_background#background_image.png" : "Temperature chart card with background - background image", - "temperature_chart_card_with_background.png" : "Temperature chart card with background - image", - "thermostats.maps_v2.openstreetmap#marker_image_1.svg" : "Thermostat maps - marker image 1", - "thermostats.maps_v2.openstreetmap#marker_image_2.svg" : "Thermostat maps - marker image 2", - "uv_index_card.png" : "UV Index card - image", - "uv_index_card_with_background#background_image.png" : "UV Index card with background - background image", - "uv_index_card_with_background.png" : "UV Index card with background - image", - "uv_index_chart_card.png" : "UV Index chart card - image", - "uv_index_chart_card_with_background#background_image.png" : "UV Index chart card with background - background image", - "uv_index_chart_card_with_background.png" : "UV Index chart card with background - image", - "vertical_capsule_tank.png" : "Vertical capsule tank - image", - "vertical_cylinder_tank.png" : "Vertical cylinder tank - image", - "vertical_oval_tank.png" : "Vertical oval tank - image", - "vibration_card.png" : "Vibration card - image", - "vibration_card_with_background#background_image.png" : "Vibration card with background - background image", - "vibration_card_with_background.png" : "Vibration card with background - image", - "vibration_chart_card.png" : "Vibration chart card - image", - "vibration_chart_card_with_background#background_image.png" : "Vibration chart card with background - background image", - "vibration_chart_card_with_background.png" : "Vibration chart card with background - image", - "visibility_card.png" : "Visibility card - image", - "visibility_card_with_background#background_image.png" : "Visibility card with background - background image", - "visibility_card_with_background.png" : "Visibility card with background - image", - "visibility_chart_card.png" : "Visibility chart card - image", - "visibility_chart_card_with_background#background_image.png" : "Visibility chart card with background - background image", - "visibility_chart_card_with_background.png" : "Visibility chart card with background - image", - "volatile_organic_compounds_card.png" : "Volatile organic compounds card - image", - "volatile_organic_compounds_card_with_background#background_image.png" : "Volatile organic compounds card with background - background image", - "volatile_organic_compounds_card_with_background.png" : "Volatile organic compounds card with background - image", - "volatile_organic_compounds_chart_card.png" : "Volatile organic compounds chart card - image", - "volatile_organic_compounds_chart_card_with_background#background_image.png" : "Volatile organic compounds chart card with background - background image", - "volatile_organic_compounds_chart_card_with_background.png" : "Volatile organic compounds chart card with background - image", - "wind_speed_and_direction.png" : "Wind speed and direction - image", - "wind_speed_and_direction_with_background#background_image.png" : "Wind speed and direction with background - background image", - "wind_speed_and_direction_with_background.png" : "Wind speed and direction with background - image", - "wind_speed_card.png" : "Wind speed card - image", - "wind_speed_card_with_background#background_image.png" : "Wind speed card with background - background image", - "wind_speed_card_with_background.png" : "Wind speed card with background - image", - "wind_speed_chart_card.png" : "Wind speed chart card - image", - "wind_speed_chart_card_with_background#background_image.png" : "Wind speed chart card with background - background image", - "wind_speed_chart_card_with_background.png" : "Wind speed chart card with background - image" + "air_quality.png": "Air quality - image", + "air_quality_card.png": "Air quality index card - image", + "air_quality_card_with_background#background_image.png": "Air quality index card with background - background image", + "air_quality_card_with_background.png": "Air quality index card with background - image", + "air_quality_chart_card.png": "Air quality index chart card - image", + "air_quality_chart_card_with_background#background_image.png": "Air quality index chart card with background - background image", + "air_quality_chart_card_with_background.png": "Air quality index chart card with background - image", + "alarm_count.png": "Alarm count - image", + "alarm_widgets.alarms_table.png": "Alarms table - image", + "alarm_widgets.png": "Alarm widgets - image", + "analogue_gauges.analogue_compass.png": "Compass - image", + "analogue_gauges.png": "Analogue gauges - image", + "analogue_gauges.radial_gauge_canvas_gauges.png": "Radial gauge - image", + "analogue_gauges.speed_gauge_canvas_gauges.png": "Speed gauge - image", + "analogue_gauges.temperature_gauge_canvas_gauges.png": "Thermometer scale - image", + "analogue_gauges.temperature_radial_gauge_canvas_gauges.png": "Temperature radial gauge - image", + "battery_level.png": "Battery level - image", + "cards.aggregated_value_card.png": "Value and chart card - image", + "cards.attributes_card.png": "Attributes card - image", + "cards.dashboard_state_widget.png": "Dashboard state widget - image", + "cards.entities_hierarchy.png": "Entities hierarchy - image", + "cards.entities_table.png": "Entities table - image", + "cards.horizontal_value_card.png": "Horizontal value card - image", + "cards.html_card.png": "HTML Card - image", + "cards.html_value_card.png": "HTML Value Card - image", + "cards.label_widget#background_image.svg": "Label widget - background image", + "cards.label_widget.png": "Label widget - image", + "cards.markdown_card.png": "Markdown/HTML Card - image", + "cards.png": "Cards - image", + "cards.qr_code.png": "QR Code - image", + "cards.simple_card.png": "Simple card - image", + "cards.timeseries_table.png": "Timeseries table - image", + "cards.value_card.png": "Value card - image", + "charts.bars.png": "Bars - image", + "charts.basic_timeseries.png": "Timeseries Line Chart - image", + "charts.doughnut_chart_js.png": "Doughnut - image", + "charts.pie.png": "Pie - Flot - image", + "charts.pie_chart_js.png": "Pie - Chart.js - image", + "charts.png": "Charts - image", + "charts.polar_area_chart_js.png": "Polar Area - image", + "charts.radar_chart_js.png": "Radar - image", + "charts.state_chart.png": "State Chart - image", + "charts.timeseries_bars_flot.png": "Timeseries Bar Chart - image", + "co2_card.png": "CO2 card - image", + "co2_card_with_background#background_image.png": "CO2 card with background - background image", + "co2_card_with_background.png": "CO2 card with background - image", + "co2_chart_card.png": "CO2 chart card - image", + "co2_chart_card_with_background#background_image.png": "CO2 chart card with background - background image", + "co2_chart_card_with_background.png": "CO2 chart card with background - image", + "control_widgets.knob_control.png": "Knob Control - image", + "control_widgets.led_indicator.png": "Led indicator - image", + "control_widgets.persistent_table.png": "Persistent RPC table - image", + "control_widgets.png": "Control widgets - image", + "control_widgets.round_switch.png": "Round switch - image", + "control_widgets.rpc_debug_terminal.png": "RPC debug terminal - image", + "control_widgets.rpc_remote_shell.png": "RPC remote shell - image", + "control_widgets.rpcbutton.png": "RPC Button - image", + "control_widgets.slide_toggle_control.png": "Slide Toggle Control - image", + "control_widgets.switch_control.png": "Switch Control - image", + "control_widgets.update_attributes.png": "Update device attribute - image", + "count_widgets.png": "Count widgets - image", + "date.date_range_navigator.png": "Date-range-navigator - image", + "date.png": "Date - image", + "digital_gauges.digital_bar.png": "Digital horizontal bar - image", + "digital_gauges.digital_speedometer.png": "Digital speedometer - image", + "digital_gauges.digital_thermometer.png": "Digital thermometer - image", + "digital_gauges.digital_vertical_bar.png": "Digital vertical bar - image", + "digital_gauges.gauge_justgage.png": "Gauge - image", + "digital_gauges.horizontal_bar_justgage.png": "Horizontal bar - image", + "digital_gauges.lcd_bar_gauge.png": "LCD bar gauge - image", + "digital_gauges.lcd_gauge.png": "LCD gauge - image", + "digital_gauges.mini_gauge_justgage.png": "Mini gauge - image", + "digital_gauges.neon_gauge_justgage.png": "Neon gauge - image", + "digital_gauges.png": "Digital gauges - image", + "digital_gauges.simple_gauge_justgage.png": "Simple gauge - image", + "digital_gauges.simple_neon_gauge_justgage.png": "Simple neon gauge - image", + "digital_gauges.vertical_bar_justgage.png": "Vertical bar - image", + "doughnut.png": "Doughnut - image", + "edge_widgets.edges_overview.png": "Edge Quick Overview - image", + "edge_widgets.png": "Edge widgets - image", + "entity_admin_widgets.asset_admin_table.png": "Asset admin table - image", + "entity_admin_widgets.device_admin_table.png": "Device admin table - image", + "entity_admin_widgets.png": "Entity admin widgets - image", + "entity_count.png": "Entity count - image", + "entity_widgets.png": "Entity widgets - image", + "flooding_level_card.png": "Flooding level card - image", + "flooding_level_card_with_background#background_image.png": "Flooding level card with background - background image", + "flooding_level_card_with_background.png": "Flooding level card with background - image", + "flooding_level_chart_card.png": "Flooding level chart card - image", + "flooding_level_chart_card_with_background#background_image.png": "Flooding level chart card with background - background image", + "flooding_level_chart_card_with_background.png": "Flooding level chart card with background - image", + "flooding_level_progress_bar.png": "Flooding level progress bar - image", + "flooding_level_progress_bar_with_background#background_image.png": "Flooding level progress bar with background - background image", + "flooding_level_progress_bar_with_background.png": "Flooding level progress bar with background - image", + "gateway_widgets.attributes_card.png": "Gateway events - image", + "gateway_widgets.config_form_latest.png": "Gateway configuration (Single device) - image", + "gateway_widgets.gateway_configuration.png": "Gateway Configuration - image", + "gateway_widgets.gateway_connectors.png": "Gateway connectors - image", + "gateway_widgets.gateway_custom_statistics.png": "Gateway custom statistics - image", + "gateway_widgets.gateway_general_chart_statistics.png": "Gateway general chart statistics - image", + "gateway_widgets.gateway_general_configuration.png": "Gateway general configuration - image", + "gateway_widgets.gateway_logs.png": "Gateway logs - image", + "gateway_widgets.png": "Gateway widgets - image", + "gateway_widgets.service_rpc.png": "Service RPC - image", + "gpio_widgets.basic_gpio_control.png": "Basic GPIO Control - image", + "gpio_widgets.gpio_panel.png": "Basic GPIO Panel - image", + "gpio_widgets.png": "GPIO widgets - image", + "gpio_widgets.raspberry_pi_gpio_control.png": "Raspberry Pi GPIO Control - image", + "gpio_widgets.raspberry_pi_gpio_panel.png": "Raspberry Pi GPIO Panel - image", + "ground_temperature_card.png": "Ground temperature card - image", + "ground_temperature_card_with_background#background_image.png": "Ground temperature card with background - background image", + "ground_temperature_card_with_background.png": "Ground temperature card with background - image", + "ground_temperature_chart_card.png": "Ground temperature chart card - image", + "ground_temperature_chart_card_with_background#background_image.png": "Ground temperature chart card with background - background image", + "ground_temperature_chart_card_with_background.png": "Ground temperature chart card with background - image", + "home_page_widgets.dashboards.png": "Dashboards - image", + "home_page_widgets.documentation_links.png": "Documentation links - image", + "home_page_widgets.getting_started.png": "Getting started - image", + "home_page_widgets.png": "Home page widgets - image", + "home_page_widgets.quick_links.png": "Quick links - image", + "home_page_widgets.usage_info.png": "Usage info - image", + "horizontal_2_1_elliptical_tank.png": "Horizontal 2:1 elliptical tank - image", + "horizontal_air_quality_card.png": "Horizontal air quality index card - image", + "horizontal_air_quality_card_with_background#background_image.png": "Horizontal air quality index card with background - background image", + "horizontal_air_quality_card_with_background.png": "Horizontal air quality index card with background - image", + "horizontal_capsule_tank.png": "Horizontal capsule tank - image", + "horizontal_co2_card.png": "Horizontal CO2 card - image", + "horizontal_co2_card_with_background#background_image.png": "Horizontal CO2 card with background - background image", + "horizontal_co2_card_with_background.png": "Horizontal CO2 card with background - image", + "horizontal_cylinder_tank.png": "Horizontal cylinder tank - image", + "horizontal_dish_ends_tank.png": "Horizontal dish ends tank - image", + "horizontal_doughnut.png": "Horizontal doughnut - image", + "horizontal_ellipse_tank.png": "Horizontal ellipse tank - image", + "horizontal_flooding_level_card.png": "Horizontal flooding level card - image", + "horizontal_flooding_level_card_with_background#background_image.png": "Horizontal flooding level card with background - background image", + "horizontal_flooding_level_card_with_background.png": "Horizontal flooding level card with background - image", + "horizontal_ground_temperature_card.png": "Horizontal ground temperature card - image", + "horizontal_ground_temperature_card_with_background#background_image.png": "Horizontal ground temperature card with background - background image", + "horizontal_ground_temperature_card_with_background.png": "Horizontal ground temperature card with background - image", + "horizontal_humidity_card.png": "Horizontal humidity card - image", + "horizontal_humidity_card_with_background#background_image.png": "Horizontal humidity card with background - background image", + "horizontal_humidity_card_with_background.png": "Horizontal humidity card with background - image", + "horizontal_illuminance_card.png": "Horizontal illuminance card - image", + "horizontal_illuminance_card_with_background#background_image.png": "Horizontal illuminance card with background - background image", + "horizontal_illuminance_card_with_background.png": "Horizontal illuminance card with background - image", + "horizontal_leaf_wetness_card.png": "Horizontal leaf wetness card - image", + "horizontal_leaf_wetness_card_with_background#background_image.png": "Horizontal leaf wetness card with background - background image", + "horizontal_leaf_wetness_card_with_background.png": "Horizontal leaf wetness card with background - image", + "horizontal_noise_level_card.png": "Horizontal noise level card - image", + "horizontal_noise_level_card_with_background#background_image.png": "Horizontal noise level card with background - background image", + "horizontal_noise_level_card_with_background.png": "Horizontal noise level card with background - image", + "horizontal_oval_tank.png": "Horizontal oval tank - image", + "horizontal_pm10_card.png": "Horizontal PM10 card - image", + "horizontal_pm10_card_with_background#background_image.png": "Horizontal PM10 card with background - background image", + "horizontal_pm10_card_with_background.png": "Horizontal PM10 card with background - image", + "horizontal_pm2_5_card.png": "Horizontal PM2.5 card - image", + "horizontal_pm2_5_card_with_background#background_image.png": "Horizontal PM2.5 card with background - background image", + "horizontal_pm2_5_card_with_background.png": "Horizontal PM2.5 card with background - image", + "horizontal_pressure_card.png": "Horizontal pressure card - image", + "horizontal_pressure_card_with_background#background_image.png": "Horizontal pressure card with background - background image", + "horizontal_pressure_card_with_background.png": "Horizontal pressure card with background - image", + "horizontal_radon_level_card.png": "Horizontal radon level card - image", + "horizontal_radon_level_card_with_background#background_image.png": "Horizontal radon level card with background - background image", + "horizontal_radon_level_card_with_background.png": "Horizontal radon level card with background - image", + "horizontal_rainfall_card.png": "Horizontal rainfall card - image", + "horizontal_rainfall_card_with_background#background_image.png": "Horizontal rainfall card with background - background image", + "horizontal_rainfall_card_with_background.png": "Horizontal rainfall card with background - image", + "horizontal_snow_depth_card.png": "Horizontal snow depth card - image", + "horizontal_snow_depth_card_with_background#background_image.png": "Horizontal snow depth card with background - background image", + "horizontal_snow_depth_card_with_background.png": "Horizontal snow depth card with background - image", + "horizontal_soil_moisture_card.png": "Horizontal soil moisture card - image", + "horizontal_soil_moisture_card_with_background#background_image.png": "Horizontal soil moisture card with background - background image", + "horizontal_soil_moisture_card_with_background.png": "Horizontal soil moisture card with background - image", + "horizontal_solar_radiation_card.png": "Horizontal solar radiation card - image", + "horizontal_solar_radiation_card_with_background#background_image.png": "Horizontal solar radiation card with background - background image", + "horizontal_solar_radiation_card_with_background.png": "Horizontal solar radiation card with background - image", + "horizontal_temperature_card.png": "Horizontal temperature card - image", + "horizontal_temperature_card_with_background#background_image.png": "Horizontal temperature card with background - background image", + "horizontal_temperature_card_with_background.png": "Horizontal temperature card with background - image", + "horizontal_uv_index_card.png": "Horizontal UV Index card - image", + "horizontal_uv_index_card_with_background#background_image.png": "Horizontal UV Index card with background - background image", + "horizontal_uv_index_card_with_background.png": "Horizontal UV Index card with background - image", + "horizontal_vibration_card.png": "Horizontal vibration card - image", + "horizontal_vibration_card_with_background#background_image.png": "Horizontal vibration card with background - background image", + "horizontal_vibration_card_with_background.png": "Horizontal vibration card with background - image", + "horizontal_visibility_card.png": "Horizontal visibility card - image", + "horizontal_visibility_card_with_background#background_image.png": "Horizontal visibility card with background - background image", + "horizontal_visibility_card_with_background.png": "Horizontal visibility card with background - image", + "horizontal_volatile_organic_compounds_card.png": "Horizontal volatile organic compounds card - image", + "horizontal_volatile_organic_compounds_card_with_background#background_image.png": "Horizontal volatile organic compounds card with background - background image", + "horizontal_volatile_organic_compounds_card_with_background.png": "Horizontal volatile organic compounds card with background - image", + "horizontal_wind_speed_card.png": "Horizontal wind speed card - image", + "horizontal_wind_speed_card_with_background#background_image.png": "Horizontal wind speed card with background - background image", + "horizontal_wind_speed_card_with_background.png": "Horizontal wind speed card with background - image", + "html_widgets.png": "HTML widgets - image", + "humidity_card.png": "Humidity card - image", + "humidity_card_with_background#background_image.png": "Humidity card with background - background image", + "humidity_card_with_background.png": "Humidity card with background - image", + "humidity_chart_card.png": "Humidity chart card - image", + "humidity_chart_card_with_background#background_image.png": "Humidity chart card with background - background image", + "humidity_chart_card_with_background.png": "Humidity chart card with background - image", + "humidity_progress_bar.png": "Humidity progress bar - image", + "humidity_progress_bar_with_background#background_image.png": "Humidity progress bar with background - background image", + "humidity_progress_bar_with_background.png": "Humidity progress bar with background - image", + "illuminance_card.png": "Illuminance card - image", + "illuminance_card_with_background#background_image.png": "Illuminance card with background - background image", + "illuminance_card_with_background.png": "Illuminance card with background - image", + "illuminance_chart_card.png": "Illuminance chart card - image", + "illuminance_chart_card_with_background#background_image.png": "Illuminance chart card with background - background image", + "illuminance_chart_card_with_background.png": "Illuminance chart card with background - image", + "illuminance_progress_bar.png": "Illuminance progress bar - image", + "illuminance_progress_bar_with_background#background_image.png": "Illuminance progress bar with background - background image", + "illuminance_progress_bar_with_background.png": "Illuminance progress bar with background - image", + "indoor_co2_card.png": "Indoor CO2 card - image", + "indoor_co2_card_with_background#background_image.png": "Indoor CO2 card with background - background image", + "indoor_co2_card_with_background.png": "Indoor CO2 card with background - image", + "indoor_co2_chart_card.png": "Indoor CO2 chart card - image", + "indoor_co2_chart_card_with_background#background_image.png": "Indoor CO2 chart card with background - background image", + "indoor_co2_chart_card_with_background.png": "Indoor CO2 chart card with background - image", + "indoor_environment.png": "Indoor Environment - image", + "indoor_horizontal_co2_card.png": "Indoor horizontal CO2 card - image", + "indoor_horizontal_co2_card_with_background#background_image.png": "Indoor horizontal CO2 card with background - background image", + "indoor_horizontal_co2_card_with_background.png": "Indoor horizontal CO2 card with background - image", + "indoor_horizontal_humidity_card.png": "Indoor horizontal humidity card - image", + "indoor_horizontal_humidity_card_with_background#background_image.png": "Indoor horizontal humidity card with background - background image", + "indoor_horizontal_humidity_card_with_background.png": "Indoor horizontal humidity card with background - image", + "indoor_horizontal_illuminance_card.png": "Indoor horizontal illuminance card - image", + "indoor_horizontal_illuminance_card_with_background#background_image.png": "Indoor horizontal illuminance card with background - background image", + "indoor_horizontal_illuminance_card_with_background.png": "Indoor horizontal illuminance card with background - image", + "indoor_horizontal_pm10_card.png": "Indoor horizontal PM10 card - image", + "indoor_horizontal_pm10_card_with_background#background_image.png": "Indoor horizontal PM10 card with background - background image", + "indoor_horizontal_pm10_card_with_background.png": "Indoor horizontal PM10 card with background - image", + "indoor_horizontal_pm2_5_card.png": "Indoor horizontal PM2.5 card - image", + "indoor_horizontal_pm2_5_card_with_background#background_image.png": "Indoor horizontal PM2.5 card with background - background image", + "indoor_horizontal_pm2_5_card_with_background.png": "Indoor horizontal PM2.5 card with background - image", + "indoor_horizontal_temperature_card.png": "Indoor horizontal temperature card - image", + "indoor_horizontal_temperature_card_with_background#background_image.png": "Indoor horizontal temperature card with background - background image", + "indoor_horizontal_temperature_card_with_background.png": "Indoor horizontal temperature card with background - image", + "indoor_humidity_card.png": "Indoor humidity card - image", + "indoor_humidity_card_with_background#background_image.png": "Indoor humidity card with background - background image", + "indoor_humidity_card_with_background.png": "Indoor humidity card with background - image", + "indoor_humidity_chart_card.png": "Indoor humidity chart card - image", + "indoor_humidity_chart_card_with_background#background_image.png": "Indoor humidity chart card with background - background image", + "indoor_humidity_chart_card_with_background.png": "Indoor humidity chart card with background - image", + "indoor_humidity_progress_bar.png": "Indoor humidity progress bar - image", + "indoor_humidity_progress_bar_with_background#background_image.png": "Indoor humidity progress bar with background - background image", + "indoor_humidity_progress_bar_with_background.png": "Indoor humidity progress bar with background - image", + "indoor_illuminance_card.png": "Indoor illuminance card - image", + "indoor_illuminance_card_with_background#background_image.png": "Indoor illuminance card with background - background image", + "indoor_illuminance_card_with_background.png": "Indoor illuminance card with background - image", + "indoor_illuminance_chart_card.png": "Indoor illuminance chart card - image", + "indoor_illuminance_chart_card_with_background#background_image.png": "Indoor illuminance chart card with background - background image", + "indoor_illuminance_chart_card_with_background.png": "Indoor illuminance chart card with background - image", + "indoor_illuminance_progress_bar.png": "Indoor illuminance progress bar - image", + "indoor_illuminance_progress_bar_with_background#background_image.png": "Indoor illuminance progress bar with background - background image", + "indoor_illuminance_progress_bar_with_background.png": "Indoor illuminance progress bar with background - image", + "indoor_pm10_card.png": "Indoor PM10 card - image", + "indoor_pm10_card_with_background#background_image.png": "Indoor PM10 card with background - background image", + "indoor_pm10_card_with_background.png": "Indoor PM10 card with background - image", + "indoor_pm10_chart_card.png": "Indoor PM10 chart card - image", + "indoor_pm10_chart_card_with_background#background_image.png": "Indoor PM10 chart card with background - background image", + "indoor_pm10_chart_card_with_background.png": "Indoor PM10 chart card with background - image", + "indoor_pm2_5_card.png": "Indoor PM2.5 card - image", + "indoor_pm2_5_card_with_background#background_image.png": "Indoor PM2.5 card with background - background image", + "indoor_pm2_5_card_with_background.png": "Indoor PM2.5 card with background - image", + "indoor_pm2_5_chart_card.png": "Indoor PM2.5 chart card - image", + "indoor_pm2_5_chart_card_with_background#background_image.png": "Indoor PM2.5 chart card with background - background image", + "indoor_pm2_5_chart_card_with_background.png": "Indoor PM2.5 chart card with background - image", + "indoor_simple_co2_chart_card.png": "Indoor simple CO2 chart card - image", + "indoor_simple_co2_chart_card_with_background#background_image.png": "Indoor simple CO2 chart card with background - background image", + "indoor_simple_co2_chart_card_with_background.png": "Indoor simple CO2 chart card with background - image", + "indoor_simple_humidity_chart_card.png": "Indoor simple humidity chart card - image", + "indoor_simple_humidity_chart_card_with_background#background_image.png": "Indoor simple humidity chart card with background - background image", + "indoor_simple_humidity_chart_card_with_background.png": "Indoor simple humidity chart card with background - image", + "indoor_simple_illuminance_chart_card.png": "Indoor simple illuminance chart card - image", + "indoor_simple_illuminance_chart_card_with_background#background_image.png": "Indoor simple illuminance chart card with background - background image", + "indoor_simple_illuminance_chart_card_with_background.png": "Indoor simple illuminance chart card with background - image", + "indoor_simple_pm10_chart_card.png": "Indoor simple PM10 chart card - image", + "indoor_simple_pm10_chart_card_with_background#background_image.png": "Indoor simple PM10 chart card with background - background image", + "indoor_simple_pm10_chart_card_with_background.png": "Indoor simple PM10 chart card with background - image", + "indoor_simple_pm2_5_chart_card.png": "Indoor simple PM2.5 chart card - image", + "indoor_simple_pm2_5_chart_card_with_background#background_image.png": "Indoor simple PM2.5 chart card with background - background image", + "indoor_simple_pm2_5_chart_card_with_background.png": "Indoor simple PM2.5 chart card with background - image", + "indoor_simple_temperature_chart_card.png": "Indoor simple temperature chart card - image", + "indoor_simple_temperature_chart_card_with_background#background_image.png": "Indoor simple temperature chart card with background - background image", + "indoor_simple_temperature_chart_card_with_background.png": "Indoor simple temperature chart card with background - image", + "indoor_temperature_card.png": "Indoor temperature card - image", + "indoor_temperature_card_with_background#background_image.png": "Indoor temperature card with background - background image", + "indoor_temperature_card_with_background.png": "Indoor temperature card with background - image", + "indoor_temperature_chart_card.png": "Indoor temperature chart card - image", + "indoor_temperature_chart_card_with_background#background_image.png": "Indoor temperature chart card with background - background image", + "indoor_temperature_chart_card_with_background.png": "Indoor temperature chart card with background - image", + "indoor_temperature_progress_bar.png": "Indoor temperature progress bar - image", + "indoor_temperature_progress_bar_with_background#background_image.png": "Indoor temperature progress bar with background - background image", + "indoor_temperature_progress_bar_with_background.png": "Indoor temperature progress bar with background - image", + "input_widgets.device_claiming_widget.png": "Device claiming widget - image", + "input_widgets.markers_placement_google_maps.png": "Markers Placement - Google Maps - image", + "input_widgets.markers_placement_image_map#map_image.svg": "Markers Placement - Image Map - map image", + "input_widgets.markers_placement_image_map.png": "Markers Placement - Image Map - image", + "input_widgets.markers_placement_openstreetmap.png": "Markers Placement - OpenStreetMap - image", + "input_widgets.png": "Input widgets - image", + "input_widgets.update_boolean_timeseries.png": "Update boolean timeseries - image", + "input_widgets.update_double_timeseries.png": "Update double timeseries - image", + "input_widgets.update_integer_timeseries.png": "Update integer timeseries - image", + "input_widgets.update_json_attribute.png": "Update JSON attribute - image", + "input_widgets.update_location_timeseries.png": "Update location timeseries - image", + "input_widgets.update_multiple_attributes.png": "Update Multiple Attributes - image", + "input_widgets.update_server_boolean_attribute.png": "Update server boolean attribute - image", + "input_widgets.update_server_date_attribute.png": "Update server date attribute - image", + "input_widgets.update_server_double_attribute.png": "Update server double attribute - image", + "input_widgets.update_server_image_attribute.png": "Update server image attribute - image", + "input_widgets.update_server_integer_attribute.png": "Update server integer attribute - image", + "input_widgets.update_server_location_attribute.png": "Update server location attribute - image", + "input_widgets.update_server_string_attribute.png": "Update server string attribute - image", + "input_widgets.update_shared_boolean_attribute.png": "Update shared boolean attribute - image", + "input_widgets.update_shared_date_attribute.png": "Update shared date attribute - image", + "input_widgets.update_shared_double_attribute.png": "Update shared double attribute - image", + "input_widgets.update_shared_image_attribute.png": "Update shared image attribute - image", + "input_widgets.update_shared_integer_attribute.png": "Update shared integer attribute - image", + "input_widgets.update_shared_location_attribute.png": "Update shared location attribute - image", + "input_widgets.update_shared_string_attribute.png": "Update shared string attribute - image", + "input_widgets.update_string_timeseries.png": "Update string timeseries - image", + "input_widgets.web_camera_input.png": "Photo camera input - image", + "leaf_wetness_card.png": "Leaf wetness card - image", + "leaf_wetness_card_with_background#background_image.png": "Leaf wetness card with background - background image", + "leaf_wetness_card_with_background.png": "Leaf wetness card with background - image", + "leaf_wetness_chart_card.png": "Leaf wetness chart card - image", + "leaf_wetness_chart_card_with_background#background_image.png": "Leaf wetness chart card with background - background image", + "leaf_wetness_chart_card_with_background.png": "Leaf wetness chart card with background - image", + "leaf_wetness_progress_bar.png": "Leaf wetness progress bar - image", + "leaf_wetness_progress_bar_with_background#background_image.png": "Leaf wetness progress bar with background - background image", + "leaf_wetness_progress_bar_with_background.png": "Leaf wetness progress bar with background - image", + "liquid_level_tanks.png": "Liquid level - image", + "maps_v2.google_maps#marker_image_1.png": "Google Map - marker image 1", + "maps_v2.google_maps#marker_image_2.png": "Google Map - marker image 2", + "maps_v2.google_maps#marker_image_3.png": "Google Map - marker image 3", + "maps_v2.google_maps#marker_image_4.png": "Google Map - marker image 4", + "maps_v2.google_maps.png": "Google Map - image", + "maps_v2.here_map#map_image.svg": "HERE Map - map image", + "maps_v2.here_map#marker_image_1.png": "HERE Map - marker image 1", + "maps_v2.here_map#marker_image_2.png": "HERE Map - marker image 2", + "maps_v2.here_map#marker_image_3.png": "HERE Map - marker image 3", + "maps_v2.here_map#marker_image_4.png": "HERE Map - marker image 4", + "maps_v2.here_map.png": "HERE Map - image", + "maps_v2.image_map#map_image.svg": "Image Map - map image", + "maps_v2.image_map#marker_image_1.png": "Image Map - marker image 1", + "maps_v2.image_map#marker_image_2.png": "Image Map - marker image 2", + "maps_v2.image_map#marker_image_3.png": "Image Map - marker image 3", + "maps_v2.image_map#marker_image_4.png": "Image Map - marker image 4", + "maps_v2.image_map.png": "Image Map - image", + "maps_v2.openstreetmap#marker_image_1.png": "OpenStreet Map - marker image 1", + "maps_v2.openstreetmap#marker_image_2.png": "OpenStreet Map - marker image 2", + "maps_v2.openstreetmap#marker_image_3.png": "OpenStreet Map - marker image 3", + "maps_v2.openstreetmap#marker_image_4.png": "OpenStreet Map - marker image 4", + "maps_v2.openstreetmap.png": "OpenStreet Map - image", + "maps_v2.png": "Maps - image", + "maps_v2.route_map#marker_image_1.png": "Route Map - Google - marker image 1", + "maps_v2.route_map#marker_image_2.png": "Route Map - Google - marker image 2", + "maps_v2.route_map#marker_image_3.png": "Route Map - Google - marker image 3", + "maps_v2.route_map.png": "Route Map - Google - image", + "maps_v2.route_map_openstreetmap#marker_image_1.png": "Route Map - OpenStreet - marker image 1", + "maps_v2.route_map_openstreetmap#marker_image_2.png": "Route Map - OpenStreet - marker image 2", + "maps_v2.route_map_openstreetmap#marker_image_3.png": "Route Map - OpenStreet - marker image 3", + "maps_v2.route_map_openstreetmap.png": "Route Map - OpenStreet - image", + "maps_v2.route_map_tencent_maps#marker_image_1.png": "Route Map - Tencent - marker image 1", + "maps_v2.route_map_tencent_maps#marker_image_2.png": "Route Map - Tencent - marker image 2", + "maps_v2.route_map_tencent_maps#marker_image_3.png": "Route Map - Tencent - marker image 3", + "maps_v2.route_map_tencent_maps.png": "Route Map - Tencent - image", + "maps_v2.tencent_maps#marker_image_1.png": "Tencent Map - marker image 1", + "maps_v2.tencent_maps#marker_image_2.png": "Tencent Map - marker image 2", + "maps_v2.tencent_maps#marker_image_3.png": "Tencent Map - marker image 3", + "maps_v2.tencent_maps#marker_image_4.png": "Tencent Map - marker image 4", + "maps_v2.tencent_maps.png": "Tencent Map - image", + "maps_v2.test.png": "Trip Animation - image", + "navigation_widgets.navigation_card.png": "Navigation card - image", + "navigation_widgets.navigation_cards.png": "Navigation cards - image", + "navigation_widgets.png": "Navigation widgets - image", + "noise_level_card.png": "Noise level card - image", + "noise_level_card_with_background#background_image.png": "Noise level card with background - background image", + "noise_level_card_with_background.png": "Noise level card with background - image", + "noise_level_chart_card.png": "Noise level chart card - image", + "noise_level_chart_card_with_background#background_image.png": "Noise level chart card with background - background image", + "noise_level_chart_card_with_background.png": "Noise level chart card with background - image", + "outdoor_environment.png": "Outdoor Environment - image", + "pm10_card.png": "PM10 card - image", + "pm10_card_with_background#background_image.png": "PM10 card with background - background image", + "pm10_card_with_background.png": "PM10 card with background - image", + "pm10_chart_card.png": "PM10 chart card - image", + "pm10_chart_card_with_background#background_image.png": "PM10 chart card with background - background image", + "pm10_chart_card_with_background.png": "PM10 chart card with background - image", + "pm2_5_card.png": "PM2.5 card - image", + "pm2_5_card_with_background#background_image.png": "PM2.5 card with background - background image", + "pm2_5_card_with_background.png": "PM2.5 card with background - image", + "pm2_5_chart_card.png": "PM2.5 chart card - image", + "pm2_5_chart_card_with_background#background_image.png": "PM2.5 chart card with background - background image", + "pm2_5_chart_card_with_background.png": "PM2.5 chart card with background - image", + "pressure_card.png": "Pressure card - image", + "pressure_card_with_background#background_image.png": "Pressure card with background - background image", + "pressure_card_with_background.png": "Pressure card with background - image", + "pressure_chart_card.png": "Pressure chart card - image", + "pressure_chart_card_with_background#background_image.png": "Pressure chart card with background - background image", + "pressure_chart_card_with_background.png": "Pressure chart card with background - image", + "pressure_progress_bar.png": "Pressure progress bar - image", + "pressure_progress_bar_with_background#background_image.png": "Pressure progress bar with background - background image", + "pressure_progress_bar_with_background.png": "Pressure progress bar with background - image", + "progress_bar.png": "Progress bar - image", + "radon_level_card.png": "Radon level card - image", + "radon_level_card_with_background#background_image.png": "Radon level card with background - background image", + "radon_level_card_with_background.png": "Radon level card with background - image", + "radon_level_chart_card.png": "Radon level chart card - image", + "radon_level_chart_card_with_background#background_image.png": "Radon level chart card with background - background image", + "radon_level_chart_card_with_background.png": "Radon level chart card with background - image", + "rainfall_card.png": "Rainfall card - image", + "rainfall_card_with_background#background_image.png": "Rainfall card with background - background image", + "rainfall_card_with_background.png": "Rainfall card with background - image", + "rainfall_chart_card.png": "Rainfall chart card - image", + "rainfall_chart_card_with_background#background_image.png": "Rainfall chart card with background - background image", + "rainfall_chart_card_with_background.png": "Rainfall chart card with background - image", + "rectangle_tank.png": "Rectangle tank - image", + "signal_strength.png": "Signal strength - image", + "simple_air_quality_chart_card.png": "Simple air quality index chart card - image", + "simple_air_quality_chart_card_with_background#background_image.png": "Simple air quality index chart card with background - background image", + "simple_air_quality_chart_card_with_background.png": "Simple air quality index chart card with background - image", + "simple_co2_chart_card.png": "Simple CO2 chart card - image", + "simple_co2_chart_card_with_background#background_image.png": "Simple CO2 chart card with background - background image", + "simple_co2_chart_card_with_background.png": "Simple CO2 chart card with background - image", + "simple_flooding_level_chart_card.png": "Simple flooding level chart card - image", + "simple_flooding_level_chart_card_with_background#background_image.png": "Simple flooding level chart card with background - background image", + "simple_flooding_level_chart_card_with_background.png": "Simple flooding level chart card with background - image", + "simple_ground_temperature_chart_card.png": "Simple ground temperature chart card - image", + "simple_ground_temperature_chart_card_with_background#background_image.png": "Simple ground temperature chart card with background - background image", + "simple_ground_temperature_chart_card_with_background.png": "Simple ground temperature chart card with background - image", + "simple_humidity_chart_card.png": "Simple humidity chart card - image", + "simple_humidity_chart_card_with_background#background_image.png": "Simple humidity chart card with background - background image", + "simple_humidity_chart_card_with_background.png": "Simple humidity chart card with background - image", + "simple_illuminance_chart_card.png": "Simple illuminance chart card - image", + "simple_illuminance_chart_card_with_background#background_image.png": "Simple illuminance chart card with background - background image", + "simple_illuminance_chart_card_with_background.png": "Simple illuminance chart card with background - image", + "simple_leaf_wetness_chart_card.png": "Simple leaf wetness chart card - image", + "simple_leaf_wetness_chart_card_with_background#background_image.png": "Simple leaf wetness chart card with background - background image", + "simple_leaf_wetness_chart_card_with_background.png": "Simple leaf wetness chart card with background - image", + "simple_noise_level_chart_card.png": "Simple noise level chart card - image", + "simple_noise_level_chart_card_with_background#background_image.png": "Simple noise level chart card with background - background image", + "simple_noise_level_chart_card_with_background.png": "Simple noise level chart card with background - image", + "simple_pm10_chart_card.png": "Simple PM10 chart card - image", + "simple_pm10_chart_card_with_background#background_image.png": "Simple PM10 chart card with background - background image", + "simple_pm10_chart_card_with_background.png": "Simple PM10 chart card with background - image", + "simple_pm2_5_chart_card.png": "Simple PM2.5 chart card - image", + "simple_pm2_5_chart_card_with_background#background_image.png": "Simple PM2.5 chart card with background - background image", + "simple_pm2_5_chart_card_with_background.png": "Simple PM2.5 chart card with background - image", + "simple_pressure_chart_card.png": "Simple pressure chart card - image", + "simple_pressure_chart_card_with_background#background_image.png": "Simple pressure chart card with background - background image", + "simple_pressure_chart_card_with_background.png": "Simple pressure chart card with background - image", + "simple_radon_level_chart_card.png": "Simple radon level chart card - image", + "simple_radon_level_chart_card_with_background#background_image.png": "Simple radon level chart card with background - background image", + "simple_radon_level_chart_card_with_background.png": "Simple radon level chart card with background - image", + "simple_rainfall_chart_card.png": "Simple rainfall chart card - image", + "simple_rainfall_chart_card_with_background#background_image.png": "Simple rainfall chart card with background - background image", + "simple_rainfall_chart_card_with_background.png": "Simple rainfall chart card with background - image", + "simple_snow_depth_chart_card.png": "Simple snow depth chart card - image", + "simple_snow_depth_chart_card_with_background#background_image.png": "Simple snow depth chart card with background - background image", + "simple_snow_depth_chart_card_with_background.png": "Simple snow depth chart card with background - image", + "simple_soil_moisture_chart_card.png": "Simple soil moisture chart card - image", + "simple_soil_moisture_chart_card_with_background#background_image.png": "Simple soil moisture chart card with background - background image", + "simple_soil_moisture_chart_card_with_background.png": "Simple soil moisture chart card with background - image", + "simple_solar_radiation_chart_card.png": "Simple solar radiation chart card - image", + "simple_solar_radiation_chart_card_with_background#background_image.png": "Simple solar radiation chart card with background - background image", + "simple_solar_radiation_chart_card_with_background.png": "Simple solar radiation chart card with background - image", + "simple_temperature_chart_card.png": "Simple temperature chart card - image", + "simple_temperature_chart_card_with_background#background_image.png": "Simple temperature chart card with background - background image", + "simple_temperature_chart_card_with_background.png": "Simple temperature chart card with background - image", + "simple_uv_index_chart_card.png": "Simple UV Index chart card - image", + "simple_uv_index_chart_card_with_background#background_image.png": "Simple UV Index chart card with background - background image", + "simple_uv_index_chart_card_with_background.png": "Simple UV Index chart card with background - image", + "simple_value_and_chart_card.png": "Simple Value and chart card - image", + "simple_vibration_chart_card.png": "Simple vibration chart card - image", + "simple_vibration_chart_card_with_background#background_image.png": "Simple vibration chart card with background - background image", + "simple_vibration_chart_card_with_background.png": "Simple vibration chart card with background - image", + "simple_visibility_chart_card.png": "Simple visibility chart card - image", + "simple_visibility_chart_card_with_background#background_image.png": "Simple visibility chart card with background - background image", + "simple_visibility_chart_card_with_background.png": "Simple visibility chart card with background - image", + "simple_volatile_organic_compounds_chart_card.png": "Simple volatile organic compounds chart card - image", + "simple_volatile_organic_compounds_chart_card_with_background#background_image.png": "Simple volatile organic compounds chart card with background - background image", + "simple_volatile_organic_compounds_chart_card_with_background.png": "Simple volatile organic compounds chart card with background - image", + "simple_wind_speed_chart_card.png": "Simple wind speed chart card - image", + "simple_wind_speed_chart_card_with_background#background_image.png": "Simple wind speed chart card with background - background image", + "simple_wind_speed_chart_card_with_background.png": "Simple wind speed chart card with background - image", + "snow_depth_card.png": "Snow depth card - image", + "snow_depth_card_with_background#background_image.png": "Snow depth card with background - background image", + "snow_depth_card_with_background.png": "Snow depth card with background - image", + "snow_depth_chart_card.png": "Snow depth chart card - image", + "snow_depth_chart_card_with_background#background_image.png": "Snow depth chart card with background - background image", + "snow_depth_chart_card_with_background.png": "Snow depth chart card with background - image", + "soil_moisture_card.png": "Soil moisture card - image", + "soil_moisture_card_with_background#background_image.png": "Soil moisture card with background - background image", + "soil_moisture_card_with_background.png": "Soil moisture card with background - image", + "soil_moisture_chart_card.png": "Soil moisture chart card - image", + "soil_moisture_chart_card_with_background#background_image.png": "Soil moisture chart card with background - background image", + "soil_moisture_chart_card_with_background.png": "Soil moisture chart card with background - image", + "soil_moisture_progress_bar.png": "Soil moisture progress bar - image", + "soil_moisture_progress_bar_with_background#background_image.png": "Soil moisture progress bar with background - background image", + "soil_moisture_progress_bar_with_background.png": "Soil moisture progress bar with background - image", + "solar_radiation_card.png": "Solar radiation card - image", + "solar_radiation_card_with_background#background_image.png": "Solar radiation card with background - background image", + "solar_radiation_card_with_background.png": "Solar radiation card with background - image", + "solar_radiation_chart_card.png": "Solar radiation chart card - image", + "solar_radiation_chart_card_with_background#background_image.png": "Solar radiation chart card with background - background image", + "solar_radiation_chart_card_with_background.png": "Solar radiation chart card with background - image", + "status_indicators.png": "Status indicators - image", + "tables.png": "Tables - image", + "temperature_card.png": "Temperature card - image", + "temperature_card_with_background#background_image.png": "Temperature card with background - background image", + "temperature_card_with_background.png": "Temperature card with background - image", + "temperature_chart_card.png": "Temperature chart card - image", + "temperature_chart_card_with_background#background_image.png": "Temperature chart card with background - background image", + "temperature_chart_card_with_background.png": "Temperature chart card with background - image", + "thermostats.maps_v2.openstreetmap#marker_image_1.svg": "Thermostat maps - marker image 1", + "thermostats.maps_v2.openstreetmap#marker_image_2.svg": "Thermostat maps - marker image 2", + "uv_index_card.png": "UV Index card - image", + "uv_index_card_with_background#background_image.png": "UV Index card with background - background image", + "uv_index_card_with_background.png": "UV Index card with background - image", + "uv_index_chart_card.png": "UV Index chart card - image", + "uv_index_chart_card_with_background#background_image.png": "UV Index chart card with background - background image", + "uv_index_chart_card_with_background.png": "UV Index chart card with background - image", + "vertical_capsule_tank.png": "Vertical capsule tank - image", + "vertical_cylinder_tank.png": "Vertical cylinder tank - image", + "vertical_oval_tank.png": "Vertical oval tank - image", + "vibration_card.png": "Vibration card - image", + "vibration_card_with_background#background_image.png": "Vibration card with background - background image", + "vibration_card_with_background.png": "Vibration card with background - image", + "vibration_chart_card.png": "Vibration chart card - image", + "vibration_chart_card_with_background#background_image.png": "Vibration chart card with background - background image", + "vibration_chart_card_with_background.png": "Vibration chart card with background - image", + "visibility_card.png": "Visibility card - image", + "visibility_card_with_background#background_image.png": "Visibility card with background - background image", + "visibility_card_with_background.png": "Visibility card with background - image", + "visibility_chart_card.png": "Visibility chart card - image", + "visibility_chart_card_with_background#background_image.png": "Visibility chart card with background - background image", + "visibility_chart_card_with_background.png": "Visibility chart card with background - image", + "volatile_organic_compounds_card.png": "Volatile organic compounds card - image", + "volatile_organic_compounds_card_with_background#background_image.png": "Volatile organic compounds card with background - background image", + "volatile_organic_compounds_card_with_background.png": "Volatile organic compounds card with background - image", + "volatile_organic_compounds_chart_card.png": "Volatile organic compounds chart card - image", + "volatile_organic_compounds_chart_card_with_background#background_image.png": "Volatile organic compounds chart card with background - background image", + "volatile_organic_compounds_chart_card_with_background.png": "Volatile organic compounds chart card with background - image", + "wind_speed_and_direction.png": "Wind speed and direction - image", + "wind_speed_and_direction_with_background#background_image.png": "Wind speed and direction with background - background image", + "wind_speed_and_direction_with_background.png": "Wind speed and direction with background - image", + "wind_speed_card.png": "Wind speed card - image", + "wind_speed_card_with_background#background_image.png": "Wind speed card with background - background image", + "wind_speed_card_with_background.png": "Wind speed card with background - image", + "wind_speed_chart_card.png": "Wind speed chart card - image", + "wind_speed_chart_card_with_background#background_image.png": "Wind speed chart card with background - background image", + "wind_speed_chart_card_with_background.png": "Wind speed chart card with background - image" } \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java index 1cbb412af4..52ac77b733 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/SystemImagesMigrator.java @@ -19,19 +19,24 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.hash.Hashing; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.util.MediaTypeUtils; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.Base64; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.TreeMap; +import java.util.stream.Collectors; @Slf4j public class SystemImagesMigrator { // TEMPORARY @@ -45,6 +50,7 @@ public class SystemImagesMigrator { // TEMPORARY private static final Path demoDashboardsDir = dataDir.resolve("json").resolve("demo").resolve("dashboards"); private static final Map imageNames = new TreeMap<>(); + private static final Map imageHashes = new HashMap<>(); public static void main(String[] args) throws Exception { Files.createDirectories(imagesDir); @@ -196,6 +202,32 @@ public class SystemImagesMigrator { // TEMPORARY return "/api/images/system/" + imageKey; } + private static void checkDuplicates() throws IOException { + Files.walk(imagesDir) + .filter(path -> path.toFile().isFile()) + .filter(path -> !path.getFileName().toString().endsWith("json")) + .forEach(imageFile -> { + try { + byte[] data = Files.readAllBytes(imageFile); + String hash = Hashing.sha256().hashBytes(data).toString(); + imageHashes.put(imageFile.getFileName().toString(), hash); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + imageHashes.values().stream() + .distinct() + .forEach(hash -> { + List sameImages = imageHashes.entrySet().stream() + .filter(entry -> entry.getValue().equals(hash)) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + if (sameImages.size() > 1) { + System.err.println("Duplicated images (hash " + hash + "):\n" + String.join("\n", sameImages) + "\n"); + } + }); + } + private static String getText(JsonNode jsonNode, String field) { return Optional.ofNullable(jsonNode.get(field)) .filter(JsonNode::isTextual) diff --git a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java index 26eead0ec7..ee6c7f8b50 100644 --- a/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java +++ b/application/src/test/java/org/thingsboard/server/service/install/InstallScriptsTest.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.install; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; @@ -36,12 +37,19 @@ import org.thingsboard.server.dao.tenant.TenantService; import org.thingsboard.server.dao.usagerecord.ApiLimitService; import org.thingsboard.server.dao.widget.WidgetTypeService; import org.thingsboard.server.dao.widget.WidgetsBundleService; +import org.thingsboard.server.service.install.update.ImagesUpdater; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.UUID; +import java.util.regex.Pattern; +import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -63,6 +71,8 @@ class InstallScriptsTest { OAuth2ConfigTemplateService oAuth2TemplateService; @MockBean ResourceService resourceService; + @MockBean + ImagesUpdater imagesUpdater; @SpyBean InstallScripts installScripts; @@ -116,4 +126,49 @@ class InstallScriptsTest { .containsExactlyInAnyOrderElementsOf(Collections.emptyList()); } + @Test + public void testSystemImageNames() throws IOException { + Path imagesDir = Path.of(installScripts.getDataDir(), InstallScripts.IMAGES_DIR); + Path imageNamesFile = imagesDir.resolve("names.json"); + Map imageNames = JacksonUtil.OBJECT_MAPPER.readValue(imageNamesFile.toFile(), new TypeReference<>() {}); + + assertThat(imageNames.keySet()).containsAll(getSystemImages()); + } + + @Test + public void testReferencedImages() throws IOException { + Path jsonDir = Path.of(installScripts.getDataDir(), InstallScripts.JSON_DIR); + List files = Files.walk(jsonDir) + .filter(path -> path.toFile().isFile()) + .filter(path -> path.getFileName().toString().endsWith(".json")) + .collect(Collectors.toList()); + + Set referencedImages = new HashSet<>(); + Pattern imageUrlPattern = Pattern.compile("/api/images/system/(.+?)\\\\?\""); + for (Path file : files) { + String content = Files.readString(file); + imageUrlPattern.matcher(content).results() + .map(matchResult -> matchResult.group(1)) + .forEach(referencedImages::add); + } + assertThat(getSystemImages()).containsAll(referencedImages); + } + + private List getSystemImages() throws IOException { + String dataDir = installScripts.getDataDir(); + Path imagesDir = Path.of(dataDir, InstallScripts.IMAGES_DIR); + + return Files.list(imagesDir) + .filter(path -> path.toFile().isDirectory()) + .flatMap(dir -> { + try { + return Files.list(dir); + } catch (IOException e) { + throw new RuntimeException(e); + } + }) + .map(path -> path.getFileName().toString()) + .collect(Collectors.toList()); + } + }