{ "meta": { "code": "en", "name": "English", "native_name": "English", "locale": "en-GB" }, "translations": { "meta.description": "Local GREE air conditioner controller", "status.connecting": "Connecting…", "status.connected": "Connected", "status.disconnected": "Disconnected", "status.connectionError": "Connection error", "status.online": "Online", "status.offline": "Offline", "controls.language": "Language", "controls.theme": "Theme", "theme.system": "System", "theme.light": "Light", "theme.dark": "Dark", "nav.navigation": "Navigation", "nav.dashboard": "Dashboard", "nav.devices": "Devices", "nav.zones": "Zones", "nav.history": "History", "nav.more": "More", "nav.schedules": "Schedules", "nav.automations": "Automations", "nav.settings": "Settings", "nav.logs": "Events", "nav.logsAndEvents": "Events and logs", "actions.refresh": "Refresh", "actions.discover": "Discover", "actions.discovering": "Searching…", "actions.add": "Add", "actions.show": "Show", "actions.save": "Save", "actions.cancel": "Cancel", "actions.edit": "Edit", "actions.delete": "Delete", "actions.read": "Read", "actions.bind": "Bind", "actions.noChange": "No change", "actions.turnOn": "Turn on", "actions.turnOff": "Turn off", "dashboard.home": "Home", "dashboard.title": "Comfort under control", "dashboard.loading": "Loading devices…", "dashboard.quickControl": "Manual control", "dashboard.summary": "{online} of {total} devices online{active}.", "dashboard.summaryActive": ", {count} running", "dashboard.empty": "No devices. Start discovery or add a device manually.", "dashboard.metricOnline": "Online", "dashboard.metricActive": "Active", "dashboard.metricDemand": "Zones requesting", "devices.lan": "LAN network", "devices.addManual": "Add manually", "devices.add": "Add device", "devices.ipAddress": "IP address", "devices.protocol": "Protocol", "devices.keyOptional": "Key (optional)", "devices.keyPlaceholder": "Leave empty for automatic bind", "devices.simulated": "Simulated device", "devices.simulator": "simulator", "devices.power": "Power", "devices.currentTemperature": "Temperature", "common.clickTemperatureToEdit": "Click the temperature to type a value", "common.targetTemperature": "Target temperature", "devices.outdoor": "outside", "devices.quiet": "Quiet", "devices.swing": "Swing", "devices.turbo": "Turbo", "devices.emptyTitle": "No devices", "devices.emptyText": "Use Discover while the controller is on the same LAN.", "devices.readDone": "Device state updated", "devices.bound": "Device bound", "devices.added": "Device added", "devices.disabledZoneTechnicalOnly": "This zone is disabled. Manual control of its unit is available only from the Devices view.", "zones.automation": "Automation", "zones.new": "New zone", "zones.description": "Zones define thermostat logic and sensor configuration. Use Quick thermostats on the Dashboard for current temperature, preset and mode changes.", "zones.hysteresis": "Hysteresis °C", "zones.separateHysteresis": "Set heating and cooling separately", "zones.coolHysteresis": "Cooling hysteresis °C", "zones.heatHysteresis": "Heating hysteresis °C", "zones.source": "Temperature strategy", "zones.greeSensor": "GREE only", "zones.combinedSensor": "GREE + room sensor", "zones.externalSensor": "Room sensor only", "zones.minOn": "Min. ON (s)", "zones.minOff": "Min. OFF (s)", "zones.greeSource": "GREE sensor", "zones.combinedSource": "GREE + room sensor", "zones.externalSource": "room sensor", "zones.measurement": "Control temperature", "zones.demand": "Demand", "zones.emptyTitle": "No zones", "zones.emptyText": "Add a zone to control temperature automatically.", "zones.roomSensorEntity": "Room sensor entity_id", "zones.roomSensorWeight": "Room sensor weight %", "zones.maxDifference": "Max. sensor difference °C", "zones.sensorHelp": "This sensor belongs only to this zone. If it becomes unavailable, the controller automatically falls back to the GREE sensor.", "zones.greeTemp": "GREE", "zones.externalTemp": "Room", "zones.usedSource": "used", "zones.sourceDevice": "GREE", "zones.sourceExternal": "room sensor", "zones.sourceCombined": "combined", "zones.sourceFallback": "GREE fallback", "zones.sourceDiscrepancy": "GREE fallback: sensor mismatch", "zones.sourceUnavailable": "unavailable", "schedules.calendar": "Calendar", "schedules.weekdays": "Weekdays", "schedules.crossMidnight": "Intervals crossing midnight are supported", "schedules.emptyTitle": "No schedules", "schedules.emptyText": "Set a temperature by day and time.", "automations.rules": "Rules", "automations.namePlaceholder": "Emergency cooling", "automations.trigger": "Trigger", "automations.tempAbove": "Temperature above", "automations.tempBelow": "Temperature below", "automations.time": "Time", "automations.measurementDevice": "Measurement device", "automations.thresholdC": "Threshold °C", "automations.action": "Action", "automations.triggerAt": "at {time}", "automations.triggerAbove": "above {temperature}", "automations.triggerBelow": "below {temperature}", "automations.triggerSummary": "Trigger {trigger} · action: {device}", "automations.last": "Last", "automations.emptyTitle": "No automations", "automations.emptyText": "Add a temperature or time rule.", "history.measurements": "Measurements", "history.title": "Climate history", "history.6h": "6 hours", "history.24h": "24 hours", "history.7d": "7 days", "history.30d": "30 days", "history.noData": "No measurements for the selected period", "settings.system": "System", "settings.controller": "Controller", "settings.clientId": "Client identifier", "settings.pollInterval": "Poll interval (s)", "settings.zoneInterval": "Zone interval (s)", "settings.broadcast": "Broadcast address", "settings.discoveryTimeout": "Discovery timeout (ms)", "settings.simulationMode": "Simulation mode", "settings.haTokenKeep": "Leave empty to keep the saved token", "settings.haTokenSaved": "Token saved — leave empty to keep it", "settings.haLongLivedToken": "Long-Lived Access Token", "settings.defaultEntity": "Connection test entity_id", "settings.defaultEntityHint": "This entity is used by the Home Assistant connection test when no other entity is specified. It is not automatically used as a zone temperature source.", "settings.testHa": "Test HA", "settings.systemState": "System status", "settings.version": "Version", "settings.uptime": "Uptime", "settings.apiAuth": "API authentication", "settings.enabled": "enabled", "settings.disabled": "disabled", "logs.diagnostics": "Diagnostics", "logs.emptyTitle": "No events", "logs.emptyText": "The event log is empty.", "common.name": "Name", "common.zone": "Zone", "common.device": "Device", "common.mode": "Mode", "common.target": "Target", "common.targetC": "Target °C", "common.temperature": "Temperature", "common.temperatureC": "Temperature °C", "common.schedule": "Schedule", "common.automation": "Automation", "common.enabled": "Enabled", "common.disabled": "Disabled", "common.active": "Active", "common.from": "From", "common.to": "To", "common.power": "Power", "common.on": "ON", "common.off": "OFF", "common.noDevice": "No device", "common.noZone": "No zone", "common.cooldown": "Cooldown", "common.cooldownSeconds": "Cooldown (s)", "common.removed": "Removed", "common.updated": "Data refreshed", "common.saved": "Saved", "placeholder.livingRoom": "Living room", "placeholder.night": "Night", "mode.auto": "Auto", "mode.cool": "Cooling", "mode.dry": "Dry", "mode.fan": "Fan", "mode.heat": "Heating", "fan.auto": "Auto", "fan.low": "Low", "fan.mediumLow": "Medium-low", "fan.medium": "Medium", "fan.mediumHigh": "Medium-high", "fan.high": "High", "auth.required": "Authentication required", "auth.token": "Access token", "auth.connect": "Connect", "auth.invalid": "Invalid access token", "error.http": "HTTP error {status}", "confirm.delete": "Delete {label}?", "label.device": "device", "label.zone": "zone", "label.schedule": "schedule", "label.automation": "automation", "toast.found": "Found: {count}", "toast.haTemperature": "Home Assistant: {temperature}°C", "day.1": "Mon", "day.2": "Tue", "day.3": "Wed", "day.4": "Thu", "day.5": "Fri", "day.6": "Sat", "day.7": "Sun", "settings.haSensorInput": "Home Assistant sensor input", "settings.haSensorInputHint": "Optional. Used only when a room zone reads an external Home Assistant temperature sensor.", "settings.haIntegrationAccess": "Home Assistant integration access", "settings.haIntegrationHint": "Create a controller token and paste it into the GREE Controller integration in Home Assistant.", "settings.newToken": "Create new token", "settings.noTokens": "No integration tokens", "settings.noTokensHint": "Create a token before adding GREE Controller to Home Assistant.", "settings.tokenCreated": "Token created", "settings.tokenCreatedHint": "Copy this token now. It will not be shown again.", "settings.created": "Created", "actions.copy": "Copy", "actions.revoke": "Revoke", "actions.done": "Done", "confirm.revokeToken": "Revoke this Home Assistant access token?", "toast.tokenCreated": "Home Assistant access token created", "toast.tokenCopied": "Token copied", "toast.tokenRevoked": "Token revoked", "devices.protocolAuto": "Auto (V1 + V2)", "devices.rename": "Name / protocol", "devices.protocolChangeHint": "Changing protocol clears the saved device key and performs a new bind on the next request.", "discovery.title": "Discover GREE devices", "discovery.help": "Auto searches both AES-ECB and AES-GCM devices. Multiple passes improve discovery when several Wi-Fi modules answer the same broadcast.", "discovery.protocol": "Discovery protocol", "discovery.passes": "Scan passes", "discovery.timeout": "Total scan time (ms)", "zones.quickHint": "Quick target and mode control", "actions.later": "Later", "discovery.nameDevices": "Name discovered devices", "discovery.nameDevicesHelp": "Give each new unit a friendly room name. The technical model and MAC remain available in diagnostics.", "dashboard.quickThermostats": "Thermostats", "common.unavailable": "Unavailable", "mode.off": "Off", "house.seasonMode": "Home climate mode", "house.smartThermostat": "Smart thermostat", "house.setpointStrategy": "Heating or cooling selects the automation direction. After resume, a zone with no active schedule, manual target, temporary session or other explicit control stays OFF. “Do not control” leaves devices untouched.", "house.outdoor": "Outdoor", "house.modeUpdated": "Home climate mode updated", "zones.modePolicy": "Mode policy", "zones.modePolicyHint": "If this zone should use the global Heating/Cooling mode selected in GREE Controller, leave “Follow global mode” unchanged. “Cooling only” or “Heating only” forces a fixed mode only for this zone.", "zones.followHouse": "Follow global mode", "zones.followHouseShort": "Global", "zones.globalModeUnavailable": "Select global Heating or Cooling first", "zones.profileTemperatures": "Comfort / sleep / away temperatures", "zones.minAdjust": "Minimum adjustment interval (s)", "zones.standbyOffset": "Standby setpoint offset °C", "zones.smartFan": "Smart fan assist", "zones.deviceTarget": "AC target", "zones.overrideUntil": "Manual until", "zones.scheduleControl": "Schedule control", "zones.manualNoBoundary": "Manual · no next transition", "zones.requesting": "Demand active", "zones.satisfied": "Target reached", "zones.quickHintSmart": "Quick changes last until the next schedule transition; without a schedule they stay active.", "preset.auto": "Auto", "preset.comfort": "Comfort", "preset.sleep": "Sleep", "preset.away": "Away", "preset.custom": "Custom", "schedules.quickSetup": "Quick schedule setup", "schedules.quickSetupHint": "Choose a zone and a ready-made daily rhythm. You can edit every generated entry afterwards.", "schedules.templateFamily": "Family", "schedules.templateChild": "Child room", "schedules.templateBedroom": "Bedroom", "schedules.templateWorkday": "Workday", "schedules.templateAlways": "Always comfort", "schedules.chooseZone": "Choose a zone first", "schedules.templateApplied": "Schedule preset applied", "schedules.profile": "Profile", "settings.outdoorEntity": "Outdoor temperature entity_id", "settings.outdoorAssist": "Use outdoor temperature as smart-control assist", "settings.allowInvalidTls": "Allow invalid/self-signed HTTPS certificate", "settings.allowInvalidTlsHint": "Use only for a trusted local Home Assistant server, for example https://192.168.50.25.", "zones.sleepNow": "Sleep", "house.autoAll": "Auto schedule", "house.comfortAll": "Comfort all", "house.sleepAll": "Sleep all", "house.awayAll": "Away all", "house.presetUpdated": "Home preset updated", "schedules.replaceConfirm": "Replace the current schedule for this zone with the selected preset? You can edit every generated entry afterwards.", "automations.smartHintTitle": "Use thermostat presets for daily comfort", "automations.smartHint": "Schedules and zone presets handle normal heating/cooling automatically. Keep automations for special exceptions so they do not fight the thermostat.", "history.allZones": "All zones", "history.temperatureOverview": "Temperature overview", "history.temperatureOverviewHint": "GREE, room sensor, control temperature, targets and outdoor temperature.", "history.operationOverview": "Targets and operation", "history.operationOverviewHint": "Zone targets, compressor demand, power and fan activity over the same period.", "history.greeSensor": "GREE sensor", "history.roomSensor": "Room sensor", "history.controlTemperature": "Control temperature", "history.comfortTarget": "Comfort target", "history.deviceSetpoint": "Device setpoint", "history.outdoorTemperature": "Outdoor temperature", "history.fanSpeed": "Fan speed", "history.demand": "Demand", "history.power": "Power", "history.targetShort": "Target", "history.sensor": "Indoor unit", "history.homeAssistant": "Home Assistant", "history.assist": "Outdoor assist", "history.tabOverview": "Overview", "history.tabZones": "Zones", "history.tabDevices": "GREE devices", "history.tabSensors": "HA sensors", "history.tabCustom": "Custom chart", "history.overviewHint": "All rooms, units and available outdoor measurements in one place.", "history.customHint": "Compose your own chart from GREE, zone and Home Assistant data.", "history.allDevices": "All GREE devices", "history.allSensors": "All HA sensors", "history.haSensor": "HA sensor", "history.deviceSamples": "GREE samples", "history.zoneSamples": "Zone samples", "history.haSamples": "HA samples", "history.greeHistory": "Device polling history", "history.zoneHistory": "Thermostat history", "history.haHistory": "External sensor history", "history.allGreeIndoor": "All GREE indoor temperatures", "history.allGreeIndoorHint": "Indoor temperature reported by every GREE unit, independent of zones.", "history.allOutdoor": "Outdoor temperatures", "history.allOutdoorHint": "Outdoor values reported by GREE units plus the optional Home Assistant outdoor sensor.", "history.allZoneControl": "All zone control temperatures", "history.allZoneControlHint": "The temperature actually used by the thermostat in every zone.", "history.greeOutdoor": "GREE outdoor", "history.deviceIndoor": "GREE indoor temperature", "history.deviceIndoorHint": "Indoor sensor history for the selected unit or all units.", "history.deviceOutdoor": "GREE outdoor temperature", "history.deviceOutdoorHint": "Outdoor temperature reported by compatible GREE units. Units without this sensor are omitted.", "history.deviceTargets": "GREE target temperatures", "history.deviceTargetsHint": "Setpoints sent to each GREE unit over time.", "history.deviceTarget": "Device target", "history.indoorTemperature": "Indoor temperature", "history.haSensors": "Home Assistant temperatures", "history.haSensorsHint": "Room and outdoor temperature entities read from Home Assistant.", "history.customTitle": "Chart composer", "history.customDescription": "Mix any GREE, zone or Home Assistant temperature series. Save it locally or copy a shareable URL.", "history.addSeries": "Add series", "history.noCustomSeries": "Add at least one series to the chart.", "history.chartName": "Chart name", "history.copyLink": "Copy link", "history.series": "series", "history.noSavedCharts": "No saved custom charts yet.", "history.customChart": "Custom climate chart", "history.customChartHint": "Your selected data sources on one timeline.", "history.chartSaved": "Custom chart saved", "history.linkCopied": "Chart link copied", "toast.successTitle": "Done", "toast.errorTitle": "Something went wrong", "plan.eyebrow": "Control plan", "plan.title": "What happens next", "plan.house": "Whole house", "plan.houseSummary": "{zones} enabled zones · {demand} requesting action", "plan.noEvents": "No scheduled changes in the next days", "plan.loading": "Loading current automation plan…", "plan.rules": "Extra automations", "plan.ruleCount": "{count} active rules", "plan.event": "Change", "plan.groupSummary": "Group zones: {zones} · requesting action: {demand}", "plan.groupOff": "Group off — group units are powered down and group ownership is released.", "zones.enable": "Enable zone", "zones.disable": "Disable zone", "history.90d": "90 days", "history.1y": "1 year", "settings.metrics": "Metrics storage", "settings.retentionDays": "Local retention (days)", "settings.compaction": "Compact old metrics", "settings.compactionHint": "SQLite keeps recent data locally and compacts older samples to the resolution used by charts.", "settings.greeCommands": "GREE commands", "settings.greeTraffic": "GREE traffic", "settings.greeTrafficHint": "Live counters of UDP frames received from configured air conditioners since controller startup.", "settings.receivedFramesTotal": "Received frames total", "settings.receivedFramesDevices": "Air conditioners", "settings.suppressBeep": "Try to suppress command beeps", "settings.suppressBeepHint": "Only changed properties are sent. Buzzer suppression is also requested when supported by the unit firmware.", "settings.influx": "Long-term InfluxDB history", "settings.influxHint": "Optional archive for older history. InfluxDB 1.x and 2.x are supported. Samples older than the handoff age are removed from SQLite only after a successful archive write.", "settings.influxEnabled": "Enable InfluxDB archive", "settings.influxVersion": "InfluxDB version", "settings.influxThreshold": "Use archive for history older than (days)", "settings.influxDatabase": "Database", "settings.influxUsername": "Username", "settings.influxPassword": "Password", "settings.influxOrg": "Organization", "settings.influxBucket": "Bucket", "settings.influxToken": "Token", "settings.secretKeep": "Leave empty to keep saved secret", "settings.secretSaved": "Secret already saved — leave empty to keep it", "settings.debug": "On-screen debug", "settings.debugOverlay": "Show debug window on every page", "settings.debugGreeFrames": "Include GREE protocol frames", "settings.backup": "Configuration backup", "settings.backupHint": "Export/import application configuration. Exported files can contain GREE device keys plus Home Assistant, InfluxDB and notification secrets; metrics and API access tokens are not included.", "settings.export": "Export settings", "settings.import": "Import settings", "settings.importConfirm": "Replace the current application configuration with this file? Existing metrics and API access tokens will be kept.", "debug.title": "Live debug", "debug.clear": "Clear", "debug.apiAndGree": "Requests, events + GREE frames", "debug.apiOnly": "Requests and application events", "debug.empty": "No debug events yet.", "toast.exported": "Configuration exported", "toast.imported": "Configuration imported", "nav.simulation": "Simulator", "simulation.eyebrow": "Simulator", "simulation.title": "Automation simulator", "simulation.description": "Live preview of the thermostat and automation logic. The flow board shows how sensor readings, schedules, night mode and thermostat decisions become commands sent to each GREE unit.", "simulation.timelineEyebrow": "Timeline", "simulation.timelineTitle": "What will happen next", "simulation.zoneEyebrow": "Zones", "simulation.zoneTitle": "Thermostat decision flow", "simulation.rulesEyebrow": "Rules", "simulation.rulesTitle": "Automation rules", "simulation.houseMode": "House mode", "simulation.strategy": "Strategy: {strategy}", "simulation.outdoor": "Outdoor", "simulation.generatedAt": "Generated: {time}", "simulation.activeZones": "Active zones", "simulation.requestingZones": "Zones with demand: {count}", "simulation.rulesLabel": "Active rules", "simulation.eventsQueued": "Queued events: {count}", "simulation.house": "House", "simulation.stepRoom": "Room reading", "simulation.stepTarget": "Target", "simulation.stepDecision": "Decision", "simulation.stepCommand": "Unit command", "simulation.hysteresis": "Hysteresis {value}°C", "simulation.deviceSetpoint": "Device setpoint", "simulation.quietIfSupported": "If supported", "simulation.manual": "Manual", "simulation.noCommand": "No command preview", "simulation.noActionPreview": "No direct action payload", "simulation.ruleOnDevice": "Action target: {device}", "simulation.nextReady": "Ready again", "simulation.noRules": "No active automation rules.", "simulation.waitingForData": "Waiting for data", "simulation.stateDemand": "Demand", "simulation.stateSatisfied": "Satisfied", "simulation.reasonDisabled": "Zone is disabled, so the thermostat does not send control commands.", "simulation.reasonHouseOff": "House “Do not control” leaves this zone under manual control and sends no commands to the air conditioner.", "simulation.reasonWaiting": "The simulator is waiting for a valid room temperature and target.", "simulation.reasonDemand": "Room needs {mode}. Thermostat compares the reading with the target {target}°C using hysteresis {hysteresis}°C.", "simulation.reasonSatisfied": "Target is reached. The thermostat moves the unit into standby around {standby}°C to keep the room quiet and stable.", "simulation.activeTargetLabel": "Active target before device rounding: {value}°C", "simulation.standbyTargetLabel": "Standby target before device rounding: {value}°C", "common.fan": "Fan", "devices.nameProtocol": "Name / protocol", "history.range": "Range", "settings.controllerHint": "Runtime and LAN discovery settings.", "settings.nightMode": "Night mode", "settings.nightModeHint": "During selected hours the thermostat limits fan speed and can request Quiet plus native Sleep on compatible units.", "settings.nightModeEnabled": "Enable night mode", "settings.nightStart": "Start", "settings.nightEnd": "End", "settings.nightMaxFan": "Maximum fan speed", "settings.nightForceQuiet": "Use Quiet when supported", "settings.metricsAndLogs": "Metrics and logs", "settings.eventRetentionDays": "Event/log retention (days)", "settings.debugHint": "Live diagnostics displayed on every application page.", "settings.sensorAliases": "Sensor aliases", "settings.sensorAliasesHint": "Friendly names are used only in charts and selectors. Home Assistant requests always use the original entity_id.", "settings.aliasPlaceholder": "Friendly name", "settings.noSensorAliases": "No Home Assistant sensors are known yet. Add an entity_id below.", "settings.aliasRequired": "Enter both entity_id and alias.", "settings.saveHint": "Save changes made in the blocks above.", "logs.retention": "Log retention", "logs.retentionHint": "Old event rows are removed automatically during maintenance.", "logs.keepFor": "Keep for", "logs.retentionSaved": "Log retention set to {days} days.", "simulation.flowEyebrow": "Live flow", "simulation.flowTitle": "Automation flow board", "simulation.legendInput": "Input", "simulation.legendLogic": "Logic", "simulation.legendAction": "Action", "simulation.fanMax": "fan max", "simulation.globalInput": "Global input", "simulation.thermostat": "Thermostat", "simulation.callForComfort": "Comfort demand", "simulation.standby": "Quiet standby", "simulation.nextEvent": "Next event", "simulation.noEventShort": "No event", "simulation.schedule": "Schedule", "common.days": "days", "actions.clear": "Clear", "simulation.scheduled": "Scheduled", "settings.nightNativeSleep": "Use native Sleep when supported", "devices.features": "Unit features", "devices.noExtraFeatures": "No additional features detected yet.", "devices.light": "Panel light", "devices.xfan": "X-FAN", "devices.health": "Health", "devices.air": "Air", "devices.sleep": "Sleep", "nav.nightMode": "Night mode", "nav.homeAssistant": "Home Assistant / Sensors", "night.eyebrow": "Comfort", "night.description": "Configure quieter thermostat behavior for sleeping hours without mixing it with application settings.", "night.saveHint": "Save night-mode changes.", "homeAssistant.eyebrow": "Integration", "homeAssistant.description": "Home Assistant connection, thermostat temperature sources, shared Flow inputs, sensor aliases and integration access.", "homeAssistant.saveHint": "Save Home Assistant and sensor changes.", "notifications.title": "Notifications", "notifications.hint": "Send important events or only problems/anomalies.", "notifications.enable": "Enable notifications", "notifications.mode": "Mode", "notifications.problems": "Errors and anomalies only", "notifications.important": "Important events + problems", "notifications.provider": "Provider", "notifications.pushoverToken": "Pushover application token", "notifications.pushoverUser": "Pushover user/group key", "notifications.slackWebhook": "Slack incoming webhook", "notifications.discordWebhook": "Discord webhook", "notifications.cooldown": "Cooldown (s)", "notifications.failureThreshold": "Communication failures before alert", "notifications.targetTimeout": "Target not reached timeout (min)", "notifications.test": "Send test notification", "zones.copyFrom": "Copy thermostat settings from…", "zones.copySettings": "Copy settings", "automations.preset": "Preset…", "automations.presetHot": "High temperature cooling", "automations.presetCold": "Low temperature heating", "automations.presetMorning": "Morning comfort", "automations.presetNightOff": "Night power off", "actions.apply": "Apply", "logs.level": "Level", "logs.category": "Category", "logs.all": "All", "logs.errors": "Errors", "logs.warnings": "Warnings", "logs.integrations": "Integrations", "logs.systemOther": "System/other", "zones.copyDifferent": "Choose a different thermostat profile", "zones.copiedFrom": "Thermostat settings copied from {name}", "house.noControl": "Do not control", "house.powerAllEyebrow": "Global power", "house.powerAllTitle": "All air conditioners", "house.powerAllHint": "Bulk power control for all units. OFF leaves thermostats locally off until you explicitly turn a thermostat, group or the whole house back on.", "house.powerOnAll": "Turn all on", "house.powerOffAll": "Turn all off", "house.powerOnDone": "All thermostats enabled and ON sent to all units", "house.powerOffDone": "All units turned off; thermostats remain locally off", "house.powerPartial": "Could not change power on {count} devices", "preset.manual": "Manual", "nav.groups": "Groups", "groups.eyebrow": "Group control", "groups.dashboardTitle": "Selected air conditioners", "groups.dashboardHint": "Control each group independently: ON activates control of its units, OFF powers the units down and releases group ownership. You can also choose mode, preset, or a custom temperature.", "groups.manage": "Manage groups", "groups.new": "New group", "groups.description": "Combine thermostat zones such as upstairs and downstairs and control only that set. Turning a group on activates its thermostats; turning it off powers its units down and releases group ownership.", "groups.group": "Group", "groups.namePlaceholder": "Upstairs", "groups.members": "Group members", "groups.membersHint": "Groups are built from thermostat zones. ON takes control of group members; OFF powers their units down without leaving a group ownership lock.", "groups.noMembers": "No members", "groups.mixed": "Mixed", "groups.followHouse": "Global mode", "groups.mode": "Mode", "groups.profile": "Profile", "groups.masterOff": "", "groups.memberCount": "{count} zones", "groups.emptyTitle": "No groups yet", "groups.emptyText": "Create a group to control selected air conditioners together.", "groups.partial": "Group updated, but {count} control operations could not be completed.", "groups.controlUpdated": "Group state updated.", "groups.noZones": "Create thermostat zones before creating a group.", "automations.targetType": "Target type", "automations.groupHint": "For a group, Auto means follow the whole-house heating/cooling mode. Group profiles are applied to all member zones.", "simulation.openTab": "Open simulator only in new tab", "simulation.fullscreen": "Full screen", "simulation.exitFullscreen": "Exit full screen", "simulation.viewBy": "View by", "simulation.unitsView": "Individual units", "simulation.groupsView": "Groups", "simulation.show": "Show", "simulation.allUnits": "All units", "simulation.allGroups": "All groups", "groups.chooseMember": "Select at least one thermostat zone.", "zones.configuration": "Zone configuration", "zones.currentStatus": "Current status", "zones.controlOnDashboard": "Current control is available in Quick thermostats on the Dashboard.", "zones.controlNow": "Control", "zones.noGroup": "no group", "zones.coolOnly": "Cooling only", "zones.heatOnly": "Heating only", "zones.manualDeviceControl": "Manual control active", "zones.manualDeviceDescription": "Manual control has priority. Automation, schedules and group control for this zone stay paused until you explicitly choose Resume automation.", "zones.manualDeviceUntil": "Manual control / remote until {time}", "zones.manualDeviceNoBoundary": "Manual control / remote · until resumed", "zones.resumeAutomation": "Resume automation", "zones.localThermostatControl": "Local thermostat", "zones.localThermostatOn": "Local control · on", "zones.localThermostatOff": "Local control · off", "zones.localThermostatOnDescription": "This zone runs locally regardless of whether group-level control is enabled. Sensor, hysteresis, profile and GREE regulation remain active.", "zones.localThermostatOffDescription": "This zone is locally off. After automation is resumed it stays OFF unless a schedule, manual target, temporary session or another explicit control source is active.", "zones.unitPowerLocalHint": "Turns this zone's local thermostat on or off; this is not remote-style or direct device control.", "zones.localPowerUpdated": "Local thermostat state updated", "zones.turnThermostatOn": "Turn thermostat on", "zones.turnThermostatOff": "Turn thermostat off", "zones.waiting": "Waiting", "zones.noMeasurement": "No measurement", "zones.localThermostatOffDescriptionTimed": "This zone is locally off. Automation will resume automatically in {time}. After resuming, the zone stays OFF unless a schedule or another explicit control source is active.", "zones.groupOffDescriptionTimed": "Group “{group}” is off. Automation will resume automatically in {time}. After resuming, the zone stays OFF unless a schedule or another explicit control source is active.", "zones.localThermostatResuming": "Timer elapsed — automation is checking for an active control source…", "zones.resumeNow": "Resume now", "zones.controlOwner": "Control", "zones.ownerAutomation": "Automation", "zones.ownerLocalThermostat": "Local thermostat", "zones.ownerExternal": "Remote / external control", "zones.ownerHaDirect": "HA — direct control", "zones.ownerWebDirect": "Web — direct control", "zones.ownerGlobalOff": "Globally off", "zones.ownerSince": "since", "zones.ownerResume": "until", "zones.lockoutUntil": "lockout until", "settings.haSensorStaleAfterMinutes": "Maximum HA sensor reading age (min)", "settings.haSensorStaleAfterHint": "If the HA sensor is not updated within this time, the reading is treated as stale. The thermostat falls back to the GREE sensor when available.", "zones.quickThermostat": "Quick thermostat", "zones.temporaryTitle": "Temporary mode", "zones.temporaryActive": "Temporary Quick Thermostat active", "zones.temporaryScheduled": "Temporary Quick Thermostat scheduled", "zones.temporaryStop": "Finish and return to automation", "zones.temporaryTarget": "Quick thermostat temperature", "zones.temporaryStartRule": "When to start", "zones.temporaryStartNow": "Immediately", "zones.temporaryStartDelay": "After a delay", "zones.temporaryStartAt": "At a specific date and time", "zones.temporaryStartDelayMinutes": "Start in (min)", "zones.temporaryStartAtDate": "Start at", "zones.temporaryFinishRule": "When to return to automation", "zones.temporaryDuration": "After a duration", "zones.temporaryUntil": "At a specific date and time", "zones.temporaryReached": "When a temperature condition is reached", "zones.temporaryStable": "After a temperature condition stays stable", "zones.temporaryScheduleBoundary": "At the next schedule transition", "zones.temporaryDurationMinutes": "Run time (min)", "zones.temporaryUntilDate": "Finish at", "zones.temporaryCondition": "Condition", "zones.temporaryWithin": "within target ± tolerance", "zones.temporaryAtOrBelow": "temperature ≤ target", "zones.temporaryAtOrAbove": "temperature ≥ target", "zones.temporaryTolerance": "Tolerance °C", "zones.temporaryHoldMinutes": "Condition must hold for (min)", "zones.temporarySafetyLimit": "Safety limit (min, optional)", "zones.temporaryStableHint": "If temperature leaves the condition, the hold countdown resets and starts again after the condition is met again.", "zones.temporaryScheduleHint": "Quick Thermostat will finish at the next change of the active schedule entry for this zone.", "zones.temporaryStart": "Start temporarily", "zones.temporaryUpdate": "Update rules", "zones.temporaryShort": "Timed", "zones.temporaryStartHint": "Run Quick Thermostat temporarily or until a condition is met.", "zones.temporaryOverride": "Temporary · {time}", "zones.temporaryWithinShort": "{target}°C ±{tolerance}°C", "zones.temporaryAtOrBelowShort": "≤ {target}°C · tol. {tolerance}°C", "zones.temporaryAtOrAboveShort": "≥ {target}°C · tol. {tolerance}°C", "zones.temporaryHoldingStatus": "Condition met: {condition}. Stability countdown is running.", "zones.temporaryWaitingStable": "Waiting for continuous condition: {condition}.", "zones.temporaryWaitingReached": "Waiting for condition: {condition}.", "zones.temporaryUntilScheduleStatus": "Until the next schedule transition", "zones.temporaryTimeStatus": "Until automatic return to automation", "zones.temporaryScheduledStatus": "Scheduled start: {time}. Normal automation continues unchanged until then.", "zones.temporaryStartingStatus": "Starting Quick Thermostat…", "zones.temporaryWaitingMaster": "The session is waiting for MASTER to be enabled and is not consuming active runtime.", "zones.temporaryPausedManual": "The session is paused by manual/remote control. Active runtime and condition hold time are not advancing.", "zones.temporaryStopped": "Temporary mode finished — automation resumed control", "zones.temporaryStarted": "Temporary Quick Thermostat started", "zones.temporaryScheduledToast": "Temporary Quick Thermostat has been scheduled", "zones.temporaryInvalidStartAt": "Enter a valid start date and time", "zones.temporaryInvalidUntil": "Enter a valid finish date and time", "zones.temporaryEndAfterStart": "The finish time must be after Quick Thermostat starts", "zones.automationToggleHint": "Enables or disables thermostat automation for this zone. This is not temporary control.", "dashboard.sections": "Dashboard sections", "dashboard.tabMain": "Main", "dashboard.tabThermostats": "Thermostats", "dashboard.tabManual": "Manual control", "dashboard.toolbarWorking": "{active}/{total} running", "notifications.alertTypes": "Alert types", "notifications.alertTypesHint": "Choose which alerts may be delivered. Thresholds above still define when an applicable alert is raised.", "notifications.alertStaleSensor": "Stale Home Assistant sensor readings", "notifications.alertSensorErrors": "Other Home Assistant sensor errors", "notifications.alertCommunication": "Device communication problems", "notifications.alertTargetTimeout": "Target temperature timeout", "notifications.alertAutomation": "Automation errors and conflicts", "notifications.alertControlErrors": "Thermostat and group control errors", "notifications.alertImportantEvents": "Important state changes", "notifications.alertOther": "Other warnings and errors", "notifications.testSent": "Test notification sent", "actions.close": "Close", "actions.remove": "Remove", "plan.strategySetpoint": "Setpoint", "simulation.running": "RUNNING", "simulation.idle": "IDLE", "logs.info": "Info", "logs.days7": "7 days", "logs.days14": "14 days", "logs.days30": "30 days", "logs.days90": "90 days", "logs.days180": "180 days", "logs.days365": "365 days", "history.hoverHint": "Hover or tap for exact values. Drag-select an area to zoom; pinch on mobile. Click legend items to hide or show metrics.", "actions.saving": "Saving…", "actions.retry": "Retry", "auth.connecting": "Connecting…", "confirm.discardChanges": "Discard unsaved changes?", "status.offlineHint": "Live updates are unavailable. Displayed data may be stale.", "validation.required": "This field is required.", "validation.url": "Enter a valid http:// or https:// URL.", "validation.range": "Enter a value from {min} to {max}.", "validation.invalid": "Check this value.", "validation.entityId": "Use a Home Assistant entity_id such as sensor.living_room_temperature.", "validation.fixFields": "Correct the highlighted fields before saving.", "history.legendShow": "Show metric: {name}", "history.legendHide": "Hide metric: {name}", "history.zoomControls": "Chart zoom", "history.zoomOut": "Zoom out", "history.zoomReset": "Reset zoom", "history.zoomIn": "Zoom in", "house.powerOffConfirm": "Turn all air conditioners off? All thermostats will remain locally OFF with no timer. You can later enable an individual thermostat, a group, or the whole house.", "zones.temporaryStarting": "Starting…", "notifications.applicationTokenPlaceholder": "Application token", "notifications.userKeyPlaceholder": "User/group key", "settings.testingHa": "Testing…", "settings.settingsSections": "Settings sections", "settings.applicationSettings": "Application", "settings.greeSettings": "GREE", "settings.applicationRuntime": "Application runtime", "settings.applicationRuntimeHint": "Application-wide behavior that does not change GREE transport or discovery.", "settings.simulationModeHint": "When enabled, a prominent simulation warning is shown throughout the application.", "settings.greeConnection": "GREE connection", "settings.greeConnectionHint": "Controller identity, polling intervals and LAN discovery transport.", "settings.systemStatusTitle": "Controller health", "settings.systemStateHint": "Application process, control engine, live connection and local runtime status.", "settings.controlEngine": "Control engine", "settings.ready": "Ready", "settings.syncing": "Synchronizing", "settings.websocket": "Live connection", "settings.httpBind": "HTTP bind", "settings.database": "Database", "settings.basePath": "Base path", "settings.healthy": "Healthy", "settings.attention": "Check status", "debug.filterAria": "Debug source", "debug.all": "All", "debug.requests": "Requests", "debug.gree": "GREE", "debug.emptyRequests": "No HTTP requests captured yet.", "debug.emptyGree": "No GREE frames captured yet.", "simulation.bannerTitle": "SIMULATION MODE", "simulation.bannerText": "Simulation mode is enabled. Treat current states and results as test data.", "zones.separateHysteresisHint": "Enable independent hysteresis values for heating and cooling. When disabled, one shared value is used.", "groups.customTemperature": "Custom temperature", "groups.customTemperatureHint": "Enter the target temperature for every zone in this group.", "groups.applyCustomTemperatureHint": "Set this temperature as the manual target for the whole group.", "groups.customTemperatureRange": "Group temperature must be between 8 and 30°C.", "groups.activeControl": "Group control", "groups.customOpenHint": "Open a custom temperature. The group changes only after you press Apply.", "zones.ownerGroup": "Group control", "zones.waitingLockout": "Waiting — compressor protection", "zones.blockedByGroup": "Blocked by disabled group: {group}", "zones.waitingStart": "Waiting for the unit to start", "zones.waitingGroup": "Waiting — blocked by group: {groups}", "zones.runningDemand": "Running", "groups.customDraftPending": "Not applied. The group changes profile only after you press Apply.", "zones.waitingOffline": "Waiting — unit offline or communication error", "zones.waitingDeviceDisabled": "Waiting — device is technically disabled", "zones.waitingMode": "Waiting for the unit mode to change", "groups.gateOff": "Group off", "zones.disabledByGroup": "Disabled by group: {groups}", "groups.controlToggle": "Group power", "groups.enableControlFirst": "Turn the group on first.", "settings.compressorProtection": "Compressor protection", "settings.compressorProtectionTime": "Protection time (min)", "settings.compressorProtectionHint": "Recommended: 3 minutes. Starts and Heat/Cool changes requested during protection are queued. Open the full list with the Queue button above Thermostats.", "zones.compressorQueueTitle": "Waiting for compressor protection", "zones.queuedPowerOn": "Queued: power on · {mode} · {temperature}°C", "zones.queuedGlobalPowerOn": "Queued: global unit power on", "zones.queuedModeChange": "Queued: change mode to {mode} · {temperature}°C", "zones.queuedAction": "Queued control task", "zones.compressorQueueUntil": "Earliest execution: {time}", "zones.afterProtection": "after protection ends", "zones.cancelAllQueued": "Cancel all waiting", "zones.queuedCancelled": "Queued task cancelled.", "zones.noQueuedTask": "There is no queued task to cancel.", "zones.queuedCancelledAll": "Cancelled queued tasks: {count}.", "zones.queueCancelledStatus": "Protection task cancelled — waiting for a new command", "zones.queueOverview": "Queue", "zones.queueEyebrow": "Compressor protection", "zones.queueTitle": "Command queue", "zones.queueHint": "Commands waiting for compressor protection to end. You can cancel a single task or clear the whole queue.", "zones.queuePendingLabel": "Waiting tasks", "zones.queueEmptyTitle": "The queue is empty", "zones.queueEmptyText": "There are no commands waiting for compressor protection to end.", "zones.queueReasonProtection": "Compressor protection", "zones.queueSource": "Source: {source}", "zones.queueSourceGlobal": "Global power", "zones.queueRemaining": "Remaining {time}", "zones.queueReady": "Ready to execute", "zones.queueCancelAllConfirm": "Cancel all tasks ({count}) waiting for compressor protection?", "nav.flows": "Flow", "flow.eyebrow": "Visual logic", "flow.new": "New Flow", "flow.infoTitle": "One place for schedules and automations", "flow.infoText": "Build logic from blocks. GREE Controller translates Flow into generated schedules and automations. Generated entries are read-only outside this editor.", "flow.sourceOfTruth": "Flow = source of truth", "flow.blocks": "Blocks", "flow.defaultDescription": "Visual control logic", "flow.compilesAutomatically": "Automatically translated into schedules and automations", "flow.openEditor": "Open editor", "flow.emptyTitle": "No Flows", "flow.emptyText": "Create your first Flow and build the logic from blocks.", "flow.editorEyebrow": "Flow editor", "flow.namePlaceholder": "Flow name / alias", "flow.paletteHint": "Add a block, then connect its output to the next block.", "flow.time": "Time", "flow.sensors": "Sensors", "flow.logic": "Logic", "flow.actions": "Actions", "flow.emptyCanvas": "Start by adding blocks", "flow.emptyCanvasHint": "Put conditions on the left and actions on the right.", "flow.interpretation": "Interpretation", "flow.selectBlock": "Select a block", "flow.selectBlockHint": "Its settings will appear here.", "flow.newDefaultName": "New logic", "flow.notFound": "Flow not found", "flow.connectHere": "Connect here", "flow.startConnection": "Start connection", "flow.allConditions": "All conditions must match", "flow.operator": "Operator", "flow.state": "State", "flow.value": "Value", "flow.andHint": "AND joins multiple branches. All conditions connected upstream of an action must match.", "flow.blockSettings": "Block settings", "flow.noActionsYet": "Add an action to see the interpreted logic.", "flow.always": "Always", "flow.compileCount": "{schedules} schedules · {automations} automations", "flow.nameRequired": "Enter a Flow name / alias", "flow.saved": "Flow saved and translated into executable logic.", "flow.deleteConfirm": "Delete Flow “{name}” together with its generated schedules and automations?", "flow.deleted": "Flow deleted.", "flow.generated": "Generated by Flow", "flow.generatedReadOnly": "Generated by Flow — edit only in the Flow editor", "flow.anyCondition": "Any condition may match", "flow.invertCondition": "Invert condition", "flow.orHint": "OR is true when at least one connected branch matches.", "flow.notHint": "NOT inverts exactly one connected branch.", "flow.and": "and", "flow.or": "or", "flow.not": "not", "flow.node.weekday": "Weekdays", "flow.node.timeRange": "Time range", "flow.node.dateRange": "Date range", "flow.node.outdoorTemperature": "Outdoor temperature", "flow.node.deviceTemperature": "Device temperature", "flow.node.zoneTemperature": "Zone temperature", "flow.node.haState": "HA: state", "flow.node.haNumeric": "HA: numeric value", "flow.node.and": "AND", "flow.node.or": "OR", "flow.node.not": "NOT", "flow.node.thermostat": "Thermostat", "flow.node.greeDevice": "GREE device", "flow.node.group": "Group", "common.yes": "Yes", "common.no": "No", "common.loading": "Loading…", "flow.import": "Import Flow", "flow.export": "Export", "flow.exported": "Flow exported.", "flow.imported": "Flow imported and compiled.", "flow.importFailed": "Flow import failed", "flow.templates": "Presets", "flow.templateLibrary": "Flow preset library", "flow.templatesHint": "Ready-made presets create an editable graph using existing zones, devices and groups.", "flow.templateReplaceConfirm": "Replace the current blocks with this preset?", "flow.dryRun": "Dry-run", "flow.logs": "Logs", "flow.testMode": "Flow diagnostics", "flow.simulationTime": "Simulation date and time", "flow.runSimulation": "Run simulation", "flow.dryRunHint": "Dry-run does not change thermostat, device, group, schedule or automation state.", "flow.simulationOverrides": "Sensor overrides", "flow.simulationOverridesHint": "Leave blank to use the current application or Home Assistant state.", "flow.useLiveValue": "live value", "flow.noSimulationOverrides": "This Flow has no sources that need value overrides.", "flow.runningSimulation": "Simulating…", "flow.simulationFailed": "Simulation failed", "flow.compiledPreview": "Compilation: {schedules} schedules · {automations} automations", "flow.wouldExecute": "Action would execute", "flow.blockedByOwnership": "Blocked by ownership", "flow.conditionFalse": "Condition false", "flow.blockReason": "Block reason", "flow.saveBeforeLogs": "Save the Flow first to view its logs.", "flow.noLogs": "No logs for this Flow.", "flow.logsFailed": "Could not load Flow logs.", "flow.attribute": "Attribute", "flow.houseMode": "House mode", "flow.field": "Field", "flow.node.haAttribute": "HA: attribute", "flow.node.houseMode": "House mode", "flow.node.deviceState": "Device state", "flow.node.zoneState": "Thermostat state", "flow.node.constant": "Test constant", "flow.node.groupState": "Group state", "flow.node.nightMode": "Night mode", "flow.nightModeActive": "active according to app settings", "flow.nightModeHint": "This condition is true while the Night mode configured in the app is currently active. Use NOT to match time outside Night mode.", "flow.node.haAvailable": "HA: availability", "flow.available": "available", "flow.haAvailableHint": "This condition is true only when the Home Assistant entity returns a state other than unknown/unavailable. Connection errors fail closed as false. Useful as a guard before NOT and safety logic.", "flow.deviceOptions": "Advanced GREE options", "flow.deviceOptionsHint": "These fields use the existing DeviceCommand. Fan/quiet/sleep and dry/fan HVAC modes are blocked on a thermostat-assigned device when they would fight the regulator; use the Thermostat action there instead.", "settings.haConnection": "Home Assistant connection", "settings.haConnectionHint": "Server address and credentials used by all Home Assistant features.", "settings.haThermostatSources": "Thermostat temperature sources", "settings.haThermostatSourcesHint": "These settings belong to thermostat and temperature-source logic, not reusable Flow inputs.", "flow.listCount": "{count} Flows", "flow.quickToggleHint": "Enable or disable the Flow without opening the editor", "flow.quickEnabled": "Flow enabled", "flow.quickDisabled": "Flow disabled", "flow.selectAll": "Select all", "flow.clearSelection": "Clear selection", "flow.selectedCount": "Selected: {count}", "flow.node.sharedInput": "Shared input", "flow.sharedInputMissing": "Shared input missing", "flow.sharedInputTitle": "Shared Flow input", "flow.sharedInputEyebrow": "Reusable data", "flow.sharedInputType": "Source type", "flow.sharedInputAdd": "Add input", "flow.sharedInputsTitle": "Shared Flow inputs", "flow.sharedInputsHint": "Define reusable value sources once, then use them in many Flows. Operators and comparison values are configured only in Flow blocks.", "flow.sharedInputsEmpty": "No shared inputs", "flow.sharedInputsEmptyHint": "Add a constant, Home Assistant state, or another shared source for multiple Flows.", "flow.sharedInputNodeHint": "This block uses a central value source. The comparison below belongs only to this Flow.", "flow.sharedInputFlowComparisonHint": "The shared input provides only the value source. Define this Flow's comparison here.", "flow.selectOperator": "Select operator", "flow.sharedInputNodeEmptyHint": "Add a shared input in Home Assistant / Sensors first.", "flow.sharedInputNameRequired": "Enter a shared input name.", "flow.sharedInputDeleteConfirm": "Delete shared input “{name}”?", "flow.sharedInputDeleteUsed": "Input “{name}” is used by {count} Flows. Those conditions will evaluate false after deletion. Delete it anyway?", "flow.templateCategory.comfort": "Comfort", "flow.templateCategory.comfort.hint": "Everyday comfort scenarios based on time, weather and house mode.", "flow.templateCategory.energy": "Energy & cost", "flow.templateCategory.energy.hint": "Reduce consumption during absence, expensive energy periods or high household load.", "flow.templateCategory.safety": "Protection & safety", "flow.templateCategory.safety.hint": "Guards for frost, overheating, humidity and open-window operation.", "flow.templateCategory.night": "Night", "flow.templateCategory.night.hint": "Quieter operation, sleep profiles and bedroom conditions.", "flow.templateCategory.reliability": "Reliability", "flow.templateCategory.reliability.hint": "Flows resilient to unavailable sensors, offline devices and disabled thermostats.", "flow.templateCategory.advanced": "Advanced", "flow.templateCategory.advanced.hint": "Nested AND/OR/NOT logic, multiple rooms and Home Assistant states.", "flow.templateCategory.home_assistant": "Home Assistant / heat sources", "flow.templateCategory.home_assistant.hint": "Coordinate GREE with a gas boiler, external heat source, heating demand and temperatures read from Home Assistant.", "flow.templatesLoadFailed": "Unable to load preset library.", "flow.sharedInputsSettingsLink": "Shared Flow inputs in Home Assistant →", "flow.templateCategories": "Preset categories", "flow.sharedInputTest": "Test HA input", "flow.sharedInputTesting": "Testing…", "flow.sharedInputTestHint": "The test uses the saved Home Assistant connection and does not save this input.", "flow.sharedInputTestEntityRequired": "Enter entity_id before testing.", "flow.sharedInputTestCurrent": "Current value", "flow.sharedInputTestValueRead": "Value read successfully", "flow.sharedInputTestAvailable": "Entity available", "flow.sharedInputTestUnavailable": "Entity unavailable", "flow.sharedInputUsedBy": "Used in {count} Flows", "flow.sharedInputUnused": "Not used in any Flow", "flow.openReferencedFlow": "Open Flow “{name}”", "flow.templateSearch": "Search presets…", "flow.templateSearchLabel": "Search presets", "flow.templateFavorites": "Favorites", "flow.templateRecent": "Recent", "flow.templateNoResults": "No presets match the search.", "flow.templateNoFavorites": "You have no favorite presets yet.", "flow.templateNoRecent": "No preset has been used yet.", "flow.templateFavoriteAdd": "Add to favorites", "flow.templateFavoriteRemove": "Remove from favorites", "flow.templatePreview": "Preset preview", "flow.templatePreviewHint": "Review requirements and the block layout before replacing the current Flow.", "flow.templateUse": "Use preset", "flow.templateRequirements": "Requirements", "flow.templateRequiresHa": "Home Assistant", "flow.templateRequiresZone": "{count} zone(s)", "flow.templateRequiresDevice": "{count} device(s)", "flow.templateRequiresGroup": "{count} group(s)", "flow.templateRequiresShared": "{count} shared input(s)", "flow.templateRequiresEntity": "HA entities configured in the preset", "flow.templateRequirementsReady": "Requirements available", "flow.templateRequirementsMissing": "Missing: {items}", "flow.templateNodesCount": "{count} blocks", "flow.templateEdgesCount": "{count} connections", "flow.templateSelectPreview": "Select a preset to preview it.", "flow.templateCategory.favorites": "Favorites", "flow.templateCategory.recent": "Recent", "flow.enable": "Enable Flow", "flow.disable": "Disable Flow", "flow.logLevelInfo": "Info", "flow.logLevelWarn": "Warning", "flow.logLevelError": "Error", "flow.logKindCreated": "Flow created", "flow.logKindUpdated": "Flow updated", "flow.logKindDeleted": "Flow deleted", "flow.logKindImported": "Flow imported", "flow.logKindDryRun": "Flow test", "flow.logKindConditionError": "Condition error", "flow.logKindActionSuppressed": "Action suppressed", "flow.logKindActionFired": "Action executed", "flow.logKindActionError": "Action error", "flow.logKindBlockedZone": "Blocked by zone", "flow.logKindBlockedManual": "Blocked by manual control", "flow.logKindBlockedThermostat": "Blocked by thermostat", "flow.logKindBlockedTemporary": "Blocked by temporary thermostat", "flow.logKindBlockedThermostatOwner": "Device owned by thermostat", "flow.logKindBlockedOwnership": "Control ownership changed", "flow.logKindConflict": "Automation conflict", "flow.logMessageCreated": "Flow “{name}” was created.", "flow.logMessageUpdated": "Flow “{name}” was updated.", "flow.logMessageDeleted": "Flow “{name}” was deleted.", "flow.logMessageImported": "Flow “{name}” was imported.", "flow.logMessageDryRun": "Flow “{name}” was tested without changing device state.", "flow.logMessageConditionError": "One of the Flow conditions could not be evaluated correctly.", "flow.logMessageActionSuppressed": "The Flow action was suppressed by the current control owner.", "flow.logMessageActionFired": "The Flow action was executed.", "flow.logMessageActionError": "The Flow action failed to execute.", "flow.logMessageBlockedZone": "The Flow action was blocked because the related zone is disabled.", "flow.logMessageBlockedManual": "The Flow action was blocked by manual device control.", "flow.logMessageBlockedThermostat": "The Flow action was blocked by the local thermostat.", "flow.logMessageBlockedTemporary": "The Flow action was blocked by the temporary thermostat.", "flow.logMessageBlockedThermostatOwner": "The Flow action was suppressed because the device is controlled by an enabled thermostat zone.", "flow.logMessageBlockedOwnership": "The Flow action was suppressed because control ownership changed during execution.", "flow.logMessageConflict": "The Flow action was skipped because another automation already claimed the same target.", "flow.nameAliasHint": "This is only the user-facing display name. The technical Flow ID and generated task names remain unchanged.", "flow.sharedInputSourceOnlyHint": "This shared input stores only the value source. Configure the comparison in the Flow block." } }