Recent Releases of OpenEMS

OpenEMS - 2025.4.0

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • New controller for flexibility trading with Levl Energy by @DennisLevl in https://github.com/OpenEMS/openems/pull/2873
  • Implement Carlo Gavazzi EM100 Single Phase Meter by @sthhs in https://github.com/OpenEMS/openems/pull/3004
  • MQTT: avoid duplicate connect attempts by @MurselKhan in https://github.com/OpenEMS/openems/pull/3039
  • Sum: add Power and Energy distribution channels by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2923
  • FEMS Backports 2025-03-11 in https://github.com/OpenEMS/openems/pull/3046
    • ENTSO-E: fix missing data due to bad response
      • Provides a more robust and complete dataset by ensuring no timestamps are missing.
      • Previously, the min/max timestamps were derived only from the extracted response based on the preferred duration. Now, they are computed from the entire dataset, ensuring better coverage of all timestamps.
      • A new test case was introduced using an XML response that previously caused missing timestamp issues.
    • Time-of-Use-Tariffs: AppCenter: add max charge from grid setting
      • Added a property for every ToU app to set the maximale allowed charge from grid power
    • GoodWe: disable internal BatteryProtection
      • Disable internal goodwe battery protection called socProtect, that caused several problems.
      • After setting this register to 1, the maximum voltage values of the write-registers are used.
    • RabotCharge Time-of-Use-Tariff: fix price calculation
    • Home Battery: stop on critical min cell voltage
      • Battery values changed to null when there is no battery communication, because ModbusBridge invalidates all Modbus Channels then.
      • As a result the system restarted until it was in deep discharge. Use last defined value to check the minCellVoltage.
    • CleverPV: send EssDischargePower instead of EssActivePower
      • Clever-PV requires the actual battery charge/discharge power and not AC-side of hybrid inverter
    • Energy Scheduler v2: continuous improvements
      • Improve tests and logs
      • GridOptimizedCharge: fix possible NPE in EnergyScheduler
      • Improve InitialPopulation: this is crucial for v2. Because simulation is much slower, it is important to start with a good Initial Population. It is now possible for each EnergyScheduleHandler to suggest its own Initial Population (e.g. CHARGE_GRID in cheapest quarter)
      • Add index to GlobalOptimizationContext.Period, makes it easier to loop over them in a stream
      • Improve Jenetics Engine configuration: EliteSelector to make sure best Initial Populations survive; Alterers match better with the expected search task
      • Increase initial wait time to create GlobalOptimizationContext - e.g. for Home systems that require some time to read capacity
    • EVSE Edge Improvements
      • Add SURPLUS mode to EVSE Single Controller (works with only one EVSE simultaneously at the moment)
      • Add manualEnergySessionLimit and ENERGY_SESSION channels - only considered in EnergyScheduleHandler at the moment!
      • Add Energy Scheduler Simulation for manual modes (ZERO, MINIMUM, SURPLUS and FORCE)
      • EVSE KEBA via Modbus/TCP:
        • Add PhaseRotation
        • Calculate/distribute Power per phase
    • Home Battery: use new register for number of towers
      • New ATL versions cannot guarantee a value for TOWER_X_BMS_SOFTWARE_VERSION. This makes it impossible to calculate the number of towers based on this values.
      • The new Register was not present in the initial test version but should have been available since the first container shipment.
    • Time-of-Use App Octopus Go
    • Energy Scheduler v2 + EVSE: general improvements
      • Sinexcel: use static imports; drop unused EventTopics
      • Energy Scheduler v2
        • Fix unique ID per EnergyScheduleHandler
      • EVSE
        • ClusterCtrl: move logic to testable static method
        • SingleCtrl: implement SESSION_ENERGY, manualEnergySessionLimit config property and SESSION_LIMIT_REACHED
        • KEBA: separte hardware wiring from S10 configuration
  • FEMS Backports 2025-03-28 in https://github.com/OpenEMS/openems/pull/3075
    • Meta: add Grid Connection Point Fuse Limit + fix EVCS cluster power restrictions
      • Defines the maximum current allowed at the Grid Connection Point (GCP), i.e. the rating of the fuses.
      • changed mlpm prompt in Evcs Apps
      • made mlpm prompt required
      • added default value to mlpm promt base on fuse limit
    • NetworkConfig: added settings for network forwarding
      • Added settings in network component to set "IPv4Forwarding" & "IPMasquerade" only with manual rpc request or AppCenter configuration
    • ESS Generic Managed: Allow manual clearing of timeout failures
      • Updating the ESS component sets the status of the state machine back to undefined.
      • In the Undefined state, the ESS component decides whether to stop or start depending on the start/stop target if there is no error.
      • However, when the component is updated, the start/stop configuration that has already been set is also reset and does not receive a target update from the system component, as the system component is already in Running.
      • The moment in which ess target is updated only takes place in the system component go_running.
      • The restart can therefore only take place if the ess component failure is deleted without the ess component being updated.
      • This requires an implementation in the system component that removes the ess “max start/stop attempt failure ”s.
    • Octopus Go: fix price calculation, change config to Cent/kWh, add JUnit tests
    • ToU Controller: apply PID filter for systems with disabled PID
    • AppCenter: App for clever-PV
    • LSTM: fixed spelling mistake
    • ModbusTcp/Rtu: reset Invalid Modbus Call error after 60 seconds
      • Often Modbus-Api shows a "Invalid Modbus Function Call" error because e.g. IP of a relay board was incorrectly configured. Even after we have fixed the root cause, Modbus-Api remains in a fault state. Previously, this could easily be cleared by restarting the component. Since the modified method was introduced, this is no longer the case.
      • Removed debounce PROCESS_IMAGE_FAULT
      • Channel PROCESS_IMAGE_FAULT is set to false if there is no error within 60 seconds
    • JSCalendar, Energy Scheduler, EVSE Backports
      • JSCalendar
        • add helpers to handle Lists of Tasks
        • fix getNextOccurrence
      • JsonUtils: use objects and not primitives
      • Add RegexUtils
      • Energy Scheduler
        • Add Serializer and Deserializer with Factory-PID and Component-ID
        • Replace Double for cost with "Fitness" object; allows considering multi-level constraints (hard+soft)
        • Improve RunOptimizerFromLogApp to re-simulate real data
        • Avoid usage of Exceptions in normal execution flow
        • Identify managedConsumption per Controller-ID in EnergyFlow
        • Add RunOptimizerApp for easier simulation & testing
      • EVSE
        • Improve calculation of surplus power
        • Add ACTUAL_MODE channel for Single-Controller
        • Implement SMART mode (incl. field- and JUnit-test)
    • Meters: add "invert" in all meters and apps
      • Can now invert meters in the app config
      • implemented INVERT ElementToChannelConverter in all meters that had not yet implemented it
    • AppCenter: clever-PV data privacy notification
      • Added logic in OpenemsAppPermissions to only allow certain roles to install
      • Used logic to make enerix not installabe by Installers
    • Energy Scheduler: improve logging, handling and prevention of Exceptions
  • FEMS Backports 2025-04-01 in https://github.com/OpenEMS/openems/pull/3080
    • Excel Export: improvements
      • Added io.openems.edge.ess.dccharger.api.EssDcCharger to XlsxExportUtil
      • Added charge0 to XlsxExportUtilTest
      • Added Method for Xlsx float value with 2 decimals
    • EVSE Improvements
      • Add Chart to UI Modal
      • Better handling of unplugged state
      • Add Schedule also to EnergyScheduleHandlers WithOnlyOneMode
      • Add JSONRPC-Response for SMART/MANUAL Schedule
    • AppCenter: changed default modbus for meter apps
    • EVCS Heidelberg Wallbox Energy Control readOnly
      • This is an implementation of pure modbus readonly EVCS based on ElectricityMeter

OpenEMS UI

  • FEMS Backports 2025-03-11 in https://github.com/OpenEMS/openems/pull/3046
    • Refactor Fixdigitaloutput modal with formGroup
      • Creating unit testable form with formGroup for modals
    • EVSE UI Improvements: add mode SURPLUS
    • fix display of dimming in grid
      • Hiding and showing of dimming in grid history was not applied right
    • Replace manual component configurator with Estimated Configuration response
    • Use fallback LIGHT_MODE for them popover selection
      • Using fallback theme LIGHT if popover has been closed without choosing a theme
    • Change tooltip display state for heatpump
      • Fixing tooltip displayed heatpump state
    • Change chartjs hover over pointer style
      • Improving chartjs hover mode, point out currently selected timestamps respective datasets value
      • Refactoring currentEdge observable to signal -> resolving lifecycle issue
    • fix chartjs legend display error
      Legend Labels not generated
  • FEMS Backports 2025-03-28 in https://github.com/OpenEMS/openems/pull/3075
    • Fix read only twice in history
      • New Evcs without DeprecatedEvcs showed twice instead of once in cosumption history
      • Added filter to evcsComponents
    • Translations for UserComponent
      • Adding translations for /user - the UserComponent
    • Fix modal templates
      • Fixing modals using the currentEdge signal in template and still used async pipe
      • Could have been avoided with strict templates ts config...
    • Change consumption total color
    • Redesign ion-toggle
      • Redesigning ion-toggle and adjusting the look to match the Darkmode feature.
    • Add battery extension capacity info
      • Add warning to battery extension for battery referencing
    • Prevent y scale min to equal max
      • Prevent chart y scale for power and energy values to be showing no line due to max and min of y scale being the same
    • Fix heatpump chart
      • State - Channel values from 0 to 3 need to be scaled to 1 to 4 due to differences with docs
    • Change docs links
    • Change y scale title placement
    • Unify translations (en)
  • FEMS Backports 2025-04-01 in https://github.com/OpenEMS/openems/pull/3080
    • Fix History show/hide month & year view
      • Fix right YAxis undefinied error
    • Fix modbustcp widget was not shown in history
    • Initialize action sheet modal navigation
      • Creating new central footer navigation with breadcrumbs and chips for back and forward navigation -> enables dynamic nesting of components
    • Fix Translations Keys of mode manually
      • Reverted General.manual to General.manually
    • Manual backport UI changes

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2025.3.0...2025.4.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 1 month ago

OpenEMS - 2025.3.0

Release Highlights

  • Clever-PV Controller
  • Electrical Vehicle Supply Equipment (EVSE)
    • WIP for a future replacement of the current EVCS APIs. The new namespace is "Electrical Vehicle Supply Equipment (EVSE)".

Details

Common/General

OpenEMS Edge

  • FEMS Backports 2025-02-07 in https://github.com/OpenEMS/openems/pull/3005
    • This fixes a critical bug in Time-of-Use-Tariff Optimizer in https://github.com/OpenEMS/openems/releases/tag/2025.2.0
    • AppCenter: Fix selecting relays
      • added filter for initial check if an app can be installed based on available relays (CheckRelayCountFilters.deviceHardware)
      • properly handle selecting multiple relays (array value)
      • moved required setting to right places
      • added missing options hint in SelectGroupBuilder if none are available
      • only apply modal of safe input when confirmed
    • ToU Optimizer: fix BALANCING fallback schedule
      • A endless loop causes fallback schedule. Bug became visible after recently added null-check
      • Copied logic from new Optimizer.java: src/branch/develop/io.openems.edge.energy/src/io/openems/edge/energy/optimizer/Optimizer.java#L198-L202
    • EVCS: new PhaseRotation which supports better Modbus handling
      • Native EVCS support for PhaseRotation
      • switched nature enum PhaseRotation to a new format
      • added method Evcs.getPhaseRotation() (BREAKING CHANGE)
      • applied code cleanup
    • JsonSerializer: improved serialization
      • added tests
      • added StringParser of e. g. UUID, SemanticVersion, ChannelAddress, ....
      • added number parsing
      • added polymorphic parsing for subclasses of one type
      • added boolean parsing
      • EmptyObject to reduce duplicated empty request/response
      • added nullable paths for every type
      • added primitive path with strict parsing
      • updated a lot of json rpc methods
  • FEMS Backports 2025-02-25 in https://github.com/OpenEMS/openems/pull/3024
    • GoodWe: increase minimum power that will be ignored.
      • Bigger systems still have 79W permanent charge power, while the dynamic tariff would charge/discharge with zero.
      • After a longer discussion the values below 100W will be now ignored to avoid a lot of service cases that can not be explained.
    • Clever-PV Controller
    • Evcs: add helpers for phases
      • add Evcs:addCalculatePhasesListeners()
      • add Evcs:addCalculatePhasesFromActivePowerAndPhaseCurrents()
      • Note: typical EVCS hardware models provide CURRENT_L1-3, and ActivePower, but some models provide only CURRENT_L1-3 and some other models provide only ACTIVE_POWER_L1-3. Therefore these methods are added to easily compute the missing channel values.
    • Electrical Vehicle Supply Equipment (EVSE)
      • This is WIP for a future replacement of the current EVCS APIs. The new namespace is "Electrical Vehicle Supply Equipment (EVSE)".
      • This PR provides:
        • APIs for
          • Electric Vehicle
          • Charge Point
        • Implementations:
          • KEBA P30/P40 via Modbus/TCP (Evse.ChargePoint.Keba)
          • Generic Electric Vehicle (Evse.ElectricVehicle.Generic)
        • Controllers:
          • Single Charge-Point (Evse.Controller.Single)
          • Cluster of Charge-Point-Controllers (Evse.Controller.Cluster)
        • Simple UI to control the Charge-Mode of Charge-Points
      • NOTE: All of this might be heavily refactored in future. Having it on develop helps us to test it easier in production. It does not affect any existing EVCS implementations.
    • BitsWordElement: Extend it via setToNullIfBit to indicate the invalid bit value input
      • Integrate the convert option for BitsWordELement
      • According to the given function/condition each bit channel values can be manipulated
      • The main reason of this implementation is to in order to indicate if value present or default value delivered
      • As an example; with this approach in case of default value detection, the values can be set to null
      • Similar approach was implemented in ElementToChannelConverter as "Set_to_null_for_default()" method
    • Implement UpdateUserSettingsRequest for edge-uiwebsocket
      • Adding updateUserSettingsRequest support for edge-ui-websocket request handler
      • Follow up to darkmode settings not being able to set locally
    • AppCenter: Only try to get Component if needed
      • If a component is not satisfied and therfor not startet an exception gets throw because the component can not be obtained
      • Solution: only get component if first method fails or can not provide the properties
    • KEBA: fix EnergyLimitReached when no Limit configured
      • Currently a bug starts to popup more and more in ticket.
      • -> Keba Charging Station has the Status ENERGY_LIMIT_REACHED eventhough energyLimit is not activated
      • Added removed check for limit != 0 (limit 0 should mean that no limit is set) in status mapping in ReadHandler of Keba
  • Energy Scheduler v2 / Time-of-Use-Tariff optimization (ALPHA) by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3029

OpenEMS UI

  • FEMS Backports 2025-02-07 in https://github.com/OpenEMS/openems/pull/3005
    • History consumption chart non deprecated evcs not taken into account for total consumption
      • in history chart "consumption". Ensure that non deprecatedEvcs (new implementations) are not added to "sonstiger Verbrauch"
      • if deprecatedEvcs is not implemented (chargepower channel nature) then it is added to consumption metered
  • FEMS Backports 2025-02-25 in https://github.com/OpenEMS/openems/pull/3024
    • time-of-use rename state to status
    • Dark-mode Popup
      • Displaying Popup after successful log in, to announce the Dark-mode new feature for users, showing it only once after users get the new software release.
    • Angular 19 migration fixes
    • setting chart afterTitle directly
    • Formly Radio Button
    • Add last setup protocol download to profile
      • Downloading latest setup protocol in profile
    • IOS Fixes
      • file download for excel export and last setup protocol did also not work on mobile with browser, now only in app downloads are not working
      • theme selection popover radio buttons not shown, due to default ios design, changing to material design
      • -> before checkmark as radio icon with no circle, now with circle
    • Enforce datetime format for ion-datetime
      • fix datetime format of ion-datetime, ionic changed returned format of the date string
      • unit test to avoid this in future migrations
    • Change visibility of producttype and sumState filter
      • changing visibility of producttype and sumState filters in ems-overview from admin to installer
    • Enable darkmode locally & restrict float number decimals
      • Enabling setting darkmode for local monitoring
      • restrict float number decimals in y Axis ticks
    • Phase-accurate button change
      • Correcting buttons names on the footer navigation in history Consumption chart view.
    • Fix evcs modal range slider bug
      • Fixing ion-range bug

Version Upgrades

New Contributors

  • @HaSp97 made her first contribution

Full Changelog: https://github.com/OpenEMS/openems/compare/2025.2.0...2025.3.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 2 months ago

OpenEMS - 2025.2.0

Details

Common/General

