Easily add time-based schedules to any entity. The integration uses standard Home Assistant entities and coordinators, stores its settings in editable JSON files, and provides an intuitive visual interface to manage all your time profiles.
CronoStar now features a centralized Admin Dashboard designed for easy management of all your schedules.
There are three ways to add a new CronoStar Controller to your system:
- Centralized Dashboard: Open the editor on any existing CronoStar card and navigate to the Dashboard (Step 0). From here, you can click "New Configuration" to start the wizard for a brand new controller.
- Lovelace Card Wizard: Add a new
custom:cronostar-cardto any Lovelace view. If the card is empty, it will automatically launch the Visual Wizard to help you create a new configuration.
- Config Flow: Go to Settings โ Devices & Services โ Add Integration and search for CronoStar. This will initiate the standard Home Assistant configuration flow to set up a new instance.
- Note: Use the Options Flow (Configure button on an existing entry) to modify parameters of an already created controller.
- Unified Management: The new Dashboard (Step 0) allows you to monitor all active controllers, their status, and their target entities from a single view.
- Improved Setup Flow: Refined the distinction between the Initial Setup (Config Flow) and subsequent adjustments (Options Flow), ensuring a seamless experience regardless of where you start.
- Translation Boost: Full English and Italian support for all new dashboard components and wizard steps.
- English Test Descriptions: Translated all Italian test descriptions and comments to English across the entire frontend test suite (Vitest).
- Standardized Terminology: Unified testing language to follow industry standards ("should return...", "renders...").
- Conditional Chart Loading: Added a toggle button for each controller to show/hide the programming chart. This prevents browser overload by loading heavy graphical components only when needed.
- Permanent Admin View: The compact textual information (Admin Mode) remains always visible for quick status checks.
- Automatic Helper Integration: The dashboard now automatically manages visibility states via dedicated
input_booleanentities.
- Automatic Setup: Handles folder creation and internal configuration.
- Multiple Preset Types: Thermostat, EV Charging, Generic Switch, Temperature, Power, Cover.
- Unified Storage: Profiles stored in
/config/cronostar/profiles/as structured JSON. - Real-time Synchronization: Changes in the UI are immediately reflected in the backend entities.
- Visual Editor: Interactive chart with drag-and-drop support.
- Multi-Point Selection: Select groups of points via Shift+click or selection box.
- Smart Keyboard Controls: Use arrow keys for precise value and time adjustments.
- Responsive Design: Optimized for desktop, tablet, and mobile (touch support).
- Add Points: Left-click on empty space to insert a new point.
- Selection: Click on a point to select it.
- Multiple Selection:
- Ctrl / Cmd + Click: Add/remove individual points.
- Shift + Click: Select a range of points.
- Selection Box: Drag on an empty area to draw a rectangle over points.
- Adjust Values: Drag a point up or down. Selected groups move together.
- Adjust Time: Drag a point left or right to change its scheduled time.
- Delete: Right-click on a point to remove it.
- Alignment: Alt + Left Click aligns selected points to the leftmost value; Alt + Right Click to the rightmost.
- Zoom:
- Horizontal: Mouse wheel (or pinch) while hovering over the X-axis (bottom).
- Vertical: Mouse wheel (or pinch) while hovering over the Y-axis (left).
- Pan: Click and drag on the respective axis to move the view.
- UP / DOWN Arrows: Increase or decrease the value of selected points.
- LEFT / RIGHT Arrows: Move selected points in time (1 min steps, or 30 min with Shift).
- Modifiers:
- Ctrl / Cmd: Fine adjustment (smaller value increments).
- Shift: Snap to integer values (Y-axis) or 30-minute intervals (X-axis).
- Shortcuts:
- Ctrl + Z / Y: Undo / Redo.
- Ctrl + A: Select all points.
- Alt + Q: Insert point halfway between selection and next point.
- Alt + W: Delete currently selected point(s).
- Esc: Deselect all.
- Enter: (If configured) Apply changes immediately.
โโโ __init__.py # Main entry point
โโโ manifest.json # Integration metadata
โโโ services.yaml # Service definitions
โ
โโโ setup/ # Setup modules
โ โโโ __init__.py # Main setup orchestrator
โ โโโ services.py # Service registration
โ โโโ validators.py # Environment validation
โ
โโโ services/ # Service handlers
โ โโโ profile_service.py # Profile CRUD operations
โ
โโโ storage/ # Storage management
โ โโโ storage_manager.py # Profile persistence
โ โโโ settings_manager.py # Global settings
โ
โโโ utils/ # Utilities
โโโ prefix_normalizer.py # Prefix handling
โโโ filename_builder.py # Filename conventions
โโโ error_handler.py # Error management
โโโ core/ # Core modules
โ โโโ CronoStar.js # Main card component
โ โโโ EventBus.js # Event system
โ โโโ CardLifecycle.js # Component lifecycle
โ
โโโ managers/ # Feature managers
โโโ StateManager.js # Schedule state
โโโ SelectionManager.js # Point selection
โโโ ProfileManager.js # Profile operations
โโโ ChartManager.js # Chart visualization
- Open HACS โ Integrations.
- Click โฎ โ Custom repositories.
- Add
https://github.com/FoliniC/cronostar. - Category: Integration.
- Download and Restart Home Assistant.
- Go to Settings โ Devices & Services โ Add Integration โ search for "CronoStar".
- Click Submit to install the global component.
Add the card to any dashboard and use the Visual Wizard:
type: custom:cronostar-cardThe wizard will guide you through selecting a preset, setting a global_prefix, and choosing a target_entity.
| Preset | Use Case | Range | Unit |
|---|---|---|---|
| ๐ก๏ธ Thermostat | Climate control | 15-30 | ยฐC |
| ๐ EV Charging | Car charging power | 0-8 | kW |
| โก Generic kWh | Energy limits | 0-7 | kWh |
| ๐ก๏ธ Generic Temperature | General sensors | 0-40 | ยฐC |
| ๐ก Generic Switch | On/Off scheduling | 0-1 | - |
| ๐ช Cover | Blind/Shutter control | 0-100 | % |
| Option | Description |
|---|---|
preset |
Type of scheduler (e.g., thermostat). |
global_prefix |
Unique prefix for helpers (e.g., cronostar_living_). |
target_entity |
The entity to control (climate, number, switch, cover). |
| Option | Default | Description |
|---|---|---|
title |
preset name | Custom card title. |
enabled_entity |
null | switch or input_boolean to enable/disable the schedule application. |
profiles_select_entity |
null | select or input_select to switch between profiles. |
min_value |
preset default | Minimum chart value. |
max_value |
preset default | Maximum chart value. |
step_value |
preset default | Increment step. |
allow_max_value |
false |
Enable symbolic "Max" value. |
cronostar.apply_now: Apply current profile values immediately.cronostar.save_profile: Save schedule to JSON with metadata.cronostar.load_profile: Retrieve profile data from storage.cronostar.add_profile/delete_profile: Manage profile files.
- Profiles:
/config/cronostar/profiles/(JSON) - Settings:
/config/cronostar/settings.json(JSON)
-
Remove from Devices & Services:
- Go to Settings โ Devices & Services.
- Select the CronoStar integration.
- Click the three dots (โฎ) next to the integration entry and select Delete.
- Repeat for all CronoStar entries (Component and Controllers).
-
Remove from HACS:
- Go to HACS โ Integrations.
- Find CronoStar.
- Click the three dots (โฎ) and select Remove.
- Restart Home Assistant.
-
Cleanup (Optional):
- You can manually delete the storage folder if you want to remove all saved profiles:
/config/cronostar/
- You can manually delete the storage folder if you want to remove all saved profiles:
To prevent cache confusion and version mismatch, the following deployment rules are strictly enforced for the production environment:
- Single Source of Truth (Frontend): All .js files must be deployed EXCLUSIVELY to /config/www/cronostar_card/.
- Public URL: The card is served from http://homeassistant.local:8123/local/cronostar_card/cronostar-card.js.
- Backend Separation: No .js files should reside within the custom_components/cronostar/www/ folder on the production server. This ensures Home Assistant doesn't serve old/duplicated versions of the frontend.
- Workflow:
- Build frontend in cronostar_card/ (npm run build).
- Copy output to /config/www/cronostar_card/.
- Restart Home Assistant.
- Perform Hard Refresh (Ctrl+F5) in the browser.
- ๐ Report Issues
- ๐ฌ Discussions
Made with โค๏ธ for Home Assistant


