kwindrem / GuiMods

VenusOS GUI enhancements and modifications
223 stars 29 forks source link

NOTE: starting with firmware v3.50, the "New UI" (aka gui-v2) is available for use For GuiMods, the following opitons must be configured via Classic UI but will continue to function after switching back to New UI: configutaiton of the External transfer switch digital input syncronizing the generator manual run to the generator digital input PackageManager menus are also available only in Classic UI

NOTE: Support for firmware prior to v3.10 has been dropped starting with GuiMods v10.56 if you are running older versions, change the branch/tag to preV3.10support for any packages you wish to run on that firmware

This package provides the following modifications to the VenusOS GUI: A "dark mode" for all overviews and menu pages A toggle in the Display & Languages menu switches between light mode and dark mode In addition, a touch area is available in the tool bar for the same switch. Note that this can not be accessed via the CCGX hard buttons or those on the remote console.

A simple "flow" overview:
    This overview provides the tiles for AC in and out, inverter, battery, Solar (PV) charger
        and in some cases PV inverters.

A flow overview that displays more AC system components:
    This overview is useful when ac-coupled PV inverters are present in the system.
    Tiles have been reduced in size to make room for the additional components.
    Except for the battery, only a gauge and a total power number are displayed

A flow overview that displays more DC system components:
    This overview is useful when an alternator or other DC components are present in the system.
    Tiles have been reduced in size to make room for the additional components.
    Except for the battery, only a gauge and a total power number are displayed

For all three overviews, additional details are displayed on full screens devoted to that part of the system.
    Tapping the center of the tile brings up the details.
    When entering the enhanced flow overview page, target areas are displayed for a few seconds
        with a message instructing "tap for details"

In the Victron stock code, different flow overviews were used depending on the system type
    (e.g, ESS active).
In this version, the user may choose between the three flow overview versions.

Add tank information (both overviews)
    4 tanks fit along the bottom of the page
    for more than 4 tanks, the list scrolls
Add temps information (both overviews)
    A combination of up to 4 tanks and temps fit across the bottom
    For more, the bottom row splits into separate rows for temps and tanks
    Each row scrolls horizontally if more than 4 items exist in the row
    Alarm indicaiton: The temp tile alternates between its normal color and red if an alarm condition exists
        Note that the alarm condition must be assigned to a relay for the display to show the alarm

Move Settings and Notifications
    Moves thise items to the top of the Device List page
        Normally, they are displayed at the bottom

Optionally hides the Tiles Overview

Enhances the Mobile Overview
    all new layout and tile organization
    add Inverter Only mode
    shows voltages current and frequency for AC in and out
    shows current for DC loads
    shows solar voltage and current
    hides Pump switch if not enabled to make more space for tanks
        (this became standard in v2.70~9)
    tanks column scrolls if there are more tanks than space allows
    add temperature sensors to tanks column
        The tanks column is split into separate columns for tanks and temperature sensors
        A common tile height is set for both columns, then each column is filled in separately
        Any tank that appears as a dBus temperature sensor should appear
    Adds VE.Direct inverter status and control

Enhances the Tank Tile
    red indicates low/high fluid levels
    indicates NO RESPONSE if no signal received from tank
    tile shrinks if needed to show more tanks, then list scrolls
    display custom tank names (stock in v2.70~9)
    displays absolute fluid quantity (e.g., gallons) in addition to percentage

Adds VE.Direct inverter status and control

Uses custom tank name if it exists and optionally shorten tank names
    beginning with Venus v2.70~16, NEMA2000 tank names can be too long to fit in available space
    enabling this option will shorten the tank name to the first two words
        (first word for compact tank tiles)
        and replace "Waste" with "Gray" to be consistent with "Black" label for sewage tank

Adds a Relay Overview page that allows controlling all relays.
    Previously, relay control is several menu levels deep so this is much faster
    Status for all relays is also shown along with the function (manual, generator, pump, alarm)
    Buttons presented for pump and generator affect the actual parameters for those devices,
         not just the relay state.
    A relay name has also been added. This name is shown on the Relay Overview.
        The name scrolls if it won't fit in the available space.
    All relay configurations are in Device List / Settings / Relay.
        That menu has been expanded to set names and control whether the relay is shown on the
            Relay Overview.
    Note that for the Alarm function, there are no controls, yet the current alarm state is show.
    Pump control has three modes: On, Off and Auto which is controlled by the associated tank level.
    Generator control has buttons for Manual Start and Manual Stop as well as
        AutoEnable which toggles the enables the condition-based run control
    Note that if condition-based run is enabled, Manual Stop may not stop the generator.
        But turning off Auto Enable would cause the generator to stop.