OpenEMS Edge

  • Siemens Logo as network relay board by @DerWahreKlinki in https://github.com/OpenEMS/openems/pull/2350
  • Shelly: common executeWrite() method & many JUnit tests by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2658
  • Controller IO Heating Room by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2950
  • FEMS Backports 2025-01-16 in https://github.com/OpenEMS/openems/pull/2969
    • JsonUtils: Update switch cases with pattern matching
    • HttpBridge: add detailed Logger
      • Moved DebugMode to Common
      • Added DebugMode to BridgeHttp
      • Added parameter of type DebugMode to NetworkEndpointFetcher
      • Added Detailed log of result in fetchEndpoint if DebugMode is DETAILED
      • Set DebugMode to DETAILED in HardyBarthEvcsImpl if debug is true in config
    • Sum + ESS: update Modbus table descriptions
      • Adds and changes descriptions of the modbus tables
    • KEBA: fix issue with SessionEnergy
      • Add KEBA specific R2State-enum (for "Report 2")
      • KEBA: drop CHARGING_REJECTED
      • SessionEnergy is set to 0 on UNPLUGGED event
    • Modbus-Api-Controller: add RTU and unify controllers to abstract superclass
      • Implementation of ModbusRTU
      • Refactoring of ModbusTCP to avoid redundant classes
      • Implementation of ModbusRTU App
      • Added "Download Protocol" button for ModbusRtu
    • AppCenter Home: NA-Protection changed text
      • changed na-protection text
    • IO Weidmüller: Added UR20_16DI_P module
    • Symmetric Battery Inverter: add cabinet temperature channel
      • Added a "TEMPERATURE_CABINET" channel in the Battery inverter interface.
    • HardyBarth: temporary fix for null responses
      • This fixes an issue with interrupted charging sessions due to null values.
      • added check for null values in HardyBarthReadUtils
      • The first 3 null values are ignored and no values are written in these cycles
      • Afterwards null values are written in channels as usual
    • AppCenter: add estimated configuration endpoint for IBN
      • Added endpoint to retrieve estimated installation configuration
    • AppCenter: Meta App + Update Component via apps
      • Added core app for meta component
      • Added Logic for updating component config via their apps
    • EmergencyReserveFromGrid: start charging without delay from ramp
      • Added check with previous state that ignores ramp for 1 cycle
  • FEMS Backports 2025-01-20 in https://github.com/OpenEMS/openems/pull/2976
    • Code Cleanup for Java 21
      • Migrate Switch-Case-Expressions to Switch-Case-Statements
      • General code cleanup (using Eclipse "Clean up" tool)
    • EVCS Mennekes: cleanup
    • Cleanup Eclipse warning (#2971)
  • Correct FENECON Home Battery Unit for Cell Voltages by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2974
  • Fix VerifyError in EdgeConfigWorker by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2987
  • FEMS Backports 2025-02-02 in https://github.com/OpenEMS/openems/pull/2997
    • Host: extend getIpAddresses Request
      • Extended jsonRpc request for getIpAddresses with more data for networkInterfaces and IP routing table
    • Mennekes Relase: Remove AppPermissions
      • Remove App Permissions from Mennekes for upcoming release
    • SunSpec: set correct OpenemsType for floating point values
      • See commit details for an example of the changes for a Fronius PV Inverter with SunSpec Block 113
      • Originally we tried to avoid floating point in favour of integer numbers to avoid very frequent sending of changed values. This has been solved in the meantime with a DEFAULT_PERSISTENCE_PRIORITY of VERY_LOW for SunSpec channels.
    • ModbusTcp Read-Only: add modified handling
      • Adds modified method to ModbusTcp Read-Only
    • AppCenter: fix bug where all array properties cant be modified
      • Modifying array properties results in an error "expected array length 1 not 3"
      • "fixed" by changing order of checks to first check if property can be modified and then check if they are the same value
      • TODO future if access check on a array based property happens it needs to be modified to handle array values
      • remove excessive log if component does not exist in ComponentManager#getComponentProperties
    • Energy Optimizer: fix possible NPE
      • This fixes
[_energy ] ERROR [s.common.worker.AbstractWorker] Worker error. NullPointerException: Cannot invoke "io.jenetics.Genotype.get(int)" because "bestGt" is null
java.lang.NullPointerException: Cannot invoke "io.jenetics.Genotype.get(int)" because "bestGt" is null
- According to docs the Collector can indeed return `null`: https://github.com/jenetics/jenetics/blob/master/jenetics/src/main/java/io/jenetics/engine/EvolutionResult.java#L475-L476
  • ElectricityMeter: added calculateCurrentsFromActivePowerAndVoltage and calculatePhasesFromVoltage
    • ElectricityMeter enhancement for more easier integration of future EVCSs. Method may be useful for general ElectricityMeter implementations as well. That's why it was placed in ElectricityMeter and not in Evcs.
  • Windows Fix for IP Validation in Apps
    • IP Validation Regex is now Compatible with Windows again. (Currently when OpenEMS is run locally apps with IP Validation can't be installed)
  • GoodWeGridMeter: ElementToChannelConverter NP-Fix
    • Null check in element to channel converter
  • GoodWe: improve Battery Power Settings
    • Some of the Power settings for the goodwe were not applied correctly (Per default disabled, wrong scale factors, wrong register mapping cosPhiF != PU)
  • GoodWe: ignore impossible power values
    • The DcActivePower resgister of GoodWe is giving 20-40 watt values when the SoC is 0 or 100 and there is no real charge/discharge of the battery happening. This values will be ignored to avoid wrong energy values, as the energy is calculated based on the active power.
    • The same occurs when the battery is getting a 0 charge/discharge set point. If the SoC is between 0 and 100 it is also ignoring this low power values when the current EmsPowerMode is Charge/Discharge Bat & the EmsPowerSet is 0 W

OpenEMS UI

  • Dynamic numberformat conversion by using current locale by @miettal in https://github.com/OpenEMS/openems/pull/2757
  • Overview search: trigger on every input change by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2935
  • Add defaultLanguage setting to src/environments by @miettal in https://github.com/OpenEMS/openems/pull/2756
  • Fix component.update View by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2958
  • Fix formly form styles by @lukasrgr in https://github.com/OpenEMS/openems/pull/2962
  • Switch from ionChange to ionInput for Real-Time Filtering in Search Bar by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2963
  • FEMS Backports 2025-01-16 in https://github.com/OpenEMS/openems/pull/2969
    • Prepare Login Improvements
    • Added template to override the default formly behaviour bugs
    • fix styling of negative-values and positive-values info
  • FEMS Backports 2025-01-20 in https://github.com/OpenEMS/openems/pull/2976
    • use user language instead of browser lang for locale
      • replace locale being overwritten with browserlang to be using the user lang
      • fix czech locale, cz throwing errors for
      • piping (using angular pipes)
      • formatting of numbers
      • replacing it with cs -> Ref
    • Improve Modbus Widget
      • fixes name of channel in ModbusTCP widget (e.g. Ess1SetActivePowerEquals was shown as SetActivePowerEquals/706 in OM)
      • Several ess lead to repeating register names in ModbusTcp widget.
    • Dark mode pick-date improvements
      • Enhancing styles of popover in accordance with dark-mode feature.
    • Add handling for Controller.IO.Heating.Room
  • migrate .eslintrc to eslint.config.mjs by @miettal in https://github.com/OpenEMS/openems/pull/2675
  • FEMS Backports 2025-02-02 in https://github.com/OpenEMS/openems/pull/2997
    • Change display color of currency axes
      • fix coloring of yAxes for currency
      • extending eslint rule no-unused-vars with ignoreRestSiblings: destructuring throws otherwise an error for unused sibling
    • Adjust custom time range chart display
      • Adjust time-range picker in mode Custom to display only the months queried for monthly resolution, before if start and endpoint are in a different year, it would fill up both years to show 12 months per year
    • Fix searchbar request overload
      • reducing calls of GetEdgesRequest and waiting for last requests response
      • avoids showing every response
      • introduce 1 second debounce
    • Refactor heat pump history
      • Using Time-channels for bar charts
      • creating refactored standalone unit tested lazy loaded history for heatpump
      • sanitizing data for io time channels if they are not adding up to
        • 24h (1 day - month view) -> rounding if only one minute missing
        • 744h (31 day month - year view) ... -> rounding if only one hour missing
        • -> increasing RegularStateTime by the missing diff
      • Attention: There still could be some deviation due to OpenEMS Edge being offline during systemupdate
    • Improve styling
      • Remove unused imports in GetNetworkInfo and MennekesEvcs
    • Controller.IO.Heating.Room: add UI Live widget
      • Add UI Live Flat and Modal for Controller.IO.Heating.Room
      • This implementation could in future serve as a proof of concept for new JSCalendar configurations
    • EVCS Cluster: remove slides from modal
      • Because of display errors after recent Angular & Ionic update.
  • UI: Refactor Info Text Blocks into a Reusable Template by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2961

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2025.1.0...2025.2.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 3 months ago

OpenEMS - 2025.1.0

Release Highlights

Details

Common/General

OpenEMS Edge

  • FEMS Backports 2024-12-10 in https://github.com/OpenEMS/openems/pull/2916
    • ENTSO-E: added preferred resolution config
    • ModbusTcpApi: fix updating ModbusRecordTable
      • Clears ModbusList on initializing => components, that are removed in the modbus component_ids cant be accessed by qmodmaster anymore.
      • Fixed ModbusComponents getting actually removed out of array => resulted in write commands not being executed after esscluster change
      • High Prio because this bug could lead to serious problems on our systems, especially on Industrial systems.
    • ToU: resolution property addition in ENTSO-E App + fix ENTSO-E timing
      • Added resolution property to be able to be configurable through APP.
      • Fixed the ENTSO-E Bug where prices are mismatched by 15 mins.
    • Prediction ValueRange: fix possible NPE if value is null
      • In my refactoring of the Prediction class I missed handling of a situation where a NullPointerException could happen.
      • This leads to the problem that - if no local historic values are existing, e.g. after system outage or at IBN, the prediction fails with a NullPointerException.
    • Time-of-Use-Tariff: apply ESS_MAX_SOC in Run-State
      • Unfortunately this had been lost during splitting of Optimizer and ToU-Controller
      • Also increasing the value to 94 % to take into account larger storage systems
    • EVCS Mennekes Read Only implementation
      • Mennekes Implementation from OpenEMS PR #2082
      • Added App for Mennekes
      • Added new App Category for Read Only Evcs
      • Added Read only to mennekes config
    • Core: add Greece to safety country list
    • Backport GoodWe Grid.Meter fix; relates to #2895
  • FEMS Backports 2024-12-18 in https://github.com/OpenEMS/openems/pull/2932
    • EVCS Api State: remove CHARGING_FINISHED, i.e. "Car is full"
      • Removed "CHARGING_FINISHED" from Status in evcs.api
      • Fix for every part where CHARGING_FINISHED was referenced
    • Fix CI Build: remove OCPP dependency javax.xml.soap
    • Edge: Mennekes Occupied Check
      • Added Check if ActivePower is present when mapping the OcppStatus 1 of the Mennekes Register 104.
    • Controller.Ess.EmergencyCapacityReserve: recharge from grid
      • Config setting + channel in Meta Component
      • new state for in satemachine of emergencyreservesoc
      • change logic of statehandlers to include new state

OpenEMS UI

  • Websocket: WSS instead of WS if page is accessed via HTTPS by @helgeklein in https://github.com/OpenEMS/openems/pull/2937
  • Fix Filter Style after Migration to Angular 19 by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2934
  • Fix Style of Level ion-select after Upgrade to Angular 19 by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2933
  • FEMS Backports 2024-12-10 in https://github.com/OpenEMS/openems/pull/2916
    • dynamic scaling for charts and start scales at least at 0
      • Redoing feature that yAxis scale has dynamic scale and didnt have to start at 0
    • adjust server not accessible page for local monitoring
      • Adjusting server not accessible page for local monitoring,
    • update last updated timestamp for empty edge
      • Updating lastUpdated timestamp even if edge config is empty, _sum/State still exists
    • show absolute value for grid current value in modal
      • Use absolute value for grid modal current, text on the current value shows state grid-feed-in or grid-buy
    • Offline-Page Translations
    • ToU chart bugfix regarding dynamic scaling
    • Darkmode
      • some color changes were done for both light and dark mode
  • FEMS Backports 2024-12-18 in https://github.com/OpenEMS/openems/pull/2932
    • Add Custom Min Value for Y-Axis in Charts to enhance schedule display
    • dark mode improvements
    • replace legacy percentagebar
    • delete unused old systemupdate component
    • change header title color
    • Emergency Reserve with Charge-from-Grid

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.12.0...2025.1.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 4 months ago

OpenEMS - 2024.12.0

Details

Common/General

OpenEMS Edge

  • FEMS Backports 2024-11-19 in https://github.com/OpenEMS/openems/pull/2882
    • Backend Api Controller: randomize sending aggregated data
      • distribute sending data over (almost) whole 5 minutes to have not all data at once in the backend
      • added sparate executor for aggregated tasks
      • use single created "now" timestamp
      • add randomiser for sending aggregated tasks between 0sec - 270sec
    • Home 6, 10 & 15: Apps
    • RabotCharge: authenticate via OAuth credentials
      • updated price retrieving
      • use oauth client for credentials
      • only zipcode needed for local prices
    • AppCenter: use new modbus portName for new hardware (Home 20 & 30 & Gen2 & Commercial 92)
      • Preparation for new OpenEMS Hardware
      • use new modbus port for new hardware
    • AppCenter: add 14a for home gen2 (6 & 10 & 15 kw) and commercial
      • Update 14a Controller in Scheduler to be at the top
      • 1added Setting to enable 14a in Commercial 92 & Home Gen 2 Apps
    • GoodWe: add NA-protection property
      • The hardware block at the goodwe responsible for three functions needs to be enabled/disabled if at least one of this external limitation function is needed.
      • Functions of Register 47010 (DRED_REMOTE_SHUTDOWN_RCR_FUNCTIONS_ENABLE)
        • DRED
        • Remote Shutdown (NA-Schutz)
        • RCR (Rundsteuerempfänger)
    • AppCenter: Renamed gen2 Home Apps
    • AppCenter: disallow EMS IP in AppCenter IP-Address input
      • new standard prop "excludingIp" in common props of apps
      • Formly builder gets all IPs via new Request and builds a RegEx using those ips
      • formly builder is then set as a validator
      • json rpc request that gets all ip addresses of the system
    • Time-of-use-Tariff: integrate ESS-Limiter §14a EnWG Controller
      • Remove static config in ToU-Controller; instead apply Limiter.RESTRICTED_MODE of referenced ControllerEssLimiter14a
      • Fix Limiter Channel type to BOOLEAN
    • ModbusUtils : Extension to read element once using FC4 function code
      • the "readElementsOnce" was designed to use FC3. Some modbus devices require FC4 instead. This change now requires explicit definition of the FunctionCode.
    • Prediction & TimeOfUseTariff: improve
      • Extract common methods to an abstract QuarterlyValues class
      • Make sure ZonedDateTime isEqual() method is used to retrieve values. Before the ZoneId would make a difference (see new test in DummyPredictorManagerTest.java)
      • Use Guavas ImmutableSortedMap which does not anymore allow null values
  • Feature/Dummy MacOS Support by @thomasjbhayes in https://github.com/OpenEMS/openems/pull/2884
  • Fix EssDcCharger nature on modbus by @simon-lgb in https://github.com/OpenEMS/openems/pull/2892
  • FEMS Backports 2024-12-01 by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2894
    • Carlo Gavazzi Meter: fix scaling and extended DummyModbusBridge testing
      • Fixes scaling of Carlo Gavazzi meter
      • Currently the current is way too high (x100)
      • Added JUnit tests
    • BMW Battery: backports of improvements.
    • Meter : Implementation of Simens Sicam meter
    • Time-of-Use-Tariff & EnergyScheduler V2 improvements
      • Allow managed consumption in EnergyFlow
      • Fix postprocessing
      • Move version and risk-level to EnergyScheduler
      • Implement Codec for Jenetics
      • Prepare attachments to OneSimulationContext
      • Optimizer: improve thread interrupt
      • Rework InitialPopulation to use int[][] instead of Chromosome
      • Fix immediate reaction to configuration change events
      • Prepare integration of EVCS

OpenEMS UI

  • FEMS Backports 2024-11-19 in https://github.com/OpenEMS/openems/pull/2882
    • UI: restructure test env
      • restructure test env to be suited for ibn unittests
      • TestingUtils.mergeSetup makes setting up effective test environments easier
    • UI: adjust app reload behaviour
      • Replacing time of use title with Cent instead of cent per kWh
    • UI: introduce first lazy loaded module "Changelog"
      • try angular 18 feature of standalone lazy loaded components
        • -> ref -> reduces init bundle size
      • decrease size of init app bundle
      • Fetched on app init
      • Resources for changelog now only fetched if route got activated
    • UI: Currency label based on "Core.Meta" instead of edge id
    • Time-of-Use-Tariff history: apply rounding to state
      • Apply rounding of decimal values to states
    • UI: fix duplicated appearance of apps when key is redeemed
      • Currently incompatible apps are shown multiple times when a key is redeemed
      • This is due to an already filled array getting filled again.
      • To prevent this, the array is cleared out before the apps are getting shown.
    • UI: evcs activePower is used if needed
      • utils class for evcs
      • static method that checks which channelId has to be read for the power value of the evcs
      • history and live widget of evcs use static method
    • UI: fix wrong display yAxis tick in heatingElement and changelog translation
      • Fix translations in changelogmodule
      • Fix last yAxis tick to be a number instead of kW in heating element history
    • UI: make changelog scrollable again
      • changelog was not scrollable
    • UI: Time-of-use: Change visibility of datasets and fix yAxis title
      • Change ordering of datasets, that GridBuy is at the forefront
      • fix y Axis title to display Cent instead of kW
      • fix scaling issues with null values caused by GridBuy dataset
  • Fix ChpSoc style by @da-Kai in https://github.com/OpenEMS/openems/pull/2885
  • FEMS Backports 2024-12-01 in https://github.com/OpenEMS/openems/pull/2894
    • Use dataService subcribe for energymonitor channels
      • Replace energymonitor currentData subscribe with dataService subscribe
    • Add eslint rule for file naming conventions
      • Adding eslint rule for kebab-case file naming convention, turned to off regarding too many changes needed
    • Adjust live reload behavior
      • Adjust pull to refresh, to be more appearant and give user feedback if live data is still up to date -> didnt update in 20 seconds
      • make banner sticky
    • AppCenter: added uninstallation confirm button
      • added confirmation button when deinstalling an app

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.11.0...2024.12.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 5 months ago

OpenEMS - 2024.11.0

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • FEMS Backports 2024-10-11 in https://github.com/OpenEMS/openems/pull/2835
    • FFR: Fast Frequency Response Controller
      • Includes:
        1. Fast Frequency request controller.
        1. Junit test cases.
        1. Step Response Tester changes in the simulated meter. To test FFR with the simulator meter's frequency.
    • EVCS HardyBarth: set "No meter values available" as WARN + translate
      • Changed StateChannel "METER_NOT_AVAILABE" of the HardyBarth component to level WARNING
      • Added translation files for bundle and channel
    • Batteries/Battery-Inverters: downgrade FAULT states to WARNING
      • Downgrade of all possible FAULT states to WARNING states
      • Whenever one of these states would be true, the EssGeneric will stop the battery and the inverter. If this is necessary, it must be specifically mentioned and the state should have a proper description of the fault.
    • EVCS KEBA: downgrade fault for Dip Switch 2.6, because it is now used for §14a
    • ModbusBridge: invalidate Elements on removeProtocol()
      • Invalidate (i.e. set UNDEFINED/null) Elements on removeProtocol()
      • JUnit test shows behaviour. REGISTER_100 is null after removeProtocol()
    • ModbusTcpApi: improvements
      • Fixes error taking alias (of ess) instead of Component ID. This will fix dynamically generating channel addresses.
      • ActivePowerLimit and ReactivePowerLimit result in NaN if null
      • Improved reusability of code through methods
      • Removed constant strings
    • KACO Battery Inverter: fix state transition ERROR to UNDEFINED, Frequency channel
      • Return from Error Handling to Undefined
      • Fix Hz channel name
    • Updates for FENECON Home battery
      • Adjust modbus task priority level
      • Reduce number of tasks
      • Improve stopping process
      • Improve contains task check in Modbus Bridge
    • EVCS: Hystereses with info in UI
      • Hystereses for Charging stations two config values are now shown in the ui for the evcs controller
    • Generic-ESS state machine improvement
      • The main approach is to have a statemachine which can be run all our current systems and avoiding retry start process.
      • Related to any 'Error Handling' topic should be improved or implemented seperately and required a defined generic 'Error handling' concept, which can be applied for all systems.
      • Instead of maximum start or stop time attempts, starting or stopping timeouts are taken care of and shown in UI as an failure. By doing this, its aimed to let the service or engineers to analyze the failure, and forbid to harm the battery by taking an action without know-how knowledge.
    • KACO BatteryInverter: component activate improvements + ModbusSlave
      • Removed second activate annotation
      • always set configuration in activate
    • EssPower: handle Exceptions in handleEvent()
    • Fix critical race condition in Modbus Bridge
      • Modbus-Bridge: fix criticial race condition! If ON_EXECUTE_WRITE was called before ON_BEFORE_PROCESS_IMAGE, the forever()-loop could get stuck forever, because cycleTasks was never initialized.
      • A usual cycle looks like this: ON_BEFORE_PROCESS_IMAGE -> other events -> ON_EXEUCTE_WRITE -> long wait -> ON_BEFORE_PROCESS_IMAGE -> ...
      • The time between ON_BEFORE_PROCESS_IMAGE and ON_EXEUCTE_WRITE is typically very short, especially before all Controllers are activated. This applies for the time when usually a Modbus Bridge gets activated, because this happens before all Devices and Controllers. As a result it was very unlikely, that Modbus-Bridge would receive ON_EXEUCTE_WRITE before ON_BEFORE_PROCESS_IMAGE. During activating and modifying of many components at the same time after initial setup (IBN via App Center) it seems it was much more likely for this race condition to happen.
      • In this very unlikely case, unfortunately the CycleTasksManager would get stuck, as can be seen in this log:
[modbus1] State: FINISHED -> WRITE (onExecuteWrite)
[modbus1] WRITE -> WRITE (onExecuteWrite)
[modbus1] WRITE unchanged (in onBeforeProcessImage) Delay [0] (time is invalid)
[modbus1] WRITE -> WRITE (onExecuteWrite)
[modbus1] WRITE unchanged (in onBeforeProcessImage) Delay [0] (time is invalid)
...
- This problem was solved by initializing `this.cycleTasks` from `tasksSupplier`.
- New behaviour is proven to work in `CycleTasksManagerTest.java`, `testExecuteWriteBeforeNextProcessImage()` which would fail with previous code.
  • Modbus-Bridge:
    • ignore events before activate
    • renew logging to show Component-ID everywhere
  • RRD4j: reduce log warnings; remove stacktrace; add channelAddress
  • EnergyScheduler:
    • remove unnecessary log message
    • add log verbosity
    • cleanup config
  • AbstractWorker:
    • synchronized activate/modified code
    • before calling activate twice would result in an error
    • it's still not possible to stop and restart a worker (e.g. when enabling/disabling a component that uses a worker)
  • AbstractOpenemsModbusComponent:
    • combine common code of activate() and modified()
    • removeProtocol and retryModbusCommunication are handled internally by ModbusBridge
    • fix modbusReference in modified()
  • Home Battery:
    • wait for activate to set hardware type default
    • ComponentManager is required; otherwise ClockProvider is null during init
  • Ess.Power:
    • fix ArrayIndexOutOfBoundsException
    • fix ConcurrentModificationException when ESS are added/removed
  • GoodWe Battery-Inverter: fix handleEvent called before activate. Possible NPE.
  • GridOptimized charge requires a production power to run properly
    • Avoid exception and inform user about unexpected behaviour of controller
  • FEMS Backports 2024-10-19 in https://github.com/OpenEMS/openems/pull/2846
    • EVCS HardyBarth: communicate via HTTP-Bridge
      • Implemented BridgeHttp in Impl of HardyBarthEvcs
      • All Api Calls now flow through that Bridge
      • Api Calls (esp. setHeartBeat that previously was synchronous) are now asynchronous
      • Add JUnit tests
    • EVCS: implement ElectricityMeter
      • Migrate all EVCS to ElectricityMeter Nature
      • Add DeprecatedEvcs Nature to mark EVCS that have to be migrated and still support old Channels ChargePower and ActiveConsumptionEnergy
      • Implement generic evaluatePhaseCount() method
      • Implement configurable PhaseRotation in configuration and Apps (copied and adjusted from #2047)
      • Fix AbstractManagedEvcs deactivate()
    • Sum: do not ignore ExtremeEverValues in EdgeConfig
    • Java JUnit tests: improve framework + cleanup
      • Improve OpenEMS JUnit test framework
      • Apply best practices to JUnit tests
  • Energy Scheduler by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2789
    • Introduce generically usable EnergyScheduleHandler (ESH) for executing energy simulations and applying schedules
      • Provide nice debugLog output and channel "SimulationsPerQuarter" to detect performance issues
      • Use Cache for cost of Genotypes
    • Add config property "Version" to be able to switch between old (only ESS, but fast and well tested) and new (generic ESH but slower) implementation.
      • Attention: be sure to set EnergyScheduler (Core.Energy) and Controller.Ess.Time-Of-Use-Tariff to the same Version!
    • Introduce new implementation of EnergyFlow that uses linear constraint validation and optimization
    • Implement ESHs for
      • Controller.Ess.Time-Of-Use-Tariff,
      • Controller.Ess.EmergencyCapacityReserve,
      • Controller.Ess.LimitTotalDischarge and
      • Controller.Ess.GridOptimizedCharge (MANUAL only)
    • Old implementations are moved to v1 packages and marked @Deprecated and will be removed in one of the next versions of OpenEMS. Unfortunately right now this leads to some mixed code.
  • ToU+EVCS: fix calculation of _sum/UnmanagedConsumptionActivePower by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2856
  • ENTSO-E: fix parsing of XML, resolution fallback, improve error handling by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2839
  • FEMS Backports 2024-11-01 in https://github.com/OpenEMS/openems/pull/2863
    • Keba ReadWorker: fix possible Exception
      • Added Tests to identify when and how the exception can occur.
      • Tests for the "calculateCycleTime" work for multiple cases without throwing an exception
      • Tests could still be kept for code coverage
    • GoodWe: improve serial number filter
      • Change the serial number filter according to the goowe serial number rule.
      • Each GoodWe Type is now detected individually by its rated power in combination with its internal model series code.
    • GoodWeGridMeter: adjust CURRENT sign current if needed
      • Added Listener to ActivePowerLX Channels
      • Each Listeners checks if the nextValue for the power channel if the current and power have the same sign
      • If the sign is different the current channel is set with * -1
    • JUnit Test Framework: add possibility to test raw modbus reads
      • DummyModbusBridge can now be used to test raw modbus reads
      • Apply new test for changes in GoodWe GridMeter and SunSpec
      • Also: Improve and apply ReflectionUtils
    • Replace exchangerate.host with Eurpean Central Bank API
    • _host/OsVersion: read os version as string
      • Added OS_VERSION Channel in Host Component
      • Write e. g. "11 (bullseye)" in channel for linux and for windows "Windows 11"
    • Time-of-use-Tariff Swisspower

OpenEMS UI

  • FEMS Backports 2024-10-11 in https://github.com/OpenEMS/openems/pull/2835
    • fix non refactored charts
      • Display of non refactored charts did not work, because of latest debounce change, e.g. Storage history
    • add role is at least admin for DebugMode
    • fix timeOfUsePrice zero bug: 0 != null
    • Username to lowerCase & eslintRule
      • eslint-rule to prevent getting fdescribe or xdescribe into production
      • lowercasing username
    • style improvements
      • allow disabling tooltips in charts
      • remove non existent fixDigitalOutputWidget from history template
      • break title into multiple lines if overflowing
    • Style adjustments: currentVoltageChart
      • Switch left and right YAxis
      • Remove beginAtZero from current and voltage chart
      • hide gridLines for right yAxis - Voltage
      • change order of labels, now first consumptionMeters then chargers
    • round slightly negative values
      • Round negative QueryHistoricQuery -Data around a defined threshold to 0
  • add import order rule to eslint by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2838
  • fix some UI display error by @da-Kai in https://github.com/OpenEMS/openems/pull/2837
  • FEMS Backports 2024-10-19 in https://github.com/OpenEMS/openems/pull/2846
    • Mix Evcs & ElectricityMeter (live != history)
      • Live: use ElectricityMeter if its already available (e.g. for power of individual phases)
      • History: use Evcs to ensure availability of historic data
    • Performance improvements
      • Navigation for users with at most Role OWNER with one fems assigned, get directly routed to device/edgeId/live
      • Navigation for users with at least Role INSTALLER -> /overview
      • Removed flickering of headerComponent. Issue results from creating header component for each view
    • Refactor heating element history
      • Refactoring HeatingElement and using the new Cumulated[Level 1 -3]ActiveTime
    • Adjust Chart-axis generation
      • Multiple yAxis: Increase chart canvas by putting y axis labels into ticks, the most upper tick gets replaced by axis title
    • fix header in history charts and add enable rescaling in history charts
      • Rescaling of charts was not possible due to not ignoring hidden values
      • Header was shown in the chart views
      • Introduce <app-header> and keep <header> as single navigation point header
  • fix: Delete the duplicate button by @Jasonlee6789 in https://github.com/OpenEMS/openems/pull/2844
  • Unify icon styling by @da-Kai in https://github.com/OpenEMS/openems/pull/2731
  • FEMS Backports 2024-11-01 in https://github.com/OpenEMS/openems/pull/2863
    • Label correction in SoC widget in history.
      • Fixed lables shown below.
      • Energy is represented as Power.
      • Entladung/Beladung is represented as Charge/Discharge power. replaced with Just Charge/Discharge.
    • replace currentUser observable with signal and solve login caching
      • Start recommended restructuring observables to signals
      • Fix UserComponent caching user information after logout
    • Smaller Improvements
      • Auto capitalize ibn-installer key input field to show only upper case letters in mobile view (keyboard)
      • Fix wrong service number in offline manuals
      • adjust time of use chart in live with replacing the upper most left yAxis tick with the chart title
    • remove app center app icon
      • Improving app center readability of icons

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.10.0...2024.11.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 6 months ago

OpenEMS - 2024.10.0

Last month we attended the OpenEMS Hackathon 2024 in Osnabrück, Germany, at Slashwhy. See the recording on YouTube for details: https://www.youtube.com/watch?v=9FWw0lQY4jc

Details

Upcoming PRs

Common/General

OpenEMS Edge

  • FEMS Backports 2024-09 in https://github.com/OpenEMS/openems/pull/2788
    • AppCenter: handle hardware specifics via hardware Apps
    • AppCenter: App for Phoenix Contact Meter EEM-MB370-24DC
    • AppCenter: App for PqPlus Meter UMD96 & UMD97
    • Channels: allow translatable Channel descriptions
    • Controller.Api.ModbusTcp.ReadWrite: UI live and historic view
    • GoodWe: fix StateRegisters
    • Simulated Predictor

OpenEMS UI

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.9.0...2024.10.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 7 months ago

OpenEMS - 2024.9.0

Common/General

OpenEMS Edge

OpenEMS UI

  • FEMS-Backports 2024-08 in https://github.com/OpenEMS/openems/pull/2740
    • Fix wrong displayed unit in energy chart for Soc
    • Extend subnavigation for consumption, production and grid history
      • Add total phases to subnavigation in consumption and production history
      • split charts
    • Add lastMessage to offline information
    • Fix "prod" build
    • Fix unit in asymmetric voltagecurrent chart
      • Fix wrong displayed unit for current in voltage/current chart
    • Realign xAxisLabels
      • Fixing xAxis labels in all not refactored charts
    • Fix channels error while on same dashboard
      • /channels: If you want to see the same dashboard for another fems and just replace the femsNumber in url, creates Errors
  • Apply formatting by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2742
  • AppCenter Index: Refresh after install/delete of an App by @DerStoecki in https://github.com/OpenEMS/openems/pull/2533
  • Fix for Configuration & Status not populated Fully by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2738
  • Fix percentagebar svg by @da-Kai in https://github.com/OpenEMS/openems/pull/2732
  • FEMS-Backports 2024-08 (2) by in https://github.com/OpenEMS/openems/pull/2771
    • Fix sum chart in consumption history
      • Wrong variable used in consumption detail html
    • Add routing guards for settings
      • Introduction of Routing Guards
      • Not visible routes could be accessed through manually going there
      • Adding edge role check before accessing this route
    • Center refresher-spinner
      • Center refresh-content-spinner
    • Migration to angular 18
      • Update Angular, Zone.js, Typescript
    • ESlint: no-multiple-empty-lines
    • Fix tooltip afterTitle display bug
    • Enforce double quotes
      • Enforce usage of double quotes
      • prohibit single quotes
      • backticks are still usable -> ref
    • Add exhaustive switch eslint rule
    • App: Update android api due to googles new policy
      • Updating android api level due to googles new policy, enforcing ANDROID_API_LEVEL=34 to be minimum version
    • Build android app
      • Add CI pipeline for building Android apps
    • Reduce history queries & overloading of chartData
      • If a history chart takes too long to load and the user switches the timerange, the old timerange will be shown instead of the actual one (at least for a few seconds, until the new chart is finished)
    • Replace setCurrentComponent with getCurrentEdge
      • setCurrentComponent is already deprecated and shouldnt be used anymore
    • Unify fixDigitalOutput & singlethreshold history (#1315)
      • Unify and refactor all FixDigitalOutputControllers and SingleThresholds in one widget in history
      • Refactoring them and using the new CumulatedLevelActiveTime-Channel
    • Fix TimeOfUseTariff powerSocChart
      • Fix TypeError: this.options.plugins is undefined

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.8.0...2024.9.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 8 months ago

OpenEMS - 2024.8.0

Release Highlights

  • Backend performance improvements
  • Controller and UI for "dimming" of an energy storage system according to German law §14a EnWG
  • Lots of code quality improvements in UI
  • Not yet in this release, but in the final review: Long short term memory (LSTM) prediction models for Time series Data by @Bishalghimire1997 and @pooran-c

Details

Common/General

OpenEMS Backend

  • FEMS Backports 2024-07 in https://github.com/OpenEMS/openems/pull/2727
    • Performance optimizations
      • Drop PerMessageDeflate because it has bad effects on performance with a high number of connected Edges
      • Add a copy of Draft6455 which does not throw an exception internally
      • Reduce Exceptions
      • OnOpen: no unnecessary parsing of handshake + do not throw Exception
      • Parse JsonrpcMessage inside Executor Thread
      • sendMessage by default never throws Exception
      • use StringBuilders where feasible
      • throw the same Exception for all disposed requests in WsData
    • InfluxDB: remove filter for sunspec channels
    • Metadata: add handling of "ems type"
    • Aggregated Influx: add channels for ctrlEssLimiter14a0
    • Cleanup logs:
      • "No measurement provided for zoneId"
      • "Channels missing in Current-Data "
    • WsData:
      • handle failed send message
      • set WsData.WebSocket via constructor
    • Change debugLog interval to 5 seconds
    • Replace run() with standard method names
    • Add internal WebsocketPerformanceTestApp
    • Drop now unused Websocket DebugMode
  • Backend Metadata: reuse getPageDevice method for MetadataFile and MetadataDummy by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2728

OpenEMS Edge

OpenEMS UI

  • fix: resolve ts-strict and angular compatibility by @miettal in https://github.com/OpenEMS/openems/pull/2687
  • fix: decrease using type of any to get typing benefit by @miettal in https://github.com/OpenEMS/openems/pull/2704
  • fix: add type to test code by @miettal in https://github.com/OpenEMS/openems/pull/2702
  • fix: add null type to null initialization variables by @miettal in https://github.com/OpenEMS/openems/pull/2701
  • fix: add types to edgeconfig.ts by @miettal in https://github.com/OpenEMS/openems/pull/2699
  • FEMS Backports 2024-07 in https://github.com/OpenEMS/openems/pull/2727
    • Fix Nullpointer thrown through chart.js after failed query.
      • Apparently chartjs not having completely rendered datasets and property borderColor was missing
    • Extend vscode extensions with 18n ally
      • add i18n ally to vscode extensions
    • Fix ChartJs yAxis scaling for only 0 values in data series
      • Chartjs y-axis Scaling for only null or/and 0 values in data series results in doing negative and positive scaling
    • Add missing redirect after token expired
      • Token expired, old route got reloaded, no redirection to /login
    • Add Power-Assistant
      • Add Power-Assistant to UI Settings
      • Show relevant channels for power constraints; sorted by Scheduler
      • Cleanup Settings + separate ADMIN widgets
    • Add subnavigation to consumption history
      • restructured overdue shared folder
      • added current and voltage chart (only visible for Role.INSTALLER to consumption and production history
      • added subnavigation to consumption history
    • Add missing module for angular date picker
      • Add missing import for pickdatepopovercomponent, unittest will follow soon
    • Fix live modal visualization of meters
    • Add Unittest for angular-my-date-picker
      • Testing if button click is opening calendar or rather if this component exists in the DOM after button click
    • Move Helpbutton to its right module
    • Prepare platform check to login page
    • Fix other consumption calculation
      • Adding unittest for calculation of other consumption
      • Fixing wrong calculation of other consumption for multiple evcs and consumptionMeters
    • Refactor gridOptimizedCharge history
    • Replace global role with edge role check
      • /settings: replacing check for global Role with edge Role
      • Add unittest for role in /settings
    • Live-EnergyMonitor: use new sum Max/Min ESS DischargePower channels
    • refactor variables and methods in right order
      • Refactors every variable and method to member-ordering rule.
      • See: [https://typescript-eslint.io/rules/member-ordering/]

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.7.0...2024.8.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 9 months ago

OpenEMS - 2024.7.0

Release Highlights

  • New Time-of-Use tariff implementations for Stadtwerk Haßfurt and Groupe-E
  • Backend performance improvements, e.g. by reducing size of EdgeConfig
  • New Edge2Edge Meter
  • New Shelly compatibilities
  • New implementation of Samsung SDI energy storage system
  • UI: improved multi-step navigation in footer
  • Continuous improvement of code quality with Codecov and ESlint

Details

Common/General

OpenEMS Backend

  • FEMS Backports 2023-06 in https://github.com/OpenEMS/openems/pull/2664
    • Remove edges from authenticate
  • FEMS Backports 2024-06 (2) in https://github.com/OpenEMS/openems/pull/2692
    • Add logging for certain commands
    • Improve Metadata Odoo performance
    • Improve Postgres performance
      • reduce update time from 120 to 30 seconds
      • fix Sum-State update bug
    • InfluxDB:
      • extract channel filter to separate class; add unit tests
      • add configurable channel blacklist
      • improve FieldTypeConflictHandler; add unit tests
    • StringUtils: drop matchesIntegerPattern and matchesFloatPattern; replace with Guava
    • ThreadPoolUtils: fix possible NullPointerException

OpenEMS Edge

OpenEMS UI

  • Fix docker ui builds by @da-Kai in https://github.com/OpenEMS/openems/pull/2662
  • FEMS Backports 2023-06 in https://github.com/OpenEMS/openems/pull/2664
    • Added metric field in 'Network configuration'
    • fix tab title
      • setting web-app tab title to environment.edgeShortName
    • Split user and company related information
      • Splitting user and company related data, only user data is editable, non company assigned users are still seeing the same and are able to change all userInformation
    • set secure=https property in Cookie
      • this fixes an issue where a token value could be exposed when redirecting from http to https
  • Adding stylistic eslint plugin by @miettal in https://github.com/OpenEMS/openems/pull/2671
  • Fix ion-row css-syntax-error by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2628
  • Improve select channels view by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2599
  • Fix: remove ts-strict-ignore for env files and add typing by @miettal in https://github.com/OpenEMS/openems/pull/2683
  • Update eslint rules and refactoring types. by @miettal in https://github.com/OpenEMS/openems/pull/2676
  • FEMS Backports 2024-06 (2) in https://github.com/OpenEMS/openems/pull/2692
    • Add footer subnavigation
      • New subnavigation in /history/production
    • Allow SNAPSHOT update for OWNER/INSTALLER
      • Remove special handling for SNAPSHOT versions in update handler
    • Add loading screen during authentication
      • Introduction of loading screen, shown during authentification process
      • Skip "Login"-screen if a valid authentication token exists
    • Fix error messages shown in status.component
      • fix display of error message in status.component, was showing property channels as well
    • Channels fix setting values
      • Bug: "Cannot read properties of undefined (reading 'componentId')" when setting a value in the channels view

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.6.0...2024.7.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 10 months ago

OpenEMS - 2024.6.0

Release Highlights

Details

Common/General

OpenEMS Backend

  • FEMS Backports 2023-05 in https://github.com/OpenEMS/openems/pull/2656
    • Send ON_SET_SUM_STATE Event only on change (#1195)
    • b2bwebsocket: fix tests
      • Gradle builds end with a warning: Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
      • This is due to this error
    > Task :io.openems.backend.b2bwebsocket:test
    No test executed. This behavior has been deprecated. This will fail with an error in Gradle 9.0. There are test sources present but no test was executed. Please check your test configuration. Consult the upgrading giude for further information: https://docs.gradle.org/8.7/userguide/upgrading_version_8.html#test_task_fail_on_no_test_executed
    
    • Alerting: fix NPE, general improvements
      • make local variables final
      • remove public from interface methods
      • add null check to Message.compareTo

OpenEMS Edge

  • FEMS Backports 2023-05 in https://github.com/OpenEMS/openems/pull/2656
    • TimeOfUseTariff rabot.charge implementation
    • Battery improvements
      • Adds DC_MIN_VOLTAGE and DC_MAX_VOLTAGE to BatteryInverter; implemented in KACO.
      • Adds ESS-Protection on Generic-ESS
      • Adds Voltage Regulation in ESS
    • Modbus/SunSpec: implement BitWords
      • Refactor SunSpecCodeGenerator
      • Handle BITFIELD16 and BITFIELD32 properly
      • Allow overriding BITFIELD mapping, e.g. for "Vendor defined events"
    • ESS Power Solver: improve KEEPING_ALL_EQUAL strategy
      • Add OPTIMIZE_BY_KEEPING_ALL_NEAR_EQUAL strategy; automatically applied as fallback to OPTIMIZE_BY_KEEPING_ALL_EQUAL.
    • Systemd-Networkd: parse [Gateway] in [Route] block
    • GoodWe: fix sorting of diagnostic bit registers
    • Power Solver: OPTIMIZE_BY_KEEPING_ALL_NEAR_EQUAL
    • GoodWe: fix impossible high Battery Power values
    • FENECON Home Battery add stop functionality
      • STOP Home battery on very low cell voltage. Adds Channels:
        • LOW_MIN_VOLTAGE_WARNING: Low min voltage warning | Niedriger Ladezustand der Batterie, da die Batterie nicht durch den Wechselrichter beladen werden kann. Ohne Beladung schaltet sich die Batterie demnächst ab, um sich selbst zu schützen
        • LOW_MIN_VOLTAGE_FAULT: Low min voltage fault | Niedriger Ladezustand. Die Batterie schaltet sich demnächst ab, um sich selbst zu schützen
        • LOW_MIN_VOLTAGE_FAULT_BATTERY_STOPPED: Low min voltage fault - Battery stopped | Batterie wurde wegen zu niedrigem Ladezustand abgeschaltet. Bitte kontaktieren Sie Ihren Installateur
    • Weidmüller IO: fix reading of CurrentModuleList
      • Fixed hidden ClassCastException in readCurrentModuleList()
  • Refactored Shelly 2.5 to use HttpBridge by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2573

OpenEMS UI

  • FEMS Backports 2023-05 in https://github.com/OpenEMS/openems/pull/2656
    • add notification infrastructure
    • add warning for systemupdate
      • Confirmation alert for systemupdate
      • Standardizing alert for update and EMS restart
    • adjust translations of alert
    • Adjust translations of confirmation alert of system update
    • improve systemLog
      • Adding searchbar to be able to filter systemlog (case-insensitive)
      • Adding debug level filter
      • Enable Copying of systemlog
      • Improved filter for Non condensed output -> splitting debugLog string if line-breaks provided
      • add toggle to reconfigure condensedOutput
    • fix duplicate legend item generation for same aliases
    • Extend Eslint
      • Extend EsLint to make implementing lifecycle interfaces mandatory
    • Hide Menu in login page

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.5.0...2024.6.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] 11 months ago

OpenEMS - 2024.5.0

Release Highlights

Details

Common/General

OpenEMS Backend

  • FEMS Backports 2023-04 in https://github.com/OpenEMS/openems/pull/2623
    • Add API for Simulation-Engine Component
      • In future this should be used for scenario simulations, like what would have been the benefit of using an additional battery module

OpenEMS Edge

  • MQTT API Controller: add optional config parameter to specify a topic prefix by @samuelBloch in https://github.com/OpenEMS/openems/pull/2553
  • SunSpec: Channel values synchronized by @tsicking in https://github.com/OpenEMS/openems/pull/2609
  • Implement new Shelly Plus Plug S by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2529
  • Updates Microcare / Eastron and Implements Meter SDM120 by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2554
  • FEMS Backports 2023-04 in https://github.com/OpenEMS/openems/pull/2623
    • Modbus-Bridge:

      • Improve SunSpec handling for SMA PV-Inverter: certain versions do not provide END_OF_MAP but throw ILLEGAL_ADDRESS_EXCEPTION instead, causing the previous SunSpec implementation to get stuck while parsing
      • Remove unnecessary throws OpenemsException and try...catch in certain places (defineModbusProtocol(), new ModbusProtocol(), addTask(),...)
      • Optionally provide ExecuteState of an entire ModbusTask; this allows for more fine-grained evaluation of read errors
    • Switch to updated readElementOnce and/or improve brevity of CompletableFuture by using thenCompose instead of thenAccept in...

    • RRD4j: correctly postprocess queried data

      • fix querying data with different resolution than 5 Minutes
    • Time-of-Use: split Optimizer and Controller

      • Introduce new Bundles for Energy and Energy API
      • Time-of-Use-Controller and EnergyScheduler are still tightly coupled for now, as this is an ongoing refactoring. Eventually they should only communicate via EnergySchedulable
      • Move Optimizer (i.e. all Jenetics related code) to Energy
      • New Channel _sum/GridBuyPrice
      • UI: show data in [kW] and cleanup code
      • Tibber: Homes-Filter could not be unset
    • KACO Blueplanet Gridsave BatteryInverter: state-machine improvement

      • Update Kaco Blueplanet Gridsave state-machine
      • Add grid disconnection failure state channel
      • Replace MAX_START_ATTEMPTS with MAX_START_TIMEOUT
    • GoodWe

      • Optionally show values per MPPT; not per String
        • GoodWeChargerTwoStringImpl was used to represent one string from a GoodWe MPPT tracker that is responsible for two strings (GoodWe ET-Systems).
        • Possible values given by GoodWe are: MPPT Current, MPPT Power, String Current, String Voltage
        • As the current values of one string are incorrect (so far DSP-Version 12, ARM-Version 27) the power cannot be calculated as expected.
        • A new Component GoodWeChargerMpptTwoStringImpl is mirroring the GoodWe values to get the important values from: MPPT Current, MPPT Power, String Voltage (One of the two strings)
      • Update BMS Registers ChargeMaxVoltage & DischargeMinVoltage
        • Set ChargeMaxVoltage & DischargeMinVoltage
        • Handle inverter specific behaviour on empty/full battery

OpenEMS UI

  • Center Text in Footer by @Sn0w3y in https://github.com/OpenEMS/openems/pull/2594
  • FEMS Backports 2023-04 in https://github.com/OpenEMS/openems/pull/2623
    • Add optional strict mode
    • Update to Angular Version 16.
    • Revert calculating stepSize for charts
      • Removing stepSize calculation due to chartjs breaking style in some circumstances
      • keeping max ticks limit at 6
    • Change resolution from 20 to 15 minutes
    • Remove dead link from ChpSoc (BHKW) Widget in history
    • Settings|Channels: fix Persistence Priority warning
      • Warning for persistencePriority lower than backends global priority, was also shown for equals
    • Hide FooterComponent for history Children due to overlapping on different heights
    • Footer: fix esLint autofix mistake; hide for history detail views
    • Revert adding detail navigation to production history (this is a planned feature that was accidentially merged)
    • Fix Page count of edges pagination on initial search

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.4.0...2024.5.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 1 year ago

OpenEMS - 2024.4.0

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • Janitza UMG 511: fix inverted active power by @tsicking in https://github.com/OpenEMS/openems/pull/2587
  • FEMS Backports 2023-03 by @sfeilmeier, @venu-sagar, @lukasrgr, @michaelgrill, @da-Kai, @huseyinsaht, @hydroid7, @sebastianasen, @AnasShetla, @mlang97 in https://github.com/OpenEMS/openems/pull/2593
    • Improvements to ESS Time-of-Use-Tariff-Controller
      • Optionally show Grid-Buy in UI forecast and history chart (in a third y-axis)
        • Improve calculation of charge power in CHARGE_GRID mode
        • More and smarter Genotypes in initialPopulation
        • Improved error handling
        • New EnergyFlow calculation + fix previsou calculation bugs
        • Be default always apply §14a EnWG limit of 4.2 kW (configurable)
    • Tibber: implement handling for rate limit (HTTP code 429), differentiate warnings based on HTTP status codes
    • AppCenter Tibber: Access Token will be displayed as "xxx" if set, hide "homes" filter and improve description
    • AppCenter: add fixStateOfCharge App
    • AppCenter: Add definition to set min Role to delete an App & validation
    • AppCenter: Add popover to notify about unused keys
    • FENECON Home Battery: improve calculation for number of towers
    • Edge/UI: add persistencePriority to EdgeConfig + warning in /channels
    • Improve Controller ESS Cycle: fix Standby Time
    • GoodWe: Disable ShadowManagement
    • HeatingElement: Changed Persistence Priority for LEVEL to HIGH

OpenEMS UI

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.3.0...2024.4.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 1 year ago

OpenEMS - 2024.3.0

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • Time-of-Use improvements by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2547 and https://github.com/OpenEMS/openems/pull/2559
  • HTTP-Bridge add support for time based subscribes by @michaelgrill in https://github.com/OpenEMS/openems/pull/2539
  • FEMS Backports 2024.3.0 in https://github.com/OpenEMS/openems/pull/2560
    • GoodWe Grid-Meter: add support for "Commercial Meter
    • Sum: improvements to max-ever-values
      • Calculate min/max ever ESS discharge power (will eventually replace MaxApparentPower in UI Live)
        • add EssMinDischargePower and EssMaxDischargePower channels to _sum
        • calculate _sum/EssDischargePower also from non-hybrid ESS
      • improve parsing of _sum config: parse String values to int
      • Prediction: fix possible NoSuchElementException if all predictions are empty
    • AppCenter: App for EZA-Regler
    • Implement generic LinuxFs GPIO (for Modberry)
    • AppCenter: Home 20 & 30 added modbus for external meters
    • AppCenter: ToU only compatibility with Home 10, 20 or 30 (this shows compatibility restrictions in AppCenter; for proprietary distributions of OpenEMS change this accordingly)
    • Implement system SOFT/HARD restart (Edge JsonRPC)
      • Add JSON-RPC handler for system restart (ExecuteSystemRestart)
        • HARD: reboot system
        • SOFT: restart OpenEMS service
      • Extract handling of system commands to common SystemRecord record
    • AppCenter: fix AlpitronicEvcs wrong scheduler factory id
    • GoodWe 20 & 30: handle Voltage & Current for DSP version
    • AppCenter: refactor pvInverter apps to use "new" props
      • Refactored PV-Inverter Apps to use "new" Props
      • Added selection of Phase to SolarEdge App
      • Changed description text of tibber token
    • RRD4j/Backend-Api: avoid exception during deactivate
      • Fix bug in ControllerApiBackend or TimedataRrd4jImpl which required a restart.

OpenEMS UI

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.2.0...2024.3.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 1 year ago

OpenEMS - 2024.2.0

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

OpenEMS UI

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2024.1.0...2024.2.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 1 year ago

OpenEMS - 2024.1.0

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • Core.Sum: persist maximum ever values by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2476

    • This fixes the problem that the maximum values in the Energy-Monitor in UI would always start from zero on restart
  • FEMS Backports by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2477

    • GoodWe Grid-Meter: if HAS_NO_METER is set, set values to 'null'
    • GoodWe BatteryInverter: write certain Channels only on activate/modified
    • Modbus Bridge TasksSupplier: avoid ConcurrentModificationException
    • StateChannels: always set initial value to false
    • ESS Power: handle other possible Exceptions
    • Debug-Log Controller: avoid Exception on non-existing Channel

OpenEMS UI

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.12.0...2024.1.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 1 year ago

OpenEMS - 2023.12.0

Release Highlights

  • Add compatibility with new SMA PV-Inverters. #2339. Thanks @tsicking
  • Energy Storage System Controller for Time-of-Use Tariffs using Genetic Algorithm. #2435, #2446. See https://fenecon.de/dynamische-stromtarife/

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • JUnit Test Framework: unify Dummy components by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2421, https://github.com/OpenEMS/openems/pull/2422
  • SMA PV-Inverter: use 70x models (since 2023) by @tsicking in https://github.com/OpenEMS/openems/pull/2339
  • Influx db/get latest value. Fixes CalculateEnergyFromPower with InfluxDB by @DerWahreKlinki in https://github.com/OpenEMS/openems/pull/2423
  • FEMS Backports #2435, #2446
    • Sum ESS State-of-Charge: unify calculation
    • Update FENECON Home 20 & 30 Charger config
    • Emergency Capacity Reserve Controller: fix handling of negative AC production
    • GoodWe EmergencyMeter: Fix scale factor for current and voltage
    • GoodWe 20: fix Grid Meter voltage and current
    • EVCS: Improve "Chargingstation Communication Failed" message
    • Home Battery: set SerialNumber prefix depending on the hardware type; modify PolyLine for 64Ah battery
    • GoodWe: set GoodWeType from type register or serial number
    • Time-of-Use ESS Controller: implement Optimizer based on Jenetics
    • AppCenter: load app images from external file server, removed app images from edge, automatically add UnmanagedConsumption Channel to prediction, fixed "no" check validation before installation , fix not automatically installing missing dependencies, Integrated systems, Home 20/30 available relays, Home NoFeedInLimitation & correct RCR config
    • GoodWe Battery-Inverter: improve property descriptions
    • Check Battery Combination only if the battery is started
    • GoodWe: implement RippleControlReceiver; update config descriptions
    • TypeUtils: update coding style + handle NaN/Infinite
    • Quick fix for Simulated EVCS

OpenEMS UI

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.11.0...2023.12.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 1 year ago

OpenEMS - 2023.11.0

Release Highlights

Details

Common/General

OpenEMS Backend

  • Backport FEMS Backend by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2419
    ** Fix compatibility with and require Odoo 16 (separate Odoo module will be updated independently)
    ** Fix possible NPEs
    ** Fix starting of Websocket servers (avoid event race conditions)
    ** Add COMPONENT_IDs to backend components
    ** Fix Websocket handshake case-insensitive
    ** Improve general performance
    ** Avoid excessive logs
    ** Add GenericSystemLog to Metadata: record system execute and update
    ** Improve InfluxDB Aggregated data handling
    ** Allow multiple InfluxDB servers for different periods (defined by start-/enddate)
    ** InfluxDB: only allow Channel-Addresses in standardized format
    ** Update Gitpod to Odoo v16 for https://github.com/OpenEMS/odoo-openems/tree/16.0

OpenEMS Edge

  • Bugfix in SinglePhaseMeter.calculateSinglePhaseFromActivePower by @tsicking in https://github.com/OpenEMS/openems/pull/2386
  • SunSpec: improvements by @tsicking in https://github.com/OpenEMS/openems/pull/2337
  • FEMS Backports by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2394
    ** Introduce _sum/UnmanagedConsumptionActivePower
    ** PhoenixContact Meter: add invert option
    ** SunSpec: dynamic scale-factors
    ** AppCenter: add required property to AppDef
    ** ESS Cluster: Calculate effective start stop
    ** Alpitronic Hypercharger: fix energy null vs 0
    ** Implement F&F Filipowski MR-AO-1 + Analog Output Controller
    ** ControllerEssGridOptimizedCharge, IoShelly25, IoShellyPlug: set persistence priority to high for some channels…
    ** AppCenter: FixActivePower App
    ** Bugfix for ENTSO-E
    ** Add Webasto Apps
  • FEMS Backport by @sfeilmeier in https://github.com/OpenEMS/openems/pull/2419
    ** KACO PV-Inverter: calculate production energy manually
    ** GoodWe 20/30 Chargers: avoid multiple HIGH Priority mobus tasks
    ** Websocket Api Controller: cleanup getEdgeRequest & JUnit tests
    ** AppCenter: add check for peakshaving to not be compatible with home
    ** AppCenter: separated AppConfiguration into tasks

OpenEMS UI

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.10.0...2023.11.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 1 year ago

OpenEMS - 2023.10.0

The OpenEMS Hackathon Q3/2023 took place end of September at the headquarter of opernikus. Apart from extremely valuable discussions and brainstormings, some topics where implementation of an HTTP-Bridge (coming soon), Native Smartphone-App (#2370) and the Energy Schedule ("Fahrplanmanagement", #2367). Also a lot of documentation has been created before the Hackathon which will be published officially soon. Find more details and get in touch in the OpenEMS Community Forum or on LinkedIn.

Common/General

OpenEMS Backend

OpenEMS Edge

OpenEMS UI

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.9.0...2023.10.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 1 year ago

OpenEMS - 2023.9.0

Release Highlights

  • Native pre-aggregated data in OpenEMS Edge & Backend
    • this leads to massive performance improvements in OpenEMS UI for large timeseries databases (InfluxDB)
  • Resend historic data after network outage (see #2338)
  • Refactoring of Modbus Bridge (see #1976 and #2273)
  • ENTSO-E, Time-of-Use Tariff provider (#2207)

Details

Common/General

OpenEMS Backend

  • FEMS Backport 2023.9.0 by @michaelgrill, @lukasrgr, @mlang97, @venu-sagar, @da-Kai, @mahdiataie, @pooran-c, @sebastianasen, @sfeilmeier, @huseyinsaht, @janseidemann in https://github.com/OpenEMS/openems/pull/2338
    • Store server metrics in InfluxDB (e.g. backend0: edgewebsocket/Connections)
    • Improve log messages and error handling

OpenEMS Edge

  • Implement ENTSO-E, Time-of-Use Tariff provider by @venu-sagar, @sfeilmeier in https://github.com/OpenEMS/openems/pull/2207
  • Modbus Bridge
  • AbstractChannelListenerManager: clean up unused listeners after deactivate() by @JoopAue in https://github.com/OpenEMS/openems/pull/2303
  • EssFeneconCommercial40Pv2: bugfix by @sebastianasen in https://github.com/OpenEMS/openems/pull/2310
  • SunSpecCodeGenerator: refactor, add 7xx models, use JSON input files by @tsicking, @nlamarti in https://github.com/OpenEMS/openems/pull/2324
  • FENECON Commercial 30 Off-Grid: fix getGroundingContactor by @huseyinsaht in https://github.com/OpenEMS/openems/pull/2322
  • FEMS Backport 2023.9.0 by @michaelgrill, @lukasrgr, @mlang97, @venu-sagar, @da-Kai, @mahdiataie, @pooran-c, @sebastianasen, @sfeilmeier, @huseyinsaht, @janseidemann in https://github.com/OpenEMS/openems/pull/2338
    • Add Unit "bar"
    • Update Persistence Priorities for UI/Aggregated Influx
    • FENECON Commercial Battery: cleanup + improvements
    • FENECON Home Battery: type detection; support Home 20 & 30
    • Soltaro Battery: cleanup + improvements
    • Resend historic data from local RRD4j
      • add a resend worker
        • sends after reconnection to backend and a DELAY(5 minutes) the resend data to the backend
        • additional config persistencePriority for resend channels
      • rrd4j
        • write data every rounded to 5 minutes time instead of every 5 minutes
        • fix year view
        • removed 5 minutes offset when querying currentData
        • added versions to separate data schemas
        • changed currenct schema to store cumulated values only per hour
        • separated parent and RecordWorker
      • add resend notification
    • SG-Ready Heatpump: improvements
    • Network Settings: use UTF_8 instead of US_ASCII
    • ESS-Cluster: handle Start/Stop request
    • KEBA evcs: use display on demand
    • GoodWe BatteryInverter: improvements, compatibility with GoodWe 20/30 including up to 6 PV strings, read diagnostics information
    • KACO 10: fix possible NullPointerException when parsing IP

OpenEMS UI

Version Upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.8.0...2023.9.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 1 year ago

OpenEMS - 2023.8.0

Common/General

OpenEMS Edge

OpenEMS UI

Version Upgrades

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.7.0...2023.8.0

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 1 year ago

OpenEMS - 2023.7.0

Release Highlights

  • Refactor: apply best practices and coding guidelines globally (#2209)
  • Introduce ElectricityMeter as replacement for SymmetricMeter & AsymmetricMeter (#2144)
  • UI: introduce type-safe and testable Views (#2123)

Details

Common/General

  • Java: generate code coverage report (#2234)

OpenEMS Edge

  • Add 'CumulatedActiveTime' Channel for Controllers with Relay (#677) (#2230)
  • Kaco.BlueplanetHybrid10.PvInverter: add phase values (#2232)
  • SunSpec PV-Inverters + Meters: improve implementation (#2231) Applies to
    • PV-Inverter.Fronius
    • PV-Inverter.KACO.blueplanet
    • PV-Inverter.Kostal
    • PV-Inverter.SMA.SunnyTripower
    • SolarEdge.PV-Inverter

OpenEMS UI

  • add ESlint rule for unused imports (#2221)
  • add new eslint rule to remove unused commas (#2219)
  • replace PNG-Icons with SVG-Icons (#2210)
  • FEMS UI Backport 2023-06 (#2235)
  • FEMS UI Backport 2023-06 - part 2 (#2243)
  • fix typos (#2244)
  • inject globalRouteChangeHandler (#2242)

Version Upgrades

  • Bump influxdb-client-core from 6.8.0 to 6.9.0 in /cnf (#2217)
  • Bump fastexcel from 0.15.3 to 0.15.4 in /cnf (#2211)
  • Bump checker-qual from 3.34.0 to 3.35.0 in /cnf (#2216)
  • Bump d3 from 7.8.4 to 7.8.5 in /ui (#2213)
  • Bump guava from 32.0.0-jre to 32.0.1-jre in /cnf (#2223)
  • Bump kotlin-osgi-bundle from 1.8.21 to 1.8.22 in /cnf (#2222)
  • Bump commons-io from 2.12.0 to 2.13.0 in /cnf (#2224)
  • fix fallback for SymmetricMeter (#2228)
  • Bump fastexcel from 0.15.4 to 0.15.5 in /cnf (#2240)
  • Bump kotlinx-coroutines-core-jvm from 1.7.1 to 1.7.2 in /cnf (#2251)
  • Bump checker-qual from 3.35.0 to 3.36.0 in /cnf (#2250)
  • Bump guava from 32.0.1-jre to 32.1.1-jre in /cnf (#2248)
  • Update to Gradle 8.2

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.6.0...2023.7.0

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 2 years ago

OpenEMS - 2023.6.0

Release Highlights

Details

Common/General

OpenEMS Edge

OpenEMS UI

Version upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.5.0...2023.6.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] almost 2 years ago

OpenEMS - 2023.5.0

Release Highlights

  • Support for dezony IQ x electric vehicle charging station
  • New ESS Fix-SoC/Prepare-Battery-Extension-Controller
  • Enhancements for ESS Fix Active Power Controller

Details

Common/General

OpenEMS Backend

OpenEMS Edge

OpenEMS UI

Version upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.4.0...2023.5.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 2 years ago

OpenEMS - 2023.4.0

Release Highlights

  • update to Java 17 LTS
  • support for the Webasto Unite and Webasto Next electric vehicle charging stations
  • a brand new documentation about how to use IntelliJ IDEA for OpenEMS development

Details

Common/General

OpenEMS Edge

OpenEMS UI

Version upgrades

New Contributors

Full Changelog: https://github.com/OpenEMS/openems/compare/2023.3.0...2023.4.0

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 2 years ago

OpenEMS - 2023.3.0

The first OpenEMS Hackathon in 2023 took place on 23rd and 24th February at the headquarter of FENECON. Apart from extremely valuable discussions and brainstormings, more than 6400 lines of code were written on these two days. Most of the Pull-Requests are still in the review phase, so please feel to leave your comments there: https://github.com/OpenEMS/openems/pulls. We summarized our results at the OpenEMS Networking Friday. See the video here: https://www.youtube.com/watch?v=xCY4bv-of8M

Common/General

  • Update Gradle to 8.0.1 (#2070)
  • Docs Getting Started: add guide for IntelliJ IDEA (#2077) Thanks @wimmerp
  • Docs Getting Started: add hosted UI (#2080) Thanks @wimmerp
    • Add link to hosted UI for OpenEMS Edge, provided by Consolinno
    • Extract Setup UI IDE doc to separate document
  • JsonUtils: simplify getAsOptional... methods (#2093)

OpenEMS Backend

  • Improvements to Backend Timedata services (#2045)
    • Introduce TimedataManager
    • InfluxDB:
      • add possibility for predefined FieldTypeConflictHandlers
      • add MergePointsWorker and configurable PoolSize
      • drop unused Influx interface
      • limit queue
    • Timedata:
      • drop getChannelValues
      • Add Component-IDs for Timedata-Backend-Components
  • EdgeWebsocket
    • move EdgeCache
    • fix EdgeCacheTest for 15 minutes
    • move getChannelValues()
    • remove 'complementDataFromCache' feature to improve performance
  • Backend Alerting: bugfixes and improvements (#2072) Thanks @da-Kai
    • Add Executor with one Thread
    • Handle Events in Queue
    • Check validity again just before sending an alert (when queue is very long)
    • Fix typos/naming

OpenEMS Edge

  • Tibber: add filter for multiple 'Homes' (#2055)
    • The TIbber API allows accessing multiple 'Homes'. This PR introduces a 'filter' config property, that allows filtering for the correct one.
    • Also add State-Channels:
      • UnableToUpdatePrices: general HTTP error
      • FilterIsRequired: multiple Homes where retreived from the API and it is not possible to identify without filter (i.e. more than one valid 'Home' was parsed)
  • KACO PV-Inverter: make Unit-ID configurable for Modbus/RTU (#2056) Thanks @SebastianRinger
    • Made Modbus ID configurable, since previous hardcoded modbus ID of 1 did not work for Modbus RTU.
  • SunSpec compatibility:
    • AbstractSunSpecMeter: fix Energy values (#2059) Thanks @tsicking
    • AbstractSunSpecMeter: add Energy per Phase (#2060) Thanks @tsicking
  • Implement the Alpitronic Hypercharger DC charging station (#2071) Thanks @hydroid7, @sebastianasen
    • The charging station comes with up to four physical connectors. This implementation is designed in a way, that each connector is represented by an individual OpenEMS Component. So if you have a Alpitronic with two connectors, please configure two "EVCS Alpitronic Hypercharger" with the connector configuration property set to SLOT_0 and SLOT_1 respectively.
    • Supported Firmware versions: 1.7.2 and higher.
  • Virtual Meters:
    • VirtualMeterAdd: bugfix for ActiveConsumptionEnergy and Min-/MaxActivePower (#2058) Thanks @tsicking
    • Virtual Add Meter: improvements (#2062) Thanks @pooran-c
      • Add Asymmetric Virtual Add Meter
      • Move common parts of Symmetric and Asymmetric Meters to abstract class
  • EVCS: Add manual for implementing an evcs (#2073) Thanks @sebastianasen
  • ESS Fix Active Power: handle Hybrid-ESS (BREAKING CHANGE) (#2092)
    • Add a configuration setting hybridEssMode, that allows defining the DC-side power set-point
    • BREAKING CHANGE: the default mode for Hybrid-ESS changed from setting the AC-side (Battery + PV) to DC-side power (Battery Charge/Discharge)

Version upgrades

  • Bump postgresql from 42.5.1 to 42.5.3 in /cnf (#2050)
  • Bump kotlin-osgi-bundle from 1.8.0 to 1.8.10 in /cnf (#2053)
  • Bump fastexcel from 0.14.4 to 0.14.17 in /cnf (#2051)
  • Bump jszip from 3.7.1 to 3.10.1 in /ui + fix Checkstyle (#2048)
  • Bump fastexcel from 0.14.17 to 0.14.18 in /cnf (#2063)
  • Bump commons-fileupload from 1.4 to 1.5 in /cnf (#2065)
  • Bump postgresql from 42.5.3 to 42.5.4 in /cnf (#2067)
  • Bump jsoup from 1.15.3 to 1.15.4 in /cnf (#2066)
  • Bump checker-qual from 3.29.0 to 3.31.0 in /cnf (#2068)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 2 years ago

OpenEMS - 2023.2.0

Common/General

  • CalculateAverage now supports all numbers (not only integer) (#2034) Thanks @JoopAue
  • Add OpenEMS Contribution Guidelines (#2042) Thanks @opernikus-common
  • Update gradle 0c79b488ba8d07a49ae5b8d1eea3a573feb7cffa

OpenEMS Backend

  • Backend: set data-directory and disable Event-Handler timeout (#2021) Thanks @clehne

OpenEMS Edge

  • REST-Api: fix RegEx for Component-ID in /channel endpoint (#2046)
  • FENECON Commercial 40 Chargers: fix Config case sensitivity (#1781) Thanks @simonfey

OpenEMS UI

  • Remove limit to node version < 17 c9b5f7b0fb96fafbf4d00d07c6e34207191894eb
    • this used to break the build, but is not required anymore

Version upgrades

  • Bump @ngx-formly/ionic from 6.0.4 to 6.1.0 in /ui (#2031)
  • Bump jna from 5.12.1 to 5.13.0 in /cnf (#2032)
  • Bump d3 from 7.8.0 to 7.8.1 in /ui (#2033)
  • Bump org.apache.felix.scr from 2.2.4 to 2.2.6 in /cnf (#2038)
  • Bump rxjava from 3.1.5 to 3.1.6 in /cnf (#2037)
  • Update UI dependencies c9b5f7b0fb96fafbf4d00d07c6e34207191894eb
    • Angular 15.1.2
    • ionic/angular
    • ngx-formly
    • d3
    • tslib
    • eslint

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 2 years ago

OpenEMS - 2023.1.0

Common/General

OpenEMS Edge

  • GoodWe Grid-Meter: fix unit of Frequency (#2008)
  • KACO Bp10: move communication failure to individual components (#2009)
    • Errors become clearer visible to the user (not "kacoCore0" failed, but "ess0" failed)
    • Pure PV-Inverter is not reachable during night. New structure allows to avoid/delay the error
    • Introduce BpData record to merge all DataSet classes from KACO library
  • REST-Api: handle WRITE_ONLY channels properly #2026. Thanks @MatthiasRossmann

OpenEMS UI

  • Fix css import for ngx-spinner (#2000)
  • Cleanup angular.json (#2000)

Version upgrades

  • Bump kotlin-osgi-bundle from 1.7.21 to 1.7.22 in /cnf (#1994)
  • Bump checker-qual from 3.27.0 to 3.28.0 in /cnf (#2005)
  • Update main UI dependencies (#2000)
    • Angular 15
    • ngx-cookie-service
    • Bump @ngx-formly/ionic from 6.0.2 to 6.0.4 in /ui (#2000)
    • Bump ngx-spinner from 14.0.0 to 15.0.0 in /ui #2019 (#2000)
    • Bump d3 from 7.6.1 to 7.8.0 in /ui #2014 (#2000)
    • Bump @types/uuid from 8.3.4 to 9.0.0 in /ui #1998 (#2000)
    • Bump json5 from 1.0.1 to 1.0.2 in /ui (#2027)
    • Bump compare-versions from 5.0.1 to 5.0.3 in /ui (#2011)
  • Bump fastexcel from 0.14.0 to 0.14.3 in /cnf (#2018)
  • Bump org.osgi.service.component from 1.5.0 to 1.5.1 in /cnf (#2017)
  • Bump org.osgi.service.jdbc from 1.0.1 to 1.1.0 in /cnf (#2016)
  • Bump org.osgi.util.promise from 1.2.0 to 1.3.0 in /cnf (#2015)
  • Bump org.osgi.service.component.annotations from 1.5.0 to 1.5.1 in /cnf (#2013)
  • Bump kotlin-osgi-bundle from 1.7.22 to 1.8.0 in /cnf (#2022)
  • Bump okio-jvm from 3.2.0 to 3.3.0 in /cnf (#2030)
  • Bump checker-qual from 3.28.0 to 3.29.0 in /cnf (#2029)
  • Bump gson from 2.10 to 2.10.1 in /cnf (#2028)
  • Bump fastexcel from 0.14.3 to 0.14.4 in /cnf (#2024)
  • Bump pax-logging / slf4j-api from 1.7.36 to 2.0.6 in /cnf (#2003)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 2 years ago

OpenEMS - 2022.12.0

OpenEMS Edge

  • OpenemsComponent: do not auto-generate a Component-ID; throw IllegalArgumentException instead (#1985)
  • Soltaro Battery: adjust protection parameters (#2004)
  • Modbus/TCP Api: general improvements (#2004)
  • HeatPump Controller: fix min SoC handling (#2004)
  • App-Center: general improvements, configure IP addresses (#2004)
  • GoodWe Grid-Meter: fix voltage and current channels (#2004)
  • Simulated EVCS: fix power calculation (#2004)
  • Backend-Controller: improve reconnect (#2004)

OpenEMS Backend

  • Improve handling of many connected OpenEMS Edges - mainly improve performance and reduce logging (#2004)
    • Configure SIMPLE or DETAILED logging; reduce excessive logging on individual UI/Edge events
    • Use String instead od ChannelAddress → avoids conversion of String to ChannelAddress and vice versa
    • Avoid parsing EdgeConfig → avoids conversion of JSON to EdgeConfig and vice versa
    • Use ConcurrentHashMap as WebSocket collection → as suggested by https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/java/org/java_websocket/server/WebSocketServer.java#L195-L202
    • InfluxDB: parse values without relying on Exceptions → avoids throwing Exceptions in normal control flow
    • Do not block Threads for waiting JSONRPC Requests → avoids filling of reserved ThreadPools
    • Fix possible NullPointerExceptions in certain places
  • TimescaleDB beta: refactoring of database Schema and implementation (#2004)
  • Alerting: refactoring for Code cleanup and prepare for more alerting functions (#2004)
  • Odoo.Metadata: improve Odoo API implementation (#2004)

OpenEMS UI

  • UI: Login improvements (#2007)
  • Subscribe to Edge in Backend → avoids sending unnecessary Notifications from Backend to UI (#2004)
  • Add help buttons; fully OEM-able (#2004)
  • Unify visualization of power, voltage and current (#2004)
  • Show "Offline Since" in overview for Edges (#2004)
  • Better handling of empty history charts (#2004)
  • Fix timing issue with translations: load JSON statically (#2004)

Common

  • Fix Gradle buildAntoraDocs (#2006)
  • Unit: make Symbols unique (#2004)
  • Gradle Build files: faster build (#2004)

Version upgrades

  • Bump fastexcel from 0.12.15 to 0.14.0 in /cnf (#1975)
  • Bump flux-dsl from 6.5.0 to 6.7.0 in /cnf (#1974)
  • Bump rrd4j from 3.8.1 to 3.8.2 in /cnf (#1973)
  • Bump org.apache.felix.webconsole.plugins.ds from 2.1.0 to 2.2.0 in /cnf (#1971)
  • Bump aXMLRPC from 1.12.0 to 1.12.1 in /cnf (#1970)
  • Bump influxdb-client-core/utils from 6.5.0 to 6.7.0 in /cnf (#1979)
  • Bump org.apache.felix.configadmin from 1.9.24 to 1.9.26 in /cnf (#1983)
  • Bump org.apache.felix.http.servlet-api from 2.0.0 to 2.1.0 in /cnf (#1982)
  • Bump loader-utils from 2.0.3 to 2.0.4 in /ui (#1984)
  • Bump aXMLRPC from 1.12.1 to 1.13.0 in /cnf (#1988)
  • Bump postgresql from 42.5.0 to 42.5.1 in /cnf (#1990)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 2 years ago

OpenEMS - 2022.11.0

Highlights

  • Add TimescaleDB timeseries database support to OpenEMS Backend (BETA test quality) (#1964)
  • Implementation of Weidmüller fieldbus coupler UR20-FBC-MOD-TCP-V2 (#1964)
  • Implementation of Meter Ziehl EFR4001IP (#1964)
  • Implementation of KACO Blueplanet Hybrid 10 (#1966)
    • NOTE: implementation is open source, but requires a proprietary identkey. See Pull-Request for details.

Bug Fixes and Other Changes

  • SDM630 Meter: fix Energy values; implement ModbusSlave (#1953) Thanks @DerWahreKlinki
  • SDM630 Meter: implement ModbusSlave (#1952) Thanks @DerWahreKlinki
  • OpenEMS Docs (#1958)
    • fix xref links
    • ignore backend bundles
    • update package.json dependencies
    • drop unused files
  • Shelly: fix possible NullPointerException (#1959)
  • ElementToChannelConverter KEEP_POSITIVE (#1961) Thanks @tsicking
  • Timedata/InfluxDB: Add documentation (#1963)

Version upgrades

FEMS Backports 2022-10 (#1948)

  • OpenEMS Edge

    • Improve startup time/behaviour via @Activate/@Modifed/@Deactivate
    • Soltaro Battery: remove non-required info
    • Sinexcel Battery-Inverter: improve control speed
    • Time-Of-Use-Discharge Controller: properly handle emergency reserve SoC
    • Sell-To-Grid-Limit PV-Inverter: add asymmetric control
    • Improvements to App-Center
    • Improvements to Network Configuration
    • Add Modbus/TCP definitions for GoodWe ESS
  • OpenEMS UI

    • Add linting check to Github Workflow/CI
    • Improvements to Alerting
    • Improvements to Network Configuration
    • ngx-translate: switch to async translations and json file format; Translations are now compatible with i18n-ally Visual Studio Code extension
    • General improvements
  • OpenEMS Backend

    • Add TimescaleDB implementation (BETA test quality)
    • Handle SerialNumber of EMS in Odoo
    • Improvements to Alerting
    • Improve handling of subscribes to Channels
    • Move EdgeCache (caching of current data) to EdgeWebsocket.WsData
    • Metadata.Odoo: code cleanup
    • General performance improvements - analyzed via JDK Mission Control
  • Common

    • JsonUtils: performance improvements + JUnit tests
    • Improve automated Websocket reconnect on error
    • Add @Modifed to all Singletons
    • Handle @Modifed in JUnit tests

FEMS Backports 2022.11 (#1964)

  • OpenEMS Edge

    • Implementation of Weidmüller fieldbus coupler UR20-FBC-MOD-TCP-V2
      • Configuration is dynamically read from Modbus and Channels are created accordingly in the same format as for the existing WAGO fieldbus coupler.
    • Implementation of Meter Ziehl EFR4001IP
    • GoodWe Grid-Meter: implement ModbusSlave, improve code, HIGH modbus priority
    • Modbus-Bridge Cleanup
      • Prepare for bigger changes in Modbus-Bridge implementation
      • Rename Thread inside AbstractWorker to thread and make it protected
      • Drop priority ONCE, because it has no feasible use the way it is implemented currently. Use LOW instead. It makes sure the value is actually going to be read, even if e.g. the connection cannot be established from the beginning
      • Simplify TasksManager and move unused parts to Kostal Piko implementation
    • Structural changes in EVCS. Thanks @sebastianasen
      • AbstractManagedEvcs
        • Write handler no longer needed in every Evcs Component
        • Abstract Methods to ensure the minimum required information
        • Calculating the flexible hardware power limits depending on the hardware limits and current used phases
        • Handles the current ChargeState (Additionally to a normal State "CHARGING", it is aware if the limit is increasing, decreasing, normal or not charging)
        • This State is important because an evcs and the car itself need from 5 to 40 seconds (round about), till a limit is taken
      • Changed:
        • Phases stored as Enum
        • MaximumHardwarePower set by the component changed to FixedMaximumHardwarePower
        • MaximumHardwarePower still present (for boundaries in UI), but calculated automatically mentioned in AbstractManagedEvcs
        • EvcsCluster ClusterState depending on ChargeStates of each evcs.
        • Blocking new distribution if there was a regulation before and one or more evcss still increasing or decreasing.
        • Limit for each evcs is set with a filter
        • Fallback solution if the grid meter is above the limit
        • Evcs Comonents
        • Extending AbstractManagedEvcs & changes according to that
    • Improvements in App-Center
  • OpenEMS UI

    • Wait for App till translations are loaded
  • Common

    • Fix TypeUtils multiply

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 2 years ago

OpenEMS - 2022.10.0

Highlights

FEMS Backports 2022-08 (#1921)

  • Backend.Api.Controller
    • Improve reconnection speed
    • Fix problems if initial connection fails with timeout
    • Disable JUnit test as it sometimes breaks CI
  • Modbus-TCP-Api Controller:
    • Add implementation of 'cycleValue'
    • Return actual ESS limits at the Controller position in the Scheduler (instead of just AllowedCharge/DischargePower)
  • Heating Element Controller
    • Add Status information
    • Runtime fixes
  • Timeslot-Peakshaving ("Hochlastzeitfenster")
    • Fix parsing of times
    • Add PeakShavedPower Channel
  • App-Center
    • Improve Javadoc and minor improvements to App definitions and App-Manager service
  • Shelly IO
    • Implement 'Meter' Nature. Now Shelly Plugs are shown as Consumption in OpenEMS UI
  • Meters by Carlo Gavazzi, Janitza, Siemens, SOCOMEC, Schneider
    • Add invert feature
  • Simulated ESS
    • Derive AllowedCharge/DischargePower from Capacity (simulate a C-Rate of 1)
  • UI
    • Add ES-Lint and Unit tests
    • Continue migration to oe-modal-line etc.

Version upgrades

  • Bump uuid from 8.3.2 to 9.0.0 in /ui (#1922)
  • Bump org.apache.felix.eventadmin from 1.6.2 to 1.6.4 in /cnf (#1919)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 2 years ago

OpenEMS - 2022.9.0

Dependency updates

  • Update gradle to 7.5.1 404eeb6aeaafb8ce4cfb7a11c8c6470bfbbc0096
  • Bump postgresql from 42.4.0 to 42.4.1 in /cnf (#1907)
  • Bump date-fns from 2.28.0 to 2.29.2 in /ui (#1910)
  • Bump influxdb-client-utils from 6.3.0 to 6.5.0 in /cnf (#1913)
  • Bump jsoup from 1.15.1 to 1.15.3 in /cnf (#1912)
  • Bump flux-dsl from 6.3.0 to 6.5.0 in /cnf (#1915)
  • Bump postgresql from 42.4.1 to 42.5.0 in /cnf (#1916)
  • Update UI dependencies 8390d2d36e030fc36f8055fc3c84d706d5a598ba
  • Bump gson from 2.9.0 to 2.9.1 in /cnf (#1917)
  • Bump influxdb-client-core from 6.3.0 to 6.5.0 in /cnf
  • Bump influxdb-client-core from 6.3.0 to 6.5.0 in /cnf
  • Bump kotlinx-coroutines-core-jvm from 1.6.3 to 1.6.4 in /cnf (#1898)
  • Bump kotlin-osgi-bundle from 1.7.0 to 1.7.10 in /cnf (#1889)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 2 years ago

OpenEMS - 2022.8.0

Highlights

  • Huge performance improvements in OpenEMS Backend
  • Add SMA Sunny Island 4.4 (#1620). Thanks @clehne
  • Add Meter B+G E-Tech DRT428M2 Modbus RTU (#1895 and #1902). Thanks @mishbieg for the contribution and @pooran-c for reviewing
  • Add nice OpenEMS colors to OpenEMS UI

Bug Fixes and Other Changes

  • JUnit test framework for OpenEMS Backend (#1884)
    • Move AbstractComponentConfig from io.openems.edge.common to io.openems.common. This is the first step to use the existing JUnit test framework also for OpenEMS Backend.
  • App Manager improvements (#1885 and #1899)
  • Fix and update OCPP implementation
    • Bump OCPP-J from 1.0.1 to 1.0.2 in /cnf (#1892)
    • OCPP-Server fix (#1905)
  • Update Gradle to 7.5
  • FEMS Backports 2022.08 (#1904)
    • Backend
      • Alerting improvements (add Edge-ID)
      • User registration: add OEM capability
      • Switch some features from listeners to Events
      • Performance improvements
        • Reduce size of Edge-Cache in memory
        • Improve thread locking
        • Drop LastUpdate field
        • ChannelAddress: precalculate toString() - JDK Mission Control analysis showed, that it's called so often, that this is worth it
        • Optimize writes to Odoo/PostgreSQL
      • Refactor handling of subscribes to Edge System-Log
      • Fix FieldTypeConflict detection with latest Influx library
    • Edge
      • FENECON Commercial Battery: continuous improvements
      • SunSpec: fix handling of 32 bit values
      • ESS-DC-Charger: add Voltage and Current
      • Generic ESS: fix default target filters
      • EVCS: fix reference to Timedata
      • FENECON Pro 9-12: split interface and implementation
      • GoodWe DC-Charger: add Voltage and Current
      • Shelly: fix possible NullPointerException
      • PV-Inverter: fix missing channels for L1/L2/L3 for
        • Fronius
        • KACO
        • Kostal
        • SolarEdge
    • UI
      • Fix formatting of numbers and periods
      • Continue converting widgets to generic implementations
      • Consumption historic view: show correct Channel
      • Update OpenEMS colors in variables.scss
    • Common
      • Improve WebSocket reconnect with timeout and if initial connect fails
      • Fix EdgeConfigDiff for 'null' fields
      • JsonUtils: fix parseLong and parseEnum
      • Add JUnit tests
      • Improve log outputs with context (e.g. Edge-ID)
      • Read Hostname into MANUFACTURER_EMS_SERIAL_NUMBER

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] over 2 years ago

OpenEMS - 2022.7.0

Highlights

  • Introduction of OpenEMS App-Center (#1860) Thanks @michaelgrill

Bug Fixes and Other Changes

  • Add Java-Checkstyle requirement to CI (#1852)
    • Automatically apply Checkstyle checks for Java (OpenEMS Edge + OpenEMS Backend) via the Continuous Integration pipeline.
    • Next step is implementing ESlint for OpenEMS UI
  • Extend SunSpec PV-Inverter with support for Single-Phase inverters (#1854)
  • Add explicit encoding for Java projects (#1855)
    • Starting with Eclipse IDE 2022-06, the IDE shows a warning if no explicit encoding is set. The warning message is "Project has no explicit encoding set".
    • This pull-request adds the explicit configuration for every project directory and adds an automatic check/creation in tools/prepare-commit.sh script.
  • Dependency management
    • Bump InfluxDB to 6.3.0 (#1866, #1881, #1871, #1882)
    • Remove dependency msgpack-core (#1872)
    • Upgrade UI dependencies (#1874)
    • Bump fastexcel from 0.12.14 to 0.12.15 in /cnf (#1873)
    • Bump okhttp from 4.9.3 to 4.10.0 in /cnf (#1878)
    • Bump postgresql from 42.3.5 to 42.4.0 in /cnf (#1876)
    • Bump org.apache.felix.http.servlet-api from 1.2.0 to 2.0.0 in /cnf (#1879)
    • Bump kotlin-osgi-bundle from 1.6.21 to 1.7.0 in /cnf (#1880)
    • Bump jna from 5.11.0 to 5.12.1 in /cnf (#1883)
    • Bump kotlinx-coroutines-core-jvm from 1.4.3 to 1.6.3 in /cnf (#1858)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] almost 3 years ago

OpenEMS - 2022.6.0

Bug Fixes and Other Changes

  • Fix Gitpod Live-Demo and switch to openems-odoo version 14 (#1822)
  • Backport from FEMS for 2022.05 (#1824)
    • InfluxDB
      • Update to latest v6.0
      • Replace internal InfluxDB async write with our own implementation. For some reason the internal implementation sometimes suddenly stops writing
      • Try rewrite after Field-Type-Conflict
      • Split wrapper bundles
    • DummyMetadata: Make sure setInitialized() is called when events can be handled
    • Reference Target Filter
      • handle 'null'
      • add low-level method for updating filters
    • Json-Exception: improve/shorten error message
    • Soltaro Battery: remove unnecessary info channels
    • Virtual Meter Subtract
      • Minuend can be null; assume '0' power in that case
      • Fire onSetNextValue to avoid loosing one cycle
    • SolarEdge: rename Meter and PV-Inverter to be in line with other components
    • RRD4j: add missing OpenemsType handlers
    • Tibber: fix OKHTTP deprecation warning
  • Backport from FEMS for 2022.06 (#1850)
    • Common:
      • Add type casting to JsonUtils
      • WebSocket reconnect: small fixes
    • Backend:
      • Updates to Alerting Service
      • EdgeWebsocket: trim apikey
    • Edge:
      • Battery:
        • Add FENECON Commercial Battery
        • Soltaro Cluster C: fix possible race condition on init
      • Battery Inverter:
        • Sinexcel: large improvements
      • Controller:
        • Api.Backend: fix data send on duplicated Component-ID
        • ESS GridOptimizedCharge: large improvements
      • Timedata:
        • RRD4j: better handling for missing database files
        • Influx: enable GZIP and improve logging
      • Edge.Common:
        • Refactor ComponentManager
        • Add Yuriy Guskovs Plot library for tests
  • Backend Metadata.File: fix JSON handling and docs (#1827)
  • UI: Constraint on node engine version (#1835)

Dependencies

  • Bump and later Downgrade Apache Felix Web Console (#1837)
    • The update in #1831 caused empty component configuration window
  • Bump jsoup from 1.14.3 to 1.15.1 in /cnf (#1832)
  • Bump postgresql from 42.3.4 to 42.3.5 in /cnf (#1821)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] almost 3 years ago

OpenEMS - 2022.5.0

Bug Fixes and Other Changes

  • Fix Language NullPointerException (#1793)
    • This bug had caused problems when logging in from OpenEMS UI to OpenEMS Edge. Thanks @michaelgrill for the fix!
  • Fixed filter for influxdbv2 query (#1782)
    • Use edge instead of fems keyword
    • Bug had been introduced in a FEMS backport. Thanks @simonfey for the fix!
  • Updates to system update feature (#1807)
    • This is an incremental improvement to the feature. More to come soon. See pull-request for details. We are hoping for comments on this Beta feature.
    • Thanks @lukasrgr!
  • Improvements to App-Manager (#1813)
    • This is an incremental improvement to the feature. We are hoping for comments on this Beta feature.
    • Thanks @michaelgrill
  • Implement Negative Alerting in Backend (#1814)
    • Negative Alerting: sends notification when EMS stays disconnected from the backend for certain configured period
    • This is currently implemented with Metadata.Odoo in mind. We are hoping for comments on this Beta feature.
    • Thanks @da-Kai
  • Events: change backend structure to use OSGis EventAdmin (#1814)
  • Corrently: fix API calling parameter (#1806)
    • Corrently has changed the call param zipcode to zip. Thanks @clehne for the fix!
  • Improve calculation of _sum/EssDcDischargePower (#1800)
  • Sinexcel: calculate Energy from ActivePower (#229) (#1816)
    • Seems the original values from modbus are not reliable; tested on fems
    • Also: change DC_(DIS)CHARGE_ENERGY to LONG to avoid 'is not fitting in Integer range' exception

Dependencies

  • Bump org.apache.felix.configadmin from 1.9.22 to 1.9.24 in /cnf (#1792)
  • Bump d3 from 7.3.0 to 7.4.2 in /ui (#1791)
  • Bump @angular from 13.3.0 to 13.3.1 in /ui (#1785, #1803)
  • Bump moment from 2.29.1 to 2.29.2 in /ui (#1794)
  • Bump postgresql from 42.3.3 to 42.3.4 in /cnf (#1805)
  • Bump Java-WebSocket from 1.5.2 to 1.5.3 in /cnf (#1799)
  • Bump jna from 5.10.0 to 5.11.0 in /cnf (#1775)
  • Bump d3 from 7.4.2 to 7.4.4 in /ui (#1798)

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 3 years ago

OpenEMS - 2022.4.0

Highlights

  • Add Fronius PV Inverter (via Modbus/SunSpec) (#1749)
  • Add Kostal PV Inverter (via Modbus/SunSpec) (#1767)
  • Code clean-up and modernization for Java 11 (#1757)
    • Modernize code for features of Java 11; this is mainly applied by using the "Clean up..." feature of Eclipse IDE. The configuration XML file for "Clean up" can be found at /cnf/clean-up.xml
  • Add compatibility with InfluxCloud and InfluxDB 2.0 (#1581, #1768, #1769)
    • Update InfluxDB Query Language to new Flux Language
    • Improve 'round by resolution' behaviour
    • Update to latest InfluxDB Client Java library (https://github.com/influxdata/influxdb-client-java)
    • be aware that the configuration properties for Backend and Edge InfluxDB components was changed to reflect InfluxDB 2.0 terms

Minor improvements

  • Modbus/TCP: Add GridMode to Sum (#204) (#1748)
    • GridMode can now be read via Modbus Address 417.
    • Additionally:
      • Add new type enum16
      • Show text of Channels in Description
      • Improve texts for Channels
      • Fix calculation of GridMode when there is no ESS.
  • Improve tutorial "Implementing a Device" (#1507)
  • Controller IO HeatingElement: add cumulated active time (#1760)
    • Add cummulated time channels & update them depending on the current level. Use these channels in the UI history.
  • Add translation for Excel Export (#1778)
    • Sinexcel Battery-Inverter: add debounce for channels (#1779)
    • This fixes read problems with Sinexcel Battery Inverters.
    • Also: move debounce feature from StateChannel to all BooleanChannels

Bug Fixes and Other Changes

  • Required change for Fronius PV Inverter (via Modbus/SunSpec) (#1749)
    • AbstractOpenemsSunSpecComponent readNextBlock() function change to complete when all expected blocks have already been read.
  • Odoo: store and authenticate username/email in lower case (#1750)
  • Update Gradle v7.4.2 56adc1529055285696d88230e205c7d119229204 74720da61ea31937cabb7163c4085024f6f3d448
  • FENECON Home Battery: add Component deactivate (#1766)
  • Bugfix isProducer() method (#1770)
  • Gitpod live demo: fix branch name for odoo-openems (#1771)
    • _Gitpod is unfortunately broken right now because of some Odoo module incompatibility
  • Fix SDM 630 modbus addresses for Reactive Power (#1772)
  • FEMS-Backports for 2022.04 (#1773)
    • Bugfix for InfluxDB v2 implementation:
      • add missing runtime dependencies
      • use ThreadPool for InfluxDB batch writes
      • improve exception handling
    • Add continuous debug output to Ui.Websocket and Edge.Websocket
    • Add fallback for Resolution and Timezone for older UI versions
    • Improvement on Generic.Ess ErrorHandler
  • Update core UI libraries (#1774)
    • Angular v13
    • Ionic v6
    • ...
    • Fix CI path to ng
  • Improvements for Time-Of-Use Tariffs (#1776)
    • Change TimeOfUseTariff to never return null
    • Introduce TimeOfUsePrices.empty() instead
    • Adjust Controller to handle the changed logic
    • Awattar, Tibber, Corrently: throw Exception if HTTP GET result is empty
    • Update JUnit tests to reflect new Exception handling
  • UI: fix not displayed meters (#1780)
    • Fixed not displayed meters and wrong displaying of labels in history/consumptionchartOverview

Thanks @DerWahreKlinki, @huseyinsaht, @mlang97, @sebastianasen, @lukasrgr, @venu-sagar, Michael Grill, @janseidemann for contributing to this Release!

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 3 years ago

OpenEMS - 2022.3.0

Bug Fixes and Other Changes

  • Improve docs:
  • Bump postgresql from 42.3.1 to 42.3.3 in /cnf (#1731 and #1737)
  • Bump slf4j-api and slf4j-simple from 1.7.35 to 1.7.36 in /cnf (#1736)
  • Bump gson from 2.8.9 to 2.9.0 in /cnf (#1735)
  • Bump guava from 31.0.1-jre to 31.1-jre in /cnf (#1745)
  • Update copyright information for 2022 8e727e88e099f54e4494fba0fbefeed75747ccbc
  • ESS Power: add JUnit test for multilayer cluster 16f44fa636bd35b9d454c8ba8333cd887cbcd7c7
  • Fix various typos (#1738)
  • Update UI dependencies ec79e1498ff4ce3bfcffc58cf86e39ebdaed79de
  • FEMS-Backports 02/2022 (#1746)
    • Channel: improve toString() and error logging
    • TypeUtils: add helper methods for Float
    • Predictor: fix naming
    • Add Simulated Thermometer

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 3 years ago

OpenEMS - 2022.2.0

Highlights

  • From now on we provide downloadable files for every release
    • Release assets (and a Github draft release) are automatically created via Github Actions (#1696)
    • Find the download links for openems-edge.jar, openems-backend.jar and openems-ui.zip below
    • We are glad to hear your feedback on prebuilt release files on OpenEMS Community! (https://community.openems.io)
  • We published a major update for the OpenEMS Getting Started guide: https://openems.github.io/openems.io/openems/latest/gettingstarted.html
  • In rest this release focuses on updating and modernizing the code base for Java 11, updating external library dependencies and bug fixes

Bug Fixes and Other Changes

  • Major update for OpenEMS Getting Started guide bb0e6f26581c6b85f925d6e3e1e428511c79f39d
  • Code Clean-Up and modernization for Java 11
    • Clean-up code using Eclipse IDE
    • Apply checkstyle
    • Use Java 11 features - mainly the var keyword, where appropriate
    • OpenEMS Backend (#1692)
    • OpenEMS Edge (#1695)
      • Update io.openems.common
      • Update io.openems.edge.application
      • Update io.openems.edge.battery.api
      • Update io.openems.edge.battery.bmw
      • Update io.openems.edge.battery.bydcommercial
      • Update io.openems.edge.battery.fenecon
      • Update io.openems.edge.battery.soltaro
  • Update dependencies
    • UI edb287eef5244e6c2d148c17a98452b32a7bfccd 4ed9531e8275c7197008fd9f5083e831ec0bf75f
    • Bump fastexcel from 0.12.12 to 0.12.13 in /cnf (#1703)
    • Bump HikariCP from 4.0.3 to 5.0.1 in /cnf (#1701)
    • Bump fastexcel from 0.12.13 to 0.12.14 in /cnf (#1712)
    • Bump slf4j-api from 1.7.32 to 1.7.33 in /cnf (#1710); Closes #1709
    • Bump d3 from 7.2.1 to 7.3.0 in /ui (#1698)
    • Bump slf4j-api from 1.7.33 to 1.7.35 in /cnf 854e7590a8e3d69ba6726079a37a41f574fc600b
    • Bump slf4j-simple from 1.7.33 to 1.7.35 in /cnf (#1725)
    • Bump org.apache.felix.configadmin from 1.9.20 to 1.9.22 in /cnf (#1708)
  • Battery: fix JUnit test 8927408af88b6d11fe8f135923eee60f480c0638
  • EdgeConfig: try to parse JSON configurations (#1705)
  • Fix OCPP dependencies for Java 11 (#1715)
    • Add JavaBeans Activation Framework
    • Fix typo in sdnotify wrapper
    • Update EdgeApp.bndrun
  • Simulator GridMeter: fix calculation of active power
  • FEMS Backports (#1721)
    • Continuous improvement of Odoo Backend and FENECON Home implementation
    • Cleanup JsonUtils and EdgeConfig
    • Add EnumUtils
    • JsonrpcRequest: improve log messages on error
    • JUnit tests
    • Timeslot-Peakshaving ("Hochlastzeitfenster")
    • Draft for App-Manager
    • EssDcCharger and PV-Inverters: add modbus slave definition
    • GoodWe:
      • add config setting to disable MPP Tracking with external optimizers
      • improvements to "SMART"-Mode
  • Time-Of-Use Tariff Discharge controller Bug-Fix (#1716)
    • Set active power for both AC and DC systems were the same, and it is changed now by recognizing if it is a DC or AC system and giving separate set points.
    • Controller LimitTotalDischarge implementation is split into Interface and implementation.
    • Reference for limit total discharge and emergency capacity reserves is updated with target filters for enabled/active Controllers

Energy Systems - Building Energy Monitoring - Java
Published by github-actions[bot] about 3 years ago

OpenEMS - 2022.1.0

Wishing all of you a happy and successful new year 2022!

Highlights

  • Implement Siemens PAC2200/3200/4200 meters (#1667). Thanks @simonfey for the contribution!

Bug Fixes and Other Changes

  • Bump org.apache.felix.webconsole from 4.7.0 to 4.7.2 in /cnf (#1688)
  • Switch to log4j2 (#1686)
    • update it to latest version 2.0.14 (031449b69d4a407ecabcf91f75332b62227a9f4d)
    • update prepare-commit script for log4j2 433e452a4830a40fe645247b8dc89c55a2dfb2e5
  • Backend Odoo: apply Checkstyle, fix taking database name from configuration 742af2dc2a511d6992dfe139da9fc827f418cca7
  • Tried to update j2mod/jSerialComm... #1602, 0f43c0a7c12a629de6af3b095f4c92b7222d304c, #1689
    • We have been trying a couple of times already to update j2mod and jSerialComm to there latest version, but it always fails, because jSerialComm somehow reconfigures the serial device and draws it unusable on our test systems. If anybody can help out, it will be much appreciated. Till then we will stay with the old version.
  • Bump rrd4j from 3.8 to 3.8.1 in /cnf (#1690)
  • Drop R&D page from docs
    • It was moved to https://openems.io/research/ long ago.
    • If you use OpenEMS for a research project, please give us a note and we will link you there.
  • Update gradle to 7.3.3 4deba812517e9db885d6975a94a64228830111d2
  • Update docs for new, monthly release cycle fbce09e371275f993ff24ccd219da246bdea30f5

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.22.0

Bug Fixes and Other Changes

  • Update pax-logging-log4j
  • Bump org.apache.felix.http.jetty from 4.1.12 to 4.1.14 in /cnf (#1684)
  • Bump org.apache.felix.framework from 7.0.1 to 7.0.3 in /cnf (#1679)
  • Bump d3 from 7.1.1 to 7.2.1 in /ui (#1681)
  • Bump date-fns from 2.26.0 to 2.27.0 in /ui (#1676)
  • Fixes for Backend Metadata.Odoo
    • XML-RPC encoding issue 55709618338abe7b2328e544338be59ca94eebcd
    • handling of XML null values ca3bc09929f96d7b44d590c5fb5078df4dbdb5be

NOTE: see the discussion in OpenEMS Community forum regarding the Log4j issue (CVE-2021-44228): https://community.openems.io/t/schwachstelle-in-log4j-und-openems/707

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.21.0

Highlights

  • Switch to Java 11 (#1596)
    • Switch from Java 8 to Java 11
      • Update Github Actions workflow
      • Update Gitpod Dockerfile (use Java 11.0.13-tem Eclipse Adoptium Temurin build)
      • Update all .classpath files to use JavaSE-11
      • Update EdgeApp and BackendApp.bndrun to use JavaSE-11
    • Replace apache xmlrpc with aXMLRPC
      • Apache ws-xmlrpc depends on javax.xml.bind, which was deprecated since Java 9 and was removed in Java 11
      • Thank you @gturri for providing a nearly drop-in replacement for Apache ws-xmlrpc
      • This also removes the dependency for Apache WebServices Common Utilities (ws-commons-util), which was also removed
      • Update OdooUtils to use aXMLRPC instead
    • Replace deprecated methods in OneWire
    • Remove InfluxDB config as it is not installed by default in Gitpod
    • By default remove the .settings directory which is specific to Eclipse IDE (via tools/prepare-commit.sh)

If you need a prepuilt Java Runtime Environment (JRE) for Java 11, please refer to https://adoptium.net/. Updated Debian Packages by the Eclipse Adoptium project are still work-in-progress (see https://github.com/adoptium/installer/issues/330), but the ones by Adopt-OpenJDK are still available here: https://adoptopenjdk.jfrog.io/ui/native/deb/pool/main/a

Bug Fixes and Other Changes

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.20.0

Thank you to all the members of the OpenEMS Association for the networking at the yearly general meeting. And also thanks to the Community for joining us in the OpenEMS Conference 2021 on 16th November. The recordings will be available soon on https://openems.io/.


Highlights

  • Time-Of-Use Tariff Corrently: switch to 15 minutes resolution
  • Add Time-Of-Use Tariff Tibber (#1663)

Bug Fixes and Other Changes

  • Ess-Cluster: fix calculation of channels (#1666)
    • Certain Channels like 'Capacity' or 'ActivePowerL1/L2/L3' had not been calculated at all or correctly.
  • Fix DESS Chargers: change Config1 to Config2 (#1665)
  • Ess Cycle Controller Final Soc State Charge Bug Fix
  • FEMS Backports #1658
    • Improvements for Time-Of-User Tariffs
      • Implement generic Time-of-Use tariff service.
      • Implement Awattar TOU tariff provider implementation.
      • Implement Corrently by STROMDAO TOU tariff
    • Checkstyle: do not required Javadoc for build() method in builder pattern
    • Add System-Update feature (if OpenEMS Edge is installed via Debian package)
      • Add ExecuteSystemUpdateRequest and GetSystemUpdateStateRequest
    • Add Password-only sudo authentication for system execute
    • Add exitcode to ExecuteSystemCommandResponse
    • Add global .gitignore patterns
    • Update gradle bnd version to 6.0.0
    • Increase number of Threads in ThreadPools to avoid pending tasks
    • Add handling of BundleContext in activate (without DummyBundleContext, because that had caused Resolve errors)
    • UI: improve detection of isOnline
    • Set default port 8085 in edge-dev.ts
    • TypeUtils: fix conversion from Double to Float
      • This fixes a bug where a double "0.0" could not be converted to float, with following error: "Cannot convert. Double [0.0] is not fitting in Float range."
      • Also applied Checkstyle on TypeUtils.
    • Keba KeContact: trim configured IP address
      • This avoids "evcs0[Failed activation java.net.UnknownHostException: xxx.xxx.xxx.xxx]
    • Introduce OpenemsOEM class which simplifies creating custom distributions of OpenEMS
    • Soltaro Battery Improvement
    • Sinexcel Battery Inverter New Modbus Protocol Implementation
    • Allow SymmetricEss in EvcsClusterPeakshaving
      • EvcsClusterPeakshaving was not able to start with a SymmetricEss like Fenecon Dess. (No Reference for component ess0 ...)
    • UI register: Remove zip validator
      • Austria has only 4 digits; other countries... who knows?!
    • PQ Plus UMD96 Meter Implementation
    • Remove Predictive Delay Charge Controller
      • It was replaced by the more advanced "ESS Grid Optimized Charge" Controller (io.openems.edge.controller.ess.gridoptimizedcharge).
    • Hardy Barth Salia: implementation improvements
      • Small things like heartbeat were changed in the hardy barth software especially for the newer salia cpµ pro 2 (single charger).
      • Another problem was the external meter that is used internally in the hardy barth to provide the current charge values.
      • This meter also measures the standby consumption of the salia itself and is disabled by default - The function to enable it automatically is on hold for now, as we need a proper update process first.
    • GoodWe: add missing Write-Registers

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.19.0

Bug Fixes and Other Changes

  • Fixed Reactive power listener in AsyncMeter (#1646). Thanks @kscholty
  • Update Getting Started-Docs for UI (#1650). Thanks @lukasrgr
  • UI: Fix default Port in Environment (#1651). Thanks @lukasrgr
  • InfluxDB: write data with milliseconds precision (#1644)
  • Dependency updates:
    • Bump gson from 2.8.8 to 2.8.9 in /cnf (#1656)
    • Bump postgresql from 42.3.0 to 42.3.1 in /cnf (#1655)
    • Bump org.osgi.service.jdbc from 1.0.0 to 1.0.1 in /cnf (#1649)
    • Bump date-fns from 2.24.0 to 2.25.0 in /ui (#1638)
    • Bump d3 from 7.0.3 to 7.1.1 in /ui (#1632)
    • Bump influxdb-java from 2.17 to 2.22 in /cnf (#1626)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.18.0

Highlights/New implementations

  • Time-of-use-Tariff Discharge Controller
    • Schedules the discharging of an AC or DC energy storage system in the night based on time-of-use prices, predicted production and consumption. Thanks @venu-sagar
  • ESS Cycle Controller: executes charge/discharge cycles on an ESS. Thanks @huseyinsaht
  • Generic Off-Grid ESS Implementation
    • Similar to the existing Generic-ESS, this Off-Grid variant takes any off-gridable battery inverter (like Sinexcel), any battery and an external device that manages grid-switching and off-grid detection to seamlessly transfer between public- and micro-grid. Thanks @huseyinsaht

Bug Fixes and Other Changes

these improvements are mainly backports from FENECON Energy Management System (FEMS) #1637

  • Generic/Build/...

    • Extract wrapper for OK HTTP library so that it can be used easier by other Components
    • Improve Modbus Communication errorhandling
      • In case of a modbus communication error there used to be a Fault state on the Modbus Bridge. This improvement moves the Fault state to the actual Modbus device instead.
      • New Fault state ModbusCommunicationFailed inside the ModbusComponent Nature
      • Properly implement ModbusComponent Nature in all Modbus device implementations
      • In Modbus Bridge: use global Cycle-Time
      • Add JUnit tests for Modbus-Bridge
    • Channel: refactor handling of initial value
    • Ramp-Filter: refactor
    • State-Machine: store the previous state and make it available via getPreviousState() method
    • Add feature to ignore Component Warnings and Faults in Sum
      • If you are aware that certain Components currently have an error (e.g. a Modbus-Device is not connected, KEBA charging station is turned off, etc.) you can add the Component-ID to Sum, so that it does not appear in the overall system State (_sum/State)
      • Example without ignore: [ctrlDebugLog0] _sum[State:Fault] ctrlApiRest1[State:FAULT: Unable to start REST-Api Server]
      • Example with ignore configured: [ctrlDebugLog0] _sum[State:Info|State:INFO: Component Warnings or Faults are being ignored] ctrlApiRest1[State:FAULT: Unable to start REST-Api Server]
    • TypeUtils: improve logic in case of null
    • DebugLogController: add config setting to print Component Alias and implement @Modified to apply changed configuration faster
    • Improve process of restarting defective Components via OsgiValidateWorker
    • ESS Power-Constraints: improve log messages and avoid unnecessary tests
  • UI:

    • Continue refactoring of Widgets
    • many bug fixes
  • Batteries/Energy Storage Systems

    • Battery-Protection: increase force-charge to 2 A by default
    • FENECON Home: add startup procedure to Battery
    • Soltaro Cluster B: Set StateChannels only if the corresponding racks are used
    • Grid-Optimized-Charge: improve logic
    • Implement Sinexcel as Battery-Inverter; drop ESS implementation
    • GoodWe:
      • implement smart-mode also for GoodWe ESS
      • implement meter that measures emergency power
    • Remove Predictive Delay Charge Controller (#1643)
      • It was replaced by the more advanced "ESS Grid Optimized Charge" Controller (io.openems.edge.controller.ess.gridoptimizedcharge).
  • Input/Output

    • IO Single Channel Threshold: refactor + allow multiple outputs
    • JSON/REST-Api: improve permission handling
  • Dependencies

    • Bump org.osgi.util.function from 1.1.0 to 1.2.0 in /cnf (#1642)
    • Bump org.osgi.util.promise from 1.1.1 to 1.2.0 in /cnf (#1641)
    • Bump postgresql from 42.2.23 to 42.3.0 in /cnf (#1640)
    • Bump jsoup from 1.14.2 to 1.14.3 in /cnf (#1633)
    • Bump guava from 30.1.1-jre to 31.0.1-jre in /cnf (#1630)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.17.0

With this release we add a production-ready Backend integration with the Odoo ERP system. It serves as an authentication provider as well as IoT device management platform.

Try it in the OpenEMS GitPod Demo: https://gitpod.io/#https://github.com/OpenEMS/openems/tree/develop

For more information see: https://openems.github.io/openems.io/openems/latest/backend/gitpod.html

The OpenEMS module for Odoo is located at https://github.com/OpenEMS/odoo-openems

Thank you @mlang97 for the contribution!

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.16.0

This release comes with minor bug fixes and changes

Bug Fixes and Other Changes

  • DebugLogController: add config setting to print Component Alias (#1627)
  • Bump org.apache.felix.scr from 2.1.20 to 2.1.30 in /cnf (#1623)
  • Bump fastexcel from 0.12.11 to 0.12.12 in /cnf (#1622)
  • Update Gradle to v7.2 369d04783685e2a2ff1d5bb2e6a1d386750c8b49

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.15.0

Highlights

  • ESS Standby-Controller (#1158)
  • FEMS Backports #1617 - see below for details

Bug Fixes and Other Changes

  • TypeUtils: fix conversion bugs and improve type safety (#1611)
  • REST-Api: handle regex pattern syntax exception properly (#1616)
  • Modbus/TCP Api Controller: improve error handling (#1613)
  • FEMS Backports (#1617)
    • Generic/Build/...
      • Gradle: activate more detailed logs
      • Host: allow Network Configuration for Role 'owner'
      • Test-Framework and Simulator: improvements
      • Controller SG Ready Heatpump: fix persistence priority
      • Janitza meters: fix voltage and energy
    • UI
      • add support for theming
      • refactoring
      • Update Github Actions
    • Backend
      • Backend: handle User Language
    • Batteries/Energy Storage Systems
      • ManagedEss: add 'isManaged()' method for runtime detection
      • Generic-ESS is now a Hybrid-ESS
      • Battery Protection: require BMS data
      • BYD Battery Box Commercial: set state levels
      • FENECON Home Battery: numerous improvements
      • Soltaro Batteries: numerous improvements
      • Grid-Optimized-Charge-Controller: numerous improvements
      • GoodWe: numerous improvements
    • Electric Vehicle Charging
      • EVCS Controller: bugfixes
      • EVCS Hardy Barth: numerous improvements
      • EVCS Keba: fix energy limit
  • OpenEMS Backend as Docker container with InfluxDB preconfigured (#1298). Thanks @zoernert
  • KACO blueplanet gridsave 50: drop obsolete ESS implementation (#1452)
  • Update dependencies
    • Bump OCPP-J and v1_6 from 1.0 to 1.0.1 in /cnf (#1598)
    • Bump gson from 2.8.7 to 2.8.8 in /cnf (#1600)
    • Bump jna from 5.8.0 to 5.9.0 in /cnf (#1601)
    • Bump jsoup from 1.10.2 to 1.14.2 in /cnf (#1609)
    • Bump pax-logging-log4j1 from 2.0.9 to 2.0.10 in /cnf (#1607)
    • Bump org.apache.felix.webconsole from 4.6.2 to 4.6.4 in /cnf (#1608)
    • Bump org.apache.felix.webconsole from 4.6.4 to 4.7.0 in /cnf (#1615)
    • Fix compatibility with Apache WebConsole 4.7.0 (#1618)
    • Bump org.apache.felix.http.jetty from 4.1.10 to 4.1.12 in /cnf (#1614)
  • CI build fixes
    • Set UTF-8 for Javadoc (#1610)
    • Fix build of OpenEMS Docs (#1612)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.14.0

Highlights

  • Similar-Day Predictor (#1573). Thanks @pooran-c
  • Bosch BPT-S 5 Hybrid Energy Storage System (#1604). Thanks @waldtraut1981

Bug Fixes and Other Changes

  • Refactor Channel-Source and Target information (#1595, #1597)
  • Refactor Ess-Cluster (#1590)
    • Refactor implementation, use ChannelManager for immediate updates to channel values, calculate weighted SoC and add JUnit tests
  • Go-e Charger: Fix minimum and maximum hardware power calculation (#1582), Fixes #1580
  • RevolutionPi improvements (#1562) Thanks @clehne
    • improved debugLog() format, added some debug write channels and improved event process handling (read on BEFORE_PROCESS_IMAGE, write on EXECUTE_WRITE)
    • also: Simulator BatteryDummy - added missing StartStoppable channels
  • Backend implementation for installation assistent (#1589) Thanks @mlang97
    • See also #1588 for UI development efforts for an OpenEMS installation assistant by @raphael-piller
  • Improve handling of OSGi References and target filters (#1603). Thanks @sebastianasen for your valuable inputs
    • Try to restart Components if they are unavailable
      • Due to a race condition on startup, sometimes Components are unavailable to the ComponentManager. The related error message is [Core.ComponentManager(1)] : Could not get service from ref. We are fixing this by restarting (i.e. 'reconfiguring') the Component in such a case.
    • Increase ComponentManager 'ConfigNotActivated' level to 'FAULT'
    • On UpdateComponent via ComponentManager: reset target properties
      • Before if a Component was referencing 'modbus0' and you would update it to 'modbus1', there were two possible behaviours. (1) if 'modbus0' was still existing, the update would work and the target filter would be set properly. (2) otherwise the target filter could not be set, because the Component would not reactivate. This would leave the Component in an error state. We are fixing this by always resetting the target properties.
    • Set non-empty default target filter by default
      • If the target filter is made available via 'Config.java' and the configuration property is left as an empty string, the error Invalid syntax in target property for dependency arises on activate, which showed to also cause wrong behaviour later. We fix this by setting a default target filter of (enabled=true) - which is always true, but avoids the error
  • Backports from FEMS (#1583)
    • HybridManagedSymmetricBatteryInverter: set persistence priority for DC power/energy channels
    • JsonUtils: add parser for JsonObject and JsonArray to OpenemsType.String:
      • This fixes io.openems.edge.common.component.AbstractOpenemsComponent] ERROR : [ctrl0] Unable to parse Property [property] value [[""]] to [STRING]: JSON [[""]] is not a JSON-Primitive
  • Array-Properties: handle datatype properly (#1586)
    • Tries to extract 'one' value of the array, falls back to 'STRING' if there are more two or more values and handle 'IllegalArgumentException' instead of fail
  • TypeUtils: fix possible NullPointerException 78f0b42c07d3a17c90a6b761023eda145e25139a
  • Dependency updates
    • Bump slf4j-api from 1.7.30 to 1.7.32 in /cnf (#1578)
    • Bump date-fns from 2.22.1 to 2.23.0 in /ui (#1576)
    • Update UI dependencies (#1584)
    • Bump slf4j-api from 1.7.30 to 1.7.32 in /cnf (#1578)
    • Bump d3 from 7.0.0 to 7.0.1 in /ui (#1594)
    • Bump ngx-cookie-service from 12.0.2 to 12.0.3 in /ui (#1593)
    • Bump angular-mydatepicker from 0.11.4 to 0.11.5 in /ui (#1592)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 3 years ago

OpenEMS - 2021.13.0

Highlights

  • Implementation of go-e Charger Home (#1541).
    • Thanks @hogmoff for the effort as well as @nicoketzer and @sebastianasen for reviewing!

Bug Fixes and Other Changes

  • Documentation: add SMA TRIPOWER 8 / 10 as compatible PV inverter (#1561)
  • Add energy register mapping on Janitza UMG511 & UMG604 (#58)
  • Update dependencies
    • Bump org.eclipse.osgi from 3.16.200 to 3.16.300 in /cnf (#1536)
    • Bump gson from 2.8.5 to 2.8.7 in /cnf (#1485)
    • Bump postgresql from 42.2.22 to 42.2.23 in /cnf (#1567)
    • Bump ng2-charts from 2.4.2 to 2.4.3 in /ui (#1565)
    • Bump @ngx-formly/ionic from 5.10.21 to 5.10.22 in /ui (#1564)
    • Bump angular-mydatepicker from 0.11.3 to 0.11.4 in /ui (#1559)
    • Bump @types/uuid from 8.3.0 to 8.3.1 in /ui (#1555)
  • Fix deprecation warnings for gson 204e7a7b93d7e7c2bcf46911631c29e3252b2b24
  • Switch to official eu.chargetime.ocpp via maven (#1574)
    • eu.chargetime.ocpp now deploys artifacts to maven central repository. This commit switches to these libraries, instead of building them ourselves.

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 4 years ago

OpenEMS - 2021.12.0

Highlights

  • Export Channels to Excel (#1526)
    • This very helpful new feature adds a link in UI Profile to download an Excel file with all Channels and their current value. Also adds information about the 'source' of a Channel, e.g. the modbus register address. See #1526 for details

Bug Fixes and Other Changes

  • UI: Flatwidget for selfconsumption (#1475)
  • Backports from FENECON FEMS 4788e0593fd0ccf4223dfa996d33773932cb77cc
    • ease implementation of @Modified with ModbusComponents
    • improve Channels concurrency in AbstractOpenemsComponent
    • improve error log message on updateReferenceFilter
    • improve error log message in websocket OnNotification
    • improve exception handling in websocket OnRequest
    • improve exception handling in Rest-API handler
    • Soltaro Single Rack battery: downgrade fault to warning
    • TypeUtils: add fitWithin() and abs() methods
  • ESS Fix Active Power Controller: apply new set-point faster using @Modified 77f872e9c97a042c77ecebf20e6f9cfd8bbce4ff
  • Check duplicated Modbus Register to Channel mappings (#1543)
    • This automatically checks and throws an error if there are multiple Modbus registers mapped to the same Channel
  • Bump postgresql from 42.2.21 to 42.2.22 in /cnf (#1538)
  • UI: drop deprecated angular2-uuid bf7d67da30ba55de9b5668cda6b021780de367df

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 4 years ago

OpenEMS - 2021.11.0

Highlights

  • Implement Controller.Ess.GridOptimizedCharge 03ba135c4d01be0f77f67639d01e7a9781cd4e27 988688a534770bd06e1fd3faaacadc0e27e4e2a8
    • Combination of the PredictiveDelayCharge and the SellToGridPowerLimit controllers:
    • Delays the charging of the AC or DC storage system based on predicted production and consumption given by the PredictorManager.
    • Even during the delayed charging, the battery is able to force charge when the sell-to-grid power exceeds the configured "Sell-To-Grid maximum power limit".
    • This is mainly used when only 70 percent of the maximum production is allowed to feed in to the grid.

Bug Fixes and Other Changes

  • JsonUtils: improve parsing of Strings as booleans d2ba7b0f8870c70f6130b6e7450f62ecf9659b75
  • UI: Flatwidget for consumption (#1472)
  • SoC estimation improvement in simulator. (#1487)
    • Improved the Soc calculation by using the double value instead of float and estimating the soc through current energy value in the battery.
  • Upgrade to GitHub-native Dependabot (#1462)
  • Fix parsing of empty string properties to Integer 2629601a21dc66ab8f47f5381efd5c9390a5cda3
  • Simulator: remove obsolete min/maxActivePower config 39e76a1fe35557606fa2c1c60d102abc818e38ae
  • FENECON DESS: use unfiltered SoC value from Modbus 03022b42e3012c75981108310e94fcbb3501c231
  • Update gradle to version 7.1 81c9f667e7854745a7f8e8e46b351b50777b4509
  • Add ESS-Discharge-Power Channels to the Modbus registers (#1518)
  • Merge Hybrid-Generic-ESS with Symmetric-Generic-ESS (#1519)
    • This simplifies configuration in scenarios where you do not need to care if there is a DC-PV system connected to a Hybrid inverter or not. Example: GoodWe ET (hybrid) can be used without a DC-PV system.
  • Bump org.apache.felix.http.jetty from 4.1.6 to 4.1.10 in /cnf (#1517)
  • Bump postgresql from 42.2.20 to 42.2.21 in /cnf (#1515)
  • Bump msgpack-core from 0.8.22 to 0.9.0 in /cnf (#1513)
  • Drop obsolete bundles Refu.ESS and Streetscooter.ESS bb5c8092d812ae40440c20b1bf05cce5b79057d0
  • Update UI dependencies (#1520)
  • Bump fastexcel from 0.12.9 to 0.12.11 in /cnf (#1483)
  • Bump org.apache.felix.inventory from 1.0.6 to 1.1.0 in /cnf (#1516)
  • Bump org.apache.felix.webconsole from 4.6.0 to 4.6.2 in /cnf (#1514)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 4 years ago

OpenEMS - 2021.10.0

Highlights

Bug Fixes and Other Changes

  • Improve getting the Hostname for _host/Hostname Channel 2ab79dd9733a450c05bf0405a914163d6295d56b
  • Fix UI: show 'zero' values' (#30) 74835b3f7826a7c822800fea9c3c910a387fe8d0
  • GoodWe-ESS: fix apply readOnlyMode 4f5a3451cc565698eda6aebe9c3b1f175c4277e9
  • Update to gradle 7.0.2 92e38331a2148722680893c3316b13206729b924, 7abff5a6e486507c2ac3c8623124bc5a2467e113
  • Continued UI refactoring: FlatWidget for grid (#1447)
  • Use MetaTypeInformation for _Property Channels (#1463)
    • improve type safety
    • improve security: password fields are not created as Channels
  • Update UI dependencies ac509f5961c6e6835420d264274b6edc5f706788

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 4 years ago

OpenEMS - 2021.9.0

Highlights

  • Implement MQTT (#1395)

    • This adds support for the MQTT protocol in OpenEMS Edge. The new "Controller.Api.MQTT" publishes data to an MQTT broker.
    • It uses the following MQTT topics:
      • edge/{OpenEMS-Edge-ID}/channel/{Component-ID}/{Channel-ID}
        • Data of Channels is published on change and at least every 5 minutes to these topics.
        • Example: edge/edge0/channel/_sum/GridActivePower
      • edge/{OpenEMS-Edge-ID}/channel/lastUpdate
        • Timestamp of the latest data update on any of the Channel topics above.
        • Example: edge/edge0/channel/lastUpdate
      • edge/{OpenEMS-Edge-ID}/edgeConfig
        • Configuration of the OpenEMS Edge instance is published to this topic as a JsonObject.
        • Example: edge/edge0/edgeConfig
    • The implementation is built on version 5 of the MQTT protocol and was tested with Eclipse Mosquitto (https://mosquitto.org).
    • Be aware that this implementation only marks the start of MQTT support in OpenEMS. Therefor implementation details might change with future versions.
  • Improved Login and Session-Handling (#1013)

    • New User-Area in UI
    • Allow login on Backend
      • Dummy and File Metadata services store sessions in memory
      • Odoo Metadata service uses Odoo sessions
    • Add option for logout
    • Always explicitly authenticate via JSON-RPC Request (not via http headers)

Bug Fixes and Other Changes

  • Add Compatibility with IntelliJ and Amdatu Plugin (#1460), thanks @DerStoecki/Consolinno
  • Update dependencies #1455, #1456, #1457, #1458, #1459
  • CHP Controller: Fix possible NaN-error #1013
  • Fix "Factory definition for [*] is missing." error in UI #1013
  • UI Cleanup for websocket state + resubscribe #1013
  • Update UI with a little bit better state-machine; should switch NgRx eventually #1013
  • Bridge.OneWire: add readme for JSON-RPC methods 49af2ab0524f6c8b19f4e8f9078d6dcf5b9d2aa3
  • UI: FlatWidget for Storage (#1445), thanks @lukasrgr
  • GoodWe: update calculation of DC and AC Power and Energy 700b0e344a325f7d1408583da7183e4b6188c9c5
  • SystemdNetworkd: improve parsing of configuration files c4ca42152200456d7dd1c2f73783740852f775bf
  • SymmetricBatteryInverter: add missing PersistencePriority 8e142f91b245c7705cb3c3012194bf580e621080
    • this fixes issues with energy values for GenericEss
  • Add Hostname Channel "_host/Hostname" 1d1aea3d46244694d063463d74fb4e6ec74b0de6

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 4 years ago

OpenEMS - 2021.8.0

Highlights

  • Downgrade apache.felix.scr to 2.1.20 (#1438)
  • We are in the process of restructuring the software architecture of the UI. Thanks @lukasrgr for this contribution!
    • Targets are:
      • better modularization and generalization, e.g. automated subscribe and unsubscribe of channels
      • much simpler development of new Widgets, with less boiler-place code
      • align naming of Components with OpenEMS Edge
    • Generic wigets in the Live view for the OpenEMS Edge Components "Controller.IO.FixDigitalOutput" and "Controller.Ess.FixActivePower (#1414)
    • UI: Flat-Widget for autarchy, fix bug in Fix.DigitalOutput (#1443)
  • Refactor ESS Linear Power Band Controller (#1437)
    • migration to modern bundle layout
    • configurable start direction, i.e. start with charge or discharge ramp
    • Channels for StateMachine and TargetPower to simplify tracing
    • add JUnit test
  • OpenEMS Backend: significantly optimize ThreadPools (#1440)
    • Reduce the total number of ThreadPools (before there was one ThreadPool per WebSocket. Now it's one per Component.)
    • Set namespace for ThreadPools to simplify debugging

Bug Fixes and Other Changes

  • Battery Soltaro
    • Single B: calculate capacity automatically (#1428)
      • Read number of modules from Modbus
      • Module-Type still needs to be configured
    • adjust battery-protection for 3.5 kWh battery module (#1420)
  • FENECON Home Battery: add Battery Protection (#1425)
  • ConfigurationAdmin: avoid NullPointerException (#1441)
  • GoodWe-Battery-Inverter:
    • fix calcuation of MaxAcImport Channel 442263fce1d4223775c6ae9ec01be5c98414c16d
  • Refactor User classes for Backend and Edge (#1442)
    • Create a more logical common structure for Users in OpenEMS Backend and Edge.
  • OneWire-Bridge: GetDevicesRequest reads all connected OneWire devices (#1442)
  • Fenecon Mini: improve handling of MaxApparentPower (#1442)
  • Fix Jsonrpc layout between Edge, UI and Backend da6a42eb51d0c282059f95912fdb87dadbf93ff2
  • UI - Header: changed state 'info' for every non-admin to 'checkmark' (#1454)
  • EdgeWebsocket: fix broadcast send of EdgeConfigNotification 1943c7b532fc47d31972ede566fd658b18a1a326
  • Use ThreadPoolUtils.shutdownAndAwaitTermination() throughout the project ade210bafe4ff1ac452ecc984de2ee707a6cee84
  • EdgeConfigWorker: avoid ConcurrentModificationException on dynamic Channels 6d44a6cd4ff704b6b03e5a6aa3cc6d7cc54039fd
  • Sum: fix reference to Timedata 2c53e205f388f9179a552cd37bfdc3853b2dd35a
    • This had caused the Sum-Component to activate, deactivate and activate again on startup, resulting in a RejectedExecutionException in Controller.Backend.Api
  • Update gradle to 7.0 324ce54ebd2df40ef20f0708f70067c005309413
  • Update UI dependencies 24741b4c3eb598ec87c6701a49ee0a98486cc586

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 4 years ago

OpenEMS - 2021.7.0

Bug Fixes and Other Changes

  • Battery-Protection: Fix Force-Charge/-Discharge in Block-State (#1436)
    • add link from Block to Force states
    • add statemachine diagram for documentation
  • Update dependencies
    • Bump org.apache.felix.scr from 2.1.20 to 2.1.26 in /cnf (#1398)
    • Bump HikariCP from 4.0.2 to 4.0.3 in /cnf (#1406)
    • Bump org.eclipse.osgi from 3.16.100 to 3.16.200 in /cnf (#1415)
    • Bump org.apache.felix.http.jetty from 4.1.4 to 4.1.6 in /cnf (#1416)
    • Bump jna from 5.7.0 to 5.8.0 in /cnf (#1417)
    • Bump moshi from 1.11.0 to 1.12.0 in /cnf (#1431)
    • Bump Java-WebSocket from 1.5.1 to 1.5.2 in /cnf (#1434)
  • Fix various typos (#1429)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 4 years ago

OpenEMS - 2021.6.0

Bug Fixes and Other Changes

  • Update Angular to version 11 1698c8e375f07e72584cae6696715b073adb0d44
  • Update to latest Ionic template e0753f493e95b0896ab1128faf789c1f13cf4656
    • using ionic start command and applying all files to OpenEMS UI
  • RRD4j: fix default step seconds; improve post-processing 831c04d3dc73ce98ed70843678e42e4ad2e72197
    • default step seconds had been accidentially left at 1 second; should be 5
    • update datafile migration
    • improve data post-processing for uneven split
  • Continuous Integration:
    • update node version to 15; npm version to 7 5592e96e2fd6da372ed9f0328847496805439a6a
    • Fix UI build (#1419)
      • Make variables public that are used in templates
      • Clear warnings for "CommonJS or AMD dependencies can cause optimization bailouts"
      • Set strictInjectionParameters and strictTemplates to false
  • Docs: Fix Component Communication page ab69747f40b126df7999af1da8009e49e8e02ded
  • Bump fastexcel from 0.12.3 to 0.12.7 in /cnf (#1418)
  • Fix Fenecon Home Battery Capacity Calculation (#1421)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 4 years ago

OpenEMS - 2021.5.0

Highlights

  • Implement GoodWe as Battery-Inverter for Generic-ESS (#1323)
    • Be aware, that configuration paramaters for GoodWe Chargers need to be updated!
  • Implement KMTronic 4-Port Relay Board (#1410)
  • Update RRD4j Local Timeseries database (#1402)
    • Add 'PersistencePriority' to Channels
      • "VERY_HIGH" for Sum-Channels
      • "HIGH" for Nature-Channels
      • "MEDIUM" for local Channels that might be important - like Relay-Status of WAGO Fieldbus
      • ...
    • RRD4j only persists Channels with at least the configured priority
    • Write RRD4j databases very seldomly, approx. every 5 minutes
    • Reduce the size of RRD4j databases
    • Migrate last 30 days of old databases
    • To manually delete RRD4j databases of Channels that do not have sufficient persistence priority, execute in the RRD4j directory:
find . -type f -size +700k -exec rm -rf {} \;
  • Improve Controller.Backend.Api (#1403)

    • simplify worker
    • collect in sync with Cycle; send async
    • add JUnit tests
  • Backport FEMS Backend improvements (#1404)

    • Battery-Protection: Set Persistence-Priority
    • Backend Bundle-Names:
      • move APIs to common
      • rename remaining backend bundles
    • Metadata-API
      • add callback for isInitialized
      • add AbstractMetadata
    • Start Edge+UI-Websocket only after Metadata is initialized
    • Rename OdooMetadata to be in line
    • WebSocket:
      • use ThreadPoolExecutor for handling messages
      • add debug-mode: prints regular debug log status
      • make MaximumPoolSize configurable
      • use bounded queue and fixed size pool
    • Timedata improvements
      • EdgeCache: apply Cache only once per minute
      • Influx: Use bounded ThreadPool to get backpressure when writing data (because we are not able to update to latest InfluxDB library, that has this feature out-of-the-box)
    • Apply renamings on GoodWe
    • Fixes in UI
  • Add JSON-RPC Requests: add timeout parameter (#1412)

    • This non-standard extension of the JSON-RPC protocol adds a "timeout" parameter in seconds. This is the maximum time that we wait for a JSON-RPC Response. Timeout is defined as an Optional:
      • timeout > 0: use the given timeout in seconds
      • timeout <= 0: apply no timeout, i.e. wait forever
      • no timeout: use default timeout of 60 seconds

Bug Fixes and Other Changes

  • Battery-Protection: apply to more Battery implementations (#1407)
    • drop deprecated implementation
  • ComponentManager: remove 'Null'-Properties in Update-Request c209ab308aee0db13542fab2def219c1cd04dc49
  • GoodWe Battery-Inverter: fix possible NullPointerException 5a7ddaad71c0ed21400483bfe1217aef0196caab
  • Backend EdgeWebsocket: fix possible NullPointerException if no UiWebsocket exists 839a471ad4522bdc47f52ca7595ae4a643ffd4a1

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 4 years ago

OpenEMS - 2021.4.0

Highlights

  • Implementation of Advanced Battery Protection algorithms (#1376)
    • The "Battery-Protection" implementation serves as an addition to low-level battery management systems (BMS). It allows a fine grained definition of battery protection parameters and handles logics that are shared between different BMS implementations.
  • Implementation of a new Prediction architecture (#1327)
    • This new Predictor architecture uses modular Predictors, e.g. implementation of the Predictor24Hours. These Predictors can announce for which channels they allow a prediction and provide a Prediction24Hours result.
    • The entire process of getting a prediction is handled by the PredictorManager. It knows which actual Predictors to ask for their prediction, post-processes these predictions and returns them either directly in code via the Predictor::get24HoursPrediction() method or via a get24HoursPrediction JSON-RPC request to the _predictorManager component.
    • developed within the EMSIG project: https://openems.github.io/openems.io/openems/latest/randd.html#_emsig

Bug Fixes and Other Changes

  • Simulator: BatteryDummy - add missing StartStoppable channels (#1392) Thanks @clehne
  • Migrate from Travis CI to GitHub Actions (#1397)
  • Improve OpenEMS documentation (#1399)
  • Update dependencies:
    • Gradle fcc65407ef0f95450e1ba7488d584d7644e23038
    • pax-logging-log4j1 from 2.0.6 to 2.0.7 (#1396) to 2.0.8 (#1400)
    • postgresql from 42.2.18 to 42.2.19 (#1394)
    • HikariCP from 4.0.1 to 4.0.2 (#1390)
    • jna from 5.6.0 to 5.7.0 (#1386)
    • UI dependencies 656af5de02becd87951afa54303d50112885067a
  • BatteryProtection definition for Soltaro Single B (#1376); also:
    • Add new features to PolyLine for type safe and fluent calls
    • Add TypeUtils min and multiply for type Double
    • Add custom Callbacks to ComponentTest-Framework
    • Add TypeUtils to convert safely from Integer/Float to Double
    • TypeUtils.assertNull() throws an IllegalArgumentException; adapt OperatingSystemDebianSystemd-Service accordingly
    • Cleanup and apply autoformat
    • improve null-handling in OpenemsComponent
    • Improve State-Machine logging
    • Sinexcel: ignore active power < 100 W
    • Reuse AllowedChargeDischargeHandler for Sinexcel-ESS
  • Evcs cluster SelfConsumption Patch 354e874c28236aad40e3acc1b9aa3193d2ebd994

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 4 years ago

OpenEMS - 2021.3.0

This is a bugfix and maintenance release only.

Bug Fixes and Other Changes

  • Dependency Updates #1375 #1372 #1338 250bad6c3838e295961bf16a47791f1aebdcdc0e
  • Fix modbus registers for BMW Battery implementation
  • Main developments are currently done for Battery-Protection algorithms: Pull-Request #1376

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 4 years ago

OpenEMS - 2021.2.0

Highlights

  • Add Zenodo Digital Object Identifier (DOI) for scientific referencing
    If you use OpenEMS in your scientific research, please use our Zenodo Digital Object Identifier (DOI) as reference: Cite via Zenodo
  • UI: Add Delayed Sell To Grid Widgets (#1369)
  • Lots of improvements on Batteries, Battery-Inverters and Generic-ESS (see below for details)

Bug Fixes and Other Changes

  • UI: Historiy Consumption Fix 7e9a9e12f62938269b4d8fab01dc2e431305e2cc: show correct energy values for other consumption
  • Fix controller behaviour in case of unavailable values (#1365)
    • This commit replaces orElse() method calls with getOrError().
      In case of unavailable (UNDEFINED) values, e.g. because an external meter is not available, this causes the Controller to throw an Exception instead of assuming the value is zero.
      An exception in a Controller sets the RunFailed Fault-channel.
      Specifically for control of energy storage systems: if no set-point is given, charge/dischare with zero Watt is set as default.
      Set ActiveConsumptionEnergy of the EVCS. (#1362)
  • Set ActiveConsumptionEnergy of the EVCS.
    • Adapted unit tests due to changes on the Dummy classes.
      Changed the energy channel acconrding to @StefanFeilmeier 's comments.
      Set the KEBA hardware maximimum current depending on the dip-switch settings and no longer on the "curr hw" value.
    • Adjust missing corrections.
      Set State to Not ready for charging if there is no propper connection to the EV and EVCS.
  • UI: History Bug Fixes + General Fixes (#1369)
    • history label time unit adjusts automatically
    • show alias for fixactivepower live widget + disable browser translate
    • remove unsed imports and sort
  • Remove default configurations for JSON/REST and Modbus/TCP Api (#1377, #1272). Thanks @denis-jasselette-jc for bringing that up
  • Lots of improvements and bug fixes for Batteries, Battery-Inverters and Generic-ESS:
    • Soltaro C: replace dummy characteristic (#1364)
    • Fix Generic ESS ErrorHandler: explicitely unset Fault-Channels (#1368)
    • KACO battery inverter: interprete standby mode as stopped state (#1373)
    • Soltaro Battery: fix temperature channels (#1374) change temperature values to signed
    • Battery: improve handling of allowed charge/discharge currents (#1367)
      • implements allowed charge/discharge logic for all soltaro systems including force charge/discharge mode
      • move CellCharacteristic interface to battery api
      • update docs folder
      • move setAllowedCurrents class to Battery API package, create settings for different behaviour
      • add read register for number of modules, add register for setting soc, add cell voltages to debuglog
      • integrate battery protection (allowed currents), adapt modbus protocol, checkstyle
    • Soltaro Single B: fix register address
    • ESS KACO 50: update handling of battery data (#1378)
    • Fix SunSpec: rounding issues with ScaleFactors (#1380)
      • The SunSpec protocol definition uses integer registers with separate scalefactor-definitions in separate registers. Due to the way OpenEMS is setting a register from a Write-Channel, the value was rounded to integer before the scalefactor was applied.
      • This pull request fixes the behaviour by using FloatWriteChannels instead of IntegerWriteChannels for SunSpec registers with scalefactor.
    • Battery-Inverter KACO: improve watchdog handling c9e9e0853b79bc2e98e3e484e9bf1d2e36cce9c1
      • increase watchdog timeout to 60 seconds
      • trigger the watchdog every 10 seconds
    • ESS Generic: improve handling of force charge/discharge corner cases 81dcb84c90c0679013545c4efdecbf1a583abe9b
  • Fix various typos (#1361)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2021.1.0

Highlights

  • Implement SOCOMEC Countis E44 (#1345)
  • Implement Janitza Meter UMG 511 (#1349)
  • Implement ESS Delayed Sell to Grid Controller (#1355)
  • Several improvements in the REST API (#1352), thanks @martingruening!
  • Debug-Log-Controller: allow wildcards for ignore components + non-condensed output (#1329)

Bug Fixes and Other Changes

  • FENECON Commercial 40: cleanup states (#1343)
  • Add compatibility with different BYD Battery-Box Commercial versions (#1353)
  • move readElementsOnce()-method to new "ModbusUtils" class (#1353)
  • update Sunspec and Socomec implementations to use new ModbusUtils (#1353)
  • Improvements on UI widget for "Hochlastzeitfenster" 7829a7f6b88737680d8a6d5fa1b633c4744c72c7
  • Battery Protection Algorithm for Soltaro.Single.B (#1329)
    • All Battery-Protocol Errors to Warnings to avoid GenericEss Stop
    • set "0" limit when no data is available
    • reduce retry attempts to avoid race condition with Generic-ESS
    • Disable ALARM_LEVEL_1_SOC_LOW Warning
  • Improvements on Generic-Ess (#1329)
    • Generic-Ess: apply ramp for allowed charge/discharge power
    • KACO battery inverter: do not set possibly negative charge/discharge current
    • ManagedSymmetricEss: avoid "Given LowLimit is higher than HighLimit" exception on rounding error
  • Internal framework improvements (#1329):
    • Improve ApiWorker logs
    • Improve Logging in StateMachines: Add AbstractContext that takes a parent Component and handles logging
  • Fix Fenecon Mini State-Machine
  • Improve ESS Sinexcel Battery-Handling
    • Apply startup ramp for Allowed Charge/Discharge Power
    • Fix handling of negative values for Current [A] limits; i.e. on force charge/discharge
    • ESS Sinexcel: identify state as "Automatic Standby-Mode"

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.26.0

Highlights

  • Implement the Hardy Barth "Salia" Electric Vehicle Charging Station (#1337)
  • Massive improvement for the Maschinenfabrik Reinhausen GRIDCON PCS implementation (#1294). Thanks @wgerbl
  • Energy Storage System: Fix-Active-Power-Controller: Refactor + add UI Widget (#1325)
  • SG-Ready HeatPump control: add History Wdiget for UI (#1311)
  • Timeslot Peak-Shaving ("Hochlastzeitfenster") control: add Live and History Widget for UI (#1326)

Bug Fixes and Other Changes

  • Various documentation improvements and fixes (#1330). Thanks @bantu for your contribution
  • Generic Energy Storage System: add the Modbus-Slave table. (#1328)
  • Fix more various source and comment typos (#1317, #1332). Thanks @luzpaz
  • Bump rrd4j from 3.7 to 3.8 in /cnf (#1331)
  • Add improvements for old FENECON energy storage systems + minor changes (#1324)
  • Scheduler: improve handling of errors (#1333)
  • KEBA Electric Vehicle Charging Station: added two state channels, to react on a missing energy meter and incompatible product-series. (#1334)
  • UI: History add metered consumption to total consumption chart (#1342)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.25.0

Highlights

  • Add UI widget for Smart-Grid-Ready Heatpump control (#1291)
    grafik

  • Implement FENECON Home Battery (#1268)

  • OpenEMS Component test framework: validate the implemented Channel-IDs (#1321)

Bug Fixes and Other Changes

  • Improvements to RRD4j (#1314)
    • Add 'resolution' to RRD4j fetch request
    • Fix possible miss of a Cycle in RecordWorker
  • Improvements to ComponentManager workers (#1312)
    • DefaultConfigurationWorker: add logging on action
    • OsgiValidateWorker: search for duplicated Component-IDs in all configurations, not only enabled ones
    • EdgeConfig: allow setting ".target" properties
  • GoodWe fixes (#1313)
    • fix identification of GoodWe battery inverter if there was no modbus connection initially
    • fix nullpointerexception due to late setting of 'this.config'
    • Name property "modbusUnitId" according to standard naming convention
  • Fix various source typos (#1315)
  • OsgiValidateWorker: do not complain if defective components are disabled (#1316)
  • UI: fix of ion-toggle (#1320)
  • Update dependencies #1318, c8dcccba8a1895496b27d4f7577d439a8f9993b1

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.24.0

The OpenEMS Conference 2020 was held this week. The videos will soon be available on https://openems.io/

Highlights

  • Implement Asymmetric Active Power Voltage Characteristic and Symmetric Reactive Power Voltage Characteristic Controllers (#1258) Thanks @huseyinsaht and @venu-sagar
    • These Controllers actively help to support grid stability with an energy storage system. Tested in research projects like EASY-RES and actual customer projects with European grid operators
    • This pull-request also adds a generic PolyLine implementation
  • Improve GoodWe ET + BT battery inverters implementation (#1201) Thanks @venu-sagar
    • This pull-request brings full control for the GoodWe ET and BT battery inverters
    • ATTENTION: Renaming bundle to GoodWe instead of GoodWe.ET; this will break existing configurations!
  • Implement Controller for a SG-Ready Heat Pump (#1289) Thanks @sebastianasen
    • Controls a heat pump that implements the SG-Ready standard via two Relay contacts, depending on surplus power and battery state-of-charge.
  • Improve Debug-Log-Controller 47cbae5f92aadc41016ac7e300778013ed9c4178
    • This adds useful features to the Debug-Log-Controller for developers and technical users
    • add configuration options:
      • additionalChannels: add additional Channels to the log
      • ignoreComponents: ignore the output of certain Components
  • Implement Virtual Subtract Meter (#1290)
    • _This adds a virtual meter. Example use-case: create a virtual Grid-Meter from Production-Meter, Consumption-Meter and Energy Storage System (ESS):
      • by definition Consumption is defined as `Consumption = ESS + Grid + Production (AC)
      • or: `Grid = Consumption - ESS - Production (AC)
      • this can be achieved by configuring the Consumption-Meter as Minuend and Production-Meter and ESS as Subtrahends.
  • Add support for Socomec e27 e28 meters (#1303) Thanks @greemo
  • Further development and rework of the EVCS (Electric Vehicle Charging Station) components (#1263) Thanks @sebastianasen

Bug Fixes and Other Changes

  • Socomec: fix detection of threephase meter db61532cf29f966c3a590576a20933c1c3653fd1
  • OsgiValidateWorker: Delay announcement of defective Components; this hides non-critical errors due to time delay on activate 32ca90ab4ab005cbd02ba329149cd5ba0451ef62
  • Core.Host: persist configuration of network and USB devices in EdgeConfig (#1292)
  • Avoid resolve errors in EdgeApp and BackendApp.bndrun (#1297), Fix #1296
    • Let Travis fail if resolving changes the existing bndrun files
    • Always update EdgeApp + BackendApp bndrun files in prepare-commit script
    • Fix existing resolve error in BackendApp.bndrun
  • FENECON DESS: fix calculation of State-of-Charge value c3cb0c185fe6897f7051b341b8568385df4c01e9
  • PredictiveDelayCharge-Controller: fix class variables bug (#1299)
  • Improve WAGO Fieldbus implementation (#1301)
  • DebugLog-Controller: sort Components also by Component-ID number
    • Before it would sort: _sum[foo:bar|EssSoc:50 %] dummy1[def:uvw] dummy10[jkl:opq] dummy2[ghi:rst]
    • Now it sorts: _sum[foo:bar|EssSoc:50 %] dummy1[def:uvw] dummy2[ghi:rst] dummy10[jkl:opq]
  • Add invert configuration for Schneider smartlink (#1302) Thanks @greemo
  • Fix typos #1288 #1287 #1307 #1308 Thanks @luzpaz

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.23.0

Highlights

  • Implement SMA Sunny Home Manager 2.0 Meter; thanks @martingruening (#1275) (#1280)
  • FENECON Mini Energy Storage System: add write-mode for remote-control (#1266)
    • Thanks to the power of Open-Source, this adds new exciting (after-market) possibilites for a system, that is already a couple of years old
    • add write-mode: allows remote control of the system as ManagedSymmetricEss
    • move "TheCommunicationWireToAmmeterBreak" to Mini Grid-Meter
    • calculate energy from power values for Ess, Grid-Meter and PV-Meter
    • implement everything in State-Machines with proper documentation
    • add JUnit tests
    • plus:
      • Improve visualization of Enums in OpenEMS test framework
      • SymmetricEss-Api: fix GridMode javadoc

Bug Fixes and Other Changes

  • Add predefined workingsets for Eclipse IDE

  • see https://bnd.bndtools.org/instructions/workingset.html

  • UI: add french translation; thanks @denis-jidovtseff-jc (#1265)

  • Ess-Power class: add distribution of ReactivePower (#1274)

  • Add JUnit tests for Modbus protocol definitions (#1278)

    • defineModbusProtocol() now throws an OpenemsException if addresses are wrong
    • added simple JUnit tests on all modbus devices to test the modbus protocol definitions
    • modified all activate() calls in AbstractOpenemsModbusComponent to return on configuration update
    • Fix modbus protocols in
      • Soltaro Version A SingleRack
      • Sinexcel ESS
      • and some more
    • Appy autoformat on touched files
    • Update OSGi templates for modbus devices
  • Simulator Datasources: improve handling of values (#1282)

    • CSV heading can now be full Channel-Address ("Component-ID/Channel-ID") or only the Channel-ID
  • RRD4j: Implement QueryHistoryEnergyPerPeriod; thanks @ahummelsberger (#1269)

  • Fix various typos in the code; thanks @luzpaz #1260 #1277 #1276 #1270 #1281 #1284 #1285)

  • Fix UI widgets parsing of with number inputs #1256

  • Fix UI History Charts (#1273)

    • Hotfix for kWh-Value Chart to show regular data if no kWh data is available
  • Fix mindischargeperiod .project file; thanks @denis-jasselette-jc (#1271)

  • Fix ComponentManager CreateComponentConfigRequest handling of empty arrays 881048fe6f61acf3ab1b2501cbc719868a7eb215

  • Fix Excel Export: Consumption values and date-string for one day (#1283)

  • Fix KACO 92 battery inverter + charge/discharge power for EssCluster; thanks @pooran-c (#1286)

    • Add special handling for KACO 92 battery inverter:
      • has no display and as such SunSpec-Model 64203 is not available
      • allow disabling of the Watchdog function
    • Also add AllowedCharge/-Discharge power to EssCluster
  • KACO50: improve watchdog handling (#1217)

  • Update UI dependencies ecd2bafefe12da643e9a45e4bda2c4985d1438a7

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.22.0

Highlights

  • UI: add kWh as bar chart for energymonitor in history (#1250)

grafik

  • Fixes:

    • remove deprecated npm packages
    • update to latest npm packages
    • adjust live energymonitor to be shown correctly
    • replace ngOnInit with ionViewWillEnter in components where it is needed
      (ngOnInit fires only once with ion-router-outlet, independently of visiting the component again)
  • Minor Features:

    • set language on startup dependend of browser language
    • remove redundancy in history energymonitor component
    • better visibility for history energymonitor components legend
    • show month when a month is picked via 'other period' in history component
    • add real time detection that determines if user uses a device with smartphone resolution (<577px width)
    • use whole width for history energymonitor component if smartphone resolution is used
  • Main Feature:

    • if kWh are enabled via service component
    • add bar chart for kWh values in history energymonitor
    • bar chart shows energy per day including direct consumption
    • on smartphone devices: kWh bar chart is enabled when period is > 1 day
    • on non smartphone devices: kWh bar chart is enabled when period is > 7 days
    • production and consumption values are opt in via legend
    • realtime adjustment of chart when resolution changes from/to smartphone resolution
    • add month to pickdate component

Bug Fixes and Other Changes

  • Modbus/TCP and REST-Apis: log active write requests dfab9ef1fd583797f3213b7c43821780fcc28ff2
    • Requests are logged in the new ApiWorker Channel as String of the form "ess0/SetActivePowerLessOrEquals:2000|ess0/SetActivePowerGreaterOrEquals:-2000"
  • Generic ESS: improve calculation of allowed power(#1254)
    • improve calculation of allowed charge/discharge power based on voltage
    • add static constraints to block power, when ESS is not started
  • Fix InfluxDB bundle and EdgeConfigWorker (possible NullPointerException) 768adc6df76dd2b3cb0e72d185fe1af3e89d26a8
  • Fix XLSX report for Modbus/TCP Api 8ae8a579b350b934d9c167dbe043c22ac579d587
  • UI: translated login page (#1257) - thanks @denis-jasselette-jc for your first contribution!
  • GenericManagedSymmetricEss: add Modbus table for Modbus/TCP Api (#1262)
    • Added the modbus slave table in generic Ess
    • Changed the chargeEnergy and DichargeEnergy channels in battery inverter
  • OpenemsComponent: add helpful error message on missing 'State' Channel (#1264)
  • Update dependencies e4d4f1010cba3ac304ffad7e3abb09efe5ddb598 ac67cc1328971e6c930a883267601951a2f013ba a527020b0a50cfa12dab9a77fbd144f0489de9da 71586bc522f4e7d2a0e2ca581b4ffaf14fb3d655 3746ce6874265ef5c86bc28431ac7c483cbe1066

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.21.0

Highlights

  • BMW Batteries: implement Start-Stop feature (#1240)
  • BYD Battery-Box Commercial: implement Start-Stop feature (#1222)
  • REFU88k battery inverter: add channels for charge/discharge energy 493e1bfc52ac55e1c959c98357962360a469046d
  • KACO 50/92 battery inverter: add channels for charge/discharge energy 21cc1304237a4f1794f4fc2591a3891ee97f8c31
  • KEBA Wallbox: add state channels for all possible mistakes in the Dip-Switch settings (#1235)
  • ESS Delayed Sell-To-Grid Controller: new implementation (#1239, #1246)
    • this new Controller controls an energy storage system so, that it delays the sell-to-grid power e.g. of a photovoltaics system.
    • It charges the battery, when sell-to-grid power exceeds the configured "Sell-To-Grid power limit" and discharges when sell-to-grid power is falling below "Continuous Sell-To-Grid power".
  • Continuous Integration: enable JUnit tests in Travis CI (#1242)
    • this enables automated unit tests on each commit to the OpenEMS repository
    • Fix all existing JUnit tests with latest version of OpenEMS Unit test Framework
    • Use ComponentManager for mocked Clock everywhere
    • Add unit tests to bundle templates
    • and also: apply Checkstyle & fix deprecated warnings on build
  • UI: add widget to show digital input states (#1195)

Bug Fixes and Other Changes

  • UI:
    • add missing subscribe for Grid Mode (#1245)
    • improve responsive design for history a6902661444e89d4ee94d2bc2e3edf7864b235b4
    • update dependencies; update names to "OpenEMS Edge"; always allow kWh values b46743ce97270c0895ba997bd4184a0a8983939b
  • Discovergy Meter: avoid error on non-available values (#1230)
  • Janitza UMG604 meter: fix active/reactive power sum 220b7d369dede73ada617c84934b4f3a3151439b
  • Ess Power Solver: fix possible NullPointerException e4f807a3722bd4e9b804d1d86468b3a1ae0a9a73
  • Fix OSGi:
    • "Constructor with 0 arguments not found" error + apply code improvements 9562c973104f8576a92d2e60a787eb975f5a981d
    • constructors must be public 9ef244d34825a52d8cac246b7d659e9833013c3f
  • FixedOrderScheduler: fix JUnit test b76f743fcc80deb9139427ba5e9433af24a51420
  • EssSinexcel:
    • apply coding style; cleanup state-channels e6fbe9c3fbe0dad18a5ee63b18d3a4f88df42a45
    • fix typecasting error 2344023708fab47ee95fed970e37f163c395a86c

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.20.0

Highlights

  • Enable Gitpod cloud IDE (#1227)

    • Original comment by Gitpod:
      This commit implements a fully-automated development setup using Gitpod.io, an online IDE for GitHub and GitLab that enables Dev-Environments-As-Code. This makes it easy for anyone to get a ready-to-code workspace for any branch, issue or pull request almost instantly with a single click.
    • The Gitpod workspace automatically builds and runs instances of OpenEMS Edge, Backend and UI. They are preconfigured to simulate an energy system with two photovoltaics systems, an energy storage system, simulated consumption, self-consumption optimization and some controllers that act on simulated I/Os.
    • To open a Gitpod workspace, follow the links in the main README.MD file or directly https://gitpod.io/#https://github.com/OpenEMS/openems/tree/master. To open any other branch in Gitpod adjust the link accordingly, like https://gitpod.io/#https://github.com/OpenEMS/openems/tree/feature/XYZ
  • Massive performance improvements on Energy Storage Systems Power-Solver (#1232)

    • The Ess Power Component is responsible for distributing power requirements to one or more energy storage systems, while considering arbitrary constraints and optimizing for certain targets. These updates improve the performance of this solver by more than 400 % on large systems
    • SymmetricLimitActivePower: optionally disable validation of Constraints to improve performance fa6bafc995ef1e99784508556a23e8e4ed89a203
    • If Symmetric-Mode is activated in the config (=default), all L1, L2 and L3 coefficients are dropped now
    • Improve perfomance of "ReduceNumberOfUsedInverters" optimizer by applying an algorithm similar to binary tree search
    • Restructure file hierarchy. Reduce file lengths and use functional interfaces or static methods were appropriate
    • Improve JUnit test coverage and use the OpenEMS Unit-Test framework where possible

Bug Fixes and Other Changes

  • Update to Angular 10 and more UI updates (#1229)

    • Updated Node Packages
    • Updated to Angular 10
    • Use of Ion-Router-Outlet
    • Use of NGX-Spinner
    • Show single energy values in history view (like in live view)
    • Set TotalChart in history consumption chart view if there are more than one evcs'
    • Different Colors for EVCS in total consumption chart
  • Improve OSGi-Validate-Worker

    • This worker validates that all configured Components are activated properly. If not, it can announce two error states:
    • FAULT: Configuration has duplicated Component-IDs
      • Component-IDs have to be unique per definition.
      • Sets Channel "_componentManager/DuplicatedComponentId"
      • Also prints "Duplicated:ess0,meter0" in the debug log
    • WARNING: A configured OpenEMS Component was not activated
      • Sets Channel "_componentManager/ConfigNotActivated"
      • Can have multiple reasons (see "org.osgi.service.component.runtime.dto.ComponentConfigurationDTO.state")
      • Also prints in the debug log
        • Unsatisifed Reference: "Defective:ess0[Unsatisfied reference for battery,batteryInverter]"
        • Missing required configuration: "Defective:ess0[Missing required configuration]"
        • Failed activation: "Defective:ess0[Failed activation ]"
        • Missing Bundle: "Defective:rrd4j0[Missing Bundle0]"
  • Add JSON-RPC Request for Energy-Per-Period (#1218): Define QueryHistoricTimeseriesEnergyPerPeriodRequest and Implement it for InfluxDB

    • This new timeseries request will be used for an upcoming improvement on UI historic charts for energy
  • Fix QueryHistoricEnergyPerPeriod for Simulator-App (#1218)

  • Fix Circular reference on OpenEMS startup: Downgrade Apache Felix SCR to 2.1.20 a60d9f255bb68178ac9ce878f581eed8bb97d881

    • The error is "Circular reference detected trying to get service" followed by a "java.lang.Exception: stack trace". Per definition the Circular references in OpenEMS should be fine the way they are, as they are always "optional" from one side. No clue, why this is now suddenly happening in SCR.
  • Improve Checkstyle check for Javadocs (#1232)

  • Add/rename generic functional interfaces that throw exceptions: ThrowingBiConsumer, ThrowingBiFunction, ThrowingConsumer, ThrowingFunction, ThrowingRunnable, ThrowingSupplier (#1232)

  • Fix Core.Cycle trigger config update on modified (#1232)

  • Core.Cycle Worker: measure minimally required Cycle-Time in "_core/MeasuredCycleTime" Channel. (#1232)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.19.0

Highlights

  • Improvements to OpenEMS Simulator-App #1151
    • NOTE: The Simulator-App is a very specific component that needs to be handled with care. It provides a full simulation environment to run an OpenEMS Edge instance in simulated realtime environment. After you ran a Simulation, you will receive the simulation result as a JSON. Also the simulation result can be viewed in OpenEMS UI.
    • Breaking changes in JSONRPC Request for simulation
    • Implement Timedata service: it can now provide the simulation results to OpenEMS UI
    • See readme at: https://github.com/OpenEMS/openems/tree/develop/io.openems.edge.simulator
  • Migrate Refu88K from ESS to BatteryInverter (#1216)
    • The implemenation for REFU 88k Battery-Inverter now uses the recently added "BatteryInverter" Nature in combination with the "GenericEss" implementation.
    • https://www.refu.com/speicherloesungen/

Bug Fixes and Other Changes

  • Fix UI Energy Request for more than one day cee02fa945029440e86006f4ceb7cab41556e50c
  • B-Control EM300 meter #1176 9a2c8cd63c4ae1ed50143d6db5fd5bd92245cb04
    • refactoring and application of latest coding guidelines
    • fix scale-factor for energy channels and invert
  • Fix Energy Storage Systems: set capacity values from battery (#1196)
  • Fix Property-Channels for Enum configuration properties 174b78ab11664cc7449c672bdfbeac453d660ea4
    • Enums are now converted to OptionsEnum, so that they can be properly used inside Property-Channels.
  • Fix Commercial40: trigger AllowedCharge/DischargePower calculation at onUpdate event c06720a093f4a04e1de63375715bc4b5f8d6a9e5
  • PV-Inverter Sell-To-Grid-Limit: update documentation ef99573d198b5af52b05304ae9acfa3e3240a749
  • Predictive-Delay-Charge: Change LocalDateTime to ZonedDateTime to avoid time zone problems in prediction service. (#1214)
  • Soltaro Cluster C: change modbus task priority (#1215)
  • Update dependencies #1223 3be955c8fa5b22762ebf83dbdb8aa20fbac815c3

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.18.0

Highlights

  • UI: Improve Excel export (#1194), 98c7b61e36d911b54cb413cb636530bfb7b13ed7, aa7e5232e3e7e95a7cfb953dfb27c3ae71a34681
    • grafik
  • UI: Show detailed field description for component install and update 7a4e87a18b60ffb7df263eec3e79389792ca2256
    • grafik
  • Balancing Schedule Controller (#1207): this refactoring of the existing "Balancing Schedule Controller" comes with
  • Soltaro Battery Rack Version B: Add Start/Stop Feature (#1202)
  • UI: Optimize Performance and Subscribes (#1211)

Bug Fixes and Other Changes

  • Fix Generic State-Machine: Behaviour with multiple instances of same Component (#1203)
    • The former implementation of State-Machines, using enums with StateHandlers being defined directly at construction time, lead to static StateHandlers that were shared by all instances of the same Component. This could cause unpredictable behaviour.
    • This commit fixes this by providing a local instance of each StateHandler for each instance of a Component.
  • Update dependencies: rrd4j (#1206), postgresql (#1205, #1210), moshi (#1213), fastexcel (#1212), pax-logging (#1204), UI dependencies and gradle 20612279b0a534b5fc1b5a36c81fb8f65da4e991
  • Fix UI 'null' alias 5573d9b54edce3a5fa0afe21d59bd69dda5ada7b
    • ignore 'null' values for install component
    • before this fix, if no 'alias' was provided in the component install dialog, it would create an alias with the string "null".
  • Fix PID Filter: increase limit factor for error sum from 2 to 10.
    • On very low P, I or D factors, the error sum can become quite big before the target is reached. We still need to limit it at some point to avoid it becoming too much. Tests showed that a factor of 10 is a good compromise.

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.17.0

Highlights

  • Improvements on energy values (#1187)
    • Adjust driver components for GoodWe, Sinexcel, Carlo Gavazzi, KACO blueplanet gridsave, Janitza UMG96RME and all the Simulators
    • Improve handling throughout the stack in OpenEMS Edge and OpenEMS UI
  • Implement BMW battery (#1199)
    • as used in the award winning FENECON Industrial energy storage platform
  • Implement historic energy with local timeseries database RRD4J (#1198)
  • Implement SOCOMEC Countis E23 meter 60519cca40f896f96e4ee9c5a8d98099ec3e80de

Bug Fixes and Other Changes

  • Fix BackendApp.bndrun: Update & resolve 7aa7be700cf3db38dc69573c3aeb86ff0c8c0986
  • Fix Backend-UI: Show 'no edges' warning only after connection was fully established c18f6dd4fb610ca5155104067431a4b5f56951d3
  • Fix AbstractReadChannel: detection of changed values. This avoids unnecessary calls to the onChangeCallbacks 2f588261939b1c98ce94e69559c270324b0761a2
  • Fix StartStoppable: calls to start() and stop() fab676d9f7b1c55edf625bcfcf84ccbc64f24d8b
  • Fix behaviour for optional configuration parameters f032667a6509e0e8ff603c0c7dbae04c5b4e4d83
    • An optional configuration parameter is a parameter that is defined as 'required = false' within the @AttributeDefinition in Config.java.
      Before the behaviour for optional 'int' parameters used to be, that they would default to '0' if they were not provided. Now - maybe caused by an update to Apache Felix Configuration Admin - they default to an empty String which causes a NumberFormatException.
  • Fix Controller.Api.Websocket: subscribe topic for event handler b019ee5f4cedfa8c7355348ace3e8379c68a0878
    • Fixes the error on startup: WARN [org.apache.felix.eventadmin ] EventAdmin: Invalid EVENT_TOPICS : Missing - Ignoring ServiceReference
  • Fix Soltaro.Single.VersionA: implement SoltaroBattery interface 3ed6dac2a4c608d8eb751e634dd8e4ffab3c9430
  • Fix RRD4j: fix last timestamp check
  • Fix Generic.Ess: mixed up handlers for StopBatteryInverter and StopBattery cc8d30b0f176795c6a42ee2dfb5c49d2be95a120
  • Fix SDM630 meter: modbus registers 49887502981d8dbc7aa824916e23c3f8cff921ed
  • Event Admin: disable timeout 0ffd25e46fd435adeabab546165aa4813cc08982
  • Antora docs: update versions for dependencies 3497e23c174e1ad8ac38c6930b421fa4f3b1e09d

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 4 years ago

OpenEMS - 2020.16.0

Common

  • Update UI and Java dependencies #1184 #1183 #1182 #1181
  • Backport improvements from FEMS 20d60e44769f1facc56e9806df5cc3abf5d6666a

Edge

  • Improve RRD4j implementation (#1185):
    • fix local timezone handling, use rrd4j db pool, always close() RrdDb files; otherwise the pool fills up and no more files can be opened and apply coding best practices and Checkstyle
    • avoid and silently ignore error "Bad sample time" 5e5ebaabe3397fbaf718393a421fe44b37f63bed
  • Fix inverse logic in Ess Sell-To-Grid Limit Controller aa1ebb175a113bbc5feda82829a04617089dcc50
  • Improve log message on activate/deactivate/modify of an OpenemsComponent b9dcaf0cfcd9dd4dafb241f76fddf40795db1c46
  • OneWire: avoid blocking initialization of components 772d85ca926f19bd784455ea5c4b7c73ec1adcdb
    • activate() of OneWire components was waiting for synchronized access to the tasks list
  • Controller.Api.Rest: apply AcceptRateLimit and ConnectionLimit to avoid strain on the system 3e398a5d70ac5c6ca3ac7c1df4c29ebe677d6b2b

UI

  • Update Widget for Controller.CHP.SoC: allow 0 to 100 % thresholds (#1189)
  • add warning if there is no permission no any Edges via Backend 61ac56bd6347c28694a3154697aad3d71d9b3164
  • add Renault ZOE button to evcs widget (#1172)
    • enables special handling required for charging of Renault ZOE

Backend

  • Fix cookie HTTP header field name being case sensitive (#1190) Thanks @fgarlin for your first contribution!

Future

A lot of big new features did not yet make it into this release, but Pull-Requests are one the way:

  • Major rewrite of the Excel Export from UI #1194 by @pooran-c
  • Support for Siemens Simatic IOT2000 #1188 by @ahummelsberger
  • Proper calculation and handling of kWh energy values #1187 by @sfeilmeier
  • Resending of historic data to backend after an interruption of the connection #1177 by @venu-sagar
  • Direct Login on OpenEMS Backend via UI #1013 by @fabianfnc & @sfeilmeier

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.15.0

Common

Edge

  • Implement Generic JsonLogic Controller (#1148)
    • The JsonLogic-Controller is a very generic Controller that allows the definition of a complex logic as a configuration at runtime, e.g. via Apache Felix Web Console. It is based on the JsonLogic specification (http://jsonlogic.com[jsonlogic.com]).

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.14.0

Common

  • Update UI and Java dependencies

Edge

  • Implement Shelly Plug S and Shelly 2.5 WiFi Switches (#1156)
  • Controller IO Heating-Element: apply default Level in manual mode c6bab9b8a6a8b7b817745428c17fbfd5a5ee0b3f
    • Migrate JUnit tests to new JUnit test framework
    • Add JUnit tests for manual mode
  • Work on Energy Storage System power distribution optimizer (#1167)
    • Allow modification of configuration without reloading of component
    • Add limit on "Integral" part of PID filter c143b050c903445ff3a4277dd56607345e067812
    • Add option to disable PID filter db467ea7a153331126b0773efd9c8fb28a8e4cbc
  • FENECON Pro 9-12 fix MaxApparentPower (#1167)
  • Soltaro Single B: add missing Api Channels (#1164)
    • write necessary component channels to api channels, fix isUndefined() for state machine
    • Avoid 'SuppressWarnings'
  • Do not handle events if component is disabled. ab02d4688251c6ef1548ef1068ad33981a80375f
    • Add missing if-clause to break-early the event handling of multiple components.

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.13.0

Edge

  • Implement SMA Sunny Tripower PV Inverter (#1154)

  • Implement OCPP-Server & more for electric vehicle charging (#1142) Thanks @sebastianasen - this is huge!

    • Uses ChargeTimeEU OCPP server implementation: https://github.com/ChargeTimeEU/Java-OCA-OCPP
    • Start implementation of electric vehicle charging stations by
      • ABL
      • IES Keywatt
    • Numerous improvements on electric vehicle charging algorithms
  • Update Channel methods (#1165).

    • Update methods to access Channels as discussed in #1046 and started in #1099. This avoids calls to setNextValue() and setNextWriteValue() and should make the framework much more understandable and lower the learning curve.

    • Each Read-Channel of a Nature Interface gets following methods: (example for a Channel NAME of type Integer)

      • IntegerReadChannel getNameChannel()
      • Integer getName()
      • _setName(Integer value)
      • _setName(int value)
    • Write-Channels also get a method

      • setName(Integer value) that internally calls the setNextWriteValue() method
  • Fix for Soltaro Cluster Version B 395e5635d356a48d41445e1bbeda87146769fb39

  • Fix for Socomec Diris A14 0a63657981dd854aa89054d9e531a8b764c8c56e

  • Update for Carlo Gavazzi documentation f67c2c42c36457985ab19c7f927d30f7bdbe824d

  • Update Java dependencies #1149, #1166, #1168, #1170, #1171

UI

  • UI: add status component for each edge (#1162)
    • with right restrictions (at least admin)
  • UI: add feature to rename components in 'Anlagenprofil' (#1163)
    • UI: rename components in 'Anlagenprofil' with restriction (at least: owner)
  • Update UI dependencies b72256e0190b1d778d28def7c3f7743f61e53141

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.12.0

Edge

  • Add generic implementation for State-Machines (#1099)
  • New OpenEMS Nature "BatteryInverter" (ManagedSymmetricBatteryInverter, SymmetricBatteryInverter) (#1099)
  • Implement Generic ManagedSymmetricEss (#1099)
    • This builds an energy storage system as a combination of a "Battery" with a "Battery-Inverter"
  • New feature "Start-Stop" (#1099)
    • Implementing the 'StartStoppable' interface marks a device or service that can be started or stopped
  • Add JUnit Test-Framework for all kinds of OpenemsComponents (#1099)
  • Generic implementation of SOCOMEC meters (#1157, 25cfcd3e344cbaf009c71a9004108b3e355243ac)
    • Just configure Meter.Socomec.Singlephase or Meter.Socomec.Threephase. The actual type and modbus protocol of the Socomec meter is identified automatically.
    • Implemented singlephase meters:
      • Socomec Countis E14
    • Implemented threephase meters:
      • Socomec Countis E24
      • Socomec Diris A10
      • Socomec Diris A14
      • Socomec Diris B30
  • Apply Getters and Setters for Nature-Channels: see https://github.com/OpenEMS/openems/issues/1046#issuecomment-624875470
  • Refactoring of "Battery" interface (#1099)
  • Improvements for FENECON Mini implementation 32b7d57a5f7eb9f3b2326bca65bb224364524e3e, 0921cf11b029331dff4dd3586804888a81f0b9c2
  • GoodWe ES: Add configuration for Capacity #1152
  • DcPredictiveDelayCharge-Controller: allow multiple chargers (#1153)

UI

  • Show Metered Consumption + FixDigitalOutput History Charts (#1155)
    • add metered consumption as history chart
    • add chart for fixdigitaloutput component
  • Update dependencies aed3fc02dc446c2e5e516081ee771f3daa52ebbb

Backend

  • JSONRPC: enable subscribe to Channels of multiple Edges f99ebcdb057881c2958ce18a51778b295ce7c712

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.11.0

Common

Edge

  • WAGO: compatibility with newer fieldbus couplers + all kinds of digital output modules (#1136)
    • Tries to read old 'ea-config.xml' and new 'io_config.xml'
    • Dynamically reads the number of output channels from xml file for WAGO 750 5xx-modules
  • Meter Carlo Gavazzi EM300: add invert config setting (#1140)
  • Improvements to GoodWe ET implementation (#1141)
    • Added the max apparent power reading from ModBus register. and also few code refactoring.

UI

  • Collected UI improvements (#1143)
    • add possibility to pick level when heatingelement is set to MANUAL_ON in heatingelement advanced widget
    • add help button which links to openems.io docs for chpsoc, evcs, singlethreshold, heatingelement and fixdigitaloutput
    • add metered consumption to consumption flat and advanced widget
    • remove workmode kwh from heatingelement advanced widget

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.10.0

Edge

  • Implement BYD Battery-Box Commercial C130 #1120, thanks @huseyinsaht
  • Implement Janitza UMG 604 meter (#1116), thanks @pooran-c
  • Add _sum/EssDischargePower Channel 286ab7323fa398784de68435564c9fba1fba9965
    • For AC coupled energy storage systems this is the same as EssActivePower; for DC coupled or hybrid ESS this is the EssActivePower minus ProductionDcActualPower, i.e. the power that is actually charged to or discharged from the battery.
  • IO Heating-Element Controller:
    • use EssDischargePower-Channel to fix logic on DC/hybrid ESS d678a93635d22b657de31ae212b59c7b10fe9f13
    • drop kWh, some refactoring, add tests 649777a6b1c507a5d779f1969d4d481aef537f1c
  • Add Modbus-Slave definition for ESS Sinexcel #1132
  • Fix: InfluxDB data collection for WRITE_ONLY Channels 5a871139c502c22d38aeda9bf9af2f074287213d
  • Fix: GoodWe apply power setpoints 0a5d741c7c3b19effadc4348b22dfdc6ca5a0d3f
  • Fix: Discovergy implementation with latest API for Production meters #1130
  • Fix: Pro 9-12 read-write Channel-IDs 28b2bf09f6a58fd28874d2788d116f34b5753aa6
  • Fix: Modbus-Api Controller access on Write-Only registers + improve Javadoc + apply Checkstyle

UI

  • update pickdate period + minor changes (#1124)
    • when next day or next week is reached pickdate will automatically switch to the next day/week
    • no changes to custom dates made
    • resubscribe when websocket is reestablished
  • Update dependencies

Common

  • Update Java dependencies. c9b8e52fb0c4f404fb594eb0de8d59d4d54801cc, #1134, #1131

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 5 years ago

OpenEMS - 2020.9.0

Common

  • Fix severe bug caused by an old version of PAX Logging. See #1104 and https://community.openems.io/t/cannot-activate-template-controller/198/10
  • Update dependencies, add explicit version dependencies for core OSGi libraries
    • Apache Felix Web Console 65a6ef91b43602ce6ab225f2fcdc40828d447263
    • Update Apache Felix ConfigAdmin et al. 8aa864f154aec34a237fac5c1ead6046ada71ff4, 1a4185d3cb690113033f5e9f783a5c8d07a524fe
    • Further Java dependencies 5a5915dfa78bf1a51648bd95759086b41a1e7c47
    • UI dependencies 5a381ddf85148698d68fafb5603d0a28c94ecf06
  • Improve Checkstyle to require 'this' #1101

Edge

  • Improve logging outputs. 6b7ac51462bc4a2dadce2230bcd4009c2152a224, ceab6ddf8a3696c81d887fa191231e7a8478836e, 32d2df52537fffe3e6f6f9eb8e972afcf2c5c499
  • Fixes for IO Heating-Element Controller #1106, 72bc2ea19099bd9e6588bcf7510ad39063e0817f, 03f2fd5445dd5f4cface94647b75fb9e147ed0a8
  • Fix possible NullPointerException in OutOfMemoryHeapDumpWorker 162cab133bc6fbcc4d82e8a3fef2eedd8be52a08
  • Update "_Property"-Channels on @Modified-event 18f4670bcbede2e8c72eb93a669276d6b25db9f5
  • Fix Soltaro Single-Rack Version B d89c5ce611ceffa4382f73db1916146081f06d87, 3b6279d0b71dd330a02cdf535d83716e9cf7c950
  • Implement Soltaro Rack Version C (#1101)
  • Add Level::isAtLeast(Level) method #1101
  • Implement REFUstore 88k Battery Inverter (#1115) Thanks @WolfgangMiethaner

UI

  • Fix showing widget twice a9a37f4c41b56494339e36d580d4ee598ccc37cf
  • Add check if nature ist defined in getFactoriesByNature() (#1113). Thanks @ahummelsberger
  • Add charts and other small changes (#1107)
    • change of phase 1 color to orange (red is too much in use for charge values)
    • small code fixes
    • add chpsoc history chart
    • add heating element chart
    • adjustments on heating element widget
    • automatic value update for history widgets and charts

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 5 years ago

OpenEMS - 2020.8.0

Common

  • Housekeeping #1095 00ef694c7698c06453e4921a178aad6f84d1852e
  • Update Java and NPM dependencies fd94a644adfc2480dd18e4427669c2574d04c553 75d218bf5dfaaada0d00c32ee0fc6745db296c0e

Edge

  • IO Heating Element Controller (#794): Controls a three-phase heating element via Relays, according to grid active power
    grafik

  • Add Port configuration to Modbus/TCP bridge eefcb965c6308885ae97f9b57fd639e7a946af5f

  • Improvements for FENECON Commercial 40, Pro 9-12 and Mini systems 106f04a6df4611f8318c33f1ea978c4e53ecf210 46f52862389b8ed948abb21eea30823cc1e23fa9

UI

  • Combined update #1100
  • re-adjust side menu
  • exchange library of pickdatecomponent
  • add current day highlighten + popup animation to pickdatecomponent
  • second rate widget class error fix
  • full angular 9 update
  • singlethreshold history widget: exchanged y-axis of chart
  • singlethreshold history chart: correct use of yAxis if there are only % values
  • fixIO prevent sending updatecomponentconfig on init of advanced widget
  • add charge/discharge to peakshaving history widgets

Backend

  • Improvements on Metadata.Odoo 3d9ceecc6118246b319ba5fe747e301692092a7c dfb1f9656363b6e00e1c1f6a2dfc861550308a4c

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 5 years ago

OpenEMS - 2020.7.0

Edge

  • Add Peak-Shaving within timeslot ("Hochlastzeitfenster") Controller (#1041) Thanks @pooran-c
  • Add Kunbus RevolutionPi DigitalIO Board driver (#1082) Thanks @clehne
  • Add Ess Minimum Discharge Period Controller (#1091) Thanks @sebastianasen
  • OpenEMS Edge Simulator-App (#1087)
    • This "Simulator App" for OpenEMS Edge provides a simulated real-time environment. The main purpose is to be able to run a long period of input data on the OpenEMS stack and execute control algorithms just like they were executed in real-time, but with included 'fast-forward'.
    • For the moment it is possible e.g. to simulate around 3600 cycles (= about one hour of input data) in about 60 seconds.
    • The Simulator will also be useful to do performance profiling of the whole OpenEMS Stack.
    • The Simulator App itself works, but not every planned function is fully implemented yet. Those ToDos are noted in the Pull-Request #1087 and the original branch is kept open for now.
    • Togehter with the Simulator App some more improvements and bug fixes were made in this Pull Request:
      • Move global Cycle-Time to the "Core.Cycle" Component.
      • Before there was an individual Cycle-Time per Scheduler, which proved to be not necessary and over-complicated things
      • Global OpenEMS Cycle-Time can now adjusted in the "Core Cycle" Component in Apache Felix and OpenEMS UI
      • Create and update Singleton Component Configurations via OpenEMS UI
      • Fix Backend-Api-Bug that would cause it to send all data all the time
      • SymmetricEss: add ActivePower-Channel to Modbus Protocol
  • Fix Sum-Component: Explicitely update all Channel-Values 96ec8ed7b494971abf08f2f1a9933f936f305943
    • Before this fix Sum-Component would listen an BEFORE_PROCESS_EVENT to update its Channel values. Depending on the order of execution of all EventHandlers this could sometimes lead to a situation where on old value would be used.
  • Move global Cycle-Time to the "Core.Cycle" Component. #1045 (#1085)
    • Before there was an individual Cycle-Time per Scheduler, which proved to be not necessary and over-complicated things
    • Global OpenEMS Cycle-Time can now adjusted in the "Core Cycle" Component in Apache Felix
    • Removed now-obsolete AbstractScheduler
  • B-Control EM300: small adjustments (#1092)
  • Update Java dependencies 85708d780033371db9cf442bbc9dde03d665bcd2, 2280fe7a03efa6e3f51330709e5801db3098a33e

UI

  • Mans small updates (#1071, #1090)
    • Update to Ionic 5 (https://github.com/ionic-team/ionic/releases/tag/v5.0.0)
    • Adjust translations
    • Add unit to singlethreshold widget for other inputchannels
    • Fix error message on update-component error
    • Move Modbus-Api download from Live to Anlagenprofil
    • Fix width of listed edges on overview
    • Adjust navigation live/history in app component
  • fix text-wrap in install component view (#1087)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 5 years ago

OpenEMS - 2020.6.0

Common

  • Improve logging c875791cc1d9ce9ee325fe5dbe1966316ffb137c
    • start pax logging api as early as possible
    • reduce default log level to INFO
    • move logging configuration to DefaultConfigurationWorker
  • Improvements in EdgeConfig handling (#1074) (#1076)
    • remove "isEnabled"; it's already covered by the 'enabled' property
    • improve "getAsText" method
    • Websocket.Api: do not collect EdgeConfig if no websocket is connected
    • Create EdgeConfigFactory that takes care of building and caching EdgeConfig
    • Cache EdgeConfig and only incorporate ConfigurationEvents on Change; improves speed a lot
    • Fix timing issue. Before it could happen, that EdgeConfigFactory would read an old configuration as the OpenEMS Component had not been initialized fast enough.
  • Improve formatting of EdgeConfigDiff
  • Fix handling of disappearing Components
  • Use EventAdmin to distribute updated EdgeConfig
  • Handle update of EdgeConfig by EdgeConfigWorker; this is required to get all available Channels
  • Apply explicit version numbers for dependencies (#1078); also provide slf4j.api, gson and guava per default for every bundle
  • Update Backend, Edge and UI dependencies c9c26ad0c8d79b50da7a0f8c7c58935eaf6fcb81 18a52aaeec7e278533f9b575d5b0703464631247

Edge

  • Fix behaviour of PID filter in low-priority Controllers 3ac5c31527b75ba3e98326011c1e89c2cc554975
    • This commit fixes a bug that would happen when a Controller that is using a PID filter has lower priority than another Controller; e.g. FixActivePower-Controller with higher priority than PeakShaving-Controller.
    • 1st: there was an issue that low+high limit would not be applied when they are equal - which happens e.g. after FixActivePower
    • 2nd: target value is now reduced to low+high limits before calculation starts; this avoids an always increasing error in above constellation
    • 3rd: when input already equals target; stop early as we are already there
    • also refactored "applyPidFilter" to use integers only; this is required for the "error = 0" clause to work properly
  • Improvements to FENECON DESS (#1067)
    • Set MaxApparentPower and Capacity Channels
  • Fix B-Control meter implementation (#1069)
  • Soltaro Battery Handling Controller (#1075)
  • GoodWe ET write implementation (#1077)
  • Add invert option to CHP-SoC-Controller (#1037)

UI

  • improve layout in UI log view c875791cc1d9ce9ee325fe5dbe1966316ffb137c

Backend

  • Backport Backend improvements from fems (#1068)
    • improve handling of FileTypeConflicts:
    • Enable conversion of Float and Double to Integer
    • Try again on error (this is required for _property channels)
    • Configure pax logging only if it had not been configured before
    • Reduce logs on startup: introduce "isInitialized" state in Metadata service
    • Allow update of EdgeProductType
    • Clear debug system out printlns
  • improve performance to Postgres database: Use HikariCP: A solid, high-performance, JDBC connection pool https://github.com/brettwooldridge/HikariCP 141d6051e57cee48528314952fc7e6eae524afc1

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 5 years ago

OpenEMS - 2020.5.0

Edge

  • Add Asymmetric Peakshaving Controller (#1051)

  • Add Channel-Single-Threshold Controller (#979)

    • Generic Controller that sets a digital output according to the value of given Channel - e.g. turn a Relay on or off, when configured input channel (e.g. State-of-charge) is above or below a given threshold respectively.
  • Add DefaultConfigurationWorker. Creates default configurations for deployment. (#1054), 88f80332591936cd831d231eb72411d8cbbf4ca9, 6c8880cb27b400070c60bb492a04d3e7d1ef3046

    • default config for Controller.Api.Rest.ReadOnly and Controller.Api.ModbusTcp.ReadOnly
  • Fixes and improvements on PID filter (#1059)

    • Add Excel PID Simulator (see doc-folder)
    • Add tests for PidFilter class (created using Excel PID Simulator)
    • Add SetActivePowerEqualsWithPid Channel on ManagedSymmetricEss
    • Fix PID behaviour when close to min/max limits: never reset ErrorSum
    • Drop unused features from PidFilter class
    • Use SetActivePowerEqualsWithPid in Symmetric PeakShaving, Asymmetric PeakShaving and Balancing Controllers
    • Add and fix tests in Symmetric PeakShaving, Asymmetric PeakShaving and Balancing Controllers
  • EdgeConfig: default directory for Edge related files is now c:/openems/ 1ac7ae8a5bebe5cf2b02f88581d80692b8ef3ca1

  • EdgeConfig: Fix NullPointerException "ocd.getAttributeDefinitions(filter)" returns an array of attribute definitions or null if no attributes are selected 1dd67347c0d74690a46e71378bbd49a4d7bf52d7

UI

  • Improvements for Symmetric Peakshaving
    • Live-Widget (#1048)
    • History-Chart (#1057)
  • Add Asymmetric Peakshaving Controller (#1051)
    • Live-Widget (#1051)
    • History-Chart (54a1d682a6a2a118a6a8ea4f77a5eb6fe500d095)
  • General UI adjustments (#1050)
    • hide widget if component is not enabled
    • add charging target to modal evcs widget
    • adjust unitvalue pipe for displaying '-' on null values
    • UI: FEMS-Settings Adjustments (#1036)
      • add button at beginning/middle of array in repeat component
      • add alias to edit config component
      • add icons to profile in fems settings
      • add rework of install components
    • UI Overhaul (7ef9dd427ef70b961a6e8f0602e3156bc6c1da51)
      • fix of Expression has changed after it was checked error
      • sorted modules etc.
      • removed unnecessary subscribes
      • reworked energy chart for better visibility
      • reworked widgets to work with components instead of controllers as variable names
      • reworked translation variables for constant notation (camelCase for variables)
    • set edge port 8085 as default environment (#1064)

Common

  • Add documentation for openems edge core bundle (#1054)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 5 years ago

OpenEMS - 2020.4.0

Common

Edge

  • Improvements to Simulation capabilities
    • Improve CSV datasource 5443338da9b036d49370c6fa45a28fb7be6341d0
      • Move existing CSV Datasource with predefined CSV files to "Simulator DataSource: CSV Predefined"
      • Add new "Simulator.Datasource.CSV.Direct". It allows configuring the CSV content directly in Apache Felix
      • Allow CSV without titles
    • Fix NRC (non-regulated-consumption) meter and Reacting GridMeter: this allows simulating Loads using a simulated NRC Meter 9de12eac05a477bc14406ae733054c87bf71a11e
    • Full documentation on this feature is still missing, but it alread proved to be helpful in a university lecture about energy flows. To create a simple, static enery flow with grid, pv production, storage and loads that can be visualized in OpenEMS UI, configure:
      • to simulate a consumption of 5000 W, resulting in buy-from-grid 5000 W grafik
        • Simulator DataSource: CSV Direct
          • Component-ID: "datasource1"
          • Source: "5000"
        • Simulator NRCMeter Acting
          • Component-ID: "meter1"
          • Datasource-ID: "datasource1"
      • Simulator GridMeter Reacting
        • Component-ID: "meter0"
      • to add a production of 10000 W to the simulation, resulting in sell-to-grid 5000 W grafik
        • Simulator DataSource: CSV Direct
          • Component-ID: "datasource2"
          • Source: "10000"
        • Simulator ProductionMeter Acting
          • Component-ID: "meter2"
          • Datasource-ID: "datasource2"
      • to add a battery in self-consumption optimization mode to the simulation, resulting in 0 W grid exchange and battery charging of 5000 W grafik
        • Simulator EssSymmetricReacting
          • Component-ID: "ess0"
        • Controller Balancing Symmetric
          • Component-ID: "ctrlBalancing0"
          • Ess-ID: "ess0"
          • Meter-ID: "meter0"
  • Fix bug in RRD4j Timedata 586460c3c29a3b5393a2ef82129d52c4baf6c047; thanks to @ahummelsberger
  • Split API Controllers in Read-Only and Read-Write variants: This allows deploying an energy management system by default with a read-only apis
    • JSON/REST-Api 05e26dc51746527a167dc8e3abed079cc69e28cb
    • Modbus/TCP-Slave Api 2faa57e999a4557676d1137c9e8d49e7a1d9a49b
  • ComponentManager: fix OsgiValidateWorker for defective components that get removed. Before OsgiValidateWorker would throw an exception, when a component configuration was removed, but the Component-ID was still considered 'defective' b5759b21dcbb612a34b9090926edf9d6c2342699
  • Add UUID-helper: add helper function to provide a 'Nil' UUID. See https://en.wikipedia.org/wiki/Universally_unique_identifier#Nil_UUID ca0150a3866cc55cc667ba12651aa458f7045975

UI

  • UI: Fix refresh config from Edge: do not refresh simultaneously ea86ef649c7a676f506823e98f27d33b8eeef1c9 7dbe4c49e3a71ea389878bde1f07ab8df364b7b3

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier about 5 years ago

OpenEMS - 2020.3.0

Common

  • Travis: build with latest stable LTS node_js 59741aa83bffdeb56ba9e2967e2beebdf43ff52a

  • Improve helper scripts e4ec39d477d2de0732f7f837c7931904b7daa86e d9e74b5bcb68a76c1c30a851b0fb0f22daa15a82

  • Add templates for bndtools and improve 'Implementing a Device' docs (#1040)

  • Upgrade Gradle and UI dependencies

Backend

  • B2bRest-Api: make sure JSON-RPC error is properly sent; (Unfortunately this requires to set Response code to OK (200)) f1432b7c4710320e7905ca5d6ab54b1c47e714d7

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2020.2.0

Common

  • ModbusSlave: add type UINT32 9337c52f32f4c5326a539ff21436a7f403ba7ffd
  • Update dependencies for UI and Java
  • Update Gradle
  • Improve helper scripts 'prepare_commit', 'prepare_release' and 'prepare-next-snapshot' in tools directory

Edge

  • RRD4j: fix "bad sample time, at least one second step is required" error 65dda6b2bfa849fdf14d36b2c67fa47cc982f9ce

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2020.1.0

Common

  • Update UI and Java dependencies
  • Improve error handling for JSON-RPC Error Response 0f5997e56abeb2513c0dfda305b4d50429a22989

Edge

  • Add no of cycles option to influxdb module. (#1028) Thanks @ahummelsberger

Backend

  • Add compatibility with Odoo 12 42aa899035b36023896ad0d40622b99f3aba07e7

UI

  • General Adjustments (#1029)
    • UI: fix size of fix digital output widget on mobile devices
    • hide energymonitor, grid, autarchy and consumption widget if not needed
    • adjustment of hiding energymonitor

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.18.0

Common

  • Clean OSGi bundles #1024
    • Simpliy bnd.bnd files; bndtools do all the work for us anyway
    • Use new @org.osgi.annotation.bundle.Export annotation instead of bnd Export-Package, see https://blog.osgi.org/2018/07/osgi-r7-highlights-bundle-annotations.html
    • Apply OSGi 7.0.0 everywhere
    • Sort entries in .bndrun and bnd.bnd files alphabetically
    • Remove unncessary package-info.java files
    • Move io.openems.backend.timedata.core to .api bundle
    • Simplify mbus and modbus bridge API
    • Split meter and pvinverter api bundles
    • Improve 'prepare-commit' tool
  • Update Java and UI dependencies
  • Add 'resolution' to QueryHistoricTimeseriesDataRequest (bab64cf6f5f216ce0e7e3d000ac1da277935b7bb)

Edge

  • Add Thermometer-API, OneWire bridge and OneWire-Thermometer implementation (#891)
  • Add Schneider Acti9 Smartlink Electricity Meter (#1014) Thanks @greemo for your first contribution!
  • Add Controllers for Predictive Delay Charge and ESS Sell-To-Grid Limit (for 70 % restriction) (#911) Thanks @venu-sagar

UI

  • General improvements to UI (#1005) Thanks @fabianfnc
    • show '0' instead of '-' in live energymonitor for grid when no grid buy/sell is happening
    • show energy since beginning in Live/EVCS widget when car fully charged
    • round minutes & hours in history channelthreshold widget
    • fix of history total ac chart
    • add 'changes applied/failed' toast message in callback methods for live
    • hide live component widgets while no channel data available & show loading
    • correct calculation of other consumption in history consumption
    • adjust img name for storage_empty_monitor.png in live energy monitor
  • added missing translations to datepicker component in UI (#1019). Thanks @ahummelsberger
  • add second y axis to energymonitor in history to show soc in % (#1025)
  • improvements to formly and history SoC chart (#1027)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.17.0

Common

  • Update bnd workspace + gradle (6.0.1) + osgi (7.0.0) (#1018)

Edge

  • WAGO Fieldbus: fix outputs being defined as write-only 46d5d535825b046741d4f74e3728776ec07e2f0d
  • Discovergy meter: switch to basic authentication 58aa73e8733e8fc8ed2d856c09203d2ed1ea24d7
  • BMS Cluster Min-Cell-Voltage + Modbus-Slave implementation (#1017)

UI

  • Add Autarchy & SelfConsumption to History (#997)

Backend

  • Backend.Timedata: improve conversion of String to Integer ecaec41f040ea028d871b465114bd76f87519597

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.16.0

UI

  • new PickDateComponent for selection of history period (#965) thanks @fabianfnc
  • Complete History Rework based on Widgets & Modals like in Live-View (#996) thanks @fabianfnc

Edge

  • Implement bridge for M-Bus and ABB B23 meter (#604) thanks @ljonka
  • Add PID filter for Balancing and Peak-Shaving controllers (#949)
  • Add Simulator Datasource for 'Zero' value. Always returns '0'. b39b1e77a681ea91c7b64c42219cbf9a6c66a820 This is useful to simulate a Meter or an Ess that is not doing anything.

Backend

  • Backend: move handling of JSON-RPC requests to separate handler component. (#994) This assures that all JSON-RPC requests are available from every API interface and avoids duplicated code.

Common

  • Update dependencies for UI, Edge and Backend
  • Update Gradle to v6.0
  • Fix readme for SOCOMEC and B-Control
  • Fix/Update Getting Started Guide. thanks @Anita4Schmid b95907f541bc6bca389b4988599a31253a748125
  • Enhance 'prepare-commit.sh' script b7ece14329098c0ce59e8f805fc56e9cb85f73f8

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.15.0

UI

  • Fix the UI modal for FixDigitalOutput-Controller (#914)
    grafik
    grafik
  • UI Install Component: fix calculation of next Component-ID
  • Update UI dependencies

Backend

  • Enable ComponentJsonApi requests via Backend REST-Api. fcf3c2e833d709cfdc242d16da63a5657d0bf26a
    • Example: configuring an instance of Timedata.Rrd4j component
    {
	"method": "edgeRpc",
	"params": {
		"edgeId": "edge0",
		"payload": {
			"method": "componentJsonApi",
			"params": {
				"componentId": "_componentManager",
				"payload": {
					"method": "createComponentConfig",
					"params": {
						"factoryPid": "Timedata.Rrd4j",
						"properties": [{
							"name": "enabled",
							"value": true
						}, {
							"name": "id",
							"value": "rrd4j0"
						}, {
							"name": "recordPeriod",
							"value": 60
						}]
					}
				}
			}
		}
	}
    }

Common

  • Update Antora to v2.2; fix "Edit this Page" url b0abb602b2b2b2c4824e7a90cdf5ad8a08f0a039

Edge

  • Improve EdgeConfig & create Channel for each configuration Property (#925)
    • For every Configuration Property (= "Config" annotation) a Channel "_PropertyConfigname" is automatically generated with the configured value
    • Channels starting with underscore ("_") are documented as "reserved for internal usage"
    • Improve how the value for a String-Channel is set; better handling for Arrays
    • EdgeConfig now has every Property; even the ones defined via @Component annotation. This allows setting "type=PRODUCTION" for Meters.
    • Add "type" property to all existing specific Grid-/Production-Meters
  • Improvements on Discovergy Smart-Meter implementation (#928)
    • Add Voltage channels
    • Validate if last readings are too old
    • Add grid feed-in energy
    • Add helper methods for AsymmetricMeter; JsonUtils: add getAsEnum method
    • Add JSONRPC methods:
{
  "method": "componentJsonApi",
  "params": {
    "componentId": "meter0",
    "payload": {
      "method": "getMeters",
      "params": {}
    }
  }
}
  • Backport improvements from FEMS
    • Split Edge Sum-State in Component-States
    • Odoo: write data directly do Postgres
    • Warning Channel for "Disk is full"
    • Sum: improve handling of energy values
    • Add getLatestValue() method to Timedata service
  • Sum: remove unnecessary logs
  • Fix Host execute command via REST/JSON
  • OsgiValidateWorker: improve timing till "Component was not activated" State-Channel is set. 7ce9ec6bb0391954ef4689cfca2f8b80fb5929f2
  • PhaseRectificationController: run only in On-Grid mode

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.14.0

Edge

  • Discovergy Meter: allow configuration via serialNumber and fullSerialNumber c4fef48bf989c4b6f9aa689997da32588e4b2047
  • Updates to ESS BYD Container (#842)
  • Improvements on Sinexcel battery inverter (#856)
  • Improvements on Electric Car charging with KEBA and in Cluster mode (Details in #879)
  • Implement timedata service based on Rrd4j (#890)
  • Introduce new environment variable "openems.data.dir". Rrd4j data is stored in this directory
  • "Channel" now keeps the past 100 values in a local cache
  • Channel "Value" now keeps a timestamp of when the value was set
  • Add JSON-RPC requests for QueryHistoricTimeseriesData and QueryHistoricTimeseriesEnergy to JSON/REST Api
  • Improve Soltaro BMS implementation (#886)
    • fix calculation of capacity, adds a config field for module type
    • changes type of control flag channels to boolean channels
    • remoce cell drift recogniton, adds error handling
    • remove cluster version a, it's not used any longer

UI

animation

  • Rework Energymonitor ecd483afc1fd7241d0affa086cbe2cade658fff9
    • smaller size
    • remove state of charge text from Storage
  • remove Grid/Storage/Consumption/Production text
  • add energyflow animation
  • add color grey to outer bars
  • storage graphic is more accurate
  • Fix of SideMenu on IOS devices 6d678024f42f2ad0585fc754de649406ac0d6bfb
  • If no Grid Value available show '-' 6d678024f42f2ad0585fc754de649406ac0d6bfb
  • Add info text if Edge device is offline in OpenEMS Backend 6d678024f42f2ad0585fc754de649406ac0d6bfb
  • Improve Component Create/Update via UI (#910)
    • ComponentManager "create configuration": check for duplicate Component-ID
    • UI install component: suggest next free Component-ID as default value
    • Component create/update: use all space for input field and align text right

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.13.0

Common

  • Update dependencies

Edge

  • Add Ess-Power solver strategy to keep all inverters power equal 5b9824ea0405c486aa05b0de1bae181bf9c0d60c

UI

  • Bugfixes for UI Live Widgets, Historic Charts and translations #834 #853 #857
  • Add search for producttype in Edges overview #857

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.12.0

Common

  • Update dependencies
  • Improve Electric Vehicle Charging Station controller + UI widget (#824)
    • implement energy oriented charge mode
    • implement option to disable EVCS
    • rework of UI EVCS Widget

Edge

  • New ESS Limit Discharge Cell Voltage Controller (#827)
    • Limits the discharge power of an energy storage system according to minimal cell voltage, e.g. to keep energy for emergency power or to avoid deep discharge.
    • replaces io.openems.edge.controller.dischargelimitconsideringcellvoltage

UI

  • Improve UI widget for ChannelThresholdController (#813)
  • Improve UI widget for Combined Heat and Power Plant (CHP) Controller (#796)
  • Replace W values with kW values in Live View

Backend

  • Improve performance of Odoo/PostgreSQL connection

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.11.0

Edge

  • Work on Electric Vehicle Charging Station Controller, Cluster of multiple Evcs and KEBA implementation (#800)
  • Implement GoodWe ET-Series Energy Storage System + Grid-Meter (#714)
  • Execute system commands via UI (#798)
  • WAGO: fix possible NPE, add readme and javadocs dddb8e668240925e804acb2b492f00ad3d72943f
  • SunSpec Meter: Add Energy Channels (#775)
  • Map Tesla Powerwall charge/discharge power to phase (#801)
  • Improve debuglog for _sum production (#810)
  • Improve implementation of Sinexcel battery inverter (#809)

UI

  • Add Phases to Advanced Widget View + Add Autarchie & Self Consumption to Live & History (#759)
  • UI: Ionic CSS attributes are deprecated; drop remaings of angular flex-layout

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.10.0

Common

  • Add simulator for UI history

Edge

  • Add Sum-Channels for asymmetric Power on L1, L2 and L3. See https://openems.github.io/openems.io/openems/latest/simulation/ui-history.html
  • Fix electric vehicle charging station (EVCS) control algorithm and KEBA Charge-Mode
  • Fix NullPointerException on DailyScheduler
  • Updates on implementation for BYD containerized storage system
  • Channel.onChange listener now provides old and new value (#753)

Backend

  • Improve performance with Odoo backend

UI

  • Visualize asymmetric Power L1, L2, L3
  • Improve EVCS widgets in UI
  • Remove dependency on @angular/material

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.9.0

Common

  • Historic data in UI: improve calculation of resolution; starting from 5 minutes a06f47eda33a57ac3a92620c594ba0dac4dd8b30

Edge

  • Improve ComponentManager b3eea3cb392f6abb6d92d7acfff670c471fc5c1e
    • clearly separate and provide Enabled-Components from All-Components
    • OSGiValidateWorker: do not compare Service-PID, to avoid false positives; try to restart inactive components 06fb422ce81704229b0e64ce105a190655bcefc7
    • Cycle: handle disabled Controllers. Add info channel
  • Modbus-Bridge: improve handling of frequent read errors 15727e23940b761c7ccfdf6db70874f17e5c17d8
    • Add "Invalidate elements after how many read Errors?" configuration. By default Channels are invalidated with the first read error. Increase this value if modbus read errors happen frequently.
    • Be aware, that this can introduce system stability issues, as the system will react slower to disconnected modbus devices.
  • Sum: fix calculation of State channel ebb2b6eb92e907f5f1e702693afc5d4a4e652b1e
  • Implement generic SunSpec Meter + SolarEdge PV-Inverter & Grid-Meter (#703)
  • Implement Tesla Powerwall 2 (#715)
  • Add Predictor API and Persistence-Model Predictor (#686) thanks @pooran-c
  • Improve Electric Vehicle Charging Station handling (#732) thanks @sebastianasen

UI

  • Add UI History Widget for CHP controller (#708) thanks @pooran-c

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier over 5 years ago

OpenEMS - 2019.8.0

OpenEMS Release

Common

  • Update dependencies for Backend, Edge and UI
  • Add Capacity-Channel to Sum in Edge and Storage Section in UI (#657) Thanks @ahummelsberger

Edge

  • Breaking changes at "Daily Scheduler"
    • renamed bundle and configuration settings
    • add "Before" for Controllers that are executed with high priority
    • add JUnit tests
  • Generic implementation for SunSpec compatible PV Inverters (#688). 5eb26abc67d2ba3071da23f838c64be7699127dd This implementation is tested on
    • KACO blueplanet TL.3 series
    • SolarEdge SE12.5K - SE27.6K
  • Implement OutOfMemoryHeapDumpWorker to recover from Heap-Dumps 7179957348a5d1120afe501269f9b3e033ce530e
  • FENECON Commercial 40: Apply PowerLimit "On Power Decrease Caused By Overtemperature" Error (#695) 82d2d516c597a15cc2a79bf01a1a37c0509143f9

UI

  • Add advanced modal Widgets to UI Live view (#687)

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 6 years ago

OpenEMS - 2019.7.0

Common

  • Improve test-gitignore script: check for missing empty test folders. This is helpful to keep the repository in a good state for importing in Eclipse IDE. c36e2019d07c4c3231905f280822b52b852f0939

Edge

  • Made Virtual.Add.Meter production ready: this meter combines multiple meters into one virtual meter, that them sums up
  • Enhance Peak-Shaving algorithm with maxPowerAdjustmentRate to avoid flickering
  • Fix implementation of SMA Sunny Island battery inverter
  • Add Host-Component. This component provides operating system services like changing network configuration #650
  • Improve initialization routine of WAGO fieldbus implementation 35a7f28c54d829285ac1387d8aa94880bb0345a3, d7a0647f2c32a0694524bbb3d17d6d58ab201603
  • Improve error handling with FixDigitalOutput Controller 220ef16ca9a8e15f76941b22fe2de743c22fca83
  • Improve implementation of PV limitation with SolarLog Direct Marketing Interface 76fbddd5ff6f37e0b58774361526d409163dfe6f
  • Improve error handling with CHP Controller 4144eac85aa659e79b65c8abca0d0440db87f512
  • Security improvement: do not anymore send component configuration password fields 14420023bed5baefcda8845f4a2e51fad8540fe1
  • Improve implementation of KACO blueplanet gridsave 10 (thanks @wgerbl )
  • Improve logging in EssPower component
  • Fix NullPointerException in initialization of DailyScheduler 4bbdf06ace4a88e9b5be1e57c1f60e98338e1edc
  • Use ComponentManager to get all Components in Cycle, DebugLog, Timedata.Influx and Sum components
  • Work on Surplus-Feed-In-Controller for FENECON Commercial 40

UI

  • Hide Historic charts if there is no Timedata service available. (only applies to UI-to-Edge connection, not UI-to-Backend)
  • Add Network Configuration dialog #650

Energy Systems - Building Energy Monitoring - Java
Published by sfeilmeier almost 6 years ago