With 15-minute prices the chart now has one bar per quarter (92/96/100), not hour averages; hourly and static tariffs still draw one bar per hour. Cheap and dear marks come from the kept priceruns result (battery modes on) or the arbitrage verdict's two points (off), not a thirds split. A missing quarter is an empty bar. Removes plan.average_tip (EN/NL). Co-Authored-By: Claude <noreply@anthropic.com>
464 lines
30 KiB
JSON
464 lines
30 KiB
JSON
{
|
|
"groups": {
|
|
"meter": {"name": "Meter", "description": "Where the grid reading comes from."},
|
|
"inverters": {"name": "Inverters and batteries", "description": "The inverters the add-on controls, and your solar."},
|
|
"tariff": {"name": "Tariff and prices", "description": "What you pay and are paid per kWh."},
|
|
"safety": {"name": "Safety limits", "description": "The peak limit, starting and stopping, and the safety stops."},
|
|
"maintenance": {"name": "Maintenance", "description": "The monthly battery cycle and the log."},
|
|
"tuning": {"name": "Control tuning", "description": "For support only, because these were measured on real hardware."}
|
|
},
|
|
"parts": {
|
|
"meter.timing": {"name": "Timing"},
|
|
"inverters.solar": {"name": "Solar"},
|
|
"inverters.modes": {"name": "Battery modes"},
|
|
"tariff.selling": {"name": "Charging and selling on price"},
|
|
"tariff.feed": {"name": "Price feed details"},
|
|
"safety.peak": {"name": "Peak limit", "description": "The add-on aims a little below your limit, to be safe."},
|
|
"safety.start": {"name": "Starting and stopping"},
|
|
"safety.stops": {"name": "Safety stops", "description": "Measured on real hardware, so leave them unchanged."},
|
|
"maintenance.support": {"name": "Support"}
|
|
},
|
|
"fields": {
|
|
"solar": {"name": "Solar inverters", "description": "Each solar inverter's power sensor, which the add-on records but does not use for control."},
|
|
"contract": {"name": "Your contract", "description": "How your supplier prices each kWh you take from the grid."},
|
|
"region": {"name": "Region", "description": "Fills in grid costs, levies and VAT for the year shown, but not yet for Wallonia or Brussels, so check your bill."},
|
|
"fallback": {"name": "Price when the feed is down", "description": "Used when the price source does not answer."},
|
|
"fixed_price": {"name": "Price per kWh, all in", "description": "Energy, supplier costs, grid costs, levies and VAT together: divide c€/kWh from the bill by 100, so 34.512 c€/kWh is 0.34512."},
|
|
"day_price": {"name": "Day price, weekdays 07:00 to 22:00", "description": "All in, as on your bill: divide c€/kWh by 100, so 34.512 c€/kWh is 0.34512."},
|
|
"night_price": {"name": "Night and weekend price", "description": "All in, as on your bill: divide c€/kWh by 100, so 34.512 c€/kWh is 0.34512."},
|
|
"periods": {"name": "Time windows and prices", "description": "One price per kWh for each time window, all in, as on your bill: divide c€/kWh by 100, so 34.512 c€/kWh is 0.34512."}
|
|
},
|
|
"choices": {
|
|
"contract": {"none": "No prices", "fixed": "Fixed price", "daynight": "Day and night", "dynamic": "Dynamic, every 15 minutes", "custom": "Other time windows"},
|
|
"fallback": {"none": "None", "fixed": "One price", "daynight": "Day and night", "custom": "Other time windows"},
|
|
"region": {"flanders": "Flanders, Fluvius Antwerpen", "own": "I enter my own figure"},
|
|
"meter_source": {"off": "One grid power entity", "ha_dsmr": "Import and export entities", "mqtt_p1": "Meter over MQTT", "ha_signed": "One net power entity", "homewizard_local": "HomeWizard meter on the network"},
|
|
"meter_phases": {"1": "1 phase", "3": "3 phases"},
|
|
"shadow_mode": {"auto": "Automatic", "on": "Always on", "off": "Off"},
|
|
"price_provider": {"generic_dayahead": "Day-ahead market price", "custom_formula": "Your own price formula", "manual_csv": "A price file", "price_service": "Your own price service"},
|
|
"log_level": {"trace": "Everything, for support", "debug": "Detailed, to find a problem", "info": "Normal", "warning": "Warnings and errors", "error": "Errors only"},
|
|
"period_days": {"mon-sun": "Every day", "mon-fri": "Monday to Friday", "sat,sun": "Saturday and Sunday", "mon": "Monday", "tue": "Tuesday", "wed": "Wednesday", "thu": "Thursday", "fri": "Friday", "sat": "Saturday", "sun": "Sunday"}
|
|
},
|
|
"applies": {
|
|
"restart": {"name": "Applies after a restart"},
|
|
"now": {"name": "Applies right away"}
|
|
},
|
|
"home": {
|
|
"app": {"name": "Battery add-on"},
|
|
"tabs": {"home": "Home", "batteries": "Batteries", "settings": "Settings", "setup": "Setup", "label": "Screens"},
|
|
"now": {"name": "Now", "description": "Updated every 3 seconds.", "solar": "Solar", "house": "House", "grid": "Grid", "batteries": "Batteries"},
|
|
"plan": {
|
|
"name": "Today's plan",
|
|
"description": "Point at a bar or a block for details, or tap it on a phone.",
|
|
"cheap": "Low price",
|
|
"dear": "High price",
|
|
"estimate": "Estimate",
|
|
"grid": "Charges from the grid",
|
|
"give": "Gives power",
|
|
"cycle": "Monthly battery cycle",
|
|
"peak": "Peak limit",
|
|
"house": "Follows the house",
|
|
"now": "now",
|
|
"time_to": "to",
|
|
"per_kwh": "per kWh",
|
|
"cheap_tip": "low for today",
|
|
"dear_tip": "high for today",
|
|
"estimate_tip": "estimate from yesterday",
|
|
"none_tip": "No price known",
|
|
"no_prices": {"description": "No prices for today, so the chart shows only the plan."},
|
|
"list": "The plan in words"
|
|
},
|
|
"peak": {"name": "Peak limit", "this_month": "This month's peak", "limit": "Limit", "none": "None recorded yet", "unreadable": "Cannot be read now"},
|
|
"attention": {"name": "Needs attention", "nothing": "Nothing to look at", "to_look": "to look at", "details": "Details", "alarm": "Alarm", "warning": "Warning", "info": "Info"},
|
|
"control": {"name": "Control", "stop": "Stop control", "start": "Start control", "maint_start": "Start a battery cycle now", "maint_abort": "Stop the battery cycle", "docs": "Add-on documentation", "more": "More actions"},
|
|
"details": {"name": "Details for installers", "rows": "Status rows", "checks": "Checks", "event": "Last event"},
|
|
"dialog": {
|
|
"cancel": "Cancel",
|
|
"stop": {"name": "Stop control?", "description": "Every inverter is set to 0 W until you start control again.", "yes": "Stop control"},
|
|
"start": {"name": "Start control?", "description": "The add-on controls the batteries again and clears any safety stop.", "yes": "Start control"},
|
|
"maint_start": {"name": "Start a battery cycle?", "description": "The battery empties, refills and holds full, which takes a few hours.", "yes": "Start the cycle"},
|
|
"maint_abort": {"name": "Stop the battery cycle?", "description": "Every inverter is set to 0 W for a moment, then control carries on.", "yes": "Stop the cycle"}
|
|
},
|
|
"toast": {"started": "Control started.", "stopped": "Control stopped.", "done": "Done.", "failed": "That did not work. Try again."},
|
|
"offline": {"name": "Cannot reach the add-on", "description": "The page tries again every 3 seconds."},
|
|
"setup_only": {"name": "Setup: nothing is controlled yet", "description": "Nothing is sent to any inverter until setup is saved and the add-on restarts.", "control": "Control starts after setup.", "open": "Open Setup"},
|
|
"batteries": {"name": "Batteries", "description": "To choose a mode for each battery, turn on battery modes in the settings.", "level": "Level", "now": "Now", "stored": "Stored", "mode": "Mode", "settings": "Change inverter settings",
|
|
"on": "On", "off": "Off",
|
|
"choice": {
|
|
"solar_first": {"name": "Solar first", "description": "Charges from solar before the other batteries and covers the house."},
|
|
"leftover_solar": {"name": "Leftover solar", "description": "Gets solar the others cannot take, and gives power in expensive hours."},
|
|
"cheap_hours": {"name": "Cheap hours only", "description": "Charges in the cheapest hours and gives power in the expensive ones."},
|
|
"off": {"name": "Off", "description": "Rests, and helps only when the peak limit needs it."}
|
|
},
|
|
"today": "Today", "why": "Why",
|
|
"cycle": {"start": "Start cycle", "abort": "Stop cycle", "start_dialog": {"name": "Start a cycle on {name}?", "description": "{name} empties, refills and holds full, which takes a few hours.", "yes": "Start the cycle"}, "abort_dialog": {"name": "Stop the cycle on {name}?", "description": "Every inverter is set to 0 W for a moment, then control carries on.", "yes": "Stop the cycle"}, "toast": {"started": "Cycle started on {name}.", "stopped": "Cycle stopped on {name}."}, "unit": {"description": "There is no battery with that name."}, "busy": {"description": "Only one battery can cycle at a time, and {name} is cycling now."}, "off": {"description": "{name} is switched off, so it cannot start a cycle."}, "idle": {"description": "{name} is not running a cycle."}},
|
|
"modes_off": {"name": "Battery modes are off"},
|
|
"how": {"name": "How the modes work", "description": "Which battery gets solar first, and when each gives power.",
|
|
"solar_first": {"description": "Solar first gets spare solar before the other batteries, and covers the house at any hour."},
|
|
"leftover_solar": {"description": "Leftover solar gets the solar the Solar first batteries cannot take, and saves its power for expensive hours."},
|
|
"cheap_hours": {"description": "Cheap hours only charges in the cheapest hours and gives power in the expensive ones."},
|
|
"off": {"description": "Off rests the battery and starts no monthly cycle, but the peak limit may still use it."},
|
|
"rules": {"description": "The peak limit and the safety stops come first, and while one battery charges from the grid the others rest."}},
|
|
"toast": {"on": "{name} is on.", "off": "{name} is off.", "mode": "{name}: {mode}."}},
|
|
"settings": {"name": "Settings", "description": "The settings are grouped by task below.", "open": "Open the settings page"}
|
|
},
|
|
"choices_later": {
|
|
"region": {"wallonia": "Wallonia, no preset yet", "brussels": "Brussels, no preset yet"}
|
|
},
|
|
"choice_help": {
|
|
"meter_source": {
|
|
"off": {"description": "A Home Assistant entity that reads grid power in W, positive when you take from the grid."},
|
|
"ha_dsmr": {"description": "Two Home Assistant entities from the DSMR integration, one for import and one for export."},
|
|
"mqtt_p1": {"description": "The meter's readings arrive over MQTT on a topic you name."},
|
|
"ha_signed": {"description": "One Home Assistant entity that reads net grid power, positive for import."},
|
|
"homewizard_local": {"description": "The add-on reads a HomeWizard meter on your network, and can spot a stuck meter."}
|
|
}
|
|
},
|
|
"settings": {
|
|
"name": "Settings",
|
|
"description": "Every setting, grouped by task.",
|
|
"view": {"name": "Settings view", "simple": "Simple", "installer": "Installer"},
|
|
"simple": {"description": "The choices a home owner makes.",
|
|
"note": {"month_peak": {"description": "This month's peak so far: {kw}."}, "shadow": {"description": "Use Always on while you test a new installation."}, "forecast": {"description": "With a forecast, a battery buys only what the sun will not give."}},
|
|
"batteries": {"name": "Batteries"},
|
|
"more": {"description": "Looking for the meter, inverters or prices?"},
|
|
"installer": "Open the installer view"},
|
|
"classic": "Classic settings",
|
|
"search": {"name": "Find a setting", "description": "Find a setting, for example peak or meter."},
|
|
"no_match": {"description": "No setting matches your search."},
|
|
"loading": "Loading the settings",
|
|
"load_failed": {"name": "Cannot read the settings", "description": "The add-on could not read its stored settings, so use Classic settings or the Configuration tab."},
|
|
"footer": {"description": "Every change is checked by the add-on's own start checks before it is saved."},
|
|
"to_fix": "to fix",
|
|
"to_check": "to check",
|
|
"changed": "changed",
|
|
"on": "On",
|
|
"off": "Off",
|
|
"not_set": "Not set",
|
|
"locked": "Locked",
|
|
"change": "Change",
|
|
"support": {"description": "These were measured on real hardware, so change them only when support asks."},
|
|
"picker": {
|
|
"choose": "Choose an entity",
|
|
"search": {"description": "Search by name or entity id."},
|
|
"all": "Show every entity",
|
|
"use": "Use this entity id",
|
|
"clear": "Clear",
|
|
"missing": "Not in Home Assistant",
|
|
"none": {"description": "Nothing matches, so check the entity in Developer Tools."}
|
|
},
|
|
"add_inverter": "Add an inverter",
|
|
"inverter": "Inverter",
|
|
"remove": "Remove",
|
|
"add_row": "Add a row",
|
|
"add_solar": "Add a solar inverter",
|
|
"periods": {"window": "Window", "from": "From", "to": "To", "days": "Days", "price": "Price", "add": "Add a time window"},
|
|
"reversed": "Reads negative",
|
|
"phase": "Phase",
|
|
"raw_roster": {"description": "This inverter list can only be changed in the Configuration tab."},
|
|
"region_year": "{year} figures",
|
|
"hour": "{hour}:00 UTC",
|
|
"preset": {"description": "Filled in by the region above, so choose your own figure to change it."},
|
|
"cycle": {"name": "Run a cycle by hand", "description": "The same actions as on Home, each asking first."},
|
|
"savebar": {"label": "Unsaved changes", "one": "change not saved", "many": "changes not saved", "discard": "Discard", "save": "Save", "saving": "Saving"},
|
|
"saved": {"name": "Saved, not running yet", "description": "The add-on runs the settings it started with until you restart it."},
|
|
"differs": {"name": "Stored settings are not running", "description": "Some stored settings differ from what runs now, so restart the add-on to apply them."},
|
|
"stale": {"name": "Changed somewhere else", "description": "These settings changed elsewhere while you edited, so save again to keep yours or discard to load theirs."},
|
|
"other": "Other messages",
|
|
"restart": "Restart now",
|
|
"dialog": {"name": "Restart the add-on?", "description": "Every inverter is set to 0 W while the add-on restarts, and then the new settings apply.", "yes": "Restart now"},
|
|
"toast": {
|
|
"saved": "Saved. Restart to apply.",
|
|
"discarded": "Changes discarded.",
|
|
"failed": "That did not work. Try again.",
|
|
"blocked": {"description": "Fix the settings marked in red, then save again."},
|
|
"restarting": {"description": "Restart requested, so this page stops answering for a moment."}
|
|
},
|
|
"tier": {"bad": "Must fix", "warn": "Check this", "info": "Note", "ok": "Passed"},
|
|
"derive": {
|
|
"raw_roster": {"description": "This inverter list can only be changed in the Configuration tab."},
|
|
"no_inverter": {"description": "Add at least one inverter."},
|
|
"flat_named": {"description": "Add a second inverter before naming this one."},
|
|
"no_source": {"description": "Choose where the dynamic prices come from."},
|
|
"custom_profile": {"description": "Other time windows can only be changed in the Configuration tab."},
|
|
"no_price": {"description": "Enter a price per kWh."},
|
|
"no_periods": {"description": "Add at least one time window."},
|
|
"period_time": {"description": "Window {row}: write each time as hours and minutes, like 07:00 or 24:00."},
|
|
"period_zero": {"description": "Window {row} starts and ends at the same time, so change one of them."},
|
|
"period_price": {"description": "Window {row}: enter a price per kWh."},
|
|
"period_price_range": {"description": "Window {row}: enter the price in euro per kWh, like 0.34."},
|
|
"period_overlap": {"description": "Windows {a} and {b} both cover {day} {from} to {to}, so change one of them."},
|
|
"period_gap": {"description": "No window covers {day} {from} to {to}, so add one or widen one."},
|
|
"unknown": {"description": "The page cannot store this choice, so reload the page."}
|
|
},
|
|
"setup": {
|
|
"name": "Setup",
|
|
"description": "For installers: six steps to a working site, and each can be changed later under Settings.",
|
|
"done_before": {"description": "This site is set up already, so a change here replaces its stored settings."},
|
|
"step": "Step {n} of {total}",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"skip": "Next, or skip",
|
|
"finish": "Save and restart",
|
|
"not_now": "Not now",
|
|
"steps": {
|
|
"1": {"name": "Your meter", "description": "The add-on steers the grid reading to zero, so it needs your meter first."},
|
|
"2": {"name": "Inverters and batteries", "description": "One card for each inverter with a battery, with its entities in Home Assistant."},
|
|
"3": {"name": "Solar", "description": "Optional, so skip this step if the add-on should not record solar production."},
|
|
"4": {"name": "Prices", "description": "What you pay per kWh, so the batteries can charge when power is cheap."},
|
|
"5": {"name": "Peak limit", "description": "The grid stays under this limit, averaged over each 15-minute period."},
|
|
"6": {"name": "Check and start", "description": "The add-on checks everything with its own start checks, then restarts."}
|
|
},
|
|
"modes_later": {"description": "After setup, turn on battery modes to choose a mode for each battery on the Batteries screen."},
|
|
"kettle": {
|
|
"name": "Check the direction",
|
|
"description": "Read the meter, switch on a kettle, then read the meter again.",
|
|
"read": "Read the meter",
|
|
"again": "Read again",
|
|
"skip": "Skip this test",
|
|
"before": {"description": "The meter reads {w} now, so switch on a kettle and press Read again."},
|
|
"unread": {"description": "The meter cannot be read now, so check the entity and try again."},
|
|
"none": {"description": "The reading moved only {d}, so switch the kettle on and read again."},
|
|
"ok": {"description": "Good, the reading went up by {d} when the kettle came on."},
|
|
"flip": {"description": "The reading went down by {d}, so the add-on flips its sign for you."},
|
|
"wrong_signed": {"description": "The reading went down by {d}, so choose “One grid power entity” above, which can flip it."},
|
|
"wrong_dsmr": {"description": "The reading went down by {d}, so check that import and export are not swapped."},
|
|
"self": {"description": "The add-on reads this meter itself, so Home shows its direction after the restart."},
|
|
"skipped": {"description": "The meter direction is not tested, so check it on Home after the restart."},
|
|
"skipped_wrong": {"description": "The kettle test saw the meter reading go down, so check its direction in step 1 before you start control."},
|
|
"skipped_down": {"description": "The reading went down when the kettle came on, so check the meter's direction before you start control."},
|
|
"tested": {"description": "The meter direction was tested with a kettle."},
|
|
"needed": {"description": "Do the kettle test first, or skip it."}
|
|
},
|
|
"check": {
|
|
"name": "What the add-on checked",
|
|
"running": {"description": "Checking with the add-on's own start checks."},
|
|
"pass": {"description": "The add-on's start checks pass."},
|
|
"failed": {"description": "The check did not run, so try again."},
|
|
"again": "Check again",
|
|
"blocked": {"description": "Fix the items marked in red, then check again."}
|
|
},
|
|
"dialog": {"name": "Save and restart?", "description": "Every inverter is set to 0 W while the add-on restarts, and shadow mode keeps them at 0 W after that.", "yes": "Save and restart"},
|
|
"dialog_live": {"name": "Save and restart?", "description": "Every inverter is set to 0 W while the add-on restarts, and then the new settings apply.", "yes": "Save and restart"},
|
|
"dialog_setup": {"name": "Save and restart?", "description": "The add-on restarts with these settings, and shadow mode keeps every inverter at 0 W.", "yes": "Save and restart"},
|
|
"dialog_setup_live": {"name": "Save and restart?", "description": "The add-on restarts with these settings, and then they apply.", "yes": "Save and restart"},
|
|
"done": {"name": "Setup is done", "description": "The add-on restarts in shadow mode now, so open Home in a minute to see what it would do."},
|
|
"done_live": {"name": "Setup is done", "description": "The add-on restarts now, so open Home in a minute to start control."},
|
|
"restart_failed": {"name": "Saved, not running yet", "description": "The restart did not go through, so press Restart now to apply the settings."},
|
|
"home": "Open Home"
|
|
}
|
|
},
|
|
"home_words": {
|
|
"mode_house": "Follows the house",
|
|
"modes": {"solar_first": "Solar first", "leftover_solar": "Leftover solar", "cheap_hours": "Cheap hours only", "off": "Off"},
|
|
"attn_shadow": "Shadow mode is on",
|
|
"attn_shadow_body": "The add-on decides everything, but every inverter stays at 0 W.",
|
|
"zero_held": "Held at 0 W",
|
|
"zero_going": "Going to 0 W",
|
|
"verdict": {
|
|
"held": "Held at 0 W",
|
|
"stopped": "Stopped",
|
|
"cycle": "Monthly cycle today",
|
|
"trade": "Trading on price",
|
|
"house": "Follows the house"
|
|
},
|
|
"pill": {
|
|
"running": "Running",
|
|
"shadow": "Shadow mode",
|
|
"stopped": "Stopped",
|
|
"alarm": "Needs you now",
|
|
"waiting": "Waiting for Home Assistant",
|
|
"warning": "Running, with a warning"
|
|
},
|
|
"banner_sub": {
|
|
"running": "The batteries follow the plan below.",
|
|
"shadow": "The plans below say what the add-on would do.",
|
|
"stopped": "Start control below when you are ready.",
|
|
"alarm": "See Needs attention below for what to do.",
|
|
"waiting": "Control resumes by itself when Home Assistant answers.",
|
|
"warning": "See Needs attention below."
|
|
},
|
|
"tile": {
|
|
"not_set_up": "Not set up",
|
|
"no_reading": "No reading",
|
|
"producing": "Producing",
|
|
"not_producing": "Not producing",
|
|
"needs_solar": "Needs a solar reading",
|
|
"not_adding_up": "Readings do not add up",
|
|
"using": "Using",
|
|
"taking": "Taking from the grid",
|
|
"feeding": "Feeding in",
|
|
"balanced": "Balanced",
|
|
"giving": "Giving power",
|
|
"charging": "Charging",
|
|
"resting": "Resting"
|
|
},
|
|
"now": {
|
|
"no_reading": "No reading from this battery.",
|
|
"would_rest": "{zero}. Would rest now.",
|
|
"would_give": "{zero}. Would give {kw} now.",
|
|
"would_charge": "{zero}. Would charge {kw} now.",
|
|
"held": "{zero} until the alarm clears.",
|
|
"stopped": "{zero} while control is stopped.",
|
|
"cycle_drain": "Monthly cycle: emptying.",
|
|
"cycle_charge": "Monthly cycle: refilling.",
|
|
"cycle_hold": "Monthly cycle: holding full.",
|
|
"cycle": "Monthly cycle under way.",
|
|
"giving": "Giving {kw} now.",
|
|
"charging": "Charging {kw} now.",
|
|
"resting": "Resting now.",
|
|
"off_resting": "Off. Resting now.",
|
|
"off_peak": "Off, but gives {kw} for the peak limit.",
|
|
"off_going": "Off. Still at {kw}, going to 0 W."
|
|
},
|
|
"why": {
|
|
"no_reading": "No reading, so the add-on cannot tell.",
|
|
"held": "An alarm stopped control. See Needs attention.",
|
|
"stopped": "Control is stopped.",
|
|
"shadow": "Shadow mode: the add-on only shows what it would do.",
|
|
"cycle": "The monthly cycle keeps its level reading right.",
|
|
"cycle_mode": "The monthly cycle comes first. Its mode resumes after.",
|
|
"off": "You switched it off.",
|
|
"off_peak": "The peak limit comes before Off. It rests again after.",
|
|
"refuses_give": "The battery refuses to give power. The add-on tries again every 15 minutes.",
|
|
"refuses_charge": "The battery refuses to charge. The add-on tries again every 15 minutes.",
|
|
"peak": "The peak limit needs power from the batteries.",
|
|
"modes_off": "Battery modes are off, so it follows the house.",
|
|
"solar_first": "Solar first: it gets spare solar before the others.",
|
|
"leftover": "It gets the solar that Solar first batteries cannot take.",
|
|
"leftover_alone": "No Solar first battery is on, so it gets solar first.",
|
|
"covers_house": "It gives power to cover the house.",
|
|
"other_refuses": "{name} refuses to give power, so this battery takes over.",
|
|
"other_cycle": "{name} is emptying for its monthly cycle. This one does not charge.",
|
|
"grid_charge": "Prices are low, so it charges from the grid.",
|
|
"rests_charge": "Another battery charges from the grid, so it rests.",
|
|
"selling": "Prices are high, so it sells to the grid.",
|
|
"expensive": "Prices are high, so it covers the house.",
|
|
"saves": "Saves its power for {at}.",
|
|
"saves_later": "Saves its power for higher prices.",
|
|
"no_prices": "No prices, so it follows the house.",
|
|
"no_spread": "Prices differ too little, so it follows the house.",
|
|
"sun_fills": "Enough sun is forecast, so it does not charge from the grid.",
|
|
"tops_up": "Too little sun is forecast, so it charges some from the grid.",
|
|
"no_forecast": "No solar forecast, so it charges from solar only."
|
|
},
|
|
"solar": {"line": "Solar still to come today: {kwh}, we count on {count}. Updated {at}.", "no_forecast": "No solar forecast now, so Leftover solar charges from solar only.", "learning": "The add-on is learning your house's use. The plan starts after one full day."},
|
|
"today": {
|
|
"not_planned": "Not planned yet.",
|
|
"no_runs": "No cheap or expensive hours left today.",
|
|
"off": "Off, so no monthly cycle today.",
|
|
"house": "Follows the house.",
|
|
"house_would": "Would follow the house.",
|
|
"stopped": "Nothing planned while control is stopped.",
|
|
"held": "Nothing planned until the alarm clears."
|
|
},
|
|
"head": {
|
|
"held": "Every inverter is at 0 W until the alarm clears.",
|
|
"held_going": "Every inverter goes to 0 W until the alarm clears.",
|
|
"stopped": "Control is stopped, so nothing is planned.",
|
|
"cycle": "A battery runs its monthly cycle today.",
|
|
"trade": "Charges in the cheapest hour, gives power in the dearest.",
|
|
"house": "Charges from spare solar and covers the house.",
|
|
"shadow": "Shadow mode: this is what the add-on would do.",
|
|
"cycle_would": "A battery would run its monthly cycle today.",
|
|
"trade_would": "Would charge when cheapest and give power when dearest.",
|
|
"house_would": "Would charge from spare solar and cover the house."
|
|
},
|
|
"run": {
|
|
"grid_what": "Charges up to {kwh} from the grid.",
|
|
"grid_what_would": "Would charge up to {kwh} from the grid.",
|
|
"grid_why": "Lowest published price, {eur} per kWh.",
|
|
"grid_amount": "Costs up to {eur}.",
|
|
"give_what": "Gives up to {kwh}, to the house first.",
|
|
"give_what_would": "Would give up to {kwh}, to the house first.",
|
|
"give_why": "Highest published price, {eur} per kWh.",
|
|
"sell_what": "Sells up to {kwh}, to the house first.",
|
|
"sell_what_would": "Would sell up to {kwh}, to the house first.",
|
|
"cheap_why": "Cheapest hours, about {eur} per kWh.",
|
|
"dear_why": "Expensive hours, about {eur} per kWh.",
|
|
"give_amount": "Worth up to {eur} at that price.",
|
|
"cycle_start": "Starts the monthly battery cycle.",
|
|
"cycle_start_would": "Would start the monthly battery cycle.",
|
|
"cycle_now": "Runs the monthly battery cycle now.",
|
|
"cycle_now_would": "Would run the monthly battery cycle now.",
|
|
"cycle_why": "Empties, refills and holds full, so the level reads right.",
|
|
"cycle_why_would": "Would empty, refill and hold full, so the level reads right.",
|
|
"cycle_amount_unknown": "How long depends on the battery.",
|
|
"cycle_amount": "Takes about {hours} hours.",
|
|
"peak_what": "Gives power to stay under {kw}.",
|
|
"peak_what_would": "Would give power to stay under {kw}.",
|
|
"peak_why": "The peak limit comes before everything else.",
|
|
"house_what": "Follows the house.",
|
|
"house_what_would": "Would follow the house.",
|
|
"house_why": "Charges from spare solar, gives power when the house needs it.",
|
|
"house_why_would": "Would charge from spare solar, give power when the house needs it.",
|
|
"house_amount": "Amounts depend on the sun and the house."
|
|
},
|
|
"no_trade": {
|
|
"not_covered": "No trading on price: nothing measures the 15-minute peak.",
|
|
"no_prices": "No trading on price yet: no prices have arrived.",
|
|
"peak": "No trading on price now: the peak limit comes first.",
|
|
"not_firm": "No trading on price yet: the prices are not published.",
|
|
"not_worth": "No trading on price today. The price gap is too small.",
|
|
"no_level": "No trading on price now: a battery level is unknown."
|
|
},
|
|
"tomorrow_trade": {
|
|
"grid": "Tomorrow: charges at {at}, {eur} per kWh.",
|
|
"grid_would": "Tomorrow: would charge at {at}, {eur} per kWh.",
|
|
"give": "Tomorrow: gives power at {at}, {eur} per kWh.",
|
|
"give_would": "Tomorrow: would give power at {at}, {eur} per kWh."
|
|
},
|
|
"cycle_waits": "{name} waits its turn for the monthly cycle.",
|
|
"no_prices_yet": "No prices yet, maintenance waits.",
|
|
"no_prices_since": "No prices since {at}, maintenance waits.",
|
|
"no_prices_since_day": "No prices since {day} {month} at {at}, maintenance waits.",
|
|
"step_in": "The batteries step in above {kw}.",
|
|
"step_in_would": "The batteries would step in above {kw}.",
|
|
"period": "This 15-minute period is heading for {kw}.",
|
|
"period_unmeasured": "Part of this 15-minute period was not measured.",
|
|
"prices": {
|
|
"now": "Price now {eur} per kWh, all in.",
|
|
"today": "Today: lowest {lo} at {lo_at}, highest {hi} at {hi_at}.",
|
|
"none": "No prices for today."
|
|
},
|
|
"tomorrow": {
|
|
"known": "Tomorrow's prices are in.",
|
|
"unknown": "Tomorrow's prices usually arrive after 13:00."
|
|
},
|
|
"region": {
|
|
"preset": "Levies and VAT: {region}, {year} figures.",
|
|
"own": "Levies and VAT: your own figure."
|
|
},
|
|
"peak_not_covered": "No peak limit: this meter does not measure 15-minute periods.",
|
|
"control": {
|
|
"shadow": "Shadow mode: every inverter stays at 0 W.",
|
|
"running": "Control is running.",
|
|
"stopped": "Control is stopped. Every inverter is at 0 W."
|
|
},
|
|
"attn": {
|
|
"home_assistant": "Home Assistant is not answering",
|
|
"controller": "Control is not running",
|
|
"meter": "Meter reading",
|
|
"meter_frozen": "Meter reading may be stuck",
|
|
"freeze_check": "Stuck meter check",
|
|
"month_peak": "This month's peak",
|
|
"peak_guard": "Peak limit",
|
|
"peak_forecast": "Peak limit forecast",
|
|
"sensor": "Battery readings",
|
|
"control": "Inverter control",
|
|
"power_too_high": "Power request too high",
|
|
"not_keeping_up": "Battery is not keeping up",
|
|
"write": "Power request not accepted",
|
|
"direction": "Power went the wrong way",
|
|
"site_direction": "Power went the wrong way",
|
|
"circulating": "Inverters working against each other",
|
|
"delivery": "An inverter is not delivering",
|
|
"estop": "Emergency stop",
|
|
"pv": "Solar reading",
|
|
"solar_forecast": "Solar forecast",
|
|
"none": "Inverter connection"
|
|
},
|
|
"months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
|
|
}
|
|
}
|