mirror of
https://github.com/home-assistant/frontend.git
synced 2025-12-24 12:49:19 +00:00
Add demo data back
This commit is contained in:
279
demo_data/state_data.js
Executable file
279
demo_data/state_data.js
Executable file
@@ -0,0 +1,279 @@
|
||||
function getRandomTime() {
|
||||
const ts = new Date(new Date().getTime() - (Math.random() * 80 * 60 * 1000));
|
||||
return ts.toISOString();
|
||||
}
|
||||
|
||||
const entities = [];
|
||||
|
||||
function addEntity(entityId, state, attributes = {}) {
|
||||
entities.push({
|
||||
state,
|
||||
attributes,
|
||||
entity_id: entityId,
|
||||
last_changed: getRandomTime(),
|
||||
last_updated: getRandomTime(),
|
||||
});
|
||||
}
|
||||
|
||||
let groupOrder = 0;
|
||||
|
||||
function addGroup(objectId, state, entityIds, name, view) {
|
||||
groupOrder++;
|
||||
|
||||
const attributes = {
|
||||
entity_id: entityIds,
|
||||
order: groupOrder,
|
||||
};
|
||||
|
||||
if (name) {
|
||||
attributes.friendly_name = name;
|
||||
}
|
||||
if (view) {
|
||||
attributes.view = view;
|
||||
attributes.hidden = true;
|
||||
}
|
||||
addEntity(`group.${objectId}`, state, attributes);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------
|
||||
// HOME ASSISTANT
|
||||
// ---------------------------------------------------
|
||||
addEntity('a.demo_mode', 'enabled');
|
||||
|
||||
addEntity('configurator.philips_hue', 'configure', {
|
||||
configure_id: '4415244496-1',
|
||||
description: 'Press the button on the bridge to register Philips Hue with Home Assistant.',
|
||||
description_image: '/demo/images/config_philips_hue.jpg',
|
||||
fields: [],
|
||||
submit_caption: 'I have pressed the button',
|
||||
friendly_name: 'Philips Hue',
|
||||
});
|
||||
|
||||
// ---------------------------------------------------
|
||||
// VIEWS
|
||||
// ---------------------------------------------------
|
||||
|
||||
addGroup(
|
||||
'default_view', 'on', [
|
||||
'a.demo_mode',
|
||||
'sensor.humidity',
|
||||
'sensor.temperature',
|
||||
'device_tracker.paulus',
|
||||
'device_tracker.anne_therese',
|
||||
'configurator.philips_hue',
|
||||
'group.cooking',
|
||||
'group.general',
|
||||
'group.rooms',
|
||||
'camera.living_room',
|
||||
'media_player.living_room',
|
||||
'scene.romantic',
|
||||
'scene.good_morning',
|
||||
'script.water_lawn',
|
||||
], 'Main', true);
|
||||
|
||||
addGroup(
|
||||
'rooms_view', 'on', [
|
||||
'group.living_room',
|
||||
'group.bedroom',
|
||||
], 'Rooms', true);
|
||||
|
||||
addGroup('rooms', 'on', ['group.living_room', 'group.bedroom'], 'Rooms');
|
||||
|
||||
// ---------------------------------------------------
|
||||
// DEVICE TRACKER + ZONES
|
||||
// ---------------------------------------------------
|
||||
|
||||
addEntity('device_tracker.anne_therese', 'school', {
|
||||
entity_picture: 'https://graph.facebook.com/621994601/picture',
|
||||
friendly_name: 'Anne Therese',
|
||||
latitude: 32.879898,
|
||||
longitude: -117.236776,
|
||||
gps_accuracy: 250,
|
||||
battery: 76,
|
||||
});
|
||||
|
||||
addEntity('device_tracker.paulus', 'not_home', {
|
||||
entity_picture: 'https://graph.facebook.com/297400035/picture',
|
||||
friendly_name: 'Paulus',
|
||||
gps_accuracy: 75,
|
||||
latitude: 32.892950,
|
||||
longitude: -117.203431,
|
||||
battery: 56,
|
||||
});
|
||||
|
||||
addEntity('zone.school', 'zoning', {
|
||||
radius: 250,
|
||||
latitude: 32.880834,
|
||||
longitude: -117.237556,
|
||||
icon: 'mdi:library',
|
||||
hidden: true,
|
||||
});
|
||||
|
||||
addEntity('zone.work', 'zoning', {
|
||||
radius: 250,
|
||||
latitude: 32.896844,
|
||||
longitude: -117.202204,
|
||||
icon: 'mdi:worker',
|
||||
hidden: true,
|
||||
});
|
||||
|
||||
addEntity('zone.home', 'zoning', {
|
||||
radius: 100,
|
||||
latitude: 32.873708,
|
||||
longitude: -117.226590,
|
||||
icon: 'mdi:home',
|
||||
hidden: true,
|
||||
});
|
||||
|
||||
// ---------------------------------------------------
|
||||
// GENERAL
|
||||
// ---------------------------------------------------
|
||||
addGroup('general', 'on', [
|
||||
'alarm_control_panel.home',
|
||||
'garage_door.garage_door',
|
||||
'lock.kitchen_door',
|
||||
'thermostat.nest',
|
||||
'camera.living_room',
|
||||
]);
|
||||
|
||||
addEntity('camera.living_room', 'idle', {
|
||||
entity_picture: '/demo/webcam.jpg?',
|
||||
});
|
||||
|
||||
addEntity('garage_door.garage_door', 'open', {
|
||||
friendly_name: 'Garage Door',
|
||||
});
|
||||
|
||||
addEntity('alarm_control_panel.home', 'armed_home', {
|
||||
friendly_name: 'Alarm',
|
||||
code_format: '^\\d{4}',
|
||||
});
|
||||
|
||||
addEntity('lock.kitchen_door', 'open', {
|
||||
friendly_name: 'Kitchen Door',
|
||||
});
|
||||
|
||||
// ---------------------------------------------------
|
||||
// PRESETS
|
||||
// ---------------------------------------------------
|
||||
|
||||
addEntity('script.water_lawn', 'off', {
|
||||
friendly_name: 'Water Lawn',
|
||||
});
|
||||
addEntity('scene.romantic', 'scening', {
|
||||
friendly_name: 'Romantic',
|
||||
});
|
||||
// addEntity('scene.good_morning', 'scening', {
|
||||
// friendly_name: 'Good Morning',
|
||||
// });
|
||||
|
||||
// ---------------------------------------------------
|
||||
// LIVING ROOM
|
||||
// ---------------------------------------------------
|
||||
|
||||
addGroup(
|
||||
'living_room', 'on',
|
||||
[
|
||||
'light.table_lamp',
|
||||
'light.ceiling',
|
||||
'light.tv_back_light',
|
||||
'switch.ac',
|
||||
'media_player.living_room',
|
||||
],
|
||||
'Living Room'
|
||||
);
|
||||
|
||||
addEntity('light.tv_back_light', 'off', {
|
||||
friendly_name: 'TV Back Light',
|
||||
});
|
||||
addEntity('light.ceiling', 'on', {
|
||||
friendly_name: 'Ceiling Lights',
|
||||
brightness: 200,
|
||||
rgb_color: [255, 116, 155],
|
||||
});
|
||||
addEntity('light.table_lamp', 'on', {
|
||||
brightness: 200,
|
||||
rgb_color: [150, 212, 94],
|
||||
friendly_name: 'Table Lamp',
|
||||
});
|
||||
addEntity('switch.ac', 'on', {
|
||||
friendly_name: 'AC',
|
||||
icon: 'mdi:air-conditioner',
|
||||
});
|
||||
addEntity('media_player.living_room', 'playing', {
|
||||
entity_picture: '/demo/images/thrones.jpg',
|
||||
friendly_name: 'Chromecast',
|
||||
supported_media_commands: 509,
|
||||
media_content_type: 'tvshow',
|
||||
media_title: 'The Dance of Dragons',
|
||||
media_series_title: 'Game of Thrones',
|
||||
media_season: 5,
|
||||
media_episode: '09',
|
||||
app_name: 'HBO Now',
|
||||
});
|
||||
|
||||
// ---------------------------------------------------
|
||||
// BEDROOM
|
||||
// ---------------------------------------------------
|
||||
|
||||
addGroup(
|
||||
'bedroom', 'off',
|
||||
[
|
||||
'light.bed_light',
|
||||
'switch.decorative_lights',
|
||||
'rollershutter.bedroom_window',
|
||||
],
|
||||
'Bedroom'
|
||||
);
|
||||
|
||||
addEntity('switch.decorative_lights', 'off', {
|
||||
friendly_name: 'Decorative Lights',
|
||||
});
|
||||
addEntity('light.bed_light', 'off', {
|
||||
friendly_name: 'Bed Light',
|
||||
});
|
||||
addEntity('rollershutter.bedroom_window', 'closed', {
|
||||
friendly_name: 'Window',
|
||||
current_position: 0,
|
||||
});
|
||||
|
||||
// ---------------------------------------------------
|
||||
// SENSORS
|
||||
// ---------------------------------------------------
|
||||
|
||||
addEntity('sensor.temperature', '15.6', {
|
||||
unit_of_measurement: '\u00b0C',
|
||||
friendly_name: 'Temperature',
|
||||
});
|
||||
addEntity('sensor.humidity', '54', {
|
||||
unit_of_measurement: '%',
|
||||
friendly_name: 'Humidity',
|
||||
});
|
||||
|
||||
addEntity('thermostat.nest', '23', {
|
||||
away_mode: 'off',
|
||||
temperature: '21',
|
||||
current_temperature: '18',
|
||||
unit_of_measurement: '\u00b0C',
|
||||
friendly_name: 'Nest',
|
||||
});
|
||||
|
||||
// ---------------------------------------------------
|
||||
// COOKING AUTOMATION
|
||||
// ---------------------------------------------------
|
||||
addEntity('input_select.cook_today', 'Paulus', {
|
||||
options: ['Paulus', 'Anne Therese'],
|
||||
icon: 'mdi:panda',
|
||||
});
|
||||
|
||||
addEntity('input_boolean.notify_cook', 'on', {
|
||||
icon: 'mdi:alarm',
|
||||
friendly_name: 'Notify Cook',
|
||||
});
|
||||
|
||||
addGroup(
|
||||
'cooking', 'unknown',
|
||||
['input_select.cook_today', 'input_boolean.notify_cook']
|
||||
);
|
||||
|
||||
export default entities;
|
||||
Reference in New Issue
Block a user