code: async def _async_ws_handler(self, data):
          
          sia_message = data['data']['sia']
          spc_id = sia_message['sia_address']
          sia_code = sia_message['sia_code']
  
          _LOGGER.debug("SIA code is %s for ID %s", sia_code, spc_id)
  
          if sia_code in Area.SUPPORTED_SIA_CODES:
              entity = self._areas.get(spc_id, None)
              resource = 'area'
          elif sia_code in Zone.SUPPORTED_SIA_CODES:
              entity = self._zones.get(spc_id, None)
              resource = 'zone'
          else:
              _LOGGER.debug("Not interested in SIA code %s", sia_code)
              return
          if not entity:
              _LOGGER.error("Received message for unregistered ID %s", spc_id)
              return
  
          data = await self._async_get_data(resource, entity.id)
          entity.update(data, sia_code)
  
          if self._async_callback:
              ensure_future(self._async_callback(entity))
docs: Process incoming websocket message.