Ejemplo n.º 1
0
  /**
   * Update a device based on a status message from the system
   *
   * @param status
   */
  protected void updateDeviceStatus(Status status) {

    logger.debug("updateDeviceStatus {} {}", status.getNumber(), status.getClass());

    Integer number = new Integer(status.getNumber());

    if (status instanceof UnitStatus && unitMap.containsKey(number)) {
      Unit unit = unitMap.get(number);
      unit.getProperties().updateUnit((UnitStatus) status);
      updateItemsForDevice(unit);
    } else if (status instanceof ThermostatStatus && thermostatMap.containsKey(number)) {
      logger.debug("Updating thermo " + number);
      Thermostat thermo = thermostatMap.get(number);
      thermo.getProperties().updateThermostat((ThermostatStatus) status);
      updateItemsForDevice(thermo);
    } else if (status instanceof AudioZoneStatus && audioZoneMap.containsKey(number)) {
      logger.debug("Updating audioZone " + number);
      AudioZone az = audioZoneMap.get(number);
      az.getProperties().updateAudioZone((AudioZoneStatus) status);
      updateItemsForDevice(az);
    } else if (status instanceof AreaStatus && areaMap.containsKey(number)) {
      logger.debug("Updating area " + number);
      Area area = areaMap.get(number);
      area.getProperties().updateArea((AreaStatus) status);
      updateItemsForDevice(area);
    } else if (status instanceof ZoneStatus && zoneMap.containsKey(number)) {
      logger.debug("Updating zone " + number);
      Zone zone = zoneMap.get(number);
      zone.getProperties().updateZone((ZoneStatus) status);
      updateItemsForDevice(zone);
    }
  }
Ejemplo n.º 2
0
 /**
  * Updates a AudioZone's source text fields when a AudioSource changes
  *
  * @param as the audio source that has been updated
  */
 private void updateAudioZoneText(AudioSource as) {
   for (OmniLinkBindingProvider provider : providers) {
     for (String itemName : provider.getItemNames()) {
       OmniLinkBindingConfig config = provider.getOmniLinkBindingConfig(itemName);
       if (config != null) {
         switch (config.getObjectType()) {
           case AUDIOZONE_TEXT:
           case AUDIOZONE_TEXT_FIELD1:
           case AUDIOZONE_TEXT_FIELD2:
           case AUDIOZONE_TEXT_FIELD3:
             {
               AudioZone az = (AudioZone) config.getDevice();
               az.setAudioSource(audioSourceMap);
               if (az.getProperties().getSource() == as.getProperties().getNumber()) {
                 az.updateItem(provider.getItem(itemName), config, eventPublisher);
               }
             }
             break;
           default:
             break;
         }
       }
     }
   }
 }