Class HardyBarthImpl

    • Field Detail

      • log

        protected final org.slf4j.Logger log
      • config

        protected io.openems.edge.evcs.hardybarth.Config config
      • masterEvcs

        protected boolean masterEvcs
    • Constructor Detail

      • HardyBarthImpl

        public HardyBarthImpl()
    • Method Detail

      • handleEvent

        public void handleEvent​(org.osgi.service.event.Event event)
        Specified by:
        handleEvent in interface org.osgi.service.event.EventHandler
        Overrides:
        handleEvent in class AbstractManagedEvcsComponent
      • debugLog

        public void debugLog​(java.lang.String message)
        Debug Log.

        Logging only if the debug mode is enabled

        Parameters:
        message - text that should be logged
      • logError

        protected void logError​(org.slf4j.Logger log,
                                java.lang.String message)
        Description copied from class: AbstractOpenemsComponent
        Log an error message including the Component ID.
        Overrides:
        logError in class AbstractOpenemsComponent
        Parameters:
        log - the Logger instance
        message - the message
      • getConfiguredDebugMode

        public boolean getConfiguredDebugMode()
        Description copied from interface: ManagedEvcs
        Configuration if the debug mode is active or not.
        Specified by:
        getConfiguredDebugMode in interface ManagedEvcs
        Returns:
        boolean
      • applyChargePowerLimit

        public boolean applyChargePowerLimit​(int power)
                                      throws OpenemsError.OpenemsNamedException
        Description copied from interface: ManagedEvcs
        Command to send the given power, to the EVCS.

        Example:

         
          // Format the power to the required format and unit
         
                String raw = "currtime " + current + " 1";
         
                byte[] raw = s.getBytes();
                DatagramPacket packet = new DatagramPacket(raw, raw.length, ip, KebaKeContact.UDP_PORT);
                DatagramSocket datagrammSocket = null;
                try {
                        datagrammSocket = new DatagramSocket();
                        datagrammSocket.send(packet);
                        return true;
                } catch (SocketException e) {
                        this.logError(this.log, "Unable to open UDP socket for sending [" + s + "] to [" + ip.getHostAddress()
                                        + "]: " + e.getMessage());
                } catch (IOException e) {
                        this.logError(this.log,
                                        "Unable to send [" + s + "] UDP message to [" + ip.getHostAddress() + "]: " + e.getMessage());
                } finally {
                        if (datagrammSocket != null) {
                                datagrammSocket.close();
                        }
                }
                return false;
         
         
        Specified by:
        applyChargePowerLimit in interface ManagedEvcs
        Parameters:
        power - Power that should be send in watt
        Returns:
        boolean if the power was applied to the EVCS
        Throws:
        OpenemsException - on error
        OpenemsError.OpenemsNamedException
      • applyDisplayText

        public boolean applyDisplayText​(java.lang.String text)
                                 throws OpenemsException
        Description copied from interface: ManagedEvcs
        Command to send the specified text to the EVCS display, if supported

        Writes to the display of the charging station, if the EVCS supports that feature - if not, return false.

        Specified by:
        applyDisplayText in interface ManagedEvcs
        Parameters:
        text - Text to display
        Returns:
        boolean if it was sent or not
        Throws:
        OpenemsException - on error
      • getMinimumTimeTillChargingLimitTaken

        public int getMinimumTimeTillChargingLimitTaken()
        Description copied from interface: ManagedEvcs
        Minimum time till a charging limit is taken by the EVCS in seconds.
        Specified by:
        getMinimumTimeTillChargingLimitTaken in interface ManagedEvcs
        Returns:
        time in seconds
      • getConfiguredMinimumHardwarePower

        public int getConfiguredMinimumHardwarePower()
        Description copied from interface: ManagedEvcs
        Minimum hardware limit in W given by the configuration.

        This value is taken as a fallback for the ChannelId#FIXED_MINIMUM_HARDWARE_POWER channel. As the configuration property should be in mA for AC chargers, make sure that the value is converted to W. Example: Math.round(current / 1000f) * DEFAULT_VOLTAGE * Phases.THREE_PHASE.getValue();

        Specified by:
        getConfiguredMinimumHardwarePower in interface ManagedEvcs
        Returns:
        minimum hardware limit in W
      • getConfiguredMaximumHardwarePower

        public int getConfiguredMaximumHardwarePower()
        Description copied from interface: ManagedEvcs
        Maximum hardware limit in W given by the configuration.

        This value is taken as a fallback for the ChannelId#FIXED_MAXIMUM_HARDWARE_POWER channel. As the configuration property should be in mA for AC chargers, make sure that the value is converted to W. Example: Math.round(current / 1000f) * DEFAULT_VOLTAGE * Phases.THREE_PHASE.getValue();

        Specified by:
        getConfiguredMaximumHardwarePower in interface ManagedEvcs
        Returns:
        maximum hardware limit in W