Class SimulatedEvcs

    • Field Detail

      • cm

        protected org.osgi.service.cm.ConfigurationAdmin cm
    • Constructor Detail

      • SimulatedEvcs

        public SimulatedEvcs()
    • 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
      • 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
      • 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
      • 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 OpenemsException
        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
      • pauseChargeProcess

        public boolean pauseChargeProcess()
                                   throws OpenemsException
        Description copied from interface: ManagedEvcs
        Command to pause a charge process of the EVCS.

        In most of the cases, it is sufficient to call the method #applyChargePowerLimit(Integer) with 0 as power but sometimes it needs extra commands to initiate a pause of charging.

        Specified by:
        pauseChargeProcess in interface ManagedEvcs
        Returns:
        boolean if the command was applied to the EVCS
        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
      • 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