Пример #1
0
  /** @{inheritDoc} */
  @Override
  protected void internalReceiveCommand(String itemName, Command command) {
    // the code being executed when a command was sent on the openHAB
    // event bus goes here. This method is only called if one of the
    // BindingProviders provide a binding for the given 'itemName'.

    if (command instanceof OnOffType) {
      final OnOffType switchCommand = (OnOffType) command;
      final OpenSprinklerBindingProvider bindingProvider =
          findFirstMatchingBindingProvider(itemName, command);
      final int station = bindingProvider.getStationNumber(itemName);

      if (station < 0 || station >= numberOfStations) {
        logger.warn(
            "Station "
                + station
                + " is not in the valid ["
                + 0
                + ".."
                + numberOfStations
                + "] range");
        return;
      }

      switch (switchCommand) {
        case ON:
          openSprinkler.openStation(station);
          break;
        case OFF:
          openSprinkler.closeStation(station);
          break;
      }

      return;
    }

    if (command instanceof OpenClosedType) {
      // abort processing
      return;
    }

    logger.debug("Provided command " + command + " is not of type 'OnOffType' or 'OpenClosedType'");
  }