Package org.openhab.binding.insteonplm.internal.message

Examples of org.openhab.binding.insteonplm.internal.message.Msg


  public void doPoll() {
    ArrayList<QEntry> l = new ArrayList<QEntry>();
    synchronized(m_features) {
      for (DeviceFeature i : m_features.values()) {
        if (i.hasListeners()) {
          Msg m = i.makePollMsg();
          if (m != null) l.add(new QEntry(i, m));
        }
      }
    }
    if (l.isEmpty()) return;
View Full Code Here


   * @throws FieldException
   * @throws IOException
   */
  public Msg makeStandardMessage(byte flags, byte cmd1, byte cmd2)
      throws FieldException, IOException {
    Msg m = Msg.s_makeMessage("SendStandardMessage");
    m.setAddress("toAddress", getAddress());
    m.setByte("messageFlags", flags);
    m.setByte("command1", cmd1);
    m.setByte("command2", cmd2);
    return m;
  }
View Full Code Here

   * @throws FieldException
   * @throws IOException
   */
  public Msg makeExtendedMessage(byte flags, byte cmd1, byte cmd2)
      throws FieldException, IOException {
    Msg m = Msg.s_makeMessage("SendExtendedMessage");
    m.setAddress("toAddress", getAddress());
    m.setByte("messageFlags", (byte) (((flags & 0xff) | 0x10) & 0xff));
    m.setByte("command1", cmd1);
    m.setByte("command2", cmd2);
    int checksum = (~(cmd1 + cmd2) + 1) &0xff;
    m.setByte("userData14", (byte)checksum);
    return m;
  }
View Full Code Here

  public static class DefaultPollHandler extends PollHandler {
    DefaultPollHandler(DeviceFeature f) { super(f); }
    @Override
    public Msg makeMsg(InsteonDevice d) {
      Msg m = null;
      try {
        m = d.makeStandardMessage((byte)0x0f, (byte)0x19, (byte)0x00);
        m.setQuietTime(500L);
      } catch (FieldException e) {
        logger.warn("error setting field in msg: ", e);
      } catch (IOException e) {
        logger.error("poll failed with exception ", e);
      }
View Full Code Here

  public static class ContactPollHandler extends PollHandler {
    ContactPollHandler(DeviceFeature f) { super(f); }
    @Override
    public Msg makeMsg(InsteonDevice d) {
      Msg m = null;
      try {
        // setting cmd2 = 0x01 will return the LED bit flags
        // rather than the relay status!
        m = d.makeStandardMessage((byte)0x0f, (byte)0x19, (byte)0x01);
        m.setQuietTime(500L);
      } catch (FieldException e) {
        logger.warn("error setting field in msg: ", e);
      } catch (IOException e) {
        logger.error("poll failed with exception ", e);
      }
View Full Code Here

   */
  public Msg makePollMsg() {
    if (m_pollHandler == null) return null;
    logger.trace("{} making poll msg for {} using handler {}", getName(), getDevice().getAddress(),
        m_pollHandler.getClass().getSimpleName());
    Msg m = m_pollHandler.makeMsg(m_device);
    return m;
  }
View Full Code Here

    LightOnOffCommandHandler(DeviceFeature f) { super(f); }
    @Override
    public void handleCommand(InsteonPLMBindingConfig conf, Command cmd, InsteonDevice dev) {
      try {
        if (cmd == OnOffType.ON) {
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x11, (byte) 0xff);
          dev.enqueueMessage(m, m_feature);
          logger.info("LightOnOffCommandHandler: sent msg to switch {} on", dev.getAddress());
        } else if (cmd == OnOffType.OFF) {
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x13, (byte) 0x00);
          dev.enqueueMessage(m, m_feature);
          logger.info("LightOnOffCommandHandler: sent msg to switch {} off", dev.getAddress());
        }
        // expect to get a direct ack after this!
      } catch (IOException e) {
View Full Code Here

    IOLincOnOffCommandHandler(DeviceFeature f) { super(f); }
    @Override
    public void handleCommand(InsteonPLMBindingConfig conf, Command cmd, InsteonDevice dev) {
      try {
        if (cmd == OnOffType.ON) {
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x11, (byte) 0xff);
          dev.enqueueMessage(m, m_feature);
          logger.info("IOLincOnOffCommandHandler: sent msg to switch {} on", dev.getAddress());
        } else if (cmd == OnOffType.OFF) {
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x13, (byte) 0x00);
          dev.enqueueMessage(m, m_feature);
          logger.info("IOLincOnOffCommandHandler: sent msg to switch {} off", dev.getAddress());
        }
        // This used to be configurable, but was made static to make
        // the architecture of the binding cleaner.
        int delay = 2000;
        delay = Math.max(1000, delay);
        delay = Math.min(10000, delay);
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
          @Override
          public void run() {
            Msg m = m_feature.makePollMsg();
            InsteonDevice dev = m_feature.getDevice();
            if (m != null) dev.enqueueMessage(m, m_feature);
          }
        }, delay);
      } catch (IOException e) {
View Full Code Here

    IncreaseDecreaseHandler(DeviceFeature f) { super(f); }
    @Override
    public void handleCommand(InsteonPLMBindingConfig conf, Command cmd, InsteonDevice dev) {
      try {
        if (cmd == IncreaseDecreaseType.INCREASE) {
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x15, (byte) 0x00);
          dev.enqueueMessage(m, m_feature);
          logger.info("IncreaseDecreaseHandler: sent msg to brighten {}", dev.getAddress());
        } else if (cmd == IncreaseDecreaseType.DECREASE) {
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x16, (byte) 0x00);
          dev.enqueueMessage(m, m_feature);
          logger.info("IncreaseDecreaseHandler: sent msg to dimm {}", dev.getAddress());
        }
      } catch (IOException e) {
        logger.error("command send i/o error: ", e);
View Full Code Here

      try {
        PercentType pc = (PercentType)cmd;
        logger.debug("changing level of {} to {}", dev.getAddress(), pc.intValue());
        int level = (pc.intValue()*255)/100;
        if (level > 0) { // make light on message with given level
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x11, (byte) level);
          dev.enqueueMessage(m, m_feature);
          logger.info("PercentHandler: sent msg to set {} to {}", dev.getAddress(), level);
        } else { // switch off
          Msg m = dev.makeStandardMessage((byte) 0x0f, (byte) 0x13, (byte) 0x00);
          dev.enqueueMessage(m, m_feature);
          logger.info("PercentHandler: sent msg to set {} to zero by switching off", dev.getAddress());
        }
      } catch (IOException e) {
        logger.error("command send i/o error: ", e);
View Full Code Here

TOP

Related Classes of org.openhab.binding.insteonplm.internal.message.Msg

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.