Adds a an Overview page that shows tanks, temperature sensors and digital inputs.
    This provides a larger view than is available elsewhere
    and uses separate columns for tanks, temps and digital inputs

Generator overview:
    now includes a button that enables and disables auto run functionality.
        It functions exactly like the manual start/stop button.
        Because two buttons share the hard buttons, up and down buttons are used to select
            which function will be controlled by the center button.
    In the Manual Start popup, scrolling down from Start manually selects a mode which
        will start the generator manually and stop it when all auto stop conditions are satisfied

    Status and test run tiles have been combined and now includes current run time as well as
        time until a timed manual run expires.
    A new Run Times tile has been included which shows times for Today, total accuulated time and
        a count-down to the next required servive
        The service interval is set in the generator settings menu
        as well as a button to reset the count-down timer to the service interval.
        If the service interval is 0 the service number will not be shonw in the Generator overview
    Run times previously used days/hours, hours/minutes, or minutes/seconds formatting. This has been changed
        to show minutes (if less than 1 hour) or hours to be more consistent with generator total run time and service intervals.
    Note: a button in the generator settings menu already exists to set the total accumulate time
        to match the run time meter on the generator itself.

    A digital input configured for generator run/stop integrates with the generator manual start/stop logic.

    When the digial input changes to the running state,
    Venus Manual Start is changed to true if there are no automatic run conditions

    When the digital input changes to the not running,
        Venus Manual Start is changed to false

    The Generator overview includes "Running" or "Stopped" in the generator icon if a digital input
        has been configured for generator run status input.

each of these enhancements/modifications can be selected individually any time (while system is running) via the Settings Display GuiMods menu

The hard buttons available on the CCGX or other UIs without touch capability can now access the details pages UP and DOWN buttons cycle through the available selection. The active selection is indicated either by showing the touch target area In the details pages, selected button is indicated by a black border Pressing the "space" button while the selection is active simulates touching the region The active selection times out after 5 seconds.

Power Gauges

The power gauges provide an indication of the inverter's and battery's ability to satisfy the AC and DC loads and help the user to manage system loads. Power gauges for inputs and outputs provide an indication of current power levels relative to user-defined limits. Again, providing some help in system management.

Gauges registering in the red region suggest an overload will occur if loads are not reduced immediately.

Gauges registering in the yellow region suggest an overload may occur some time in the future.

The inverter gauge is the main indicator of system health. It will indicates an inverter overload more clearly than the AC input and output gauges could.

Showing power at multiple locations in the system permits the user to more easily identify the needed correction.

Power gauges display power for each leg of the system as separate horizontal bars.

The AC input has a finite power limit based on the input wiring and breaker. An adjustable input current limit further restricts available AC input power. The gauge in this tile reflects the AC input current limit setting so the power at the system input is shown relative to this input.

The AC output power is a combination of AC input power and that provided by the inverter. The AC output power gauge ranges are set by a user-defined limits The AC output distribution may have its own limit (e.g., the panel's master breaker). The gauge is set to this limit so the user can identify a potential breaker trip.

The battery too represents an area of concern. If it is overloaded, the system will shut down. Many systems include DC loads which draw power from the battery, so it is important to provide an indication of how much DC power is being extracted from the battery relative to it's maximum discharge current. The system also charges the battery so power flow may also be into the battery. Therefore, the battery gauge must indicate a charging or discharging current. The zero point is therefore in the middle of the gauge with discharging to the left and charging to the right.

The PV (solar) charger and inverter tiles represent power supplied by these devices. Again, user-defined limit sets the range of the gauge.

The DC System tile shows the combination of Loads and charging sources (such as wind) connected to the battery.

Details pages repeat the associated gauge(s) and provide more detail for that area of the system. Where possible, voltage, current and frequency for each leg of the system are shown in a table. The Inverter detail includes inverter mode selection: On, Off, Inverter only, Charger only, Eco. Charger priority: Grid / Renewable When enavled in the Multi/Quattro, the charger priority buttons appear in the Inverter detail page. Renewable allows solar and wind power to charge the batteries, essentially ignoring the grid until a low battery voltage threshold is reached. The grid is then used to bring the battery to 100% SOC. If Grid is pressed, batteries are charged immediately via the grid (and other charging sources). When 100% SOC is reached, the system returns to Renewable priority

The AC input detail includes a set of buttons to set the input current limit.

The PV charger detail provides a system total as a gauge and power number, then lists each charger showing its name, power and the PV array voltage.

The PV inverter detail provides system totals for grid and output connections then lists name, total power, power for each leg and where the inverter is connected (input or output)

The AC input detal page shows information for the active source: per-leg power, current and volage, as well as frequency and input current limit. In addition, voltage and frequency for grid/shore and generator AC inputs is shown to allow monitoring of a generator's voltage and frequency even when on grid power or visa-versa AC meters will populate this information for an input if present. Quattros may report information for both inputs (what information is reported by Quattro is unknown to me) Multis only have one input so only that input will be shown unless AC meters are present.

Configuration

All configuration is done through the main menu system.
Go to Device List / Settings / Display & language / GuiMods
Changes to any of these settings are immediately seen on the overviews.
(Previous versions of GuiMods required running the setup script again to make changes.)

Show Tile Overview controls whether the Tile Overview is shown in the Overview rotation

Move Settings to top of Device List
    Normally, these items appear at the bottom of the Device List
    Turning this option on moves them to the top

Show boat & motorhome overview is a duplication of the button in the Display & language menu
    as a convenience since it interacts with the next button

Use Enhanced Mobile Overview
    When on, the standard mobile overview is replaced with the enhanced version provided
    with this package. Details are explained above

Flow Overview selection - refer to the discriptioun above for what is shown in each flow version
    Victron stock
        This disables the GuiMods flow overviews so the ones supplied in by Victron are displayed
    GuiMods simple
    GuiMods DC Coupled
    GuiMods AC Coupled

Show more devices on flow overview
    Selects between a simpler and more complete overviews (described above).
    Use Enhanced Flow Overview must be on to see and change this option

Show tanks on Flow Overview
Show temperatures on Flow Overview
    Fluid levels and temperatures are displayed at the bottom of the Flow Overview when
    the associated switch is on.

Tank bar format
    displays tank level percentage, actual remaining level (in units), or both

Show battery temperature on flow overviews
    This preference controls whether battery temperature(s) are shown or hidden on the flow overviews
    Due to space constraints, users may or may not wish to display battery temperature(s)
    Battery temperature(s) are always shown on the Mobile and tanks/temperature/digital inputs overview

Combine AC input/output loads
    The enhanced flow overview displays two load tiles: Loads on Input and Loads on Output.
    Confusion is likely especially when a system only connects to one load output.
    This option combines the information into a common tile in the upper right of the overview
    and changes the title to AC Loads.

DC System tile name
    Renames the DC System tile. This may be useful if for example the system only has DC loads.
    In that case, the tile can be renamed to something like "DC Loads".
    If this paremeter is blank, "DC System" is used for that tile's name

Show Loads On Input
    Not all systems have loads connected to the input side of the inverter/charger.
    This would include loads connected to the AC 2 output.
    To avoid confusion, this option allows you to hide this tile when it is not being used.
    (There is no mechanism to automatically hide this tile.)

Shorten tank names
    When on, tank names are shortened to one or two words depending on the available space.
    In addition "Waste" is replaced with "Gray" to be consistent with "Black" and in line
    with common RV terminology.

Replace AC in if inactive
    Some systems do not have an AC generator but do have an alternator connected as a battery charger.
    In these systems, the alternator information is displayed as if it were the system's generator.         

    When this option is on, a DC alternator is displayed as a secondary "generator", replacing the
        AC generator information when the AC input is not present.
    The AC input tile on the GuiMods Simple Overview page is replaced
        with an Alternator tile if this option is on, an alternator exist
            and the AC input is not present.
    The GENERATOR POWER tile on the enhanced Generator Overview is replaced
        with an ALTERNATOR POWER tile if this option is on, an alternator exists
            and the AC input type is not generator or the generator is not producing power.

AC Input Limit Preset 1 - 4
    Provides rapid selection of common AC input current limits through the popup
        accessed by touching the lower portion of the AC input tile.
    A preset is active for any value other than 0. For 0 the preset button disappears.
    If you wish to set a preset to the inverter's minimum current limit,
    specify a value of 1 for the preset.

Watts / Killowatts threshold
    Controls the switch between showing values as W, A, V and KW, KA, KV
    The spinner range is from 1000 to 10000
    The default is to switch at 1000

Temperature Scale
    Selects either °C or °F (or both) for temperatures displayed on the Flow and Mobile Overviews.

Time format
    Selects the time format for the Enhanced Mobile and Enhanced Flow overviews:
        24 hour, 12 hour with AM/PM or don't show time at all

Inactive Tiles on Flow Overview
    Inactive tiles can be hidden, shown or shown dimmed

Automatic GitHub updates
    If SetupHelper is up to date, this item controls automatic updates from GitHub
    Normal - enables updates at a rate of 1 package check every 10 minutes
    Fast - enables updates at a rate of 1 package check every 10 seconds
        after all packages have been checked once, Normal mode is automatically selected
        This mode is handy for making a quick check to insure all packages are up to date,
        then allowing the system to check again at the slower rate
    Check packages once - makes one pass through all installed packages at the fast rate
        then disables automatic updates
    Disabled - prevents the system from checking GitHub for updates
    Access level must be set to Installer or above to change this setting.

Package Versions
    moved to the SetupHelper package and now appears in its own menu:
    Device List / Settings / Package Versions
    The move was so that the versions and automatic updates could be controlled
    even if GuiMods was not installed

PowerGauges leads to a second menu

Show power gauges
    When on, power gauges are inserted in the AC input and output tiles, The Multi icon, the Battery tile
    and the PV Charger tile.

Access level must be set to Installer or above to change the following gauge limits. 

Inverter peak power is the maximum power the inverter can produce for a limited amount of time.
    This is the maximum power displayed on the gauge
    The inverter spec sheet will list this as "peak power"
    For some inverters, this value is double the continuous value,
        so you may wish to set this to a lower value in order to favor more space
        to display lower values.

Inverter caution power is the maximum power the inverter can produce under the best conditions
    (low temperature, etc.). This is the transition between yellow and red regions on the gauges.
    The inverter spec sheet will list this as the maximum continuous power at low temperature.

Inverter max continuous power is the power the inverter can produce indefinitely.
    This is the transition between the green and yellow regions on the gauges.
    The inverter spec sheet will list this as the maximum continuous power at the highest operating temperature.

Max power Loads on Output is the maximum power accepted by devices
    that will be powered by the inverter.
    For example, this is could be the power equivalent to the AC breaker.
    If you do not want this limitation, set the value to 0.

Max power Loads on Input is the maximum power accepted by devices
    that will be powered only by Grid/Shore power.
    If you do not want this limitation, set the value to 0.

Grid feed-in limit provides the gauge range for power flow INTO the AC input of the system.
    Generally, this should be 0 unless ESS has been configured to feed energy into the grid.
    Note there are other system settings that control the actual grid feed-in.
    This parameter is ONLY for the gauge and is provided because feed-in logic is very complex.

Max power Multi/Quatro charger is the maximum power the charger portion of the inverter will DRAW
    from the AC input. This is generally close to the Continuous Power above but may need some
        experimentation to display properly without showing an overload.
    Note that the gauge will show power to the left of the zero line when it is charging the battery
        or when it is supplying the DC system loads.

Max PV charger power is the maximum power expected by all PV chargers in the system.

Max power PV inverter on AC Input is the maximum power expected from all of the PV inverters
    tied to the grid side of the system

Max power PV inverter on AC Output as above for
    the PV inverters attached to the output side of the system.

Max battery discharge current is used for the battery gauge and is the maximum sustained battery draw.

Max battery charge current is used for the battery gauge and is the maximum sustained battery charging current.
    This parameter, used only for the battery gauge has been added, but should generally be set
        to the same value as the DVCC max charge current.
    It should be set the same as the DVCC max charge current if DVCC is used.

Max DC load power is the maximum of all DC loads in the system.
    This is usually the DC main breaker/fuse size in amps multiplied with the DC voltage.
    So a 60 amp main breaker on a 12 volt system would be 720 watts.
    If there are no DC loads, set this value to 0.

Max DC charger power is the maximum of all DC charging sources such as a DC-DC converter from the starter battery
    or a wind generator. Set this parameter to the expected maximum for all charging sources.

Max Alternator power is the maximum power expected from all alternators in the system

Max Wind Generator power is the maximum power expected from all wind generators in the system

Max Fuel Cell power is the maximum power expected from all fuel cells in the system

Max Motor Drive load power is the maximum power expected from all motor drives when they are consuming power

Max Motor Drive charge power is the maximum power expected from all motor drives when they are generating power

Generator enhancements: A digital may be programmed to communicate generator running state to the GX device Pulling that digital input low signals the generator is running. Releasing the input so it floats high signals the generator is not running.

If no digital input is programmed, the AC input for the generator 
    will be used to deternine generator running state

A Quattro has two AC inputs with one typically connected to a generator.

A MultiPlus has only one AC input and it will typically be switched between grid/Shore and generator.
If this is the case, there will be no generator running state available when on grid/shore power.
In this case, it is best to use the digital input to signal generator is running.
An alternative would be to install an energy meter on the generator output.
This will provide generator AC status at all times even if the Multi is fed by grid power.

Running / Stopped status appears in the generator icon in the Generator Overview screen if
    the GX device can detect it. Otherwise, nothing is added to the icon.
    Note that this differs from the Running and stopped indication in the Status tile.
    That information shows whath the GX device told the generator to do (run or stop),
    not what it is actually doing.

If "Link to external state" in / Settings / Generator start/stop / Settings is on,
    a change in the running state received FROM the generator will synchoniize the Manual Start state
    to the status from the generator.
    This accommodates a situation where the generator might be started from somewhere else.

    Note: Link to external state is off by default. Previous versions of GuiMods (and GeneratorConnetor)
        did not have this switch and the digital input was always incorporated in the generator logic.

    If an auto run condtion exists but the generator reports it is not running, "External Override"
    is shown in the status area of the Generator Overview. This might happen if the generator fails
    to start or if the generator control is switched to local and not responding to the GX device's
    generator start relay.

Link to external state should not be confused with "Detect generator at AC input".
The latter enables a generator is not running alarm visible on VRM (and other places possibly).

Manual start / auto stop
    It is possible to start the generator manually, but allow the auto start/stop logic
    to stop the generator when all stop conditions are satisfied.
    For example, of the SOC is programmed to start the generator an say 30% and stop at 90%,
        and if the current SOC is 60%, the generator will not start if auto start/stop is enabled.
        If the manual start/auto stop mode is triggered, the generator WILL start and run until
        the battery reaches 90%.

    Manual start/auto stop is initiated by first enabling auto start,
    then selecting Manual Start and scrolling DOWN below Start manually.
    "Run until: all auto stop conditions are met" is shown in the tile.
    Accepting this stop condition will trigger the event.

    Note that if all automatic stop conditions are currently satisfied, the generat will not be started.
    That is, if the battery is at 95% in the above example, the generator will NOT start.

External transfer switch: This supports an external transfer switch ahead of a MultiPlus AC input changing the AC input current limit and and AC source type based on on grid/on generator

ExtTransferSwitch includes support for "renewable energy" prioritizaiton added in Venus OS 3.10.
    This also requires Multi firmware 506.
Renewable energy priority shuts down the Multi/Quattro charger allowing solar, wind and other charging sources
    to charge the battery. Grid power is reneabled at a low SOC (battery voltage) set in the Multi configuration.
In addition, switching the AC source to generator reenables Multi AC input charging.

Note: changes added in Venus OS v3.00 and changes added to Multi/Quattro in fimware 502,
    support a generator on AC 2 in.
    These are required for this package to work on a Quattro's AC 2 input

A GX device digital input is connected to the external transfer switch to indicate
    if the grid or generator is routed to the Multi's AC input
    This service then makes changed to the AC input current limit and AC source(type)
    grid/shore or generator

External transfer switch configuration:

    Program a digital input for External transfer switch

    For Quattros, select if the transfer switch is connected to AC 1 in or AC 2 in.
        (for Multis, this selection does not exist since there is only one AC input.)

    Connect an output from the transfer switch to the GX device digital input to indicate
        if the grid or generator source is being routed to the AC 1 input of the Multi.

        The best signal to use is a grid power detection circuit.
            A simle relay across the grid is probably fine for this.
            This same signal would typically switch the transfer switch to the grid position.

        The transfer switch may change state based on generator power being present.
            If this is the case, the generator might not ever start when using this to feed the digital input.
            Install a separate grid power detection circuit to insure proper behavior.

        Verify that the On Grid / On Generator state shown in the Device List tracks the actual state
            of the transfer switch. If it is backwards, change Inverted swich in the device's setup menu.

    While On grid, set the grid input current limit and grid type (grid or shore).

    Cause the transfer switch to change state and while On Generator, set the input current limit again,
        this time for the generator values.

    Now the input current limit will switch between the grid and generator settings.

    If you make changes to the input current limit, those changes will be remembered and restored when the transfer switch
    returns to that position again.

    If you wish to prevent the generator from running when On Grid, make sure the system is not On Generator and
        turn on the Do not run generator when AC1 is in use in:
            Device List / Settings / Generator start/stop settings /Settings / Conditions
        The transfer switch logic will turn this off when switching to On Generator and restore it when switching to On Grid.

Installation:

GuiMods requires that SetupHelper is installed first.

The easiest way to install GuiMods is to do a "blind install" of SetupHelper and then add the GuiMods package via the PackageManager menus.

Refer to the SetupHelper ReadMe for instructions and for other install options: https://github.com/kwindrem/SetupHelper

Note that installing GuiMods will uninstall GuiMods2. Installing GuiMods2 after installing GuiMods will uninstall GuiMods. You should not use GuiMods2 !!!